APP下载

基于双注意力的段落级问题生成研究

2022-09-28曾碧卿裴枫华徐马一丁美荣

中文信息学报 2022年8期
关键词:段落向量注意力

曾碧卿,裴枫华,徐马一,丁美荣

(华南师范大学 软件学院,广东 佛山 528225)

0 引言

问题生成(Question Generation,QG)是指从给定的数据中自动生成语法正确、通顺流畅的相关问句[1]。在文本中,根据输入文本的句子数量,问题生成可分为句子级和段落级两个粒度。其中,段落级问题生成的输入文本包含一个以上的句子。

作为一项重要的自然语言生成任务,问题生成具有挑战性,其要求对输入的上下文进行深层的理解和推理,能够生成语义相关的问题。问题生成的用途广阔,可以应用在自动问诊、智能对话、教育辅导[2]等领域。在机器阅读理解上,问题生成能够快速产生丰富的问答对,有效减少人工标记数据的工作量,可作为自动构建知识库的重要手段[3]。如表1所示,加粗单词表示标准答案,问题生成的目标是产生与标准问题相似的句子,同时能够被给定的标准答案所回答。

表1 问题生成示例

对于基于文本的问题生成,早期的研究主要是基于问题模板或转换规则[2,4],通常使用语法和语义分析信息来决定提问的内容和问句类型,然后对原文进行语序调整和单词替换,因而生成的问题多为事实性类型,问题难度和多样性不足。

神经网络在自然语言处理领域,如机器翻译、文本摘要等表现出更优的性能,其同样适用于问题生成任务。近年对问题生成的研究主要使用了基于序列到序列的神经网络模型[5],即编码-解码架构,实现了自动问题生成。Du等[6]指出在SQuAD数据集[7]中,约20%的问题需要段落级的信息才能完成提问过程。例如,表1的标准问题生成过程需要结合跨句子的信息。从该数据特点来看,段落更适合作为输入文本。然而,由于段落中包含较多与问题相关度低的内容,进行问题生成时容易受到这些冗余信息的干扰,导致与句子级输入相比,生成的问题质量更低。为了提高问题的相关性,除了充分利用标准答案的位置、语义信息同段落上下文进行融合之外[8-9],现有研究主要使用注意力机制来动态提取段落内部信息[10-11]。但是,这种方法主要是在段落层面上进行建模,全局注意力分布过于分散,在长文本上性能表现欠佳。因此,在段落级问题生成中,为了有效利用段落中的重要内容,如何优化注意力机制是一个亟待解决的问题。

针对上述问题,本文提出了一种基于双注意力的问题生成模型,该模型能更好地聚焦重点句子,减少冗余信息的干扰。对于段落中重点句子的界定,在大部分情况下,答案所在句子仍然占有核心地位,与问题直接相关,可被作为重点句子。在其它情况下,以答案所在句子为线索,更好地确定重点句子的位置,共同构成具体完整的语义。而双注意力机制能动态改变对不同层级信息的关注度,适应性地调整答案所在句子的重要性,降低注意力分散的影响。具体地,本文在基于序列到序列的基线模型上做出结构化改进,专门为答案所在句子建模了上下文表示,并充分利用双注意力机制来辅助生成问题。首先,模型使用LSTM[12](Long Short-Term Memory)对整个段落文本进行编码得到段落级语义表示,在此基础上,直接提取答案所在句子对应的隐藏状态作为句子级语义表示,然后利用解码器隐藏状态分别对段落、句子语义表示做独立的注意力计算,得到不同级别的上下文表示,并且使用门控机制进行二者的融合处理,最后改进指针生成网络[13](Pointer-Generator Network)的权重分配机制,以结合段落和句子的注意力分布信息进行问题生成。

本文的主要贡献总结如下:

(1) 提出了一种基于双注意力的段落级问题生成方法,通过构建、融合段落和答案所在句子的注意力信息,在保留多句子间联系的同时,进一步提高了对答案所在句子的关注度。

(2) 改进了解码端的指针生成网络,使得模型能够具备复制原文单词的能力,并在一定程度上增大了答案所在句子的单词权重,使重要单词更易得到关注。

(3)在SQuAD数据集上的实验表明,本文模型能有效提升段落级问题生成的性能,问题的相关性进一步提高。

1 相关工作

问题生成的研究方法主要分为两种: 基于规则的和基于神经网络的问题生成方法。

基于规则的问题生成方法建立在手工构建的模板规则基础上。Heilman等[2]通过一系列转换规则将陈述句转换成问句,并对产生的多个结果进行重排序以选取质量较高的问题。Labutov等[14]首先在低维空间中表示原始文本,然后将其与该空间对齐的候选问题模板进行众包,最后对新文本区域的潜在相关模板进行排名,从而生成更深难度的问题。这些传统方法依赖于人工,需要专业的语言学知识去构建合乎语法语义的模板,无法适应灵活多变的源文本语境。

基于神经网络的自动问题生成方法在近年受到更多的关注和研究,其完全由文本数据驱动,模型能自动决定疑问词、提问内容和最终语序,并且生成的问题更为丰富自然,具有较高的推理性。Du等[6]首先尝试了将编码-解码神经网络模型用于问题生成,使用全局注意力机制在解码时得到紧密相关的上下文语义,自动评估的结果要好于之前基于规则的方法。Zhou等[8]充分利用了输入文本的词性特征,同时使用答案位置标记方法,使生成的问题和特定的答案在语义上更相关。Song等[9]提出将答案和文本进行语义匹配的方法,使得编码的上下文向量充分蕴含答案的相关性。董孝政等[15]在编码端利用卷积神经网络将答案位置信息与全句语义信息进行融合,提升了在较短句子上的性能。谭红叶等[16]利用答案及其上下文信息确定疑问词和问题相关词,有助于提高问题与答案的相关性。不局限于问题生成的单一模型,很多研究工作关注多任务训练及具体应用。Sachan等[17]将问题生成和问题回答视为对偶任务进行学习,以自训练方式使得两个任务的效果同时获得提升。Zhang等[18]提出问题释义、问题回答的概率两个指标以强化问题生成模型,并利用问题生成模型合成大量的问答对改善了半监督问答任务。

在段落级问题生成上,Du等[6]首先在段落文本上尝试使用编码-解码模型,效果比句子级稍差。Du等[10]利用一个多层感知机来编码段落内的共指信息特征,加强了句子间实体的指代关联。Zhao等[11]利用了门控自注意力机制建模了段落级的上下文信息,并提出maxout指针机制来解决单词多次重复的问题。Tuan等[19]以答案独立编码为基础,设计了多层注意力机制,从而获得距离更远的语义相关内容用于问题生成。指针网络[13,20]原用于文本摘要领域,能从原文复制单词到目标句子,有效解决未登录词(Out-of-Vocabulary,OOV)问题。在问题生成上,文献[8-11]等均使用了相似的复制机制,作为解码生成时的有力辅助,补充形成问题所需要的重要单词,提高了模型性能。

2 问题生成

2.1 任务定义

(1)

本文模型总体结构如图1所示。该模型主要包括词嵌入层、编码层、双注意力层、解码层和指针生成网络等5个模块。2.2节至2.6节分别阐述每个模块的原理和作用。

2.2 词嵌入层

模型的嵌入层包含如下四个部分: 词向量、答案位置标记、词性标注和命名实体识别,其中,最后两部分属于单词的特征信息。词向量eword使用预训练词向量GloVe[21]进行初始化。对于固定词表中无法和GloVe对应的词,将全部初始化为零向量。答案位置标记使用BIO标记法,即对应段落中的每个单词都有是否为答案的标记,B表示单词在答案

图1 基于双注意力的段落级问题生成模型

的开始位置,I表示单词在答案内部,O表示单词不属于答案部分,答案位置标记向量随机初始化为eans。词性标注和命名实体识别则使用Standford CoreNLP语言处理工具进行属性标注,以此建立对应的词表,词性标注向量随机初始化为epos,命名实体识别向量随机初始化为ener。

最终所有嵌入层向量通过拼接融合在一起,作为该单词对应的嵌入向量输入到编码层。

et=[eword;eans;epos;ener]

(2)

其中,et表示段落中第t个单词的词嵌入向量,本文公式的[;]形式均表示变量的拼接操作。

2.3 编码层

LSTM网络能够解决长短期依赖,编码序列信息。模型将词嵌入层向量通过双向LSTM层进行编码以得到每个单词的隐藏状态,这些状态具有明显的时序特征并包含上下文语义信息。计算过程如式(3)~式(5)所示。

对于答案所在句子的编码,本文选择不再进行独立的编码操作,而是在段落语义表示中直接提取答案所在句子的相关信息。

设在文本预处理后答案所在句子S的词序号为(b,d),1≤b≤d≤m。特别地,由于训练时采取截断操作,上述词序号将有可能会越界,所以需要进行特殊处理。假设模型可接受的最大段落长度为L,如b>L,则b=1;如d>L,则d=L。根据词序号从段落语义表示HD中提取后,答案所在句子的语义表示为HS=[hb,hb+1,…,hd]。

2.4 双注意力层

注意力机制可以随序列的解码状态动态改变权重参数,能够捕获与当前解码时刻最密切的上下文信息。其基本的思路是计算当前时刻的解码器隐藏状态和编码器的全部隐藏状态之间的量化关系,然后给编码器的每一个隐藏状态进行权重分配并求和,最终输出一个上下文向量。本文使用Luong[22]的全局注意力分数计算方法,将分别在段落和答案所在句子的语义表示上计算注意力,以形成双注意力。

首先,段落级注意力的计算过程如式(6)~式(8)所示。

类似地,计算句子级注意力时利用解码器隐藏状态st和句子语义表示HS,可得到句子级上下文向量,计算过程如式(9)~式(11)所示。

为了得到最终生成阶段所需要的上下文向量,需要对两个级别的上下文向量进行了融合处理。本文设计了三种融合方式,分别是相加、拼接和门控机制融合方式,三者相互独立。

对于相加的融合方式,这是相对简单的处理方法,本文直接将段落级和句子级上下文向量进行相加得到融合上下文向量,如式(12)所示。

(12)

对于拼接的融合方式,本文首先将段落级和句子级上下文向量进行拼接,并且拼接两者互乘得到的融合向量。然后,将拼接向量通过一个多层感知机进行变换以实现融合处理,如式(13)、式(14)所示。

其中,⊙表示Hadamard积,即两个向量中对应元素的乘积。Wc是可训练的模型参数,b是偏置项。

对于门控机制的融合方式,其主要特点是再次考虑了解码器隐藏状态,图1中的模型展示了该融合方式。本文首先将解码器隐藏状态st和得到的段落级、句子级上下文向量计算一个门控分数,如式(15)所示。

(15)

其中,Wg是可训练的模型参数,σ表示sigmoid函数。该分数用于双注意力之间的权重分配,使模型能够动态关注不同级别的上下文信息,如式(16)所示。

(16)

通过融合双注意力后,得到的融合上下文向量ct将输入到解码层进行问题生成。

2.5 解码层

(17)

最后,结合双注意力层得到的融合上下文向量投影到词表分布向量中,获取当前解码时刻对应的单词概率,计算过程如式(18)、式(19)所示。

其中,Wv、Wo是可训练的模型参数,Pvoc表示维度为固定词表长度|V|的向量。此时对于固定词表之外的新单词即未登录词,模型只能生成通用标记,问句将可能缺失重要单词。

2.6 指针生成网络

为了解决未登录词问题,模型改进指针生成网络[13],这时解码的词将投影到固定词表或者投影到由原输入文本组成的扩展词表中,从而具备直接从原文复制词的能力,降低标记在问题中的出现概率。

本文改进了指针生成网络的权重分配方式,以充分利用双注意力层产生的信息。首先,在预处理阶段将该段落里的未登录词拼接到固定词表后面,得到扩展词表,则词表大小变为|V|+|E|。然后,通过计算3个不同的权重值,分别给固定词表概率分布、段落注意力分布和句子注意力分布赋予不同的权重值。最后,将加权的注意力分数逐一分配到对应的词序号中。与文献[13]不同的是,本文不只是计算1个生成概率,而是计算3个归一化概率以平衡双注意力的分布信息,计算过程如式(20)、式(21)所示。

(20)

(21)

分析求和后的整体概率分布可知,模型在复制原文的单词时相对偏向于答案所在的句子,从而减少无关句子的干扰,提高问题相关度。

最后,利用扩展词表的概率分布获取单词索引,计算过程如式(22)所示。

qt,index=argmax(Pfinal)

(22)

其中,qt,index表示概率最大的位置,通过该索引位置可在扩展词表中获得问题对应的单词。

模型进行解码时将重复上述处理过程,每一时刻产生当前最大概率的单词,直到产生句子停止标记,则终止解码过程,输出完整的问句。

另外,在训练过程中,模型采用negative log-likelihood损失,当前训练样本的总体损失计算如式(23)所示。

(23)

3 实验配置

3.1 数据集

本文使用SQuAD v1.1数据集进行实验。该数据集包含了536篇来自英文维基的文章,由众包工作者标注了超过10万的问答对,其中问题的答案都是从原文中抽取出来的,只有少数答案范围横跨多个句子。由于原数据集的测试集部分不可用,所以本实验参照Zhao等[11]的数据集划分方式,保留原开发集作为验证集,再从训练集中随机采样约10%的问答对作为测试集,整个划分是在篇章级进行的。同样地,本文保留所有问答对,不设过滤条件,这使得训练和推断过程的难度上升。数据集划分情况如表2所示。

表2 数据集统计数据

3.2 参数设置

实验中段落文本的最大长度为400,超出该长度的文本被截断。固定词表保留前45 000个高频词,以确保包含常见疑问词,使模型能自动确定疑问词的类型和生成位置。编解码共享相同的词嵌入矩阵,词嵌入维度为300,使用预训练词向量GloVe,并在训练过程中固定词向量。答案位置标记、词性标注和命名实体识别的嵌入向量维度均为16。编码端为两层双向LSTM,解码端为两层单向LSTM,两者的隐含层维度均为600,层间dropout概率为0.3。模型的优化器使用带动量的随机梯度下降SGD,其动量值momentum设为0.9。学习率设为0.1,从第8轮开始每隔两轮学习率减半,总共训练15轮次。输入批处理大小为32,选取验证集上损失值最低的模型作为目标模型。模型的推断阶段使用集束搜索,集束大小beam设为10,当每个问句解码生成停止标记或者达到最大解码步数限制30时停止,最后选取词平均概率最大的问题作为输出。

3.3 评价指标

对于实验结果,本文采用自动评估指标。问题生成常用的相似性指标: BLEU[23]、METEOR[24]和ROUGEL[25]。BLUE-N是计算相对参考句子的共现N元组(N-gram)的精确率。METEOR是基于精准匹配、词干、同义词和意译等维度计算句子间的相似性。ROUGEL是基于生成句子和参考句子之间最长公共子序列计算的F-measure值。当模型生成的问题和人给出的标准问题在单词组合上越接近时,上述指标的数值越高,即认为生成的问题质量越高。

4 实验结果及分析

4.1 对比模型

(1)s2s-attn[6]: 基线模型,该模型是基于全局注意力的序列到序列神经问题生成模型,其模型输入不对答案信息作处理。

(2)CorefNQG[10]: 该模型在编码时融合共同指代的信息特征,加强段落内句子之间的联系,使段落中的实体信息更加具体。

(3)ASs2s[26]: 该模型在输入时通过特殊标记替换答案,提出关键字网络对答案进行独立编码,以避免生成的问题中存在答案中的单词。本文参考其句子级输入的实验结果。

(4)s2s-a-at-mp-gsa[11]: 该模型使用了门控自注意力机制和maxout指针网络,利用文本内部的语义联系增强上下文编码质量,进一步提升了段落级问题生成的性能。

(5)DAPQG: 本文提出的基于双注意力的段落级问题生成模型DAPQG(Dual Attention-Based Paragraph-level Question Generation),其双注意力融合方式默认为门控机制融合。

4.2 实验结果

本文模型与对比模型的实验结果如表3所示, “—”表示原文中未涉及的数据,加粗的数值是对比模型里的最好性能。

从表3可知,与s2s_attn基线模型对比,所列的其他模型均有较大的性能提升。基线模型与ASs2s、s2s-a-at-mp-gsa的对比表明,句子级输入配合答案信息的编码利用能提升模型性能,段落级输入在合理设计时则能提供更多有利的信息。基线模型与CorefNQG、s2s-a-at-mp-gsa的对比表明,通过识别段落中句子间的内在联系能进一步提高生成问题的相关性。本文模型DAPQG建模了答案所在句子表示和注意力,同时也考虑了答案信息和句间联系,其实验结果相比基线模型有了明显提高,BLEU-4提升了4.81%,达到了16.67%,说明融合双注意力的模型切合了段落级问题生成的任务特点,有效提升模型性能。

表3 问题生成结果 单位: (%)

与目前性能表现优秀的s2s-a-at-mp-gsa模型相比,本文模型在BLEU和METEOR指标上仍然有不同程度的提升,BLEU-4提升了0.29%,METEOR提升了0.72%,说明了融合双注意力能够克服门控自注意力机制的局限性,一定程度上避免了段落内弱相关信息的干扰。因此,相对于单注意力模型,本文使用的双注意力机制表现出更强的抗干扰能力,提高了生成问题的相关性。

另外,本文模型仅在ROUGEL指标上比s2s-a-at-mp-gsa模型差。分析原因,可能与数据集的差异以及模型的偏向性有关。如表2所示,相对于训练集,测试集的段落平均长度较小,而问题平均长度较大;本文模型在设计上一定程度地偏向于答案所在句子,该句子相对而言较短,因此导致生成的问题和参考问题的最长公共子序列较短,即ROUGEL性能会有所降低。

4.3 消融实验

为了深入分析各模块对实验结果的影响,本文设计了多组实验进行比较,在DAPQG模型的基础上进行修改,实验模型如下。

(1)DAPQG_add: 将双注意力融合方式改为相加融合。

(2)DAPQG_concat: 将双注意力融合方式改为拼接融合。

(3)DAPQG_one: 取消融合操作,模型的双注意力层只保留段落级上下文向量,直接作为该层的输出。

(4)DAPQG_pg: 指针生成网络在权重分配时只考虑生成概率和段落单词复制概率,计算方式与文献[13]相同,使用sigmoid函数计算一个生成概率,该概率和段落单词复制概率的和为1。

(5)DAPQG_feat: 词嵌入层去除答案位置标记,只拼接词向量和词特征。

(6)DAPQG_ans: 词嵌入层去除词特征,只拼接词向量和答案位置标记。

实验结果如表4所示,加粗的数值是对比模型里的最好性能。结果分析包括以下三方面。

(1)注意力融合方式的影响: 模型DAPQG与DAPQG_add、DAPQG_concat的结果对比表明,门控机制融合方式能获得最好的模型性能,说明了模型在进行注意力融合时仍然需要解码器隐藏状态的参与,以动态调整对不同级别注意力信息的关注度,实现更合理的权重分配。

(2)答案所在句子注意力的影响: 模型DAPQG比模型DAPQG_one在整体上的性能要好,说明了答案所在句子提供的上下文表示是解码阶段的重要信息来源,从而在必要时提高对该重点句子的关注度,提升问题质量。模型DAPQG比模型DAPQG_pg在所有指标上均有进一步提高,说明了在指针生成网络中添加答案所在句子的注意力分布能够提升单词复制的覆盖率和相关性。因此,在建模答案所在句子语义表示的基础上,通过动态调整其注意力的影响机制及程度,对段落级问题生成有着积极的提升作用。

(3)词嵌入层信息的影响: 模型在考虑答案位置标记后,性能差距明显,如模型DAPQG比模型DAPQG_feat在BLEU-4指标上提升了5.36%。这是因为答案位置标记能够提供具体的询问对象,对比无答案限制的情况,带来显著的性能提升,是目前问题生成模型的重要组成部分。这说明本文模型尽管关注了答案所在句子,但不能以此替代答案位置标记,主要原因是SQuAD数据集中一个段落几乎总是对应一个以上的问题,而答案位置标记使词嵌入层形成差异化的参数,进而改变输出的具体问题。模型DAPQG比模型DAPQG_ans的整体性能要更好,说明了词特征蕴含了语法语义的特征,一定程度上改善模型对不同实体及其词性的识别,提升对输入文本的理解,改善问题生成的过程。

表4 消融实验结果 单位: (%)

4.4 示例分析

本文从实验结果中抽取了部分示例用于定性分析,如表5所示,加粗单词表示标准答案。

在示例1中,相对于模型DAPQG_one而言,模型DAPQG与DAPQG_pg都能够将物主代词“her”替换成具体的人名“beyoncé”,说明了本文的双注意力机制在提高问题相关性的同时能够有效识别句子间的联系,满足段落级问题生成的要求。

表5 结果示例

在示例2中,模型DAPQG与标准问题最为接近,表达了准确的意思,但模型DAPQG_pg在对原文的复制上没有提取到关键单词“stinson-remick halls”,表达不够具体。这说明了本文改进的指针生成网络对上下文背景关键词的提取能力更强,在融合答案所在句子注意力信息后,能提升生成网络的效果。

综合上述分析可知,对段落文本而言,本文以答案所在句子为高相关度内容并辅以动态变化的界定是合理有效的,以此构建的双注意力模型拥有更优秀的上下文信息建模和提取能力,提升了生成问题的质量。

5 总结

针对段落级问题生成任务,本文提出了一种基于段落和答案所在句子注意力的自动问题生成模型。通过实现双注意力的动态融合和分配,该模型以答案所在句子为主要线索,聚焦于重点句子,相应地减少了冗余信息的干扰。实验结果证明,该模型能有效地提高了段落级问题生成的性能。

但对于段落文本和人工答案标记均相同的情况,该模型目前还无法有效区分段落文本的多方面信息,导致模型倾向于生成重复的问题,下一步工作需要利用指代信息重新标注或者结合内容选择任务进行训练,进而针对段落级文本生成更多样性的问题。

猜你喜欢

段落向量注意力
趣味•读写练 答案
向量的分解
让注意力“飞”回来
【短文篇】
心理小测试
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
阅读理解两则