查询自动补全的处理方法、装置、电子设备与流程

文档序号:32439547发布日期:2022-12-06 20:54阅读:140来源:国知局
查询自动补全的处理方法、装置、电子设备与流程

1.本发明涉及计算机技术领域,具体涉及一种查询自动补全的处理方法、装置、电子设备及可读存储介质。


背景技术:

2.查询自动补全(queryauto-completion,简称qac)是现代搜索引擎的一个重要部分。qac的主要目的为在用户向搜索框输入查询词的过程中,根据当前查询前缀(如“中山公园”)推荐一些个性化的查询补全词(如“中山公园美食”等)供选择,从而提高用户的搜索效率。
3.目前的自然语言搜索中,基本都是基于以下两种方式来进行补全词的生成:方式一、基于用户历史搜索词、用户ugc(user generated content,用户原创内容)内容等语料数据,利用规则挖掘出提示词来作为补全词;方式二、根据搜索场景的不同定制不同的人工策略,通过槽位规则等方法人工生成提示词来作为补全词。
4.但是在历史搜索日志中,新查询词、部分长尾搜索等对应提示词较少,容易导致对应可供选择的补全词较少。而且,基于人工规则挖掘提示词的方式,挖掘成本大且模式固定,无法完全覆盖自然语言表达形式。此外,上述两种方式对用户搜索意图的认知扩展能力差,导致不同用户在输入相同前缀时的展示列表大同小异。


技术实现要素:

5.本发明提供一种查询自动补全的处理方法、装置、电子设备及可读存储介质,以部分或全部解决现有技术中对用户搜索意图的认知扩展能力差,导致不同用户在输入相同前缀时的展示列表大同小异的问题。
6.依据本发明第一方面,提供了一种查询自动补全的处理方法,包括:
7.获取用户输入的查询词,以及所述查询词所处业务下的语言表达模式;
8.根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的至少一个备选补全词,作为所述查询词的目标补全词,所述目标词库中包含用于进行查询自动补全的至少一个备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息;
9.其中,所述目标词库中的备选补全词以及所述备选补全词的标签信息为基于至少一个查询词,通过第一模型获取得到;所述第一模型通过已知在所述语言表达模式下的标签信息的多个查询词样本,以及所述查询词样本匹配的至少一个补全词样本训练得到。
10.可选地,在所述根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的至少一个备选补全词,作为所述查询词的目标补全词的步骤之前,还包括:
11.针对每个查询词,通过第一模型获取所述查询词对应的备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息,构建所述目标词库。
12.可选地,所述第一模型包括语言编码模块和多任务学习模块,所述多任务学习模
块包括提示词生成器、语言表达模式识别器;所述通过第一模型获取所述查询词对应的备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息的步骤,包括:
13.在每个时间步,通过所述语言编码模块对当前的查询词进行编码,获取所述查询词经编码后的向量;
14.基于所述向量,通过所述提示词生成器获取在当前时间步与所述查询词对应的补全词;
15.以所述补全词为新的查询词进入下一时间步,直至所述提示词生成器输出预设结束符,以所述提示词生成器输出所述预设结束符时作为输入的补全词,作为与初始的查询词对应的备选补全词,并通过所述语言表达模式识别器获取每个所述备选补全词在所述语言表达模式下的标签信息。
16.可选地,所述基于所述向量,通过所述提示词生成器获取在当前时间步与所述查询词对应的补全词的步骤,包括:
17.基于所述向量,获取所述提示词生成器输出的预测词,以及每个所述预测词的得分;
18.获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词,n为正整数。
19.可选地,所述获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词,n为正整数的步骤,包括:
20.通过所述语言表达模式识别器获取每个所述预测词在所述语言表达模式下的标签信息;
21.从标签信息满足预设条件的各个预测词中,获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词。
22.可选地,所述直至所述提示词生成器输出预设结束符,以所述提示词生成器输出所述预设结束符时作为输入的补全词,作为与初始的查询词对应的备选补全词的步骤,包括:
23.响应于所述提示词生成器输出预设结束符,针对以所述提示词生成器输出所述预设结束符时作为输入的每个补全词,响应于所述补全词满足第一条件,保存所述补全词作为与初始的查询词对应的备选补全词;
24.所述第一条件包括:所述补全词对应的时间步序号不小于最小终止步数,和/或所述补全词中包含与所述语言表达模式适配的指定字符。
25.可选地,所述第一模型还包括两个门控网络,其中一个门控网络连接所述提示词生成器与所述语言编码模块,另一门控网络连接所述语言表达模式识别器与所述语言编码模块,以分别控制所述查询词经编码后的向量在所述提示词生成器与所述语言表达模式识别器中的权重。
26.可选地,所述根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的至少一个备选补全词,作为所述查询词的目标补全词的步骤,包括:
27.根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的备选补全词;
28.响应于从目标词库中未获取到与所述查询词适配的备选补全词,通过所述第一模
型,获取所述查询词在所述语言表达模式对应的备选补全词,作为所述查询词的目标补全词。
29.根据本发明的第二方面,提供了一种查询自动补全的处理装置,包括:
30.查询词获取模块,用于获取用户输入的查询词,以及所述查询词所处业务下的语言表达模式;
31.补全词适配模块,用于根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的至少一个备选补全词,作为所述查询词的目标补全词,所述目标词库中包含用于进行查询自动补全的至少一个备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息;
32.其中,所述目标词库中的备选补全词以及所述备选补全词的标签信息为基于至少一个查询词,通过第一模型获取得到;所述第一模型通过已知在所述语言表达模式下的标签信息的多个查询词样本,以及所述查询词样本匹配的至少一个补全词样本训练得到。
33.可选地,所述装置还包括:
34.目标词库构建模块,用于针对每个查询词,通过第一模型获取所述查询词对应的备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息,构建所述目标词库。
35.可选地,所述第一模型包括语言编码模块和多任务学习模块,所述多任务学习模块包括提示词生成器、语言表达模式识别器;所述目标词库构建模块,包括:
36.查询词编码子模块,用于在每个时间步,通过所述语言编码模块对当前的查询词进行编码,获取所述查询词经编码后的向量;
37.补全词预测子模块,用于基于所述向量,通过所述提示词生成器获取在当前时间步与所述查询词对应的补全词;
38.备选补全词获取子模块,用于以所述补全词为新的查询词进入下一时间步,直至所述提示词生成器输出预设结束符,以所述提示词生成器输出所述预设结束符时作为输入的补全词,作为与初始的查询词对应的备选补全词,并通过所述语言表达模式识别器获取每个所述备选补全词在所述语言表达模式下的标签信息。
39.可选地,所述补全词预测子模块,包括:
40.预测词获取单元,用于基于所述向量,获取所述提示词生成器输出的预测词,以及每个所述预测词的得分;
41.补全词获取单元,用于获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词,n为正整数。
42.可选地,所述补全词获取单元具体用于:
43.通过所述语言表达模式识别器获取每个所述预测词在所述语言表达模式下的标签信息;
44.从标签信息满足预设条件的各个预测词中,获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词。
45.可选地,所述备选补全词获取子模块,具体用于:
46.响应于所述提示词生成器输出预设结束符,针对以所述提示词生成器输出所述预设结束符时作为输入的每个补全词,响应于所述补全词满足第一条件,保存所述补全词作
为与初始的查询词对应的备选补全词;
47.所述第一条件包括:所述补全词对应的时间步序号不小于最小终止步数,和/或所述补全词中包含与所述语言表达模式适配的指定字符。
48.可选地,所述第一模型还包括两个门控网络,其中一个门控网络连接所述提示词生成器与所述语言编码模块,另一门控网络连接所述语言表达模式识别器与所述语言编码模块,以分别控制所述查询词经编码后的向量在所述提示词生成器与所述语言表达模式识别器中的权重。
49.可选地,所述补全词适配模块,包括:
50.第一补全词适配子模块,用于根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的备选补全词;
51.第二补全词适配子模块,用于响应于从目标词库中未获取到与所述查询词适配的备选补全词,通过所述第一模型,获取所述查询词在所述语言表达模式对应的备选补全词,作为所述查询词的目标补全词。
52.根据本发明的第三方面,提供了一种电子设备,包括:
53.处理器、存储器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现前述的查询自动补全的处理方法。
54.根据本发明的第四方面,提供了一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述的查询自动补全的处理方法。
55.根据本发明的查询自动补全的处理方法,可以获取用户输入的查询词,以及所述查询词所处业务下的语言表达模式;根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的至少一个备选补全词,作为所述查询词的目标补全词,所述目标词库中包含用于进行查询自动补全的至少一个备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息;其中,所述目标词库中的备选补全词以及所述备选补全词的标签信息为基于至少一个查询词,通过第一模型获取得到;所述第一模型通过已知在所述语言表达模式下的标签信息的多个查询词样本,以及所述查询词样本匹配的至少一个补全词样本训练得到。由此解决了现有的查询自动补全的处理方法对用户搜索意图的认知扩展能力差,导致不同用户在输入相同前缀时的展示列表大同小异的技术问题。取得了针对自然语言搜索中的场景化qac任务,通过语言编码网络和多任务建模两种手段,有效达到场景化、自动化的补全词生成目标,提高补全词与应用场景下的语音表达模式适配度的有益效果。
56.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
57.通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
58.图1示出了根据本发明实施例的一种查询自动补全的处理方法的步骤流程图之
一;
59.图2示出了根据本发明实施例的一种查询自动补全的处理方法的步骤流程图之二;
60.图3a示出了根据本发明实施例的一种贪心搜索的示意图;
61.图3b示出了根据本发明实施例的一种集束搜索的示意图;
62.图4a示出了根据本发明实施例的一种第一模型的结构示意图;
63.图4b示出了根据本发明实施例的一种bilstm+attention的结构示意图;
64.图5示出了根据本发明实施例的一种查询自动补全的处理装置的结构示意图之一;以及
65.图6示出了根据本发明实施例的一种查询自动补全的处理装置的结构示意图之二。
具体实施方式
66.下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
67.参照图1,示出了本发明实施例中一种查询自动补全的处理方法的步骤流程图。
68.步骤110,获取用户输入的查询词,以及所述查询词所处业务下的语言表达模式;
69.步骤120,根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的至少一个备选补全词,作为所述查询词的目标补全词,所述目标词库中包含用于进行查询自动补全的至少一个备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息;其中,所述目标词库中的备选补全词以及所述备选补全词的标签信息为基于至少一个查询词,通过第一模型获取得到;所述第一模型通过已知在所述语言表达模式下的标签信息的多个查询词样本,以及所述查询词样本匹配的至少一个补全词样本训练得到。
70.本发明实施例中提出的查询自动补全的处理方法主要由两部分构成,分别是语料构造与模型结构。其中,语料构造描述了基于多样化场景的训练语料预处理技术,主要是针对少无结果与认知扩展。模型结构则主要基于自然语言处理中常见的语言模型,融合多目标、判别器、生成器等三个模块,共同构成场景化的生成式qac框架。
71.在构造语料(也即构造第一模型的训练样本)时,可以基于用户搜索日志来挖掘数据,在日志中,每个用户的搜索词searchkeyword(也即查询词)和下拉词sugword(也即查询自动补全后的补全词)会被分别记录为一条训练样本query,比如{queryid=1,searchkeyword='中山','sugword'=['中山公园','中山医院']}。
[0072]
而且为了使第一模型学习到更加场景化的自然语言搜索模式,本发明实施例中,可以将符合不同语言表达模式的训练语料(例如上个步骤得到的('中'-》'山')、('中山'-》'公

)、('中山公'-》'园'))标记为二值化的场景标签信息,通过预处理规则将符合某一语言表达模式的训练语料设定为在该语言表达模式下的标签信息label=1,否则为label=0。
[0073]
在利用上述预料数据训练第一模型之后,则可以利用训练后的第一训练预先获取不同查询词在不同业务场景下的语言表达模式下,预测其在进行qac后可能得到的备选补全词,并且可以构建一个查询词与备选补全词之间映射关系的目标词库,在目标词库中可以记录每个查询词在不同语言表达模式下在进行qac后适配的备选补全词。
[0074]
那么在线上使用过程中,在获取得到用户实时输入的查询词之后,则可以进一步获取该查询词当前所处业务下的语言表达模式,进而则可以根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的至少一个备选补全词,作为所述查询词的目标补全词。
[0075]
参照图2,在本发明实施例中,还可以包括:
[0076]
步骤s1,针对每个查询词,通过第一模型获取所述查询词对应的备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息,构建所述目标词库。
[0077]
如上述,在实际应用中,为了提高qac的处理效率,以便于及时基于用户输入的查询词提供补全词,可以通过如上述的第一模型获取多种不同的查询词对应的备选补全词,以及每个备选补全词在不同语言表达模式下的标签信息,构建得到目标词库。
[0078]
可选地,在本发明实施例中,所述第一模型包括语言编码模块和多任务学习模块,所述多任务学习模块包括提示词生成器、语言表达模式识别器;所述步骤s1进一步可以包括:
[0079]
步骤s11,在每个时间步,通过所述语言编码模块对当前的查询词进行编码,获取所述查询词经编码后的向量;
[0080]
步骤s12,基于所述向量,通过所述提示词生成器获取在当前时间步与所述查询词对应的补全词;
[0081]
步骤s13,以所述补全词为新的查询词进入下一时间步,直至所述提示词生成器输出预设结束符,以所述提示词生成器输出所述预设结束符时作为输入的补全词,作为与初始的查询词对应的备选补全词,并通过所述语言表达模式识别器获取每个所述备选补全词在所述语言表达模式下的标签信息。
[0082]
在实际应用中,在不同的应用场景下,适用的语言表达模式可能会有所不同。例如,在部分业务场景下,适用的语言表达模式可能偏向于简洁明了,在部分业务场景下,适用的语言表达模式可能偏向于生动形象,等等。
[0083]
那么在本发明实施例中,为了确定可以作为查询词对应的补全词的各个备选补全词的同时,确定各个备选补全词适用的语言表达模式,可以设置第一模型的结构包括两个模块,分别是语言编码模块(shared language layer)和多任务学习模块(multi-task layer)。其中,语言编码模块可以对用户输入的查询词进行语言编码处理,而多任务学习模块则可以进一步包括提示词生成器、语言表达模式识别器,其中提示词生成器可以用于生成与当前输入的查询词对应的备选补全词,语言表达模式识别器则可以用于识别每个备选补全词在语言表达模式识别器对应的语言表达模式下的标签信息。
[0084]
需要说明的是,在本发明实施例中,如果需要获取备选补全词在多个不同语言表达模式下的标签信息,那么则可以分别针对不同的语言表达模式训练与之对应的语言表达模式识别器。
[0085]
例如,假设当前存在两种语言表达模式,分别为语言表达模式一和语言表达模式
二,那么则可以分别训练两个语言表达模式识别器,其中一个对应于语言表达模式一,另一个对应于语言表达模式二。分别可以分别获取备选补全词在每种语言表达模式下的标签信息。
[0086]
语言编码模块、提示词生成器以及语言表达模式识别器的模型结构可以根据需求进行自定义设置,对此本发明实施例不加以限定。
[0087]
例如,可以使用两个bilstm+attention结构构建语言编码模块来学习自然语言搜索中的底层编码信息,那么此时可以把用户输入的查询词编码为向量输入到下一层的多任务学习模块中。其中,bi-lstm+attention就是在bi-lstm的模型上加入attention层,在bi-lstm中我们会用最后一个时序的输出向量作为特征向量,然后进行softmax分类。attention是先计算每个时序的权重,然后将所有时序的向量进行加权和作为特征向量,然后进行softmax分类。
[0088]
语言编码模块的具体结构可以依次包括:
[0089]
输入层(input layer):指的是分词后的搜索词前缀,也即用户输入的查询词,比如用户输入的查询词为“中山公园”,那么此时输入层的输入内容包括分词后得到的“中”,“山”,“公”,“园”。
[0090]
嵌入层(embedding layer):将查询词中的每一个分词映射成固定长度的向量;
[0091]
编码层(lstm layer):可以利用双向的lstm对embedding层输出的向量计算,即双向lstm通过对词向量的计算,从而得到更高级别的句子的向量,也即查询词整体的向量;
[0092]
注意力层(attention layer):对双向lstm的结果使用attention加权。
[0093]
其中,lstm(long short-term memory)是长短期记忆网络,可以用来建模语言的长短期信息。这可以让模型对每个字的理解都建立在前面的字上,读完每个字后并不会立马忘掉前面的字,而是持续结合上下文来理解。双向lstm则可以同时学习到前序和后序的信息,但在生成时只使用前序信息。而注意力机制近年来被用在许多深度学习领域,就像人类一样,在阅读时把目光移到下一个字时,注意力随着目光的移动也在转移,这意味着该目标内部以及该场景内每一处空间位置上的注意力分布是不一样的。而注意力机制则可以有效的对分布进行建模,减少信息编码时的冗余和噪音。
[0094]
当然,在本发明实施例中,也可以采用单向lstm建模语言的长短期信息,对此本发明实施例不加以限定。而且,语言编码模块中包含的bilstm+attention结构的具体数量也可以根据需求进行自定义设置,对此本发明实施例不加以限定。例如,语言编码模块中可以包含一个或者多个bilstm+attention结构。
[0095]
输入语料,也即用户输入的查询词在经过语言编码模块进行编码后,以向量的形式输入到多任务学习模块中的不同结构中进行学习。
[0096]
以新流量业务场景下的语言表达模式识别器为例(新流量是点评搜索的一类搜索模式,其语言表达模式可以包括如xx附近的xx、xx最好吃的xx,等等),在训练第一模型时,为了让语言表达模式识别器学习到更符合本地生活中自然语言搜索认知的信息编码,也即新流量业务需求,可以标记更符合本地生活中自然语言搜索认知的补全词样本在该语言表达模式下的标签信息为1,不符合的补全词样本在该语言表达模式下的标签信息则可以设置为0,比如标记补全词样本“中山公园美食”在新流量语言表达模式下的标签信息为0,而“中山公园附近的网红美食”在新流量语言表达模式下的标签信息为1。在计算时,标签信息
(label)为0的词会使损失(loss)增大,模型会被约束为更倾向于学习label为1的表达形式。语言表达模式识别器也可以扩展至其他场景化领域,如电商、酒旅、信息流等。也可以将点击率、转化率或停留时间来作为补全词样本的一种标签信息,建模补全词与点击率、转化率或停留时间等对应信息之间的对应关系。
[0097]
那么此时,上述的多任务学习模块中则可以包括点击率、转化率或停留时间等信息的识别器,以分别获取在不同信息偏好的情况下,通过相应信息识别器获取每个备选补全词在该信息维度下的标签信息,以最终获取在该信息维度偏好下的补全词。
[0098]
此外,为了更好地契合自然语言从左至右的生成模式,本发明实施例中可以首先将语料,也即训练样本(查询词样本和补全词样本)限制为日志中基于前缀召回的提示词,也即下拉词/补全词。此外针对中缀召回,也可以利用正则表达式过滤掉前半部分,将其转换为前缀召回的补全词样本;
[0099]
而且,为了更好的学习符合用户认知的语言表达,本发明实施例中,将日志中用户有曝光但未点击的历史提示词进行过滤,仅保留有曝光且有点击的历史提示词,作为补全词样本放入训练数据集;
[0100]
为了更好地利用少无结果词的搜索日志,并使模型能够针对这类词进行更多层次的生成,在本发明实施例中,针对无结果日志(也即无历史补全词的历史查询词),通过滑动窗口构造法进行划分构造,将历史查询词中前m位构造为前缀,而将历史查询词整体作为与相应前缀对应的补全词样本。
[0101]
为了保证语料信息的充分利用,在本发明实施例中,使用n-gram滑窗等方式构造训练语料,则基于日志,可以生成('中'-》'山')、('中山'-》'公')、('中山公'-》'园')...,等多条训练数据。
[0102]
常见的自然语言生成模型都可以用来作为提示词生成器,比如seq2seq、bert(bidirectional encoder representations from transformers)、gpt(generative pre-training)、rnn(recurrentneural network,循环神经网络)等,为了便于线上环境开发,降低第一模型的体积,可以使用单层lstm(long short-termmemory,长短期记忆网络)来作为提示词生成器,即在进行qac生成时,模型仅通过提示词生成器进行输入和输出。
[0103]
在实际应用中,对于第一模型而言,其在实际使用过程中每次输入之后,经过第一模型一次的预测可以得到本次输入内容补全产生的下一个词,比如输入“中山”经过第一模型的一轮预测之后,可以得到以“中山”为前缀的下一个词的预测值(比如“公”、“医”),进而可以将输出的预测值结合本次输入内容作为新的查询词分别再次输入第一模型,再次分别预测以“中山公”、“中山医”为前缀的下一个词的预测值(比如“园”、“院”)。
[0104]
在本发明实施例中,可以定义通过第一模型进行一轮预测得到当前输入内容补全产生的下一个词的过程为一个时间步,那么在进行查询自动补全的预测过程中,在每个时间步,则可以通过语言编码模块对当前输入的查询词进行编码,获取该查询词经编码后的向量,进而可以基于所述向量,通过所述提示词生成器获取在当前时间步与当前的查询词对应的补全词(例如,在查询词为“中山”的情况下,得到的补全词可以包括“中山医”、“中山公”等),进而则可以当前得到的各个补全词分别作为新的查询词进入下一时间步,直至所述提示词生成器输出预设结束符,以所述提示词生成器输出所述预设结束符时作为输入的补全词,作为与初始的查询词对应的备选补全词,并通过所述语言表达模式识别器获取每
个所述备选补全词在所述语言表达模式下的标签信息。
[0105]
比如,输入一个查询词作为前缀(比如“中山”),可以利用经提示词生成器解码出的topk个词来作为当前下一个词的预测(比如“公”、“医”),再将输出的词作为前一查询词的后缀,得到当前的补全词(比如”中山公”、“中山医”),进而可以将相应补全词作为下一时间步的查询词输入第一模型继续编码并使用提示词生成器生成下一个词的预测,再将输出的词作为前一查询词的后缀,得到当前的补全词(比如“中山公园”、“中山医院”),以此循环,直至提示词生成器针对当前输入的某一查询词输出当前下一个词的预测结果为预设结束符,则可以结束针对该查询词的预测,并且以当前得到的补全词作为初始的查询词对应的一个备选补全词。其中k的取值可以根据需求进行自定义设置,对此本发明实施例不加以限定。
[0106]
当然,在本发明实施例中,最终得到目标补全词也可以为在得到该目标补全词之前的每个时间步内,与该目标补全词部分重合的提示词生成器的输入的备选补全词。
[0107]
例如,输入一个初始的查询词“中山”作为前缀,那么在第一个时间步,可以利用经提示词生成器解码出的topk个词来作为当前下一个词的预测,比如得到“公”、“医”,那么在第二时间步,则可以将上一时间步输出的词作为前一查询词的后缀,得到前一查询词的补全词,比如“中山公”、“中山医”,进而可以分别将“中山公”、“中山医”作为第二时间步的查询词输入提示词生成器,进而可以分别得到“中山公”、“中山医”的下一个词的预测,比如得到“中山公”的下一个词“园”,“中山医”的下一个词“院”,那么在第三时间步,则可以分别以“中山公园”、“中山医院”作为第二时间步的查询词输入提示词生成器,进而可以分别得到“中山公园”、“中山医院”的下一个词的预测,假设此时得到“中山公园”的下一个词的预测结果为指定结束符,那么则可以直接以当前的补全词“中山公园”作为初始的查询词的“中山”的一个备选补全词,当然,也可以该补全词“中山公园”作为中间各个时间步中产出“中山公园”的预测线中产生的补全词为查询词对应的一个备选补全词,也即可以为上述“中山公”作为查询词时对应的一个备选补全词。
[0108]
而对于第二时间步产出的另一补全词“中山医院”,在第三时间步以该补全词作为新的查询词进行预测时,提示词生成器未输出指定结束符,那么则可以继续进入下一时间步进行补全词的预测,直至提示词生成器输出指定结束符。
[0109]
可选地,在本发明实施例中,所述步骤s12进一步可以包括:
[0110]
步骤s121,基于所述向量,获取所述提示词生成器输出的预测词,以及每个所述预测词的得分;
[0111]
步骤s122,获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词,n为正整数。
[0112]
在本发明实施例中,在每个时间步,基于提示词生成器输出的预测词,得到该时间步的补全词时,可以采用贪心搜索的方式,具体地贪心搜索的每一个时间步都取出一个条件概率最大的输出,再将从开始到当前步的结果作为输入去获得下一个时间步的输出,直到提示词生成器给出生成结束的指定结束符。如图3a所示为一种贪心搜索的示意图,每一个时间步(timestep)都取出了条件概率最大一个结果,生成了序列[a,b,c],也即此时上述n的取值为1。而且,此时的指定结束符为《eos》。
[0113]
很明显,这样做将原来指数级别的求解空间直接压缩到了与长度线性相关的大
小。但是由于丢弃了绝大多数的可能解,这种关注当下的策略无法保证最终得到的序列概率是最优的。
[0114]
假设使用单层lstm来作为生成器,即在进行qac生成时,模型仅通过右侧结构进行输入和输出,给定y0,y1,y2,...yt-1。更具体的,提示词生成器的解码过程中使用lstm只能得到一个序列的隐层输出,由隐层状态得到对应的词语概率通过softmax函数得到。
[0115]
最早的解码过程中,t时刻的词语是通过计算概率p(yt|y1,y2,...yt-1,x)得到,然后在词典中采样得到,但是这种结果没考虑前后词语,容易出现各种异常情况,例如:叠词或无意义的助词,例如“你好啊啊啊啊啊”;语句通顺度低,因为只基于前n-1个字;高频词过于集中,比如只产生“附近的xx”这类序列;等等。
[0116]
因此,优选地,可以使用beam search(集束搜索)筛选每个时间步中的查询词的下一个词,通过beam search不是保证每个时间步得到单个词的概率最大,而是要保证y1,y2,...ym这个序列的联合概率最大。
[0117]
beam search是对贪心策略一个改进,在每一个时间步,不再只保留当前分数最高的1个输出,而是保留num_beams(也即上述的n)个。当num_beams=1时集束搜索就退化成了贪心搜索。
[0118]
如图3b是一个集束搜索示例,每个时间步有abcde共5种可能的输出,假设图中的num_beams=2,也就是说每个时间步都会保留到当前步为止条件概率最优的2个序列。
[0119]
具体地,在第一个时间步,a和c是最优的两个,因此得到了两个结果[a],[c],其他三个就被抛弃了;第二时间步会基于这两个结果继续进行生成,在a这个分支可以得到5个候选的补全词,[aa],[ab],[ac],[ad],[ae],c也同理得到5个,此时会对这10个进行统一排名,再保留最优的两个补全词,即图中的[ab]和[ce],假设第一时间步时输入的初始的查询词为“xx”,那么此时第二时间步得到的查询词对应的补全词即为“xxab”和“xxce”;同理,在第三时间步也会从新的10个候选项里再保留最好的两个,最后得到[abd],[ced]两个结果,那么此时第二时间步得到的查询词对应的补全词即为“xxabd”和“xxced”。
[0120]
可选地,在本发明实施例中,所述步骤s122进一步可以包括:
[0121]
s1221,通过所述语言表达模式识别器获取每个所述预测词在所述语言表达模式下的标签信息;
[0122]
s1222,从标签信息满足预设条件的各个预测词中,获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词。
[0123]
如上述,在进行查询词补全时,为了提高最终得到的目标补全词满足不同的业务需求,需要保证最终筛选得到的备选补全词满足相应业务下的语言表达模式。那么,在获取备选补全词的过程中,针对每个时间步,在筛选该时间步内的补全词时,可以先通过语言表达模式识别器获取该时间步提示词生成器输出的每个预测词在相应语言表达模式下的标签信息。
[0124]
进而可以从标签信息满足预设条件的各个预测词中,获取得分最高的n个预测词作为在当前时间步与初始输入的查询词对应的补全词。
[0125]
其中,标签信息所需满足预设条件可以根据需求进行自定义设置,对此本发明实施例不加以限定。例如,为了保证补全词满足语言表达模式,那么则可以设置预设条件为预测词在相应语言表达模式下的标签信息为正向标签,或者是取值大于一定数值(例如0.5、
0.8等),等等。
[0126]
可选地,在本发明实施例中,可以对预测词使用场景化的正则过滤来最终保证所有生成的备选补全词都是满足场景化需求的补全词,如新流量业务场景下的语言表达模式,等等。
[0127]
此外,为了保证备选补全词的可用性,还可以使用离线和近线承载判定等方法来过滤各个时间步中预测词中的无承载词,其中无承载词可以理解为以某一预测词作为搜索词的搜索结果为零或者搜索结果很少,那么该预测词则可以理解为一种无承载词。
[0128]
其次,预测词的概率分布中有时候会采样到重叠的词,比如“美美食”,“附近近”,在本发明实施例中,为了避免备选补全词中出现重叠词,可以在提示词生成器中设置预测词的过滤规则。例如,可以设置在每个时间步在对当前时间步的预测词进行过滤时,首先过滤掉其中存在重叠词的预测词。当然,在本发明实施例中,也可以在获取得到最终的备选补全词之后,对各个备选补全词进行过滤,过滤掉其中包含重叠词的备选补全词,对此本发明实施例不加以限定。
[0129]
可选地,在本发明实施例中,所述步骤s13进一步可以包括:响应于所述提示词生成器输出预设结束符,针对以所述提示词生成器输出所述预设结束符时作为输入的每个补全词,响应于所述补全词满足第一条件,保存所述补全词作为与初始的查询词对应的备选补全词;其中,所述第一条件包括:所述补全词对应的时间步序号不小于最小终止步数,和/或所述补全词中包含与所述语言表达模式适配的指定字符。
[0130]
如上述,在进行补全词的预测过程,需要按照时间步,且每个时间步预测当前输入的每个输入词的下一个词,也即补全词的预测过程可以理解为序列预测过程,且每个时间步的每次分支可以理解为一个序列。例如,对于上述的a,b,c为一个序列,a,b,d、c,e,d也分别均为一个序列。对每个序列而言,每当遇到预设结束符就停止生成并保存提示词生成器输出该预设结束符时作为输入的每个补全词,而其他topn-1的序列则继续往下走,进入下一时间步。此外对于生成了预设结束符时提示词生成器输入的每个补全词而言,为了保证备选补全词满足一定的字数要求,或者是其中包含指定词语,那么则可以保存其中满足第一条件的补全词作为与初始的查询词对应的备选补全词,第一条件可以包括:补全词对应的时间步序号不小于最小终止步数,和/或补全词中包含与所述语言表达模式适配的指定字符,例如满足业务场景下的指定字符,等等。
[0131]
例如,针对某一初始的查询词“xx”,假设在第四时间步,针对作为输入的序列“xxace”提示词生成器输出指定结束符,那么则可以进一步判断该序列构建的补全词“xxace”是否满足第一条件,如果满足则可以保存该补全词作为与初始的查询词对应的一个备选补全词。而对于其他序列作为提示词生成器的输入时,提示词生成器并未输出指定结束符,那么则可以继续进入下一时间步,直至提示词生成器针对每个序列均输出指定结束符,则可以停止本次针对相应初始的查询词“xx”的备选补全词的预测。
[0132]
反之,如果补全词不满足上述第一条件,则可以直接采取直接抛弃策略,不纳入beam window,从当前步继续往后走。将窗口位置留给满足第一条件的其他序列。
[0133]
此外,由于上述的beam search容易陷入局部最优,容易让某个beam起到主导作用,这时解码产生的beam中的候选词很相似,也就是补全词比较单一。为使补全词比较多样化,而不是通用的一些高频词如“附近”、“附近的”、“附近的美食”,本发明实施例中,还可以
针对beam中候选的各个预测词的排序加入惩罚项,也即针对各个预测词的得分加入惩罚项,其中惩罚项的确定方式可以根据需求以及具体的应用场景进行自定义设置,对此本发明实施例不加以限定。
[0134]
加入惩罚项的原因在于,避免一个beam中top 1得分很高时,对应的top 2,3,4,...等得分都很高,例如“三里屯附近餐厅”,“三里屯附近餐馆”等。
[0135]
可选地,在本发明实施例中,所述第一模型还包括两个门控网络,其中一个门控网络连接所述提示词生成器与所述语言编码模块,另一门控网络连接所述语言表达模式识别器与所述语言编码模块,以分别控制所述查询词经编码后的向量在所述提示词生成器与所述语言表达模式识别器中的权重。
[0136]
场景化的qac可以直接使用提示词生成器作为模型进行学习,但训练语料将被限制为场景化的语料(如“新流量”样本),缺乏底层的广义自然语言信息,模型只能学到场景化的语言模式,且训练样本量少。在本发明实施例中,提出用基于门控网络的多任务学习来进行建模,在保证全量语料库可用的情况下,一侧使用场景化的语言表达模式识别器(如“新流量业务场景下的语言表达模式识别器”),一侧使用提示词生成器来联合训练。也即在第一模型中设置两个门控网络,其中一个门控网络连接所述提示词生成器与所述语言编码模块,另一门控网络连接所述语言表达模式识别器与所述语言编码模块,以分别控制所述查询词经编码后的向量在所述提示词生成器与所述语言表达模式识别器中的权重。其中,gates(门控网络)已经被证明在建模多目标任务的结构中具有稳健的正向作用,通过对两个不同的任务学习模型(例如上述的语言表达模式识别器、提示词生成器)进行权重调整,gates学习到在同一个词在不同任务下的表达形式,这里的两个任务就是场景化的语言表达模式识别器和提示词生成器,通过门控权重,不同lstm的编码向量可以有选择地参与两侧的任务。这样做就避免了从语料上通过强人工先验来限制模型学习语言信息的能力,而是通过loss来引导模型去主动学习场景化的表达,对非场景化加以惩罚。
[0137]
需要说明的是,在本发明实施例中,如果针对不同应用场景分别设置不同的语言表达模式识别器,那么相应地,可以分别针对每个语言表达模式识别器设置与之对应的门控网络,以控制每个时间步的查询词经编码后的向量在每个语言表达模式识别器中的权重。当然,也可以设置多个语言表达模式识别器共用一个门控网络,对此本发明实施例不加以限定。
[0138]
如图4a所示为一种第一模型的结构示意图。第一模型的模型结构可以简单分为两个模块,分别是语言编码模块和多任务学习模块。其中,语言编码模块使用两个bilstm+attention来学习自然语言搜索中的底层编码信息,把输入的词语编码为向量输入到下一层的多任务学习模块中。输入语料在经过bilstm+attention网络进行编码后,以向量的形式结合gates机制输入到不同任务中进行学习或预测。如图4b所示为一种bilstm+attention的结构示意图。
[0139]
参照图2,在本发明实施例中,所述步骤120进一步可以包括:
[0140]
步骤121,根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的备选补全词;
[0141]
步骤122,响应于从目标词库中未获取到与所述查询词适配的备选补全词,通过所述第一模型,获取所述查询词在所述语言表达模式对应的备选补全词,作为所述查询词的
目标补全词。
[0142]
在实际应用中,在构建目标词库时,可能无法兼顾全部用户的查询需求,使得在获取得到用户当前输入的查询词以及该查询词的语言表达模式的情况下,在目标词库中无法获取与之适配的备选补全词的情况。那么此时则可以通过已训练完成的第一模型,获取该查询词在相应语言表达模式下的备选补全词,作为所述查询词的补全词。而且,同时还可以基于当前获取得到的查询词在相应语言表达模式下对应的备选补全词更新目标词库。
[0143]
在本发明实施例中,通过已有的前缀语料以及少无结果语料作为输入,离线使用beamsearch等方式循环生成场景化的备选补全词,再经过承载过滤和通顺度打分,将有承载、通顺度较高的词投放进目标词库,最后通过不同的召回方法进行线上展示。
[0144]
本发明实施例中,针对自然语言搜索中的场景化qac任务,通过lstm语言编码网络和多任务建模两种手段,有效达到场景化、自动化的补全词生成目标。一方面,利用bilstm+attention结构编码,结合日志预处理技术,有效提取和编码用户搜索词的语言信息;第二方面,针对场景化的自然语言搜索模式,通过多任务gates架构,对不同任务的语言网络进行调权;第三方面,引入不同应用场景下的语言表达模式识别器,在保证全局语料可用性的情况下辅助提示词生成器进行场景化补全词的生成。而且,语料处理上,利用召回方式对语料进行过滤,同时将少无结果的用户搜索日志进行分割提取;在模型结构上,通过语言表达模式识别器以及多任务gates架构,用提示词生成器解码语言信息,自动化生成场景化补全词。此外,本提案的框架具有高扩展性,内置的语言表达模式识别器与补全词生成器模块都可以被替换为其他模型,但本质上并没有差异。且可以方便地进行离线qac词库补充或进一步优化为线上实时系统。
[0145]
对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
[0146]
参照图5,示出了本发明实施例中一种查询自动补全的处理装置的结构示意图。所述装置可以包括:
[0147]
查询词获取模块210,用于获取用户输入的查询词,以及所述查询词所处业务下的语言表达模式;
[0148]
补全词适配模块220,用于根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的至少一个备选补全词,作为所述查询词的目标补全词,所述目标词库中包含用于进行查询自动补全的至少一个备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息;
[0149]
其中,所述目标词库中的备选补全词以及所述备选补全词的标签信息为基于至少一个查询词,通过第一模型获取得到;所述第一模型通过已知在所述语言表达模式下的标签信息的多个查询词样本,以及所述查询词样本匹配的至少一个补全词样本训练得到。
[0150]
参照图6,在本发明实施例中,所述装置还可以包括:
[0151]
目标词库构建模块230,用于针对每个查询词,通过第一模型获取所述查询词对应的备选补全词,以及每个所述备选补全词在所述语言表达模式下的标签信息,构建所述目标词库。
[0152]
可选地,在本发明实施例中,所述第一模型包括语言编码模块和多任务学习模块,所述多任务学习模块包括提示词生成器、语言表达模式识别器;所述目标词库构建模块230,进一步可以包括:
[0153]
查询词编码子模块,用于在每个时间步,通过所述语言编码模块对当前的查询词进行编码,获取所述查询词经编码后的向量;
[0154]
补全词预测子模块,用于基于所述向量,通过所述提示词生成器获取在当前时间步与所述查询词对应的补全词;
[0155]
备选补全词获取子模块,用于以所述补全词为新的查询词进入下一时间步,直至所述提示词生成器输出预设结束符,以所述提示词生成器输出所述预设结束符时作为输入的补全词,作为与初始的查询词对应的备选补全词,并通过所述语言表达模式识别器获取每个所述备选补全词在所述语言表达模式下的标签信息。
[0156]
可选地,在本发明实施例中,所述补全词预测子模块,进一步可以包括:
[0157]
预测词获取单元,用于基于所述向量,获取所述提示词生成器输出的预测词,以及每个所述预测词的得分;
[0158]
补全词获取单元,用于获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词,n为正整数。
[0159]
可选地,在本发明实施例中,所述补全词获取单元具体可以用于:
[0160]
通过所述语言表达模式识别器获取每个所述预测词在所述语言表达模式下的标签信息;
[0161]
从标签信息满足预设条件的各个预测词中,获取得分最高的n个预测词作为在当前时间步与所述查询词对应的补全词。
[0162]
可选地,在本发明实施例中,所述备选补全词获取子模块,具体可以用于:
[0163]
响应于所述提示词生成器输出预设结束符,针对以所述提示词生成器输出所述预设结束符时作为输入的每个补全词,响应于所述补全词满足第一条件,保存所述补全词作为与初始的查询词对应的备选补全词;
[0164]
所述第一条件包括:所述补全词对应的时间步序号不小于最小终止步数,和/或所述补全词中包含与所述语言表达模式适配的指定字符。
[0165]
可选地,在本发明实施例中,所述第一模型还包括两个门控网络,其中一个门控网络连接所述提示词生成器与所述语言编码模块,另一门控网络连接所述语言表达模式识别器与所述语言编码模块,以分别控制所述查询词经编码后的向量在所述提示词生成器与所述语言表达模式识别器中的权重。
[0166]
参照图6,在本发明实施例中,所述补全词适配模块220,进一步可以包括:
[0167]
第一补全词适配子模块221,用于根据所述查询词以及所述语言表达模式,从目标词库中获取与所述查询词适配的备选补全词;
[0168]
第二补全词适配子模块222,用于响应于从目标词库中未获取到与所述查询词适配的备选补全词,通过所述第一模型,获取所述查询词在所述语言表达模式对应的备选补全词,作为所述查询词的目标补全词。
[0169]
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0170]
另外,在本发明实施例中还提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现前述的任意一种查询自动补全的处理方法。
[0171]
在本发明实施例中还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述的任意一种查询自动补全的处理方法的步骤。
[0172]
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
[0173]
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0174]
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
[0175]
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0176]
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0177]
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(dsp)来实现根据本发明实施例的查询自动补全的处理设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形
式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
[0178]
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1