基于历史位置编码的多轮对话问答方法及系统

文档序号:36402243发布日期:2023-12-16 07:04阅读:27来源:国知局
基于历史位置编码的多轮对话问答方法及系统

本发明涉及语音文本处理技术,具体涉及基于历史位置编码的多轮对话问答方法及系统。


背景技术:

1、多轮对话问答任务(cqa)是对话ai的一个主要研究方向。此前大部分研究是在机器阅读理解(mrc)上,围绕着单轮问答(qa);由于处理文本理解、对话以及上下文的的复杂性,机器阅读理解mrc一直处于一个不尽人意的地步。

2、随着自然语言理解(nlu)的进步,依赖于bert、gpt、roberta等语言模型和引入大规模的通用数据集,例如coqa和quac等,同时融合了深度学习和强化学习,多轮对话问答(cqa)重新获得了发展,使其实现成为可能。

3、现有技术中多轮对话问答主要分为三种,第一种是基于注意力推理的序列模型;第二种是基于flow方法,分为集成流(if)和集成图流(ig),类似于循环模型通过序列传播上下文信息,flow是一系列潜在表示,沿对话进程的方向传播推理通过提供在先前对话中推理过程中产生的中间潜在表征,进入当前问题的上下文推理;第三种是使用上下文集成层的预训练语言模型,大规模的预训练语言模型,诸如bert、gpt、roberta等。

4、现有的多轮对话问答技术所面临的主要问题有三点。第一点是多轮对话通常是累加和相关的话题,对话要么往下进行,要么转移话题,要么返回主题,以及澄清主题或者对实体的定义,这些对话可能的行为要求模型能够从历史记录中联系上下文,因此编码模块不仅需要编码段落p和答案ai,还需要编码对话历史记录。第二点则是虽然由于bert在机器阅读理解方面取得了显著的成果,但由于编码长度的限制(例如,512个wordpiecetokens),一个长文档通常被分割成多个独立阅读的块状;这导致阅读领域被限制在个别的块上,没有信息协作来进行长文档的机器阅读理解。第三点则是,在对人们一般对话的信息观察中发现,起始对话往往焦点集中在开始的段落上,随后对话的焦点开始转移到后面的段落块中,因此希望模型可以捕捉到其中焦点转移的过程,而不仅仅只是简单的通过词汇上的匹配或者意译。


技术实现思路

1、有鉴于此,本发明提出一种基于历史位置编码的多轮对话问答方法及系统,通过嵌入历史记录位置编码,解决了现有技术的多轮对话中无法有效地联系历史上下文的问题。

2、本发明的方法通过以下技术方案实现:一种基于历史位置编码的多轮对话问答方法,包括如下步骤:

3、s1、获取对话问答的训练数据,包括问题、答案、与对话内容相关的阅读文档;

4、s2、训练albert问题编码器;

5、s3、对历史记录采用位置编码嵌入对话问答的当前问题中,将嵌入结果输入albert问题编码器,编码后得到输出序列;

6、s4、根据编码后的输出序列预测多轮对话问答的答案。

7、优选地,步骤s2包括:

8、s21、让albert问题编码器学习两组参数,用b代表开始向量,e代表结束向量;

9、s22、将训练数据中的问题q和阅读文档p构造成输入数据,然后再对输入数据词元化并通过albert问题编码器得到相应的输出词元;

10、s23、计算每一个输出词元与开始向量b、结束向量e的概率;

11、s24、选取最大开始概率的词元与答案a的开始标签计算交叉熵损失函数,选取最大结束概率的词元与答案a的结束标签计算交叉熵损失函数;

12、s25、以交叉熵损失函数作为代价函数,训练albert问题编码器。

13、优选地,步骤s3包括:

14、s31、将对话问答的当前问题q1与历史记录ht按照前后格式首尾拼接在一起组成输入序列;

15、s32、对输入序列进行词元化,分别得到词嵌入、块嵌入和位置嵌入,并将词嵌入、块嵌入和位置嵌入相加得到albert问题编码器的通常输入表示;

16、s33、将历史记录ht与当前问题q1进行规则匹配得到历史位置编码;将通常输入表示与历史位置编码进行点积相乘,从而将历史记录采用位置编码嵌入对话问答的当前问题中;

17、s34、将点积相乘的结果输入albert问题编码器,编码后得到输出序列。

18、进一步优选地,若当前问题q1与历史记录ht拼接之后超过albert问题编码器的最大编码长度限制,则步骤s3还包括:

19、s35、采用ror机制处理历史位置编码的嵌入;

20、s36、通过ham机制计算对话转折注意力。

21、进一步地,步骤s35包括:

22、s351、以滑动窗口的方式对历史记录ht进行分割,将其分成均匀的n份历史子记录,再将n份历史子记录分别与当前问题q1进行拼接,得到拼接后的n份输入子序列;

23、s352、分别将n份输入子序列作为albert问题编码器的输入,编码得到相应的n个输出子序列;

24、步骤s36包括:

25、s361、将步骤s352得到的n个输出子序列中的[cls]标志位拼接成句子级表示,其余部分则拼接成词级上下文表示pt;

26、将句子级表示通过归一化指数函数计算得到其注意力权重;

27、将与对话内容相关的阅读文档分成n个,然后分别通过文档阅读器得到相应的n个文档向量;将n个文档向量拼接在一起,得到文档向量矩阵p;

28、将句子级表示与文档向量矩阵p点积相乘得到文档稠密向量,将词级上下文表示与注意力权重点积相乘得到问题稠密向量,然后将文档稠密向量与问题稠密向量相加得到输出向量。

29、本发明的系统所采用的技术方案如下:一种基于历史位置编码的多轮对话问答系统,包括以下模块

30、训练数据获取模块,用于获取对话问答的训练数据,包括问题、答案、与对话内容相关的阅读文档;

31、albert问题编码器训练模块;

32、历史位置编码嵌入模块,用于将对历史记录采用位置编码嵌入对话问答的当前问题中,将嵌入结果输入albert问题编码器,编码后得到输出序列;

33、预测模块,根据编码后的输出序列预测多轮对话问答的答案。

34、从以上技术方案可知,本发明通过位置编码嵌入历史记录的方式获取带有位置信息的历史编码层,解决了多轮对话中历史记录无法精确编码的问题,采用ror(read-over-read,重读)方法,避免了受到编码长度的制约,同时对编码器的输出结果采用了类似于ham(历史注意力机制,history attention mechanism)获得历史注意力转折,可以有效地捕捉到对话中的焦点转移,提高了问答的准确性和效率。本发明与现有技术相比,具有以下优点和有益效果:

35、(1)本发明通过嵌入历史记录位置编码,可以有效的获取历史记录,使多轮对话问答模型能够从历史记录中联系上下文并进行回答。

36、(2)进一步地,本发明采用ror(重读)机制,可以避免多轮对话问答模型受到编码长度的限制(如bert限制在512范围内),能够读取更长的历史记录信息。

37、(3)进一步地,本发明采用ham历史注意机制,计算每个编码器的上下文输出对应的历史记录对话转折的注意力,从而解决了多轮对话问答模型捕捉不到焦点转移的问题。

38、(4)本发明通过结合ror重读机制和ham历史注意力机制,形成了基于albert的历史编码和ror结合ham机制的多轮对话问答模块,可以捕捉到对话过程中焦点转移的过程,而不仅仅只是简单的通过词汇上的匹配或者意译,使对话更加流畅自然。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1