搜索排序模型的训练方法、搜索处理方法及装置.pdf

上传人:a1 文档编号:1741656 上传时间:2018-07-08 格式:PDF 页数:20 大小:1.25MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510082145.5

申请日:

2015.02.15

公开号:

CN104615767A

公开日:

2015.05.13

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20150215|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

百度在线网络技术(北京)有限公司

发明人:

张军

地址:

100085北京市海淀区上地十街10号百度大厦三层

优先权:

专利代理机构:

北京金律言科知识产权代理事务所(普通合伙)11461

代理人:

罗延红; 杨艳云

PDF下载: PDF下载
内容摘要

本发明实施例提供了一种搜索排序模型的训练方法、搜索处理方法及装置。所述搜索排序模型的训练方法包括:获取多组标注的样本数据,每组所述样本数据包括搜索词及其相应的被标注为正例或负例的多个搜索结果条目;根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层,对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数。本发明实施例的搜索排序模型的训练、搜索处理方法及装置,能够提高计算得到的搜索结果条目排序分数的准确度,且为用户提供更准确的搜索排序结果。

权利要求书

权利要求书
1.  一种基于门控循环神经网络(Gated RNN)的搜索排序模型的训练方法,其特征在于,所述方法包括:
获取多组标注的样本数据,每组所述样本数据包括搜索词及其相应的被标注为正例或负例的多个搜索结果条目;
根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层;
对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数。

2.  根据权利要求1所述的训练方法,其特征在于,所述被标注为正例的搜索结果条目是被点击过的搜索结果条目,所述被标注为负例的搜索结果条目是未被点击过的搜索结果条目。

3.  根据权利要求2所述的训练方法,其特征在于,所述根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层和词向量层的处理包括:
对所述搜索词、与所述搜索词相对应的搜索结果条目分别进行分词,由分词结果生成输入层,
从预先定义的词表分别查找到分得的每个分词对应的词向量,由所述词向量生成词向量层。

4.  根据权利要求3所述的训练方法,其特征在于,所述根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的隐藏层的处理包括:对所述词向量层进行非线性变换计算得到隐藏层。

5.  根据权利要求4所述的训练方法,其特征在于,所述根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输出层的处理包括:
根据得到的隐藏层计算所述样本数据中的搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层。

6.  根据权利要求4所述的训练方法,其特征在于,所述对所述词向量层进行非线性变换计算得到隐藏层的处理包括:
对所述词向量层的任一词向量,都进行如下处理,直至得到所述隐藏层中全部的向量:
获取当前的词向量,
根据所述当前的词向量、基于Gated RNN搜索排序模型的搜索词的隐藏层变换矩阵参数以及搜索结果条目的隐藏层变换矩阵参数,得到更新数据和重置数据,
根据所述更新数据和所述重置数据对所述当前的词向量的前一词向量对应隐藏层的向量进行处理,得到所述当前的词向量对应的隐藏层的向量。

7.  根据权利要求5所述的训练方法,其特征在于,所述根据得到的隐藏层计算所述样本数据中的搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层的处理包括:
分别将所述搜索词、相应的被标注为正例或负例的多个搜索结果条目的分词结果中最后一个分词对应在所述隐藏层的向量作为所述搜索词、所述相应的被标注为正例或负例的多个搜索结果条目的向量,
利用所述向量计算所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层。

8.  根据权利要求1所述的训练方法,其特征在于,所述对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数的处理包括:
根据所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度建立损失函数,
利用所述样本数据对所述损失函数进行训练,获取使得所述损失函数最小的所述基于Gated RNN的搜索排序模型的参数集合。

9.  一种搜索处理方法,其特征在于,所述方法包括:
接收用户的搜索词;
根据所述搜索词获取多个搜索结果条目;
以所述搜索词和所述多个搜索结果条目作为输入,从经训练的基于Gated RNN的搜索排序模型中分别获取每个所述搜索结果条目的排序分数;
根据所述排序分数对所述多个搜索结果条目进行排序;
发送经排序的搜索结果条目。

10.  根据权利要求9所述的方法,其特征在于,所述以所述搜索词和所述多个搜索结果条目作为输入,从经训练的基于Gated RNN的搜索排序模型中分别获取每个所述搜索结果条目的排序分数的处理包括:
获取所述经训练的基于Gated RNN的搜索排序模型的参数,
根据所述参数将所述搜索词和所述多个搜索结果条目分别转换成向量表示,
根据由向量表示的所述搜索词和所述多个搜索结果条目分别计算所述搜索词和每个所述搜索结果条目之间的相似度值,并将与每个所述搜索结果条目对应的相似度值作为每个所述搜索结果条目的排序分数。

11.  一种基于门控循环神经网络(Gated RNN)的搜索排序模型的训练装置,其特征在于,所述装置包括:
样本数据获取模块,用于获取多组标注的样本数据,每组所述样本数据包括搜索词及其相应的被标注为正例或负例的多个搜索结果条目;
搜索排序模型生成模块,用于根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层;
参数学习模块,用于对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数。

12.  根据权利要求11所述的训练装置,其特征在于,所述被标注为正例的搜索结果条目是被点击过的搜索结果条目,所述被标注为负例的搜索结果条目是未被点击过的搜索结果条目。

13.  根据权利要求12所述的训练装置,其特征在于,所述搜索排序模型生成模块用于对所述搜索词、与所述搜索词相对应的搜索结果条目分别进行分词,由分词结果生成输入层,从预先定义的词表分别查找到分得的每个分词对应的词向量,由所述词向量生成词向量层。

14.  根据权利要求13所述的训练装置,其特征在于,所述搜索排序模型生成模块还用于对所述词向量层进行非线性变换计算得到隐藏层。

15.  根据权利要求14所述的训练装置,其特征在于,所述搜索排序模型生成模块还用于根据得到的隐藏层计算所述样本数据中的搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层。

16.  根据权利要求14所述的训练装置,其特征在于,所述搜索排序模型生成模块还用于对所述词向量层的任一词向量,都进行如下处理,直至得到所述隐藏层中全部的向量:获取当前的词向量,根据所述当前的词向量、基于Gated RNN搜索排序模型的搜索词的隐藏层变换矩阵参数以及搜索结果条目的隐藏层变换矩阵参数,得到更新数据和重置数据,根据所述更新数据和所述重置数据对所述当前的词向量的前一词向量对应隐藏层的向量进行处理,得到所述当前的词向量对应的隐藏层的向量。

17.  根据权利要求15所述的训练装置,其特征在于,所述搜索排序模型生成模块还用于分别将所述搜索词、相应的被标注为正例或负例的多个搜索结果条目的分词结果中最后一个分词对应在所述隐藏层的向量作为所述搜索词、所述相应的被标注为正例或负例的多个搜索结果条目的向量,利用所述向量计算所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层。

18.  根据权利要求11所述的训练装置,其特征在于,所述参数学习模块用于根据所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度建立损失函数,利用所述样本数据对所述损失函数进行训练,获取使得所述损失函数最小的所述基于Gated RNN的搜索排序模型的参数集合。

19.  一种搜索处理装置,其特征在于,所述装置包括:
搜索词接收模块,用于接收用户的搜索词;
搜索结果条目获取模块,用于根据所述搜索词获取多个搜索结果条目;
排序分数获取模块,用于以所述搜索词和所述多个搜索结果条目作为输入,从经训练的基于Gated RNN的搜索排序模型中分别获取每个所述搜索结果条目的排序分数;
搜索结果条目排序模块,用于根据所述排序分数对所述多个搜索结果条目进行排序;
搜索结果条目发送模块,用于发送经排序的搜索结果条目。

20.  根据权利要求19所述的装置,其特征在于,所述排序分数获取模块包括:
参数获取单元,用于获取所述经训练的基于Gated RNN的搜索排序模型的参数,
向量表示单元,用于根据所述参数将所述搜索词和所述多个搜索结果条目分别转换成向量表示,
排序分数计算单元,用于根据由向量表示的所述搜索词和所述多个搜索结果条目分别计算所述搜索词和每个所述搜索结果条目之间的相似度值,并将与每个所述搜索结果条目对应的相似度值作为每个所述搜索结果条目的排序分数。

说明书

说明书搜索排序模型的训练方法、搜索处理方法及装置
技术领域
本发明涉及自然语言处理技术领域,尤其涉及一种搜索排序模型的训练方法、搜索处理方法及装置。
背景技术
随着互联网应用的发展,搜索处理技术也日渐成熟。将用户输入的搜索词表示成特定的形式,来与待排序的搜索结果条目(以网页的标题为例)进行排序分数的计算,从而根据排序分数返回更准确的搜索排序结果,是搜索引擎系统的核心问题。
传统的计算排序分数的方法是:通过计算搜索词与搜索结果条目(以网页的标题为例)中所包含的词完全匹配上的程度,来计算这两个文本串之间的相似度作为排序分数。例如,搜索词为“苹果新品发布”,网页的标题为“苹果公司发布新的手机”,考察到词“苹果”与“发布”这两个词完全匹配上了,来估计搜索词与网页的标题之间的排序分数。但是,该方法仅考虑了词在字面上的匹配程度,并未考察一词多义(例如,苹果还有作为水果的意思),也未考察近似词匹配(例如,新品与新的),因此,基于该方法获得的排序分数准确度不高。
近年来,随着深度学习技术的发展,出现了利用深层神经网络技术来学习词的向量表示(把词表示为一个实数组成的向量),通过计算由词向量组成的搜索词与搜索结果条目之间的相似度来计算搜索词与搜索结果条目之间的排序分数的方法。在该方法中,利用前馈神经网络,把搜索词与搜索结果条目中的词都映射到一个低维的向量空间当中,简单的把搜索词中所有词的词向量相加得到搜索词的向量表示,搜索结果条目也做同样的处理得到其向量表示,再计算这两个向量表示之间的相似度,作为最终的排序分数。该方法虽从某种程度上,解决了传统方法未考虑一词多义、近义词等问题,然而,仅将词向量简单相加形成的句子的向量表示,未能考察到词与词之间的依赖关系,例如,搜索词“成龙的成名作品”中词向量的简单相加,就未考察到“成龙”和“成名”都是对“作品”一词的一种修饰。因此,基于该方法获得的排序分数准确度也不高。
发明内容
本发明实施例的目的在于,提供一种搜索排序模型的训练方法、搜索处理方法及装置,以提高搜索词与搜索结果条目的排序分数计算的准确性,且为用户提供更准确的搜索排序结果。
为了实现上述发明目的,本发明的实施例提供了一种基于门控循环神经网络(Gated RNN)的搜索排序模型的训练方法,包括:获取多组标注的样本数据,每组所述样本数据包括搜索词及其相应的被标注为正例或负例的多个搜索结果条目;根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层;对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数。
本发明实施例还提供了一种基于门控循环神经网络的搜索排序模型的训练装置,包括:样本数据获取模块,用于获取多组标注的样本数据,每组所述样本数据包括搜索词及其相应的被标注为正例或负例的多个搜索结果条目;搜索排序模型生成模块,用于根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层;参数学习模块,用于对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数。
本发明实施例还提供了一种搜索处理方法,包括:接收用户的搜索词;根据所述搜索词获取多个搜索结果条目;以所述搜索词和所述多个搜索结果条目作为输入,从经训练的基于Gated RNN的搜索排序模型中分别获取每个所述搜索结果条目的排序分数;根据所述排序分数对所述多个搜索结果条目进行排序;发送经排序的搜索结果条目。
本发明实施例还提供了一种搜索处理装置,包括:搜索词接收模块,用于接收用户的搜索词;搜索结果条目获取模块,用于根据所述搜索词获取多个搜索结果条目;排序分数获取模块,用于以所述搜索词和所述多个搜索结果条目作为输入,从经训练的基于Gated RNN的搜索排序模型中分别获取每个所述搜索结果条目的排序分数;搜索结果条目排序模块,用于根据所述排序分数对所述多个搜索结果条目进行排序;搜索结果条目发送模块,用于发送经排序的搜索结果条目。
本发明实施例提供的搜索排序模型的训练方法、搜索处理方法及装置,通过结合搜索词、相应的搜索结果条目以及利用样本数据训练好的 基于Gated RNN的搜索排序模型,计算搜索词和搜索结果条目之间的相似度值作为排序分数,并根据排序分数对搜索结果条目进行排序,从而提高了搜索词和搜索结果条目之间排序分数计算的准确性,且能够为用户提供更准确的搜索排序结果。
附图说明
图1是示出本发明实施例的基本原理框图;
图2是示出本发明实施例一的基于Gated RNN的搜索排序模型的训练方法的流程图;
图3是示出本发明实施例一的基于Gated RNN的搜索排序模型的示例性示意图;
图4是示出本发明实施例一的基于Gated RNN的搜索排序模型的隐藏层生成的原理示意图;
图5是示出本发明实施例一的基于Gated RNN的搜索排序模型的输出层生成的原理示意图;
图6是示出本发明实施例二的搜索处理方法的流程图;
图7是示出本发明实施例三的基于Gated RNN的搜索排序模型的训练装置的逻辑框图;
图8是示出本发明实施例四的搜索处理装置的逻辑框图。
具体实施方式
本发明的基本构思是,获取多组标注的样本数据,根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层,对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数。利用所述参数将用户的搜索词和获取到的多个搜索结果条目分别表示成向量,计算两个向量间的相似度作为排序分数,再根据排序分数对多个搜索结果条目进行排序,从而提高了搜索词和搜索结果条目之间排序分数计算的准确性,且能够为用户提供更准确的搜索排序结果。
图1是示出本发明实施例的基本原理框图。参照图1,本发明中,首先需获取训练样本,具体的,可从用户查询日志中得到样本数据作为训练样本;其次,利用该训练样本对基于Gated RNN的搜索排序模型进行训练,以学习出该模型的参数,也就是利用所设计的训练算法对建立 的基于Gated RNN的搜索排序模型进行训练,得到基于Gated RNN的搜索排序模型的最优的参数。最后,获取用户的搜索词和相应的多个搜索结果条目,利用这些参数将搜索词和多个搜索结果条目分别表示成向量,通过两个向量间的相似度的计算,得到搜索词和每个搜索结果条目之间的排序分数,再根据排序分数对多个搜索结果条目进行排序,最终得到经排序的搜索结果条目。
下面结合附图对本发明实施例语义相似度计算方法、搜索结果处理方法和装置进行详细描述。
实施例一
图2是示出本发明实施例一的基于Gated RNN的搜索排序模型的训练方法的流程图。参照图2,所述基于Gated RNN的搜索排序模型的训练方法包括如下步骤:
在步骤S110,获取多组标注的样本数据,每组所述样本数据包括搜索词及其相应的被标注为正例或负例的多个搜索结果条目。
根据本发明的构思,所述被标注为正例的搜索结果条目是被点击过的搜索结果条目,所述被标注为负例的搜索结果条目是未被点击过的搜索结果条目。具体的,当用户输入一个搜索词后,会得到多个搜索结果条目,用户选择了其中的某条搜索结果进行进一步浏览,所选择的这条搜索结果条目即为被点击过的搜索结果条目,反之,则是未被点击过的搜索结果条目。
本实施例所述的样本数据是由M组<Q,T+,T->对组成的样本。M的取值一般要足够大,通常会超过1亿量级。<Q,T+,T->对是从用户查询日志当中获取到的。表1是一组<Q,T+,T->对的示例,其中Q代表用户所查询的搜索词,T+代表Title正例,是用户在搜索该Query后,被点击过的搜索结果条目对应的标题,T-代表Title负例,则是未被点击过的搜索结果条目对应的标题,如表1所示:
表1


在步骤S120,根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层。
根据本发明的可选实施例,步骤S120可包括,对所述搜索词、与所述搜索词相对应的搜索结果条目分别进行分词,由分词结果生成输入层,从预先定义的词表分别查找到分得的每个分词对应的词向量,由所述词向量生成词向量层。
具体的,图3是示出本发明实施例一的基于Gated RNN的搜索排序模型的示例性示意图。参照图3,对训练样本中的搜索词、与搜索词相对应的搜索结果条目分别进行分词,例如,假设一个搜索词由T个分词组成,那么记为:Query=(w1,…,wT),同理,被标注为正例的搜索结果条目由M个词组成,记为:Title+=(w1,…,wM),被标注为负例的搜索结果条目由L个词组成,记为:Title-=(w1,…,wL),将分词处理得到的每个分词输入,即可生成输入层;文本串中的每个分词wi都属于预先定义的词表中的一个词,词表的大小为|V|(其中包括用以标识不在词典当中的OOV的特殊词<OOV>);每个分词都可通过查字典的方式找到所对应的词向量,该向量层称为词向量层。这里需要说明的是,图3中未示出输出层,在后续内容中会对生成输出层作详细的介绍。
这里需要说明的是,所述词向量是用来将语言中的词进行数学化的一种方式,顾名思义,词向量就是把一个词表示成一个向量,最简单的词向量方式是用一个很长的向量来表示一个词,向量的长度为词表的大小,向量的分量只有一个“1”,其他全为“0”,“1”的位置对应该词在词表中的位置,举例来说,“话筒”表示为[0 0 0 1 00 0 0 0 0 0 0 0 0 0 0...],但这种方式不能很好地刻画词与词之间的相似性,在此基础之上,又出 现了一种词向量表示,克服了前述缺点。其基本原理是直接用一个普通的向量表示一个词,例如[0.792,0.177,0.107,0.109,0.542,...],也就是普通的向量表示形式。在实际应用中,网络的词向量表示每个输入词wi所对应的词向量,它是一个长度为EMBEDDING_SIZE的列向量C(wi)。
根据本发明的另一可选实施例,步骤S120还可包括,对所述词向量层进行非线性变换计算得到隐藏层。具体的,对所述词向量层的任一词向量,都进行如下处理,直至得到所述隐藏层中全部的向量:获取当前的词向量,根据所述当前的词向量、基于Gated RNN搜索排序模型的搜索词的隐藏层变换矩阵参数以及搜索结果条目的隐藏层变换矩阵参数,得到更新数据和重置数据,根据所述更新数据和所述重置数据对所述当前的词向量的前一词向量对应隐藏层的向量进行处理,得到所述当前的词向量对应的隐藏层的向量。也就是通过以下公式执行所述对所述词向量层进行非线性变换计算得到隐藏层的处理:
hj<t>=zjgj<t-1>+(1-zj)h~j<t>,h~j<t>=tanh([We]j+rj[Uh<t-1>]j)j]]>
zj=sigmoid[Wze]j+[Uzh<t-1>]j),
rj=sigmoid[Wre]j+[Urh<t-1>]j)
其中,为所述隐藏层的第t个向量中第j个元素,为所述隐藏层的第t-1个向量中第j个元素,为所述隐藏层的两个向量间的依赖系数,zj为从所述隐藏层的第t-1个向量更新数据,rj为从所述隐藏层的第t-1个向量重置数据,e为所述词向量层的第t个词向量,W、Wz、Wr均为所述Gated RNN搜索排序模型的搜索词的隐藏层变换矩阵参数,U、Uz、Ur均为所述Gated RNN搜索排序模型的搜索结果条目的隐藏层变换矩阵参数。这里,W、Wz、Wr是三个行数为HIDDEN_SIZE,列数为EMBEDDING_SIZE的矩阵,U、Uz、Ur则是三个行数为HIDDEN_SIZE,列数也为HIDDEN_SIZE的矩阵。tanh和sigmoid是两个不同的非线性变换函数。
具体的,图4是示出本发明实施例一的基于Gated RNN的搜索排序模型的隐藏层生成的原理示意图。参照图4,在本发明实施例中,采用一种称为门控循环神经网络单元(Gated Recurrent UNIT)的非线性变换学习单元来生成隐藏层的向量,该非线性变换学习单元的特点在于,能够通过Reset Gate(图4中的“r”)与Update Gate(图4中的“z”) 来自动的学习出词与词之间的依赖关系,reset gate是用来学习出需要从前面的信息中带多少信息到当前的非线性变换学习单元,而Update gate是用来学习出需要更新前面的信息当中的多少信息到当前的非线性变换学习单元。通过Reset Gate和Update Gate的结合使用,因此,本发明所生成的基于Gated RNN的搜索排序模型能够自动的学习出词与词之间的依赖关系,如前所示的公式,zj是实现Update gate的具体数学公式,rj是实现Reset Gate的具体数学公式。
这里需要说明的是,在实际应用中,网络的隐藏层表示所生成的基于Gated RNN的搜索排序模型在每个时间点i时的状态,是一个长度为HIDDEN_SIZE的列向量hi,EMBEDDING_SIZE的常见取值范围为50到1000,HIDDEN_SIZE的常见取值是EMBEDDING_SIZE的1到4倍。
根据本发明的另一可选实施例,步骤S120还可包括,根据得到的隐藏层计算所述样本数据中的搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层。
进一步地,步骤S120可具体包括:分别将所述搜索词、相应的被标注为正例或负例的多个搜索结果条目的分词结果中最后一个分词对应在所述隐藏层的向量作为所述搜索词、所述相应的被标注为正例或负例的多个搜索结果条目的向量,利用所述向量计算所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层。
具体的,通过以下公式执行利用所述向量计算所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层的处理:
Sim(Q,T)=Cosine(Q,T)=Q&CenterDot;T||Q||||T||=Σi=1mQi×TiΣi=1mQi2×Σi=1mTi2]]>
其中,Q为搜索词的向量表示,T为搜索结果条目的向量表示,m为向量的维数,Qi为向量Q的第i个元素,Ti为向量T的第i个元素。
具体的,图5是示出本发明实施例一的基于Gated RNN的搜索排序模型的输出层生成的原理示意图,参照图5,将最后一个分词对应在隐藏层的向量作为最终的向量表示,例如,前述表1中的搜索词“北京市 工商局”,“局”是最后一个分词,那么将“局”对应在隐藏层的向量(图5中“hT”)作为搜索词“北京市工商局”的向量表示,同理可得,“百科”对应在隐藏层的向量(图5中“hM”)作为被标注为正例的搜索结果条目“北京市工商行政管理局百度百科”的向量表示,“总局”对应在隐藏层的向量(图5中“hL”)作为被标注为负例的搜索结果条目“中华人民共和国国家工商行政管理总局”的向量表示,再将搜索词和标注为正例或负例的搜索结果条目做向量表示之后,就可以通过上述公式得到两个向量之间的相似度值(如cosine+、cosine-)作为所述搜索排序模型的输出层。
在步骤S130,对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数。
根据本发明的示例性实施例,步骤S120可包括,根据所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度建立损失函数,利用所述样本数据对所述损失函数进行训练,获取使得所述损失函数最小的所述基于Gated RNN的搜索排序模型的参数集合。具体的,通过以下公式执行对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数的处理:

其中,所有<Q,T+,T->对为所有样本数据,θ为使得J(θ)最小的所述基于Gated RNN的搜索排序模型的参数集合,为所述搜索词和被标注为正例的搜索结果条目之间的相似度值,为所述搜索词和被标注为负例的搜索结果条目之间的相似度值。
这里需要说明的是,上述公式为损失函数,用随机梯度下降法来训练所述搜索排序模型,具体的,就是利用随机梯度下降法(Stochastic Gradient Descen,SGD)与反向传播算法(Back Propagation Through Time,BPTT),可以得到最优的参数θ。SGD算法的思想是通过计算某一组训练样本的梯度(参数的偏导数),来迭代更新随机初始化过的参数,更新的方法是每次让参数减去所设置的一个学习率(learning rate)乘以计算出的梯度,从而在多次迭代之后可以让基于Gated RNN的搜索排序模型根据参数所计算出的值,与实际值之间的差在所定义的loss函数上最小 化。另外,BPTT算法是在RNN网络中的一种有效的计算参数的梯度的方法。
通过基于Gated RNN的搜索排序模型的训练方法,能够根据获取的多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层,并对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数,该搜索排序模型能够学习到词与词之间的依赖关系,从而使得利用该参数将搜索词和多个搜索结果条目分别表示成向量,通过两个向量间的相似度计算得到的排序分数准确度更高,且能够利用该排序分数为用户提供更准确的搜索排序结果。
实施例二
图6是示出本发明实施例二的搜索处理方法的流程图。参照图6,可在例如搜索引擎服务器上执行所述方法。所述搜索处理方法包括如下步骤:
在步骤S210,接收用户的搜索词。
所述搜索词可以是从客户端发送的搜索词。例如,用户在浏览器搜索引擎界面上输入“汽车违章查询”进行搜索,浏览器应用将所述搜索词发送给搜索引擎服务器。
在步骤S220,根据所述搜索词获取多个搜索结果条目。
搜索引擎服务器可使用搜索词利用现有的搜索技术(例如,从预先编制的网页索引)获取到多个搜索结果条目。
在步骤S230,以所述搜索词和所述多个搜索结果条目作为输入,从经训练的基于Gated RNN的搜索排序模型中分别获取每个所述搜索结果条目的排序分数。
根据本发明的可选实施例,步骤S230可包括,获取所述经训练的基于Gated RNN的搜索排序模型的参数,根据所述参数将所述搜索词和所述多个搜索结果条目分别转换成向量表示,根据由向量表示的所述搜索词和所述多个搜索结果条目分别计算所述搜索词和每个所述搜索结果条目之间的相似度值,并将与每个所述搜索结果条目对应的相似度值作为每个所述搜索结果条目的排序分数。
在步骤240,根据所述排序分数对所述多个搜索结果条目进行排序。
在步骤250,发送经排序的搜索结果条目。
通过该搜索处理方法,基于用户的搜索词和获取到的搜索词对应的多个搜索结果条目,从经训练的基于Gated RNN的搜索排序模型中分别获取每个所述搜索结果条目的排序分数,再根据所述排序分数对所述多个搜索结果条目进行排序,从而能够发送经排序的搜索结果条目,与现有技术相比,提高了搜索词和搜索结果条目之间排序分数计算的准确性,且能够为用户提供更准确的搜索排序结果。
实施例三
图7是示出本发明实施例三的基于Gated RNN的搜索排序模型的训练装置的逻辑框图。参照图7,所述基于Gated RNN的搜索排序模型的训练装置包括样本数据获取模块310、搜索排序模型生成模块320和参数学习模块330。
样本数据获取模块310用于获取多组标注的样本数据,每组所述样本数据包括搜索词及其相应的被标注为正例或负例的多个搜索结果条目。
优选地,所述被标注为正例的搜索结果条目是被点击过的搜索结果条目,所述被标注为负例的搜索结果条目是未被点击过的搜索结果条目。
搜索排序模型生成模块320用于根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层。
进一步地,所述搜索排序模型生成模块320用于对所述搜索词、与所述搜索词相对应的搜索结果条目分别进行分词,由分词结果生成输入层,从预先定义的词表分别查找到分得的每个分词对应的词向量,由所述词向量生成词向量层。
优选地,所述搜索排序模型生成模块320还用于对所述词向量层进行非线性变换计算得到隐藏层。
可选地,所述搜索排序模型生成模块320还用于对所述词向量层的任一词向量,都进行如下处理,直至得到所述隐藏层中全部的向量:获取当前的词向量,根据所述当前的词向量、基于Gated RNN搜索排序模型的搜索词的隐藏层变换矩阵参数以及搜索结果条目的隐藏层变换矩阵参数,得到更新数据和重置数据,根据所述更新数据和所述重置数据对所述当前的词向量的前一词向量对应隐藏层的向量进行处理,得到所述 当前的词向量对应的隐藏层的向量。具体的,通过以下公式执行所述对所述词向量层进行非线性变换计算得到隐藏层的处理:
hj<t>=zjgj<t-1>+(1-zj)h~j<t>,h~j<t>=tanh([We]j+rj[Uh<t-1>]j)j]]>
zj=sigmoid([Wze]j+[Uzh<t-1>]j),
rj=sigmoid([Wre]j+[Urh<t-1>]j)
其中,为所述隐藏层的第t个向量中第j个元素,为所述隐藏层的第t-1个向量中第j个元素,为所述隐藏层的两个向量间的依赖系数,zj为从所述隐藏层的第t-1个向量更新数据,rj为从所述隐藏层的第t-1个向量重置数据,e为所述词向量层的第t个词向量,W、Wz、Wr均为所述Gated RNN搜索排序模型的搜索词的隐藏层变换矩阵参数,U、Uz、Ur均为所述Gated RNN搜索排序模型的搜索结果条目的隐藏层变换矩阵参数。
进一步地,所述搜索排序模型生成模块320还用于根据得到的隐藏层计算所述样本数据中的搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层。
可选地,所述搜索排序模型生成模块320还用于分别将所述搜索词、相应的被标注为正例或负例的多个搜索结果条目的分词结果中最后一个分词对应在所述隐藏层的向量作为所述搜索词、所述相应的被标注为正例或负例的多个搜索结果条目的向量,利用所述向量计算所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层。
具体的,通过以下公式执行利用所述向量计算所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度,将计算得到的各个相似度的值作为所述搜索排序模型的输出层的处理:
Sim(Q,T)=Cosine(Q,T)=Q&CenterDot;T||Q||||T||=Σi=1mQi×TiΣi=1mQi2×Σi=1mTi2]]>
其中,Q为搜索词的向量表示,T为搜索结果条目的向量表示,m为向量的维数,Qi为向量Q的第i个元素,Ti为向量T的第i个元素。
参数学习模块330,用于对所述搜索排序模型进行训练,以学习所 述搜索排序模型的参数。
进一步地,所述参数学习模块330用于根据所述搜索词分别与相应的被标注为正例或负例的多个搜索结果条目的相似度建立损失函数,利用所述样本数据对所述损失函数进行训练,获取使得所述损失函数最小的所述基于Gated RNN的搜索排序模型的参数集合。
具体的,通过以下公式执行所述对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数的处理:

其中,所有<Q,T+,T->对为所有样本数据,θ为使得J(θ)最小的所述基于Gated RNN的搜索排序模型的参数集合,为所述搜索词和被标注为正例的搜索结果条目之间的相似度值,为所述搜索词和被标注为负例的搜索结果条目之间的相似度值。
通过基于Gated RNN的搜索排序模型的训练装置,能够根据获取的多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层,并对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数,该搜索排序模型能够学习到词与词之间的依赖关系,从而使得利用该参数将搜索词和多个搜索结果条目分别表示成向量,通过两个向量间的相似度计算得到的排序分数准确度更高,且能够利用该排序分数为用户提供更准确的搜索排序结果。
实施例四
图8是示出本发明实施例四的搜索处理装置的逻辑框图。参照图8,所述搜索处理装置包括搜索词接收模块410、搜索结果条目获取模块420、排序分数获取模块430、搜索结果条目排序模块440和搜索结果条目发送模块450。
搜索词接收模块410用于接收用户的搜索词。
搜索结果条目获取模块420用于根据所述搜索词获取多个搜索结果条目。
排序分数获取模块430用于以所述搜索词和所述多个搜索结果条目作为输入,从经训练的基于Gated RNN的搜索排序模型中分别获取每个 所述搜索结果条目的排序分数。
进一步地,所述排序分数获取模块430可以包括:
参数获取单元,用于获取所述经训练的基于Gated RNN的搜索排序模型的参数,
向量表示单元,用于根据所述参数将所述搜索词和所述多个搜索结果条目分别转换成向量表示,
排序分数计算单元,用于根据由向量表示的所述搜索词和所述多个搜索结果条目分别计算所述搜索词和每个所述搜索结果条目之间的相似度值,并将与每个所述搜索结果条目对应的相似度值作为每个所述搜索结果条目的排序分数。
搜索结果条目排序模块440用于根据所述排序分数对所述多个搜索结果条目进行排序。
搜索结果条目发送模块450用于发送经排序的搜索结果条目。
通过该搜索处理装置,基于用户的搜索词和获取到的搜索词对应的多个搜索结果条目,从经训练的基于Gated RNN的搜索排序模型中分别获取每个所述搜索结果条目的排序分数,再根据所述排序分数对所述多个搜索结果条目进行排序,从而能够发送经排序的搜索结果条目,与现有技术相比,提高了搜索词和搜索结果条目之间排序分数计算的准确性,且能够为用户提供更准确的搜索排序结果。
在本发明所提供的几个实施例中,应该理解到,所公开的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法 的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

搜索排序模型的训练方法、搜索处理方法及装置.pdf_第1页
第1页 / 共20页
搜索排序模型的训练方法、搜索处理方法及装置.pdf_第2页
第2页 / 共20页
搜索排序模型的训练方法、搜索处理方法及装置.pdf_第3页
第3页 / 共20页
点击查看更多>>
资源描述

《搜索排序模型的训练方法、搜索处理方法及装置.pdf》由会员分享,可在线阅读,更多相关《搜索排序模型的训练方法、搜索处理方法及装置.pdf(20页珍藏版)》请在专利查询网上搜索。

本发明实施例提供了一种搜索排序模型的训练方法、搜索处理方法及装置。所述搜索排序模型的训练方法包括:获取多组标注的样本数据,每组所述样本数据包括搜索词及其相应的被标注为正例或负例的多个搜索结果条目;根据所述多组样本数据中的搜索词及其相应的搜索结果条目生成基于Gated RNN的搜索排序模型的输入层、词向量层、隐藏层和输出层,对所述搜索排序模型进行训练,以学习所述搜索排序模型的参数。本发明实施例的搜索。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1