一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于预训练语言模型的对话式信息检索方法

2022-11-28 13:46:37 来源:中国专利 TAG:


1.本发明涉及信息检索方法技术领域,特别涉及基于预训练语言模型的对话式信息检索方法。


背景技术:

2.新一代对话助手(如alexa、siri、cortana、bixby和谷歌assistant)的普及,拓宽了会话式信息搜索方法的应用场景,增加了对话式信息检索技术重要性。会话式信息检索任务的目标是会话模型能够理解交互式搜索过程中的用户行为,根据查询轮次的进行表达用户的需求转移。同时信息需求具有复杂性(需要多轮的细化)、多样性(跨越不同的信息类别)、开放领域(不需要访问专家领域的知识)和可回答的(在文章集合中有足够的覆盖)的特点。会话式信息检索在2020国际文本信息检索大会提出的下一代信息检索的方向之一。明确了会话式信息检索的特点:能够满足用户复杂的信息需求而受到青睐,它可以通过对话接口和便携设备为用户提供方便和精确的信息访问。
3.目前,解决会话式检索的解决方法主要分为两种,第一种是使用一个采用gpt-3的生成式方法,把会话式查询重写为单独的与上下文无关的查询。第二种方法是使用把查询和文档分别表示成稠密的向量表示。会话式查询的表示使用所有历史查询和当前的查询拼接起来得到当前的查询表示。而文档的表示通过沿用之前ad hoc检索的文档表示,因为两者之间不会有太多变化。最后使用稠密向量检索。然而,并不是所有的历史查询对于当前的查询都是有用的。因此我们通过制定规则选择有用的历史信息,同时根据对比学习方法构建模型,使得我们组合的查询的表示不断逼近手工重写的查询,得到更少噪音,更有用的查询编码表示,有利于会话式检索模型找到与当前查询的上下文相关的文档。
4.中国专利公开了《预训练对偶注意力神经网络语义推断对话检索方法及系统、检索设备、存储介质》,专利号为cn202110795247.7,该方案使用了基于二值独立假设,假设词项间相互独立的bm25模型。通过计算查询词项在文档中出现的次数,以及查询词项在众多文档中的“稀有程度”(逆文档频率)来衡量查询和文档的相关性。然而二值独立假设是不准确的,因为词项的语义是上下文相关的,不是独立的。该方案没有通过上下文信息筛选出对当前查询有用的信息,导致检索结果包含了无关信息,正确率降低。因为一部分无关信息支持二值独立假设,所以难以将其进一步优化。


技术实现要素:

5.现有对话式信息检索技术在输入查询时为了考虑上下文信息将所有历史查询拼接作为输入。但并不是所有历史信息都与当前查询是有用的,无关的信息会为模型引入噪音,导致检索结果的正确率降低。针对以上问题,本发明提出了一种基于预训练语言模型的对话式信息检索方法,以提高信息检索结果的正确率。
6.本发明的技术方案,包括以下步骤:s1:利用现有的文本表示模型bert得到文档的编码表示。
7.s2:对于一组对话式查询q
1:k
,针对第k轮次的查询qk,找到与该查询需求相关的历史查询q
k-i
,(0<i<k)。将两者拼接后输入文本表示模型bert。
8.s3:通过对比学习,使学习后模型构建的查询的编码的表示,接近手工重写的查询的编码表示。
9.s4:一组对话式查询的每一条查询语句及其历史相关的查询拼接后输入s3训练好的模型进行编码,计算与s1得到的文档编码表示的语义相似度,并按由大至小对文档进行排序。
10.s5:利用对比学习方法构建双塔式细粒度语义交互模型,利用s4构建的集合训练,交叉熵损失计算模型的排序损失。
11.s6:利用s5训练好的模型对测试集查询进行检索,得到排序结果。
12.作为优选,s2中所述的与该查询需求相关的历史查询q
k-i
,(0<i<k),以如下规则对历史信息进行选择:对于当前查询qk,如果出现代词

it



he



she



they

or

them

,则把当前查询与上一个历史查询q
k-1
拼接,另外检查查询q
k-1
是否同样出现

it



he



she



they

or

them

,如有,则继续往上一个历史信息追溯,并把上一个历史查询q
k-2
与当前的查询拼接起来。如果没有,则不再往前追溯。
13.其中q
k-i
为与查询qk相关的历史轮次的查询。而对于手工重写的查询,仅使用单条查询记录即可得到编码表示,如下所示:该方案仅选择出现相关关键词的句子,而非所有句子,在历史信息中进行筛选,正确性有所提高,而且本方案仅使用相关的信息,达到目标精确度所需的样本数量小于选择所有句子的方案,更符合对话式信息检索的需求。
14.进一步的,s2中公式进一步的,s2中公式中查询和文档的编码表示,为隐藏层每个结点的输出(hidden_states)。保留隐藏层的输出。
15.该步骤用于在语义交互过程中捕获细粒度的语义相似性。并且解决了cls结果(pooler_output)不适合文本表示的问题。
16.作为优选,s3所述的损失函数具体为:其中n为查询的最大允许输入长度,q
*
为手工重写的查询的编码表示,q

为查询的编码表示。
17.该损失函数表示查询的表示与手工重写的查询的编码表示之间的差距,通过该损失函数降低两者的差距,细化训练模型。利用对比学习,对手工重写的查询的编码表示q
*
和构建的查询的编码表示q

分别进行训练,使训练后模型生成的查询的编码表示逼近手工重写的查询的编码表示。
18.作为优选,s4利用s3训练好的模型执行会话式检索,对查询的结果进行排序,在查询结果中截取最相近的n篇文档,对文档进行标注,从排序最接近的前n个结果中选择与查询相关的正例和与查询不相关的负例,构建排序模型的训练数据集。根据该结果构建排序模型的三元组:《qk,d

,d-》其中d

为标注为与查询qk相关的文档,而d-为一组负相关的文档。
19.正样本与负样本相似但不同,通过该方法减少噪音对模型的影响,提高模型的分辨能力。
20.进一步的,其中与查询不相关的负例数量应控制在200个以内,优选为50-100个。
21.虽然只要选择的n个结果中存在正例和负例,并不是全部与查询语句相关或全部不相关,则可以构建排序模型的训练数据集。从数量角度上看理论上数据越多,结果越好,但相似度越低的结果必然越不相关,造成数据偏见。因为偏见会影响训练数据集的可靠性,因此,使用的负例数量应在200个以下,选择50-100个负例样本,达到的结果较好。
22.作为优选,s5,利用bert构建双塔式语义匹配模型,利用s4构建的训练集训练模型m3。其中通过交叉熵损失计算出模型排序损失为:其中d


和d
′-分别是查询qk的相关文档和不相关文档的编码表示。sim(q
′k,d


)表示查询和正例文档的相似度,sim(q
′k,d
′-)表示查询和负例文档的相似度。
23.作为优选,s6,使用训练好的模型执行会话式检索。查询q和文档d的语义相似度的计算方式为:一方面,计算文档中与每个查询词最相近的词的语义相似度的累加和,有助于捕获与查询的细粒度相关性。另一方面,计算查询和文档的平均向量表示的相似度。再将两者相加作为查询和文档的语义相似度。其计算方式为:其中q
′i为输入查询q的第i个查询词的编码表示,d
′j为输入查询d的第j个词的编码表示。len(q

)为查询token的个数。len(d

)为文档token的个数。
24.通过相似度的值对结果进行排序,得到优化后的会话式检索结果。
25.在现实场景中,与查询语义“最相近”的信息是最重要的信息,本技术方案打破了现有技术通过二值独立等假设,获得理论上更高精确度的技术偏见,从语义最相近的信息入手,提高了结果的正确性。
具体实施方式
27.实施例1基于预训练语言模型的对话式信息检索方法的具体实施方式包括以下步骤:s1:利用现有的文本表示模型bert得到文档的编码表示。
28.s2:对于一组对话式查询q
1:k
,针对第k轮次的查询qk,找到与该查询需求相关的历史查询q
k-i
,(0<i<k)。将两者拼接后输入文本表示模型bert。
29.s2中所述的与该查询需求相关的历史查询q
k-i
,(0<i<k),以如下规则对历史信息进行选择:对于当前查询qk,如果出现代词

it



he



she



they

or

them

,则把当前查询与上一个历史查询q
k-1
拼接,另外检查查询q
k-1
是否同样出现

it



he



she



they

or

them

,如有,则继续往上一个历史信息追溯,并把上一个历史查询q
k-2
与当前的查询拼接起来。如果没有,则不再往前追溯。
30.其中q
k-i
为与查询qk相关的历史轮次的查询。而对于手工重写的查询,仅使用单条查询记录即可得到编码表示,如下所示:其中,s2中公式:其中,s2中公式:中查询和文档的编码表示,为隐藏层每个结点的输出(hidden_states)。保留隐藏层的输出。
31.s3:通过对比学习,使学习后模型构建的查询的编码的表示,接近手工重写的查询的编码表示。
32.该步骤使用的损失函数具体为:其中n为查询的最大允许输入长度,q
*
为手工重写的查询的编码表示,q

为查询的编码表示。
33.该损失函数表示查询的表示与手工重写的查询的编码表示之间的差距,通过该损失函数降低两者的差距,细化训练模型。利用对比学习,对手工重写的查询的编码表示q
*
和构建的查询的编码表示q

分别进行训练,使训练后模型生成的查询的编码表示逼近手工重写的查询的表示。
34.s4:一组对话式查询的每一条查询语句及其历史相关的查询拼接后输入s3训练好的模型进行编码,计算与s1得到的文档编码表示的语义相似度,并按由大至小对文档进行排序。在查询结果中截取最相近的n篇文档,对文档进行标注,从排序最接近的前n个结果中选择与查询相关的正例和与查询不相关的负例,构建排序模型的训练数据集。根据该结果构建排序模型的三元组:《qk,d

,d-》其中d

为标注为与查询qk相关的文档,而d-为一组负相关的文档。
35.其中与查询不相关的负例数量应控制在200个以内。
36.s5:利用对比学习方法构建双塔式细粒度语义交互模型,利用s4构建的集合训练,交叉熵损失计算模型的排序损失。
37.利用bert构建双塔式语义匹配模型,利用s4构建的训练集训练模型。其中通过交叉熵损失计算出模型排序损失为:
其中d


和d
′-分别是查询qk的相关文档和不相关文档的编码表示。sim(q
′k,d


)表示查询和正例文档的相似度,sim(q
′k,d
′-)表示查询和负例文档的相似度。
38.s6:利用s5训练好的模型对测试集查询进行检索,得到排序结果。
39.使用训练好的模型执行会话式检索。查询q和文档d的语义相似度的计算方式为:一方面,计算文档中与每个查询词最相近的词的语义相似度的累加和,有助于捕获与查询的细粒度相关性。另一方面,计算查询和文档的平均向量表示的相似度。再将两者相加作为查询和文档的语义相似度。其计算方式为:其中q
′i为输入查询q的第i个查询词的编码表示,d
′j为输入查询d的第j个词的编码表示。len(q

)为查询token的个数。len(d

)为文档token的个数。
40.通过相似度的值对结果进行排序,得到优化后的会话式检索结果。
41.实施例2根据实施例1所述的基于预训练语言模型的对话式信息检索方法的实施方式,其中步骤s4中,与查询不相关的负例数量为100个。通过选取足够数量的与查询不相关的负例,能够降低因为不相关结果自然的低相关性造成的偏见。
42.实施例3根据实施例1所述的基于预训练语言模型的对话式信息检索方法的实施方式,其中步骤s4中,与查询不相关的负例数量为50个。通过降低与查询不相关的负例数量,能够更好的处理样本较小,不相关负例数量不足的情况。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献