实现个性化搜索的方法和装置制造方法

文档序号:6637665阅读:130来源:国知局
实现个性化搜索的方法和装置制造方法
【专利摘要】本发明提出一种实现个性化搜索的方法和装置,该实现个性化搜索的方法包括接收用户输入的查询词;根据预先建立的对应所述用户建立的词向量集合中,获取所述查询词对应的词向量;将所述查询词和所述词向量发送给服务端,以使所述服务端根据所述查询词和所述词向量获取搜索结果;接收所述服务端发送的搜索结果,并展现所述搜索结果。该方法可以实现用户的个性化搜索,并且保护用户隐私。
【专利说明】实现个性化搜索的方法和装置

【技术领域】
[0001] 本发明涉及信息【技术领域】,尤其涉及一种实现个性化搜索的方法和装置。

【背景技术】
[0002] 用户可以在互联网上通过搜索获取所需信息,在搜索时,用户可以在搜索引擎的 搜索栏中输入查询词并根据查询词获取搜索结果。现有技术中,服务端是根据查询词进行 匹配,得到搜索结果,对于不同的用户,如果输入相同的查询时,则获取到相同的搜索结果。
[0003] 但是,由于用户具有个性化特点,不同的用户在搜索同一个查询词时需要的搜索 结果可能是不同的,例如,当一个英雄联盟游戏的爱好者与一名智能手机的爱好者都输入 "S4"这个查询词的时候,有极大的可能,前者想要的结果是"英雄联盟L0L_2014职业联赛 _S4赛季全球总决赛",而后者所想要的结果是"三星的智能手机Galaxy S4"。
[0004] 现有技术中,为了实现个性化搜索,客户端可以将用户的历史信息发送给服务端, 服务端根据历史信息获取个性化的搜索结果。
[0005] 但是,这种方式需要将用户的历史信息发送给服务端,会侵犯用户隐私。


【发明内容】

[0006] 本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0007] 为此,本发明的一个目的在于提出一种实现个性化搜索的方法,该方法可以实现 用户的个性化搜索,并且保护用户隐私。
[0008] 本发明的另一个目的在于提出一种实现个性化搜索的装置。
[0009] 为达到上述目的,本发明第一方面实施例提出的实现个性化搜索的方法,包括:接 收用户输入的查询词;根据预先建立的对应所述用户建立的词向量集合中,获取所述查询 词对应的词向量;将所述查询词和所述词向量发送给服务端,以使所述服务端根据所述查 询词和所述词向量获取搜索结果;接收所述服务端发送的搜索结果,并展现所述搜索结果。
[0010] 本发明第一方面实施例提出的实现个性化搜索的方法,通过获取查询词对应的词 向量,将查询词和词向量发送给服务端,可以使得服务端根据查询词和词向量获取搜索结 果,由于词向量集合是对应用户建立的,不同用户可以建立不同的词向量集合,可以实现个 性化搜索,并且,发送的是词向量而不是用户历史数据,可以保护用户隐私数据。
[0011] 为达到上述目的,本发明第二方面实施例提出的实现个性化搜索的方法,包括:接 收客户端发送的查询词和所述查询词对应的词向量,所述词向量是所述客户端在预先建立 的对应用户建立的词向量集合中确定的;根据所述查询词和所述词向量,获取搜索结果; 将所述搜索结果发送给所述客户端,以使所述客户端展现所述搜索结果。
[0012] 本发明第二方面实施例提出的实现个性化搜索的方法,通过根据查询词和词向量 获取搜索结果,可以使得搜索结果不仅与查询词有关,还与词向量有关,由于不同用户对应 相同词的词向量可以不同,因此可以获取到个性化的搜索结果,从而实现个性化搜索,并 且,本实施例接收的是词向量,不是具体的历史数据,可以保护用户隐私。
[0013] 为达到上述目的,本发明第三方面实施例提出的实现个性化搜索的装置,包括:接 收模块,用于接收用户输入的查询词;第一获取模块,用于根据预先建立的对应所述用户建 立的词向量集合中,获取所述查询词对应的词向量;发送模块,用于将所述查询词和所述词 向量发送给服务端,以使所述服务端根据所述查询词和所述词向量获取搜索结果;展现模 块,用于接收所述服务端发送的搜索结果,并展现所述搜索结果。
[0014] 本发明第三方面实施例提出的实现个性化搜索的装置,通过获取查询词对应的词 向量,将查询词和词向量发送给服务端,可以使得服务端根据查询词和词向量获取搜索结 果,由于词向量集合是对应用户建立的,不同用户可以建立不同的词向量集合,可以实现个 性化搜索,并且,发送的是词向量而不是用户历史数据,可以保护用户隐私数据。
[0015] 为达到上述目的,本发明第四方面实施例提出的实现个性化搜索的装置,包括:接 收模块,用于接收客户端发送的查询词和所述查询词对应的词向量,所述词向量是所述客 户端在预先建立的对应用户建立的词向量集合中确定的;获取模块,用于根据所述查询词 和所述词向量,获取搜索结果;发送模块,用于将所述搜索结果发送给所述客户端,以使所 述客户端展现所述搜索结果。
[0016] 本发明第四方面实施例提出的实现个性化搜索的装置,通过根据查询词和词向量 获取搜索结果,可以使得搜索结果不仅与查询词有关,还与词向量有关,由于不同用户对应 相同词的词向量可以不同,因此可以获取到个性化的搜索结果,从而实现个性化搜索,并 且,本实施例接收的是词向量,不是具体的历史数据,可以保护用户隐私。
[0017] 本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变 得明显,或通过本发明的实践了解到。

【专利附图】

【附图说明】
[0018] 本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变 得明显和容易理解,其中:
[0019] 图1是本发明一实施例提出的实现个性化搜索的方法的流程示意图;
[0020] 图2是本发明另一实施例提出的实现个性化搜索的方法的流程示意图;
[0021] 图3是本发明另一实施例提出的实现个性化搜索的方法的流程示意图;
[0022] 图4是本发明实施例中根据输入历史得到词向量的流程示意图;
[0023] 图5是本发明实施例中深度学习网络的结构示意图;
[0024] 图6是本发明另一实施例提出的实现个性化搜索的装置的结构示意图;
[0025] 图7是本发明另一实施例提出的实现个性化搜索的装置的结构示意图;
[0026] 图8是本发明另一实施例提出的实现个性化搜索的装置的结构示意图;
[0027] 图9是本发明另一实施例提出的实现个性化搜索的装置的结构示意图。

【具体实施方式】
[0028] 下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终 相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考 附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反, 本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同 物。
[0029] 图1是本发明一实施例提出的实现个性化搜索的方法的流程示意图,该方法包 括:
[0030] Sll :接收用户输入的查询词。
[0031] 本实施例的执行主体可以是客户端。
[0032] 其中,用户可以在客户端的搜索引擎的搜索框中输入查询词(query),例如,用户 可以在搜索框中输入"作业"。
[0033] S12 :根据预先建立的对应所述用户建立的词向量集合中,获取所述查询词对应的 词向量。
[0034] 其中,在搜索之前可以对应每个用户建立词向量集合。
[0035] 词向量集合中包括至少一个词的词向量。
[0036] 词向量是由多个实数组成的实数向量,通常维度是50到1000。
[0037] 对于同一个词,不同用户对应的词向量可以是不同的,例如,对应"作业"这个词, 可能是指学生作业,也可能是指工程作业,当作业表示学生作业时,与作业表示工程作业 时,"作业"这个词可以用不同的词向量表示。
[0038] 可选的,词向量集合可以采用如下方式建立:
[0039] 获取所述用户采用输入法得到的输入历史;并根据所述输入历史,建立所述词向 量集合。
[0040] 本实施例通过采用输入法中的输入历史,相对于搜索历史和点击历史等,可以扩 大输入历史的范围,使得获取的输入历史更丰富,从而提高词向量集合的准确度,实现更个 性化的搜索。
[0041] 进一步,所述根据所述输入历史,建立所述词向量集合,包括:
[0042] 根据所述输入历史,确定正例和反例,所述正例是输入历史中已存在的词序列组 成的样本,所述反例是输入历史中没有出现过的词序列组成的样本;
[0043] 根据深度学习网络对所述正例和反例进行训练,建立所述词向量集合。
[0044] 本实施例中,在获取输入历史后,可以采用深度学习的方式,获取词向量集合。
[0045] 具体的深度学习的方式可以参见后续实施例。
[0046] S13 :将所述查询词和所述词向量发送给服务端,以使所述服务端根据所述查询词 和所述词向量获取搜索结果。
[0047] 为了实现个性化搜索,本实施例中,客户端不仅将查询词发送给服务端,还将查询 词对应的词向量发送给服务端。
[0048] 可以理解的是,用户输入的查询词可以包括至少一个词,当包括多个词时,可以采 用分词技术将查询词分为多个词,并获取每个词对应的词向量。
[0049] 现有技术中,为了实现个性化搜索,可以将用户历史搜索或点击的内容发送给服 务端,这样无疑会损害用户隐私数据。
[0050] 本实施例中,发送给服务端的是词向量,词向量是一组数字,单看这组数字无任何 物理意义,因此可以很好的保护用户隐私数据。
[0051] S14 :接收所述服务端发送的搜索结果,并展现所述搜索结果。
[0052] 服务端获取搜索结果后,将该搜索结果传输给客户端的搜索引擎,由客户端的搜 索引擎展现对应的搜索结果。
[0053] 该搜索结果是个性化的搜索结果,例如,根据用户个体情况,当用户同样搜索"作 业"时,接收的搜索结果可能是关于学生作业的结果,或者,关于工程作业的结果。
[0054] 本实施例通过获取查询词对应的词向量,将查询词和词向量发送给服务端,可以 使得服务端根据查询词和词向量获取搜索结果,由于词向量集合是对应用户建立的,不同 用户可以建立不同的词向量集合,可以实现个性化搜索,并且,发送的是词向量而不是用户 历史数据,可以保护用户隐私数据。
[0055] 图2是本发明另一实施例提出的实现个性化搜索的方法的流程示意图,该方法包 括:
[0056] S21 :接收客户端发送的查询词和所述查询词对应的词向量,所述词向量是所述客 户端在预先建立的对应用户建立的词向量集合中确定的。
[0057] 本实施例的执行主体可以是服务端。服务端可以具体是搜索引擎的服务端。
[0058] 用户可以在搜索引擎的搜索框中输入查询词,客户端根据该查询词,在预先建立 的对应所述用户建立的词向量集合中获取查询词对应的词向量后,由搜索引擎将查询词和 词向量传输给服务端。
[0059] S22 :根据所述查询词和所述词向量,获取搜索结果。
[0060] 本实施例中,搜索结果不仅需要与查询词匹配,还需要与词向量匹配,以针对不同 用户提供个性化的搜索结果。
[0061] 可选的,所述根据所述查询词和所述词向量,获取搜索结果,包括:
[0062] 计算所述查询词与可供选择的结果之间的常规排序分数;计算所述词向量与所述 可供选择的结果之间的个性化排序分数;根据所述常规排序分数和所述个性化排序分数, 确定新的排序分数;根据所述新的排序分数,对所述可供选择的结果进行排序;在排序后 的结果中选择预设个数的结果,得到发送给所述客户端的搜索结果。
[0063] 进一步,所述计算所述词向量与所述可供选择的结果之间的个性化排序分数,包 括:
[0064] 获取所述可供选择的结果对应的词向量;计算所述接收的词向量与所述获取的词 向量之间的相似度数值,将所述相似度数值确定为所述个性化排序分数。
[0065] 进一步,所述根据所述常规排序分数和所述个性化排序分数,确定新的排序分数, 包括:
[0066] 采用插值方式,根据所述常规排序分数和所述个性化排序分数,确定新的排序分 数。
[0067] 其中,可供选择的结果可以是指服务端的数据库中保存的结果。
[0068] 假设一个可供选择的结果是D,查询词包括多个词,分别用W1,W2,…,Wn表示,则 常规排序分数可以表示为:RankScore (<W1,W2,…,Wn>,D)。
[0069] 本实施例中,还需要计算个性化排序分数,假设上述多个词对应的词向量分别是: C (Wl),C (W2),…,C (Wn),个性化排序分数可以表示为:
[0070] PersonalizationScore (<C(ffl), C(W2), ···, C(Wn) >, D) 〇
[0071] 在确定出常规排序分数和个性化排序分数之后,新的排序分数NewRankScore可 以表示为:
[0072] NewRankScore = λ XPersonalizationScore (<C(ffl), C(W2), . . . , C(Wn) >, D)
[0073] + (I-λ) RankScore (<ff I, W2, . . . , ffn>, D)
[0074] 其中,λ是预设的值,取为〇到I之间的数值。
[0075] 在获取新的排序分数后,可以采用该新的排序分数对可供选择的结果进行排序, 例如,将分数高的排序在前,并在排序后的结果中从前到后选择预设个数的结果作为最终 的搜索结果。
[0076] S23 :将所述搜索结果发送给所述客户端,以使所述客户端展现所述搜索结果。
[0077] 服务端获取到个性化的搜索结果后,将该搜索结果传输给搜索引擎,由搜索引擎 展现对应的搜索结果。
[0078] 本实施例通过根据查询词和词向量获取搜索结果,可以使得搜索结果不仅与查询 词有关,还与词向量有关,由于不同用户对应相同词的词向量可以不同,因此可以获取到个 性化的搜索结果,从而实现个性化搜索,并且,本实施例接收的是词向量,不是具体的历史 数据,可以保护用户隐私。
[0079] 图3是本发明另一实施例提出的实现个性化搜索的方法的流程示意图,该方法包 括:
[0080] S31 :客户端获取查询词,并获取查询词对应的词向量,并将查询词和词向量发送 给服务端。客户端可以接收用户在搜索引擎的搜索框中输入的查询词。
[0081] 查询词可以分为一个词或多个词。
[0082] 本实施例中,以查询词包括多个词为例,例如,查询词包括W1,W2,…,如。
[0083] 查询词对应的词向量表示为:C(Wl),C(W2),…,C(Wn)。
[0084] 查询词对应的词向量可以根据预先建立的词向量集合确定,例如,对应每个用户 预先建立词与词向量的对应关系,由一个或多个词与词向量的对应关系组成词向量集合。
[0085] 每个词对应的词向量可以根据输入历史采用深度学习算法确定,输入历史具体可 以是用户采用输入法得到的输入历史。
[0086] 在数学上,词向量是一个由多个实数组成的实数向量,例如,假设词向量的维度是 m,则词向量C(W) e llw,m的常见值范围为50到1000。把一个词表示为一个实数向量的 本意是通过深度学习网络学习出一个词在高维空间中所处的一个点,从而能够通过不同的 词在高维空间中的相似度来刻画不同的词之间在语义上的相似程度,相似度常见的是余弦 相似度。
[0087] 参见图4,根据输入历史得到词向量的流程可以包括:
[0088] S41 :根据用户在输入法中的输入历史构造训练样本。
[0089] 为了能够计算出词在用户的语境下的词向量,首先根据用户的输入历史,即用户 通过输入法输入过的词序列T 1, T2...来构造出用来进行深度学习网络训练的训练样本。
[0090] 训练样本可以包括正例和反例。
[0091] 正例可以从用户的输入过的词序列中抽取出2XN+1个词组成的词序列,这里的N 称为上下文窗口,即某个词所在的语义与其前N个词及后N个词组成的上下文是相关的。这 里的N的通常的取值范围是2到20。
[0092] 例如,词Ti的序列可以记为:
[0093] Ti, IVN+1,· · ·,Ti, Ti+1,…Ti+N
[0094] 因为这个序列在用户的输入历史中出现过,所以这个例子是正例,S卩,深度学习网 络需要从这个样本中学习出尽可能接近1的输出。
[0095] 同时,还需要构造负例,针对一个正例,需要构造出K个负例,K的常见取值范围是 5到100。负例的构造方式是把T i替换成一个随机选择的词,这个新构造出来的序列,要求 没有在用户的输入历史中出现过。
[0096] 将Ti替换为随机选择的K个词,组成未输入过的词序列作为反例,反例可以包括:
[0097] Tj_N, Tj_N+1, . . . , Tnegl, Ti+1, . . . Ti+N;
[0098] Tj_N, Tj_N+1, . . . , Tneg2, Ti+1, . . . Ti+N;
[0099] …
[0100] Tj_N, Tj_N+1, . . . , TnegK, Ti+1, . . . Ti+N〇
[0101] 这K个样本因为从未在用户的输入历史中出现过,所以深度学习网络需要在这些 负例上的输出尽可能的接近0。
[0102] 需要说明的是,这里正例拟合1,负例拟合0是以选择Sigmoid非线性函数为前提 的,如果选择tanh非线性函数,则正例需要拟合1,负例需要拟合-1。
[0103] S42 :采用深度学习算法,根据正例和反例,确定词对应的词向量。
[0104] 在获取正例和反例后,可以将正例和反例作为训练样本,采用深度学习网络,确定 正例和反例中出现的所有词的词向量。
[0105] 参见图5,为深度学习网络的结构示意图,该深度学习网络可以包括输入层(input layer)51,隐藏层(hidden layer)52和输出层(output layer)53,其中,输入层中是词向 量,输出层根据训练样本是正例或反例确定为0或1,例如,当训练样本是正例时,采用深度 学习网络,使得输出尽量接近1,当训练样本是反例时,采用深度学习网络,使得输出尽量接 近0〇
[0106] 深度学习网络是用来学习在一个词序列当中某个词是否预测正确的,实际上本实 施例中关注的是这个网络当中的每个词的词向量。同时,这个深度学习网络中还存在其他 的参数。下面简述深度学习网络的参数Θ的构成,及学习网络结构的细节。
[0107] 假定需要得到一个大小为Ivl的词表的所有词的维度为m的词的向量,那么这个 神经网络首先有|V| Xm个词向量参数C。假定输入样本词序列的长度为2N+1,即一个词要 看它的前后N个词,则输入层51就是2N+1个长度为m的词向量所构成。记隐藏层52的长 度为H,那么由输入层51到隐藏层52之间的参数是一个行数为H,列数为(2N+1) Xm的矩 阵W1,及长度为H的列向量d的截距所组成。在隐藏层52到输出层53之间的参数则是由 一个长度为H的行向量W2,与实数b所组成。
[0108] 因此,本实施例中的深度学习网络的参数有:
[0109] Θ = (C,Wl,d,W2, b)
[0110] 需要说明的是,深度学习网络中的参数Wl和W2与前述表征为词的不同。
[0111] 在以上参数下,该深度学习网络的最终输出可以用如下公式计算得出:
[0112] y = f (Ti_n, Ti_n+1, . . . , Ti, . . . , Ti+n; θ ) = sigmoid (b+W2 · sigmoid (ffl X x+d))
[0113] 上述的x是由一个训练样本当中的2N+1个词的词向量所组成的列向量。
[0114] 本实施例中的深度学习网络的优化目标是能够让函数f所计算出的值与实际值 尽可能的接近,其中,实际值可以是1或者0。
[0115] 具体地,可以采用cross entropy作为衡量实际值与计算值之间的差异的方法,具 体的,需要优化的Cost函数为:

【权利要求】
1. 一种实现个性化捜索的方法,其特征在于,包括: 接收用户输入的查询词; 根据预先建立的对应所述用户建立的词向量集合中,获取所述查询词对应的词向量; 将所述查询词和所述词向量发送给服务端,W使所述服务端根据所述查询词和所述词 向量获取捜索结果; 接收所述服务端发送的捜索结果,并展现所述捜索结果。
2. 根据权利要求1所述的方法,其特征在于,还包括: 获取所述用户采用输入法得到的输入历史; 根据所述输入历史,建立所述词向量集合。
3. 根据权利要求2所述的方法,其特征在于,所述根据所述输入历史,建立所述词向量 集合,包括: 根据所述输入历史,确定正例和反例,所述正例是输入历史中已存在的词序列组成的 样本,所述反例是输入历史中没有出现过的词序列组成的样本; 根据深度学习网络对所述正例和反例进行训练,建立所述词向量集合。
4. 一种实现个性化捜索的方法,其特征在于,包括; 接收客户端发送的查询词和所述查询词对应的词向量,所述词向量是所述客户端在预 先建立的对应用户建立的词向量集合中确定的; 根据所述查询词和所述词向量,获取捜索结果; 将所述捜索结果发送给所述客户端,W使所述客户端展现所述捜索结果。
5. 根据权利要求4所述的方法,其特征在于,所述根据所述查询词和所述词向量,获取 捜索结果,包括: 计算所述查询词与可供选择的结果之间的常规排序分数; 计算所述词向量与所述可供选择的结果之间的个性化排序分数; 根据所述常规排序分数和所述个性化排序分数,确定新的排序分数; 根据所述新的排序分数,对所述可供选择的结果进行排序; 在排序后的结果中选择预设个数的结果,得到发送给所述客户端的捜索结果。
6. 根据权利要求5所述的方法,其特征在于,所述计算所述词向量与所述可供选择的 结果之间的个性化排序分数,包括: 获取所述可供选择的结果对应的词向量; 计算所述接收的词向量与所述获取的词向量之间的相似度数值,将所述相似度数值确 定为所述个性化排序分数。
7. 根据权利要求5所述的方法,其特征在于,所述根据所述常规排序分数和所述个性 化排序分数,确定新的排序分数,包括: 采用插值方式,根据所述常规排序分数和所述个性化排序分数,确定新的排序分数。
8. -种实现个性化捜索的装置,其特征在于,包括: 接收模块,用于接收用户输入的查询词; 第一获取模块,用于根据预先建立的对应所述用户建立的词向量集合中,获取所述查 询词对应的词向量; 发送模块,用于将所述查询词和所述词向量发送给服务端,W使所述服务端根据所述 查询词和所述词向量获取捜索结果; 展现模块,用于接收所述服务端发送的捜索结果,并展现所述捜索结果。
9. 根据权利要求8所述的装置,其特征在于,还包括: 第二获取模块,用于获取所述用户采用输入法得到的输入历史; 建立模块,用于根据所述输入历史,建立所述词向量集合。
10. 根据权利要求9所述的装置,其特征在于,所述建立模块包括: 第一单元,用于根据所述输入历史,确定正例和反例,所述正例是输入历史中已存在的 词序列组成的样本,所述反例是输入历史中没有出现过的词序列组成的样本; 第二单元,用于根据深度学习网络对所述正例和反例进行训练,建立所述词向量集合。
11. 一种实现个性化捜索的装置,其特征在于,包括: 接收模块,用于接收客户端发送的查询词和所述查询词对应的词向量,所述词向量是 所述客户端在预先建立的对应用户建立的词向量集合中确定的; 获取模块,用于根据所述查询词和所述词向量,获取捜索结果; 发送模块,用于将所述捜索结果发送给所述客户端,W使所述客户端展现所述捜索结 果。
12. 根据权利要求11所述的装置,其特征在于,所述获取模块包括: 第一单元,用于计算所述查询词与可供选择的结果之间的常规排序分数; 第二单元,用于计算所述词向量与所述可供选择的结果之间的个性化排序分数; 第=单元,用于根据所述常规排序分数和所述个性化排序分数,确定新的排序分数; 第四单元,用于根据所述新的排序分数,对所述可供选择的结果进行排序; 第五单元,用于在排序后的结果中选择预设个数的结果,得到发送给所述客户端的捜 索结果。
13. 根据权利要求12所述的装置,其特征在于,所述第二单元具体用于: 获取所述可供选择的结果对应的词向量; 计算所述接收的词向量与所述获取的词向量之间的相似度数值,将所述相似度数值确 定为所述个性化排序分数。
14. 根据权利要求12所述的装置,其特征在于,所述第=单元具体用于: 采用插值方式,根据所述常规排序分数和所述个性化排序分数,确定新的排序分数。
【文档编号】G06F17/30GK104462357SQ201410742373
【公开日】2015年3月25日 申请日期:2014年12月8日 优先权日:2014年12月8日
【发明者】张军, 牛罡 申请人:百度在线网络技术(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1