本发明涉及深度学习技术领域,特别是涉及一种改写模型的构建方法及装置。
背景技术:
随着搜索引擎的不断发展和智能手机的普及,用户通常会通过安装于智能手机中的搜索软件实现各种信息的搜索。但是,用户提交至搜索引擎的查询可能是口语化描述的自然语言查询,这会给搜索引擎带来不小的挑战。因为通常的搜索引擎更适用于输入由精准关键词组成的查询,由自然语言描述的查询会导致较差的返回结果,降低查询准确性。因此,现急需提供一种改写模型以对用户输入的较口语化的查询语句进行改写。
技术实现要素:
本发明提供了一种改写模型的构建方法及装置以克服上述问题或者至少部分地解决上述问题。
根据本发明的一个方面,提供了一种改写模型的构建方法,包括:
构建编码器,在接收到初始查询语句中各词语对应的词向量后,由所述编码器对所述各词语对应的词向量进行编码并将所述各词向量分别表示为输入隐向量;
构建对所述输入隐向量进行解码的解码器,通过所述解码器分别基于生成式改写模式和抽取式改写模式获得多个关键词;
计算调节各关键词在所述生成式改写模式和抽取式改写模式下的权重比例的第一调节因子,以基于所述第一调节因子计算所述各关键词的综合权重;
结合所述编码器和解码器,并在所述解码器中设置所述第一调节因子,完成基于编码器-解码器结构的改写模型的构建,由所述改写模型依据所述各关键词的综合权重在所述多个关键词中选取至少一个关键词作为与所述初始语句的语义相似的查询关键词后输出。
可选地,所述构建对所述输入隐向量进行解码的解码器,通过所述解码器分别基于生成式改写模式和抽取式改写模式获得多个关键词,包括:
依据单向lstm长短期记忆网络构建解码器,并通过所述解码器对所述输入隐向量进行解码;
基于预设的词汇表采用生成式改写模式生成至少一个生成式关键词;
基于所述初始查询语句采用抽取式改写模式抽取至少一个抽取式关键词。
可选地,所述基于预设的词汇表采用生成式改写模式生成至少一个生成式关键词,包括:
通过注意力机制计算所述词汇表中各词语的分布概率,并依据所述各词语分布概率选取至少一个生成式关键词。
可选地,所述通过注意力机制计算词汇表中各词语的分布概率,并依据所述各词语分布概率选取至少一个生成式关键词,包括:
通过score方法衡量所述初始查询语句中各词语的权重并计算其加权和计算得到上下文向量;
将所述上下文向量与当前时刻目标隐向量结合通过两层全连接层得到所述词汇表中各词语的分布概率;其中,所述目标隐向量为解码器在t时刻的隐含层变量;
在所述词汇表中预测并生成至少一个生成式关键词;
利用coverage机制辅助所述解码器生成不重复的生成式关键词。
可选地,所述基于所述初始查询语句采用抽取式改写模式抽取至少一个抽取式关键词,包括:
通过注意力矩阵计算所述初始查询语句中各词语的权重,并依据所述各词语的权重选取至少一个抽取式关键词。
可选地,所述通过注意力矩阵计算所述初始查询语句中各词语的权重,并依据所述各词语的权重选取至少一个抽取式关键词,包括:
基于tf-idf词频-逆文件频率和注意力权重计算所述初始查询语句中各词语的权重;其中,所述tf-idf和注意力权重at的比例通过第二调节因子pw调节;
依据所述初始查询语句中各词语的权重在所述各词语中选择至少一个词语作为抽取式关键词。
可选地,所述计算调节各关键词在所述生成式改写模式和抽取式改写模式下的权重比例的第一调节因子,以基于所述第一调节因子计算所述各关键词的综合权重,包括:
计算调节各关键词在所述生成式改写模式和抽取式改写模式下权重的比例的第一调节因子;
获取生成式关键词和抽取式关键词中的各关键词;
通过第一调节因子调节同一关键词的分布概率和权重的比例,计算所述各关键词的综合权重。
可选地,所述通过所述第一调节因子调节同一关键词的分布概率和权重的比例,计算所述各关键词的综合权重,包括:
利用以下公式计算各关键词的综合权重:
p(w)=pgenpvocab(w)+(1-pgen)pextract(w)
其中,p(w)表示关键词的综合权重,pvocab(w)表示关键词在所述词汇表中的分布概率,pextract(w)表示关键词在所述初始查询语句中的权重。
可选地,所述构建编码器,在接收到初始查询语句中各词语对应的词向量后,由所述编码器对所述各词语对应的词向量进行编码并将所述各词向量分别表示为输入隐向量,包括:
依据双向lstm长短期记忆网络构建编码器;
在接收到初始查询语句中各词语对应的词向量后,由所述编码器对所述各词语对应的词向量进行编码并将所述各词向量分别表示为输入隐向量。
可选地,所述第一调节因子的计算公式如下:
其中,wh、ws、wx和d表示训练参数,ct表示上下文向量,ht表示目标隐向量,hs表示输入隐向量,xt表示所述初始查询语句中的词语,σ表示sigmoid函数,pgen表示第一调节因子。
根据本发明的另一个方面,还提供了一种改写模型的构建装置,包括:
第一构建模块,配置为构建编码器,在接收到初始查询语句中各词语对应的词向量后,由所述编码器对所述各词语对应的词向量进行编码并将所述各词向量分别表示为输入隐向量;
第二构建模块,配置为构建对所述输入隐向量进行解码的解码器,通过所述解码器分别基于生成式改写模式和抽取式改写模式获得多个关键词;
计算模块,配置为计算调节各关键词在所述生成式改写模式和抽取式改写模式下的权重比例的第一调节因子,以基于所述第一调节因子计算所述各关键词的综合权重;
设置模块,配置为结合所述编码器和解码器,并在所述解码器中设置所述第一调节因子,完成基于编码器-解码器结构的改写模型的构建,由改写模型依据所述各关键词的综合权重在所述多个关键词中选取至少一个关键词作为与所述初始语句的语义相似的查询关键词后输出。
可选地,所述第二构建模块,包括:
解码单元,配置为依据单向lstm长短期记忆网络构建解码器,并通过所述解码器对所述输入隐向量进行解码;
生成单元,配置为基于预设的词汇表采用生成式改写模式生成至少一个生成式关键词;
抽取单元,配置为基于所述初始查询语句采用抽取式改写模式抽取至少一个抽取式关键词。
可选地,所述生成单元还配置为:
通过注意力机制计算所述词汇表中各词语的分布概率,并依据所述各词语分布概率选取至少一个生成式关键词。
可选地,所述生成单元还配置为:
通过score方法衡量所述初始查询语句中各词语的权重并计算其加权和计算得到上下文向量;
将所述上下文向量与当前时刻目标隐向量结合通过两层全连接层得到所述词汇表中各词语的分布概率;其中,所述目标隐向量为解码器在t时刻的隐含层变量;
在所述词汇表中预测并生成至少一个生成式关键词;
利用coverage机制辅助所述解码器生成不重复的生成式关键词。
可选地,所述抽取单元还配置为:
通过注意力矩阵计算所述初始查询语句中各词语的权重,并依据所述各词语的权重选取至少一个抽取式关键词。
可选地,所述抽取单元还配置为:
基于tf-idf词频-逆文件频率和注意力权重计算所述初始查询语句中各词语的权重;其中,所述tf-idf和注意力权重at的比例通过第二调节因子pw调节;
依据所述初始查询语句中各词语的权重在所述各词语中选择至少一个词语作为抽取式关键词。
可选地,所述计算模块包括:
调节因子计算单元,配置为计算调节各关键词在所述生成式改写模式和抽取式改写模式下权重的比例的第一调节因子;
获取单元,配置为获取生成式关键词和抽取式关键词中的各关键词;
综合计算单元,配置为通过所述第一调节因子调节同一关键词的分布概率和权重的比例,计算所述各关键词的综合权重。
可选地,所述综合计算单元还配置为利用以下公式计算各关键词的综合权重:
p(w)=pgenpvocab(w)+(1-pgen)pextract(w)
其中,p(w)表示关键词的综合权重,pvocab(w)表示关键词在所述词汇表中的分布概率,pextract(w)表示关键词在所述初始查询语句中的权重。
可选地,所述第一构建模块还配置为:
依据双向lstm长短期记忆网络构建编码器;
在接收到初始查询语句中各词语对应的词向量后,由所述编码器对所述各词语对应的词向量进行编码并将所述各词向量分别表示为输入隐向量。
可选地,所述计算模块还配置为利用以下公式计算所述第一调节因子:
其中,wh、ws、wx和d表示训练参数,ct表示上下文向量,ht表示目标隐向量,hs表示输入隐向量,xt表示所述初始查询语句中的词语,σ表示sigmoid函数,pgen表示第一调节因子。
根据本发明的另一个方面,还提供了一种计算机存储介质,所述计算机存储介质存储有计算机程序代码,当所述计算机程序代码在计算设备上运行时,导致所述计算设备执行上述任一项所述的改写模型的构建方法。
根据本发明的另一个方面,还提供了一种计算设备,包括:
处理器;
存储有计算机程序代码的存储器;
当所述计算机程序代码被所述处理器运行时,导致所述计算设备执行上述任一项所述的改写模型的构建方法。
本发明提供了一种简单高效的改写模型的构建方法及装置,本发明的改写模型为主要基于encoder–decoder结构,由一个编码器和一个解码器组成。编码器将输入的句子编码成一个向量,然后解码器对此进行解码输出一段序列。基于本发明提供的改写模型可基于结合抽取式和生成式两种模式生成关键词,并由一个调节因子来调节两者的比例,可以在不改变查询语句语义的前提下对查询语句进行简化最终输出与用户输入的初始查询语句语义相似度最高的至少一个关键词,相较于传统的改写模型可以在不改变其真实意图的前提下返回更适用于搜索引擎的查询,从而使得查询结果更加满足用户期望。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是根据本发明实施例改写模型的构建方法流程示意图;
图2是根据本发明实施例的查询语句的改写方法流程示意图;
图3是根据本发明实施例的改写模型结构示意图;
图4是根据本发明实施例的对查询改写前的查询结果示意图;
图5是根据本发明实施例的对查询改写后的查询结果示意图;
图6是根据本发明实施例的改写模型的训练方法流程示意图;
图7是根据本发明实施例的改写模型的构建装置结构示意图;
图8是根据本发明优选实施例的改写模型的构建装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
查询语句的改写,即将用户输入的口语化的查询语句通过一系列自然语言处理技术,改写为适用于搜索引擎的关键词,在保留用户原有语义的基础上能使搜索返回更精准的结果。
通常的改写技术分为两大类:抽取式和生成式。抽取式通常使用特定的计算规则计算用户的输入查询语句中每个词的权重,选取权重大的词作为关键词。这种方法简单便捷,但是所有的关键词限制在输入的词集合中,而且倾向于抽取词频高的词,在某些场合下效果较差。生成式的方法通常可以“理解”用户的输入,然后基于用户的意图生成一些关键词。这种方法能生成新的词语,但是生成过程往往不可控,也会生成一些完全错误的词语。以上述的查询语句为例,用户输入“我想知道一个手机x要多少钱”,抽取式的方法会抽取出“手机x”和“多少”。这两个词全部来自于用户的输入查询,不足以概括其意图。生成式的方法会依据训练语料产生不同的结果。例如会生成“手机8”和“价钱”。虽然能生成新的词语,但是模型在生成词语时会根据训练语料制作的词表来计算概率,如果“手机x”不在训练语料中则只能用一个错误的近义词替代。这样的结果会导致搜索页面错误。
本发明实施例提供了一种改写模型的构建方法,如图1所示,基于本发明实施例提供的改写模型的构建方法可以包括:
步骤s102,构建编码器,在接收到初始查询语句中各词语对应的词向量后,由编码器对各词语对应的词向量进行编码并将各词向量分别表示为输入隐向量;
步骤s104,构建对输入隐向量进行解码的解码器,通过解码器分别基于生成式改写模式和抽取式改写模式获得多个关键词;
步骤s106,计算调节各关键词在生成式改写模式和抽取式改写模式下的权重比例的第一调节因子,以基于第一调节因子计算各关键词的综合权重;
步骤s108,结合编码器和解码器,并在解码器中设置第一调节因子,完成基于编码器-解码器结构的改写模型的构建,由改写模型依据各关键词的综合权重在多个关键词中选取至少一个关键词作为与初始语句的语义相似的查询关键词后输出。
本发明实施例提供了一种简单高效的改写模型的构建方法及装置,本发明实施例的改写模型为主要基于encoder–decoder结构,由一个编码器和一个解码器组成。编码器将输入的句子编码成一个向量,然后解码器对此进行解码输出一段序列。基于本发明实施例提供的改写模型可基于结合抽取式和生成式两种模式生成关键词,并由一个调节因子来调节两者的比例,最终输出与用户输入的初始查询语句语义相似度最高的至少一个关键词,相较于传统的改写模型可以在不改变其真实意图的前提下返回更适用于搜索引擎的查询,从而使得查询结果更加满足用户期望。
在本发明一优选实施例中,在上述步骤s102构建编码器时,可以依据双向lstm长短期记忆网络构建编码器;在接收到初始查询语句中各词语对应的词向量后,由编码器对各词语对应的词向量进行编码并将各词向量分别表示为输入隐向量。也就是说,用户基于搜索引擎输入的初始查询语句经过embedding之后会被逐个词语的送入编码器中,并产生一个隐向量。隐向量作为输入句子的一个高级表示,在解码阶段用于新的序列的生成。其中,lstm(longshort-termmemory)是长短期记忆网络,是一种时间递归神经网络,适合于处理和预测时间序列中间隔和延迟相对较长的重要事件。
在上述步骤s104中构建解码器时,可依据单向lstm长短期记忆网络构建解码器,并通过解码器对输入隐向量进行解码;基于预设的词汇表采用生成式改写模式生成至少一个生成式关键词;基于初始查询语句采用抽取式改写模式抽取至少一个抽取式关键词。
基于上述实施例提供的改写模型,本发明优选实施例还提供了一种查询语句的改写方法,如图2所示,根据本发明实施例提供的查询语句的改写方法可以包括:
步骤s202,获取用户基于搜索引擎输入的初始查询语句,并将上述初始查询语句进行分词以获取该初始查询语句包括的词语;
步骤s204,将初始查询语句中的各词语分别表示为与各词语对应的词向量;
步骤s206,调用改写模型,将与各词语对应的词向量分别输入改写模型后,基于改写模型生成并输出与上述初始查询语句的语义相似的至少一个查询关键词;其中,改写模型是由用户查询记录进行汇总处理后的训练数据集训练获得。
本发明实施例提供了一种对更加高效的查询语句的改写方法,当接收到用户基于搜索引擎输入的初始查询语句后,先将查询语句中包括的词语表示为词向量,进而将各词向量输入预先创建的改写模型中,由改写模型输出与出事查询语句语义相似的查询关键词。本发明实施例中的改写模型是基于用户查询记录进行汇总处理后的训练数据集训练获得,因此,可以在不改变其真实意图的前提下返回更适用于搜索引擎的查询,从而使得查询结果更加满足用户期望。
词向量表示是一种既能表示词本身又可以考虑语义距离的表示方法。在本发明优选实施例中,采用embedding词嵌入方式将各词语表示为词向量。基于神经网络的分布表示又称为词向量、词嵌入,神经网络词向量模型与其它分布表示方法一样,均基于分布假说,核心依然是上下文的表示以及上下文与目标词之间的关系的建模。通过词嵌入将词语表示为词向量,既能够降低维度,又能够捕捉到当前词在文本中上下文的信息(可表现为前后距离的关系),进而提升后续改写的准确性。
上文提及,本发明实施例中给查询改写模型是编码器-解码器结构的网络模型,其主要基于sequence-to-sequence模型构建而成。上述步骤s206调用上述改写模型对初始查询语句进行改写时,具体可以包括:
步骤s206-1,调用改写模型,将与各词语对应的词向量分别输入改写模型,基于改写模型中的编码器对接收到的各词向量进行编码,并将各词向量分别表示为输入隐向量;
步骤s206-2,将输入隐向量输入改写模型中的解码器进行解码,生成并输出与初始查询语句的语义相似的至少一个查询关键词。
sequence-to-sequence模型(简写:seq2seq),是一个“编码器-解码器”(encoder–decoder)结构的网络,它的输入是一个序列,输出也是一个序列,encoder编码器中将一个可变长度的信号序列变为固定长度的向量表达,decoder解码器将这个固定长度的向量变成可变长度的目标的信号序列。
由于本发明实施例提供的改写模型可从分别采用生成式改写模型和抽取式改写模式获取至少一个生成式关键词和抽取式关键词。在本发明一优选实施例中,解码器通过以下两种方式解码出新的查询语句,分别对应生成模式和抽取模式:
(1)解码器接收输入的词向量表示和解码器的隐向量,计算词汇表中各词语的分布概率,并依据各词语分布概率选取至少一个生成式关键词。
(2)通过注意力矩阵计算初始查询语句中各词语的权重,并依据各词语的权重选取至少一个抽取式关键词。
也就是说,在上述步骤s206-2中,解码器对接收到的输入隐向量及逆行解码并输出查询关键词时可以包括以下步骤:
s1、将输入隐向量输入改写模型中的解码器进行解码;
s2、分别在预设的词汇表和初始查询语句中选取至少一个生成式关键词和抽取式关键词;其中,预设的词汇表由训练数据集构建而成;
s3、对生成式关键词和抽取式关键词进行分析,进而选取多个关键词作为与初始查询语句的语义相似的查询关键词后输出。
基于本发明实施例提供的方法,结合抽取式和生成式对用户输入的初始查询语句进行改写,可以融合抽取式和生成式这两种方法的优点,将用户在搜索引擎中输入的初始查询语句改写为更加准确且简洁的关键词查询,进而得出更满足用户搜索意图的搜索结果,可以在节省用户搜索时间的同时进一步提升用户体验。
在本发明一优选实施例中,基于预设的词汇表采用生成式改写模式生成至少一个生成式关键词时,可以通过注意力机制计算词汇表中各词语的分布概率,并依据各词语分布概率选取至少一个生成式关键词;基于初始查询语句采用抽取式改写模式抽取至少一个抽取式关键词时,可以通过注意力矩阵计算初始查询语句中各词语的权重,并依据各词语的权重选取至少一个抽取式关键词。
在seq2seq的模型结构中,输出每一个词的时候对于输入中词语的关注程度不一致,其权重根据特定规则计算得到。这样可以使得生成的序列更加合理,且能保留输入中的大部分信息。一般在自然语言处理应用里把注意力模型看作是输出句子中某个单词和输入句子每个单词的对齐模型。
本发明一优选实施例中,通过注意力机制计算词汇表中各词语的分布概率,并依据各词语分布概率选取至少一个生成式关键词时,可以包括以下步骤:
s1-1,通过score方法衡量初始查询语句中各词语的权重并计算其加权和计算得到上下文向量;
s1-2,将上下文向量与当前时刻目标隐向量结合通过两层全连接层得到词汇表中各词语的分布概率;其中,目标隐向量为解码器在t时刻的隐含层变量;全连接层的每一个结点都与上一层的所有结点相连,用来把前边提取到的特征综合起来;
s1-3,在词汇表中预测并输出至少一个生成式关键词;
s1-4,利用coverage机制辅助解码器输出不重复的生成式关键词。
本发明优选实施例选取生成式关键词时,参考经典的seq2seq模型,是一个基于注意力机制的“编码器-解码器”结构。当用户输入一个查询x={x1,...,xn}(xi表示输入句子的第i个词语)后,其目标是将此查询转换为语义相似的关键词查询y={y1,...,ym}(yi表示输出的第i个词语)。查询的每一个词依次被送入“编码器”中,然后“解码器”接收先前生成的词语和一个上下文向量预测下一词yt。
上述步骤s1-1中通过score方法衡量初始查询语句中各词语的权重并计算其加权和计算得到上下文向量中,具体方法可以如下:
(1)增加coverage向量covt,并设定cov0为全零矩阵;其中,t表示t时刻;
在基于注意力机制的seq2seq模型中,由解码器生成的词语有时会由于一些特殊的词语触发循环,使得生成的句子中包含重复的词语。这时需要coverage机制来防止这一现象的发生。coverage机制会更加关注那些之前没有被关注的词语,而忽略之前关注过的词。利用之前时刻的注意力矩阵的累加和来衡量一个词被关注的程度,忽略那些之前被关注过的词来防止重复;
(2)通过函数score计算目标隐向量和输入隐向量的相似度eit;
其中,
v、w1、w2、wc和batten为查询改写模型的训练参数,
(3)将
(4)在时刻t,维护coverage矩阵covt记录初始查询语句中各词语的覆盖程度,
(5)通过注意力权重at对输入隐向量加权求和得到t时刻的上下文向量,
当计算获得上下文向量后,即可结合上下文向量预测并输出至少一个生成式关键词。可选地,利用以下公式在词汇表中预测并输出至少一个生成式关键词:
其中,yt表示当前输出的生成式关键词,c表示上下文向量;
p(yt|{y1,...,yt-1},c)表示在先的生成式关键词{y1,...,yt-1}和上下文向量c的前提下yt的条件概率。
与此同时,上述步骤s2-1-2中将上下文向量与当前时刻目标隐向量结合通过两层全连接层得到词汇表中各词语的分布概率时,可以利用以下公式计算词汇表中各词语的分布概率:
pvocab=f(ct,ht)=softmax(v'(v[ht,ct]+b)+b')
其中,v、v'、b、b'为查询改写模型的训练参数,pvocab表示词汇表中词语的分布概率,ht表示目标隐向量,ct表示t时刻的上下文向量。softmax,是将k维实数向量z映射到一个新的k维实数向量,使得向量的每一个元素值都在0-1之间,且所有元素和为1。
前文介绍,选取抽取式关键词时,可通过注意力矩阵计算初始查询语句中各词语的权重,并依据各词语的权重进行选取。本发明一优选实施例中,可以包括以下步骤:
s2-1,基于tf-idf词频-逆文件频率和注意力权重计算初始查询语句中各词语的权重;其中,tf-idf和注意力权重at的比例通过第二调节因子pw调节;
s2-2,依据初始查询语句中各词语的权重在各词语中选择至少一个词语作为抽取式关键词后输出。
tf-idf,是两个统计量的乘积,词频率tf(w)和逆文件频率idf(w)。tf-idf高是由词频高且该词在整个语料中出现频率低共同决定的,因此该方法可以用于排除常用术语。对于自然语言查询,这种方法可以有效地去除一些常见的口语描述,如“如何”、“什么”,并保留重要信息。
上述步骤s2-2-1计算初始查询语句中各词语的权重时,可以通过以下公式:
其中,fw表示词语w在初始查询语句中出现的次数,n表示由用于的查询记录构建而成的语料库中所有查询语句出现的次数,|w|表示语料库中包含词语w的查询语句的个数,at表示注意力权重,通过对目标隐向量和输入隐向量的相似度进行归一化获得。
tf-idf值和注意力权重在衡量单词重要性时有不同的侧重点。注意力权重关注输入和输出的语义匹配,使用隐藏状态来计算其相似度值。通过这种方式,它关注的是单词的“含义”。tf-idf关注单词的统计特征,它统计了整个语料库中该单词的重要性,这两种值从不同的角度描述了输入词的重要性。通过将它们与权重因子相结合,可以从输入中提取更佳的关键词。
上文提及,在选取出生成式关键词和抽取式关键词后,可对生成式关键词和抽取式关键词进行分析,进而选取多个关键词作为与初始查询语句的语义相似的查询关键词后输出,实际应用中可以包括:
s3-1,获取生成式关键词和抽取式关键词中的各关键词;
s3-2,结合初始查询语句中各词语的权重和词汇表中各词语的分布概率,计算各关键词的综合权重;
s3-3,基于各词语综合权重在各关键词中选取多个关键词作为查询关键词。
上述实施例中已介绍对初始查询语句中各词语的权重和词汇表中各词语的分布概率的计算过程,由于本发明实施例是对二者进行综合以进一步选择最终的查询关键词,因此,可利用预设的第一调节因子调节同一关键词的分布概率和权重的比例计算各关键词的综合权重。
上述步骤s106中提及,选取出生成式关键词和抽取式关键词后,可计算调节各关键词在生成式改写模式和抽取式改写模式下的权重比例的第一调节因子,以基于第一调节因子计算所述各关键词的综合权重。在本发明以优选实施例中,上述步骤s106可以包括:计算调节各关键词在生成式改写模式和抽取式改写模式下权重的比例的第一调节因子;获取生成式关键词和抽取式关键词中的各关键词;通过第一调节因子调节同一关键词的分布概率和权重的比例,计算所述各关键词的综合权重。
在本发明优选实施例中,第一调节因子的计算公式可以如下:
其中,wh、ws、wx和d表示训练参数,ct表示上下文向量,ht表示目标隐向量,hs表示输入隐向量,xt表示初始查询语句中的词语,σ表示sigmoid函数,pgen表示第一调节因子。
利用预设的第一调节因子调节同一关键词的分布概率和权重的比例计算各关键词的综合权重时,可以利用以下公式计算各关键词的综合权重:
p(w)=pgenpvocab(w)+(1-pgen)pextract(w)
其中,p(w)表示关键词的综合权重,pvocab(w)表示关键词在词汇表中的分布概率,pextract(w)表示关键词在初始查询语句中的权重。
最后,基于各关键词的综合权重依次排序生成关键词列表,在关键词列表中选取多个关键词作为查询关键词。在关键词列表中选取多个关键词时,可依据综合权重大小选取综合权重较大的多个关键词作为查询关键词,并输出所选取的查询关键词输出,以便搜索引擎基于所选取的查询关键词进行查询,使得查询结果更加满足用户期望。
图3示出了根据本发明实施例提供的改写模型结构示意图。由图3可知,本发明实施例提供的改写模型是一个经典的基于注意力机制的seq2seq的结构,由一个“编码器”和一个“解码器”组成。“编码器”可以理解用户输入的查询,将输入语句进行编码,送入“解码器”中进行“解读”。在解码阶段,“解码器”依次生成每一个词语。
举例来说,在真实的搜索场景下,用户基于搜索引擎输入的初始查询语句可能为“我想知道一个手机x要多少钱”。如果直接在搜索引擎中输入这样的查询,返回的结果页面往往不是用户想要的结果,如图4所示。
基于本发明实施例提供的方法,改写过程可以如下:
1、接收到用户输入的初始查询语句“我想知道一个手机x要多少钱”,先对其进行分词;将初始查询语句进行分词后得到“我”“想”“知道”“一个”“手机x”“多少钱”;
2、将各词语进行embedding,词嵌入,将词用向量表示;
3、将各词向量如图3中将各向量输入改写模型中的编码器,将各词向量分别表示为输入隐向量,如图3中的h1、h2...hs...hn-1、hn;
4、将各词语的输入隐向量输入解码器,由解码器依次生成与初始查询语句的语义相似的每一个查询关键词;在生成下一个词语时,考虑以下两个因素:
(1)利用训练数据集构建词汇表,考虑词表中词的分布概率;
(2)根据抽取式的方法考虑初始查询语句中每个词语的权重,并通过调节因子pgen来调节两者的比例,最终可以将初始查询语句改写为包括有“手机x,价格”两个查询关键词的目标查询语句,基于改写后的目标查询语句进行搜索时,搜索引擎返回的结果会更准确,如图5所示。
机器学习中大概有如下步骤:确定模型----训练模型----使用模型。因此,在改写模型构建完成之后,需要对其训练以确保改写模型对查询语句改写的准确性和高效性。如图6所示,本发明一优选实施例还提供了一种改写模型的训练方法,可以包括:
步骤s602,收集网络用户基于搜索引擎的查询记录,基于查询记录构建训练数据集;
步骤s604,获取训练数据集中的训练数据,将训练数据随机打乱;
步骤s606,将随机打乱后的训练数据划分为多份训练样本数据;
步骤s608,在多份训练样本数据中任意选取一份训练样本数据,将选取的训练样本数据输入预先构建的对用户基于搜索引擎输入的查询语句进行改写的改写模型,对改写模型进行训练。
本发明实施例提供的改写模型的训练方法,通过收集网络用户基于搜索引擎的查询记录,进而构建训练数据集,以基于所构建的训练数据集对改写模型进行训练。本发明实施例中的改写模型是基于网络用户通过搜索引擎的搜索查询记录进行汇总处理后的训练数据集训练获得,因此,其可以更加真实并准确地反应网络用户的查询需求,进而提升改写模型的训练效率,使得改写模型对查询语句的改写更加准确高效。
在上述步骤s602构建训练数据集时,可先收集各网络用户基于搜索引擎的查询记录,并将查询记录作为初始训练语料构建语料库;再清洗语料库中的噪声数据,得到数据集;进而分别对数据集中的查询语句和搜索结果进行分词,并将数据集的第一指定比例的数据作为训练数据以构建改写模型的训练数据集。网络用户基于搜索引擎的查询记录为网络用户真实的搜索点击数据,在收集网络用户的查询记录时,可以收集各网络用户基于搜索引擎输入的查询语句,以及各网络用户在搜索引擎基于查询语句返回的结果页面中所点击的搜索结果;将查询语句和网络用户基于查询语句对应点击的搜索结果组成句对(query-title),将上述句对作为初始训练语料构建语料库,进而利用高质量用户的搜索查询记录作为初始训练语料。
初始训练语料中存在很多噪声,通过分析数据发现这些噪声主要是因为用户的误操作或者恰巧对某个页面感兴趣造成的,表现为训练句对在语义上不相符,这些噪声会严重影响训练过程。因此,需要对语料库中的句对进行清洗,得到可信的数据。上述清洗语料库中的噪声数据,得到数据集时,可以获取语料库中的句对;将查询语句作为数据集的输入,与查询语句对应的用户点击的搜索结果作为数据集的输出;基于主题相似度和/或词向量相似度计算并过滤与初始训练语料的句对中查询语句和搜索结果的语义不相符的句对。本发明实施例主要从“主题相似度”和“语义相似度”两个方面来衡量句对的质量。主题相似度从句子的主题分布入手,计算分布之间的相似度。首先对句子进行语义表示,训练lda模型并计算一个句子的主题分布。然后利用js散度(jensen-shannon)计算两个分布之间相似性。主题相似度从句子中词语的词向量入手,将一个句子表示成句子中词语的词向量的均值,然后利用余弦相似度计算两个句子的相似度。通过设定合理的阈值,达到去除噪声的目的。
lda(latentdirichletallocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到。文档到主题服从多项式分布,主题到词服从多项式分布。
语料库中的数据清洗完成得到数据集之后,可以对数据集进行分词。在本发明实施例中可使用开源的jieba工具,将句子按词分隔,然后将数据集的第一指定比例的数据作为训练数据以构建改写模型的训练数据集,获取数据集的第二指定比例的数据作为验证数据,基于上述验证数据构建预设验证集。实际应用中,可以划分数据集中20%的数据作为验证集,剩余80%数据作为训练数据集,并用训练数据集制作词汇表。
上文提及,训练改写模型时,可以先将随机打乱后的训练数据划分为多份训练样本数据,并基于多份训练样本数据对模型进行训练。在本发明优选实施例中,对改写模型进行训练可包括以下步骤:
s6-1,将训练数据集中的训练数据随机打乱;
s6-2,将随机打乱后的训练数据集中的训练数据平均划分为s份训练样本数据,并设定s的初始值为0;
s6-3,选取第s份训练样本数据;
s6-4,将第s份训练样本数据输入预先构建的对用户基于搜索引擎输入的查询语句进行改写的改写模型,对改写模型进行训练。
可选地,在上述步骤s6-4将第s分训练样本数据输入改写模型之前,还可以按照预设的词汇表对第s份训练样本数据的查询语句中的词语进行编号;其中,预设的词汇表基于训练数据集构建而成;进而将编号后的各词语输入改写模型,以基于编号后的各词语对改写模型进行训练。本发明实施例中,由于词汇表可基于训练数据集构建而成,因此,按照预设的词汇表对查询语句中的词语进行编号可以在改写模型的训练过程更加有序,进而提升改写模型的训练效率。
在改写模型的训练过程中,可计算各时刻的损失函数。即,上述步骤s6-4之后,还可以包括:
s6-5,利用以下公式计算改写模型训练过程中的损失函数:
其中,loss表示损失函数,
整个查询语句的损失函数则定义为:
对改写模型进行训练完成之后,可通过预设验证集对改写模型进行验证。对改写模型进行验证时,可以计算验证集中的损失函数。在机器学习中,损失函数(lossfunction)是用来估量模型的预测值与真实值的不一致程度,它是一个非负实值函数,损失函数越小,模型的鲁棒性就越好。因此,在上述步骤s1-4之后,还可以包括:
s6-6,利用训练好的改写模型计算预设验证集的损失函数;若损失函数增大,则训练结束;若损失函数减小,则设定s=s+1,重复步骤s6-1至s6-5,选取第s份训练样本数据,将所训练样本数据输入改写模型,继续对改写模型进行训练。基于本发明提供的实施例,通过利用训练好的模型计算验证集中的损失函数判断是否对改写模型进行再次训练,可以进一步提升改写模型的改写准确率,使得改写模型输出的查询关键词更加符合用户的搜索意图,从而使得查询结果更加满足用户期望。
基于同一发明构思,本发明实施例还提供了一种改写模型的构建装置,如图7所示,本发明实施例提供的改写模型的构建装置可以包括:
第一构建模块710,配置为构建编码器,在接收到初始查询语句中各词语对应的词向量后,由编码器对各词语对应的词向量进行编码并将各词向量分别表示为输入隐向量;
第二构建模块720,配置为构建对输入隐向量进行解码的解码器,通过解码器分别基于生成式改写模式和抽取式改写模式获得多个关键词;
计算模块730,配置为计算调节各关键词在生成式改写模式和抽取式改写模式下的权重比例的第一调节因子,以基于第一调节因子计算各关键词的综合权重;
设置模块740,配置为结合编码器和解码器,并在解码器中设置第一调节因子,完成基于编码器-解码器结构的改写模型的构建,由改写模型依据各关键词的综合权重在多个关键词中选取至少一个关键词作为与初始语句的语义相似的查询关键词后输出。
在本发明一优选实施例中,如图8所示,第二构建模块720,可以包括:
解码单元721,配置为依据单向lstm长短期记忆网络构建解码器,并通过解码器对输入隐向量进行解码;
生成单元722,配置为基于预设的词汇表采用生成式改写模式生成至少一个生成式关键词;
抽取单元733,配置为基于初始查询语句采用抽取式改写模式抽取至少一个抽取式关键词。
在本发明一优选实施例中,生成单元722还可以配置为:通过注意力机制计算词汇表中各词语的分布概率,并依据各词语分布概率选取至少一个生成式关键词。
在本发明一优选实施例中,生成单元722还可以配置为:通过score方法衡量初始查询语句中各词语的权重并计算其加权和计算得到上下文向量;将上下文向量与当前时刻目标隐向量结合通过两层全连接层得到词汇表中各词语的分布概率;其中,目标隐向量为解码器在t时刻的隐含层变量;在词汇表中预测并生成至少一个生成式关键词;利用coverage机制辅助解码器生成不重复的生成式关键词。
在本发明一优选实施例中,抽取单元723还可以配置为:通过注意力矩阵计算初始查询语句中各词语的权重,并依据各词语的权重选取至少一个抽取式关键词。
在本发明一优选实施例中,抽取单元723还可以配置为:基于tf-idf词频-逆文件频率和注意力权重计算初始查询语句中各词语的权重;其中,tf-idf和注意力权重at的比例通过第二调节因子pw调节;依据初始查询语句中各词语的权重在各词语中选择至少一个词语作为抽取式关键词。
在本发明一优选实施例中,如图8所示,计算模块730可以包括:
调节因子计算单元731,配置为计算调节各关键词在生成式改写模式和抽取式改写模式下权重的比例的第一调节因子;
获取单元732,配置为获取生成式关键词和抽取式关键词中的各关键词;
综合计算单元733,配置为通过第一调节因子调节同一关键词的分布概率和权重的比例,计算各关键词的综合权重。
在本发明一优选实施例中,综合计算单元733还可以配置为利用以下公式计算各关键词的综合权重:
p(w)=pgenpvocab(w)+(1-pgen)pextract(w)
其中,p(w)表示关键词的综合权重,pvocab(w)表示关键词在词汇表中的分布概率,pextract(w)表示关键词在初始查询语句中的权重。
在本发明一优选实施例中,第一构建模块710还可以配置为:依据双向lstm长短期记忆网络构建编码器;在接收到初始查询语句中各词语对应的词向量后,由编码器对各词语对应的词向量进行编码并将各词向量分别表示为输入隐向量。
在本发明一优选实施例中,计算模块730还可以配置为利用以下公式计算第一调节因子:
其中,wh、ws、wx和d表示训练参数,ct表示上下文向量,ht表示目标隐向量,hs表示输入隐向量,xt表示初始查询语句中的词语,σ表示sigmoid函数,pgen表示第一调节因子。
基于同一发明构思,本发明实施例还提供了一种计算机存储介质,计算机存储介质存储有计算机程序代码,当计算机程序代码在计算设备上运行时,导致计算设备执行上述任一项所述的改写模型的构建方法。
基于同一发明构思,本发明实施例还提供了一种计算设备,包括:处理器;存储有计算机程序代码的存储器;当计算机程序代码被处理器运行时,导致计算设备执行上述任一项所述的改写模型的构建方法。
本发明实施例提供了一种简单高效的改写模型的构建方法及装置,本发明实施例的改写模型为主要基于encoder–decoder结构,由一个编码器和一个解码器组成。编码器将输入的句子编码成一个向量,然后解码器对此进行解码输出一段序列。基于本发明实施例提供的改写模型可结合抽取式和生成式两种模式生成关键词,并由一个调节因子来调节两者的比例,可以在不改变查询语句语义的前提下对查询语句进行简化最终输出与用户输入的初始查询语句语义相似度最高的至少一个关键词,相较于传统的改写模型可以在不改变其真实意图的前提下返回更适用于搜索引擎的查询。进一步地,基于本发明实施例所构建的改写模型可对用户基于搜索引擎输入的查询语句进行准确高效的改写,还通过对用户真实的查询记录进行清洗作为训练改写模型的数据,利用高质量用户的搜索查询记录作为初始训练语料,从而使得查询结果更加满足用户期望。
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
另外,在本发明各个实施例中的各功能单元可以物理上相互独立,也可以两个或两个以上功能单元集成在一起,还可以全部功能单元都集成在一个处理单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件或者固件的形式实现。
本领域普通技术人员可以理解:所述集成的功能单元如果以软件的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干指令,用以使得一台计算设备(例如个人计算机,服务器,或者网络设备等)在运行所述指令时执行本发明各实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom)、随机存取存储器(ram),磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的计算设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被计算设备的处理器执行时,所述计算设备执行本发明各实施例所述方法的全部或部分步骤。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:在本发明的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本发明的保护范围。