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

适用于对话系统的以会话内容驱动的问题生成方法

2022-07-22 22:27:10 来源:中国专利 TAG:


1.本发明属于自然语言处理技术领域,特别是涉及一种适用于对话系统的问题生成方法。


背景技术:

2.对话是人与人之间寻求和交流信息的主要手段,而提出有用的问题是有效交流知识的重要前提。问题生成(qg)任务就是指给定各种各样的输入(如原始文本,数据库,语义表示)自动生成问题。虽然不像问题回答(qa)任务那么突出,但在自然语言处理领域中仍然是一个重要的任务,问题生成可以有效地应用于很多领域,包括回答问题、对话系统和教育领域等。
3.传统的问题生成的实现方法依赖于启发式规则,即在语法和词法分析之后,对句子进行句法转换以生成相应的问题。然而,这些方法需要特别精心设计的转换和生成规则,因此导致泛化性很低。随着深度学习方法的不断发展,越来越多的深度学习方法如循环神经网络(rnn)、长短期记忆网络(lstm)以及门控循环单元(gru)用于解决对话系统的技术问题。
4.对话的问题生成任务比单论的问题生成任务更具有挑战性,因为在对话中问题本身往往高度模糊,需要模型对围绕文章文本和对话历史的上下文有更深刻的理解,才能提出有实际意义的问题。大多数问题生成任务研究只使用短文和对话历史作为输入(即不知道答案)生成问题,而答案感知对话问题生成模型则是基于目标答案、对话历史和篇章生成问题。尽管答案感知的对话问题生成模型寻求改善生成的对话流,但目前的答案感知的问题生成模型存在一些问题,包括不准确的共引用对齐、对话不一致、不正确的语法以及无法生成许多不同类型的问题。相关的现有技术主要集中在不知道答案的对话问题生成任务上。
5.人们在生活中通过渐进式问答的形式逐渐的接收以及传递信息以完成最终的信息收取和信息理解,但是传统的机器阅读理解并不具备这一功能。基于这种功能需求,产生了一个用来衡量机器进行对话式问答能力的数据集coqa。在日常对话中,发现提问的主要目的就是要通过答案来提及某个事物或某件事,或者说,在日常对话中,人们并不会注意使用正确的语法格式来表达自己的观点,更多的是简略的表达出自己认为重要的部分,而在做出提问的过程中也并非需要整个答案的全部信息,现有技术都是基于整个答案以及其他的辅助特征来完成的对话问题生成任务。


技术实现要素:

6.本发明旨在提出一种适用于对话系统的以会话内容驱动的问题生成方法,通过引导后续对话内容的场景,实现了自动生成符合预期的并且有意义的问题的任务。
7.本发明的一种适用于对话系统的以会话内容驱动的问题生成方法,该方法包括以下步骤:
8.步骤一:从包含“问题 答案”的数据集中标注和提取答案部分的关键词作为命名实体,以该命名实体作为输入;
9.步骤二:利用约束语言模型clm将作为输入的命名实体生成带有关键词的句子的序列,作为步骤三的输入;具体如下:
10.利用clm模型一方面在当前输入的单词同时生成位于当前输入之前的单词和位于当前输入之后的单词,另一方面在一个句子w=w1,

,w
l
,输入的单词ws把句子划分成两部分,包括:关于前s个单词的前项序列为ws,w
s-1
,w
s-2


,w1;关于后l-s 1个单词的后项序列为ws,w
s 1
,w
s 2


,w
l
,即在每个时间步中,单词嵌入的连接作为输入,生成序列是在最后一个时间步中生成的单词,将嵌入信息提供给一个共享的隐藏层,然后两个输出层分别预测正向和反向序列中的单词,从而生成一个包含单词ws的句子;
11.步骤三:使用端到端模型框架进行问题生成,端到端框架模型包含编码器模块、解码器模块以及连接两者的中间状态向量,编码器模块通过学习输入的名实体,将其编码成一个固定大小的状态向量,继而将该向量传递给解码器模块,解码器模块再通过对这个状态向量的学习来进行输出一个问句;
12.步骤3.1:利用编码器模块通过篇章编码和对话编码两部分来对两个来源的信息进行联合编码:
13.利用一个双向lstm网络模型进行篇章编码,以单词嵌入表示wi和答案位置嵌入表示ai的串联作为输入xi=[wi;ai],使用典型的bio标记方案来表示答案范围,并将段落中的每个标记映射到相应的答案位置嵌入表示b_ans,i_ans,o,b_ans表示答案的开始,i_ans表示答案的中间部分,o表示不是答案部分;整个段落用双向lstm编码器的隐藏状态表示,即其中,m表示序列长度,p表示篇章;
[0014]
进行对话编码,将对话历史c
i-1
建模成“问题-答案”的序列c
i-1
={(q1,a1,),

,(q
i-1
,a
i-1
,)}使用《q》《a》进行问题和答案的标注并连接起来形成一个token序列(《q》,q1,

qm;《a》,a1,
…am
),其中,《q》表示问句标签;《a》表示答案句标签;
[0015]
使用一个token级别的双向lstm来获得问答对的上下文的表示:
[0016][0017]
其中,i表示是轮数,表示token级别的双向lstm得到的问答对的隐向量表示,m与q1,

qm中的m表示对应;
[0018]
在不同的问答轮数中采用上下文级lstm来学习上下文的依赖关系:
[0019][0020]
为下一轮对话生成一个问题qi,表达式如下:
[0021][0022]
其中,p是一个给定的篇章,c
i-1
={(q1,a1,),

,(q
i-1
,a
i-1
,)}是对话历史,ai是当前对话的答案;
[0023]
步骤3.2:利用包含注意力机制的lstm网络模型对进行解码,所生成的一个新的序列将作为生成的问题:
[0024]
在每个解码时间步t,由读取单词嵌入w
t
和前一解码时间步t-1的隐藏状态来生成当前的隐藏状态:
[0025][0026]
在每个解码时间步,使用标准的注意力机制分别计算篇章注意力(α1,

,αm)和对话注意力(β
1,1


,β
1,m


;β
i-1,1


,β
i-1,m
):
[0027][0028][0029][0030][0031][0032]
其中,w
p
,w
ω
,wc表示可学习的权重,分别表示对应隐藏状态的权重;αj、β
i-k,j
表示对应隐藏状态的归一化表示;e
total
表示权重之和;
[0033]
最后得出上下文向量和最终的词汇分布:
[0034][0035][0036]
其中,wv、wa表示可学习的权重,c
t
表示上下文向量表示,pv表示最终的词汇分布,bv表示可学习的参数;
[0037]
步骤四:利用门控自注意力机制进行对话流建模:
[0038]
对答案位置嵌入进行门控自注意力机制,从整个段落中汇总与答案相关的信息以生成问题,学习turn number嵌入表示和chunk嵌入表示之间的潜在对齐方式:
[0039][0040][0041][0042][0043]
其中,ws、wf、wg表示可学习的权重,

表示逐元素乘法,用代替来计算篇章注意力,表示增强的篇章表示与自身相匹配的结果,表示自匹配表示法的结果,表示与原始表示法相结合的结果,表示通过门求和得到的向量表示,为自匹配增强表示;
[0044]
得到对话流损失函数为:
[0045][0046]
其中,λ1,λ2表示超参数,ωj∈ces/hes;
[0047]
总的损失函数为:
[0048][0049]
其中,表示序列生成中的负对数似然损失函数,表示如下:
[0050][0051]
其中,qi表示当前生成的问题;p表示篇章;ai表示当前答案;c
i-1
表示对话历史。
[0052]
与现有技术相比,本发明不同于传统的对话问题生成(cqg)任务,只以答案句中的某一部分作为输入,而不以整个答案句作为输入,来生成相应的问题,因而流程更为简单,自动生成符合预期的并且有意义的问题的效率更高。
附图说明
[0053]
图1为本发明的适用于对话系统的以会话内容驱动的问题生成方法整体流程图;
[0054]
图2为本发明的适用于对话系统的以会话内容驱动的问题生成方法实施例流程图;
[0055]
图3为本发明的适用于对话系统的以会话内容驱动的问题生成方法实施例模型框架图。
具体实施方式
[0056]
下面结合附图和具体实施例对本发明技术方案作进一步详细描述。
[0057]
如图1所示,为本发明的适用于对话系统的以会话内容驱动的问题生成方法整体流程图。如图2所示,为本发明的适用于对话系统的以会话内容驱动的问题生成方法实施例流程图。如图3所示,为本发明的适用于对话系统的以会话内容驱动的问题生成方法实施例模型框架图。结合实施例对该流程所具体包括以下步骤:
[0058]
步骤一:从包含“问题 答案”的数据集中标注和提取答案部分的关键词作为命名实体,以该命名实体作为输入进行数据处理:
[0059]
数据是来自于斯坦福大学提出的一个用于构建对话问答系统的大型数据集coqa(conversational question answering),coqa数据集是一个用来衡量机器进行对话式问答能力的数据集,包含来自8k个对话的127k个“问题 答案”对,类似人们的日常对话;从数据集中提取的每个数据样本包含4部分即篇章(对话背景)、问题、答案和历史对话(前n轮的问答对)(本步骤中是对数据集中的答案句部分进行处理),然后过滤掉答案为“未知”的“问题 答案”对(因为信息量太少,无法生成有效的问题)。然后将数据集随机划分成80%的训练集、10%的验证集和10%的测试集。
[0060]
提取答案跨度的具体定义:coqa中的抽象答案大多是在上下文中发生的小修改。从上下文预测跨度的模型可实现的最大性能的f1值为97.8。因此,本发明从答案f1得分最高的段落中找到提取答案跨度,并将其作为答案位置嵌入的答案。
[0061]
历史对话轮数的选择的具体定义:之前相关工作对话中的大多数问题在两个回合
的范围内具有有限的依赖性,因此本发明选择历史回合数为n=3,以确保目标问题有足够的会话历史信息来生成,并避免从各回合的问答对中引入过多的噪音。
[0062]
步骤二:利用约束语言模型clm将输入生成带有关键词的句子的序列,这个序列可以简要的概括整个答案部分,达到残缺信息补全的作用,作为后续任务(问题生成任务)的输入,需保证输入中的单词出现在生成的序列;具体如下:
[0063]
clm模型是包括一个共享的隐藏层和两个输出层,输入的单词被送到隐藏层,然后,两个输出层分别预测前向和后向序列中的单词;
[0064]
利用clm模型一方面在当前输入的单词同时生成位于当前输入之前的单词和位于当前输入之后的单词,另一方面在一个句子w=w1,

,w
l
,输入的单词ws把句子划分成两部分,包括:关于前s个单词的前项序列为ws,w
s-1
,w
s-2


,w1;关于后l-s 1个单词的后项序列为ws,w
s 1
,w
s 2


,w
l
,即在每个时间步中,单词嵌入的连接作为输入,生成序列是在最后一个时间步中生成的单词,将嵌入信息提供给一个共享的隐藏层,然后两个输出层分别预测正向和反向序列中的单词,从而生成一个包含单词ws的句子;
[0065]
clm模型是包括一个共享的隐藏层和两个输出层,输入的单词被送到隐藏层,然后,两个输出层分别预测前向和后向序列中的单词;单词嵌入的连接就表示输入的单词序列;生成部分表述生成的带有ws的序列;
[0066]
步骤三:使用端到端模型框架进行问题生成,具体处理如下:端到端框架模型主要包含了三个部分,编码器模块、解码器模块以及连接两者的中间状态向量,编码器模块通过学习输入的名实体,将其编码成一个固定大小的状态向量,这个向量就可以看成是输入的名实体的语义,继而将该向量传递给解码器模块,解码器模块再通过对这个状态向量的学习来进行输出一个问句;
[0067]
步骤3.1:利用端到端模型框架的编码器模块对上述的生成序列进行编码,由于会话问题依赖于篇章和对话历史的某部分,通过篇章编码器和对话编码器两部分来对两个来源的信息进行联合编码:
[0068]
篇章编码器是一个双向lstm(长短期记忆网络),以单词嵌入表示wi和答案位置嵌入表示ai的串联作为输入xi=[wi;ai],使用典型的bio标记方案来表示答案范围,并将段落中的每个标记映射到相应的答案位置嵌入表示(即b_ans,i_ans,o),其中,b_ans表示答案的开始,i_ans表示答案的中间部分,o表示不是答案部分;整个段落用双向lstm编码器的隐藏状态表示,即其中m为序列长度,p表示篇章,也就是对话背景。
[0069]
对话编码器为一个分层结构分为两层即token级别的双向lstm和上下文“context”级的双向lstm,用于对话历史建模,将对话历史c
i-1
建模成“问题-答案”的序列c
i-1
={(q1,a1,),

,(q
i-1
,a
i-1
,)}使用《q》《a》进行问题和答案的标注并连接起来变成一个token序列(《q》,q1,

qm;《a》,a1,
…am
),其中,《q》表示问句标签;《a》表示答案句标签;
[0070]
使用一个token级别的双向lstm来获得问答对的上下文的表示:
[0071][0072]
其中,i表示轮数,并且k∈[1,i),表示token级别的双向lstm得到的问答对的隐向量表示,m与q1,

qm中的m表示对应;
[0073]
由于在对话中会出现跨回合的依赖关系,因此在不同的问答轮数中采用上下文级
lstm来学习上下文的依赖关系:
[0074][0075]
有关问题定义:
[0076]
给定一个篇章p(对话背景),一个对话历史c
i-1
={(q1,a1,),

,(q
i-1
,a
i-1
,)}和当前对话的答案ai,为下一轮对话生成一个问题qi,表达式如下:
[0077][0078]
步骤3.2:利用端到端模型框架的解码器模块对进行解码,解码器模块是一种预测单词概率分布的包含注意力机制的lstm,所生成的一个新的序列将作为生成的问题:本步骤的解码器是一个带有attention机制的lstm;
[0079]
在每个解码时间步t,由读取单词嵌入w
t
和前一解码时间步t-1的隐藏状态来生成当前的隐藏状态:
[0080][0081]
为了有效地生成一个基于篇章背景的对话问题,解码器模块在每个解码时间步应该决定更多地关注篇章的隐藏状态和对话历史的隐藏状态淡化token级的对话隐藏状态使用标准的注意力机制分别计算篇章注意力(α1,

,αm)和对话注意力β
1,1


,β
1,m


;β
i-1,1


,β
i-1,m
):
[0082][0083][0084][0085][0086][0087]
其中,w
p
,w
ω
,wc表示可学习的权重,分别表示对应隐藏状态的权重;αj、β
i-k,j
表示对应隐藏状态的归一化表示,e
total
表示权重之和;
[0088]
最后得出上下文向量和最终的词汇分布:
[0089][0090][0091]
其中,wv,wa表示可学习的权重,c
t
表示上下文向量表示,pv表示最终的词汇分布,bv表示可学习的参数;
[0092]
步骤四:进行对话流建模,加入了门控自注意力机制,有两个目的:其一是对答案位置嵌入进行自注意力,从整个段落中汇总与答案相关的信息以生成问题;其二是学习turn number嵌入表示和chunk嵌入表示之间的潜在对齐方式:
[0093][0094][0095][0096][0097]
其中,ws、wf、wg表示可学习的权重,

表示逐元素乘法,用代替来计算篇章注意力,表示增强的篇章表示与自身相匹配的结果,表示自匹配表示法的结果,表示与原始表示法相结合的结果,表示通过门求和得到的向量表示,为自匹配增强表示;
[0098]
对当前要生成的问题有所帮助的句子,将其称为当前证据句(ces);对会话历史中的问题有帮助且与当前问题无关的句子,将其称为历史证据句(hes),使对话流模型通过篇章注意力做到更加关注ces而更多的忽略hes,得到对话流损失函数为:
[0099][0100]
其中,λ1、λ2表示超参数,ωj∈ces/hes;
[0101]
总的损失函数为:
[0102][0103]
其中,表示序列生成中的负对数似然损失函数,表示如下:;
[0104][0105]
其中,qi表示当前生成的问题,p表示篇章,ai表示当前答案,c
i-1
表示对话历史。
[0106]
本发明主要使用bleu和rouge-l得分去评估生成的问题与ground truth之间的n-gram相似性。
[0107]
本发明在coqa数据集上进行对话问题生成任务实验,实验结果与多个对话问题生成模型进行对比,分别为:seq2seq model、pgnet和nqg。seq2seq model是一个基本的编码器-解码器序列模型,已广泛应用于和对话生成。将答案依据和对话历史作为输入序列连接起来。pgnet是指针生成器网络,它将篇章、对话历史和当前答案连接为输入的序列。nqg是一个强大的基于注意力的问题生成任务的神经网络方法,输入与上面的seq2seq model相同。
[0108]
基于本发明的模型,本发明设计了消融实验来证明提出的对话问题生成任务模型的有效性。消融实验的对比设置如下:
[0109]-noclm:不使用clm先生成句子;
[0110]-allans(noclm):将完整的答案句作为输入。
[0111]
如表1所示,为在coqa数据集上本发明方法与三种基线模型的bleu和rouge-l得分对比以及消融实验的结果。
[0112]
表1
[0113] bleurouge-lseq2seq model7.3825.84pgnet8.1328.87nqg13.2631.15-noclm14.9132.56-allans(noclm)16.2034.05本发明*15.87*33.73*
[0114]
通过表1中的实验结果对比,我们发现,本发明的结果对比基线模型有所提升。并且在没有clm模型(noclm)来将句子补全的情况下,实验得出的结果与本发明的完整模型相比有一定程度上的降低,这是由于在没有对答案进行补全的情况下,可获取的信息较少,因此生成的问题质量会降低;在allans(noclm)的情况下,结果最好,但与本发明的结果相比,两者的结果相差很小。
[0115]
从对比实验和消融实验的结果和分析,可以得出本发明的有益效果:由于本发明的工作,与传统的对话问题生成任务相比,在数据的输入上截取的是答案句中的名实体,在经过clm生成句中后与原本的答案句有一定的偏差,因此生成的问题的结果较以完整答案输入的结果有一定的降低,但两者的结果相差不大。基于人们日常聊天的习惯,在日常对话中,人们在回答问题的时候,往往只关注表达出一些重要的名实体,而不会以严谨的语法格式来进行回答别人提出的问题,根据结果与分析表面本发明足以对人们日常对话中的人们表达的关键信息进行补全,并提出合理有效的问题来引导整个的对话。
[0116]
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献