吴云芳,张仰森
(1.北京大学计算语言学教育部重点实验室,北京100871;2.北京信息科技大学智能信息处理研究室,北京100101)
问题生成(question generation,QG)是与机器阅读理解(machine reading comprehension,MRC)相关联的一个自然语言处理任务。其定义为:给定一个自然语言的文本,自动生成内容相关、语法通顺的问题。为了清晰地呈现任务形式,表1给出了一个汉语问题生成的例子,摘选自NLPCC-2017问答评测数据集[1];表2给出了一个英语例子,摘选自阅读理解数据集RACE[2],其中,波浪线标示了问题所对应的关键句。
表1 汉语阅读理解的问题生成例子
表2 英语阅读理解的问题生成例子
问题生成可形式化定义如下:给定一个文本D={x1,…,xn},目标是生成自然语言问题Q={y1,…,y|y|},即:
其中,xi表示输入文本中的一个词语,n表示输入文本的长度;yi表示生成问题中的一个词语,|y|表示生成问题的句子长度。
近年来,问题生成引起了研究者越来越广泛的关注和兴趣,涌现出了大量高水平研究论文。本文将对问题生成的前沿研究进行综述,组织结构安排如下:第1节阐述了问题生成的研究意义与应用;第2节概括描述了基于规则方法的问题生成研究;第3节对问题生成的神经网络模型方法进行了详细的综述,从输入句子/段落、有/无答案信息等不同角度进行了全面描述;第4节介绍了问题生成的评价方法;第5节对当前问题生成研究的不足进行了思考,对未来的研究方向进行了展望;第6节为结语。
问题生成研究最广泛的应用当在教育领域。在教育场景下,问题被认为是进行学习和教学评估的重要工具。阅读是人类汲取知识的重要途径,而通过问题可以测试阅读者对于关键概念的理解、对于文本信息的提取归纳、对于核心思想的演绎推理等。同时,高质量的问题又能指导学习者进行有效的学习,提升其阅读质量。然而,构建一定数量且拥有较高质量的问题是一件十分耗时且极其艰难的工作,因此,多年前研究者就尝试将问题生成这样一件费时费力的事情交给计算机去完成。早在2003年,Mitkov和Ha就利用计算机技术来自动生成多项选择题[3],他们的研究表明,计算机技术比人力构造更为高效,构造1000个问题借助计算机系统的帮助仅需30个小时,而纯人力构造则需要115个小时。后来,Heilman 和Smith[4]面向教育评测、Lindberg等人[5]面向在线学习分别进行了问题生成研究。此外,Rus等人[6]还多次组织了问题生成的竞赛评测。
近期以来,基于神经网络模型的、教育领域的问题生成研究逐步进入了研究者的视野。Lai等人发布了真实英语考试的阅读理解数据集RACE[2],基于此数据集,Gao等人[7]、Zhou等人[8]开展了问题干扰项自动生成的研究。2018年Guanliang Chen等人发布了专门针对教育领域的问题生成数据集Learning Q[9]。斯坦福大学Willis等人[10]面向段落级问题生成,聘请教育领域专家标注了文档中值得提问的关键短语,与众包平台的标注结果进行了详细的比较,分析表明教育专家关注的问题焦点与普通标注者存在一定差异。
此外,问题生成对其他自然语言处理任务也有巨大的促进作用:
其一,辅助问答系统。自动问题生成可以协助构建问题语料库,缓解问答系统语料不足的难题。例如,Tang等人[11]、Duan等人[12]和Zhang等人[13]的研究均表明,利用自动生成的问题作为数据补充,或者将答案抽取与问题生成作为孪生任务同时训练,可以显著提升问答系统的性能。
其二,辅助对话系统。在对话系统中嵌入问题生成模型,可以加强系统与人的交互,帮助系统更准确地判断人的意图,从而使人机对话更为深入流畅。例如,Wang等人[14]实验结果表明自动生成的问题可以触发更深入的对话;Aliannejadi等人[15]的研究表明,提出一个高质量的澄清式问题,可以使信息检索的p@1准确率提升170%。
和其他自然语言处理任务一样,早期学者采用基于规则的方法来自动生成问题。Mitkov 等人[3]基于转换规则生成问题,利用Word Net[16]知识生成多项选择题中的干扰项。Heilman 和Smith[4]实现了一种过度生成然后排序的方法(overgenerateand-rank)用于事实性问题生成:首先编写句法和词汇规则将陈述句转换为疑问句,然后用逻辑回归模型对生成的问题重新排序。Lindberg 等人[5]使用模板方法融入语义角色来进行问题生成。早期基于规则的方法取得了一定的效果,初步证明了自然语言处理技术可以帮助生成问题从而减少人工劳动。但是,由于语言本身的复杂性,人工发现和归纳出所有的问题规则几乎是不可能的;而且规则方法难以扩展,为某一个领域制定的规则通常很难在其他领域快速移植。
最新的一项研究中,Dhole 和Manning[17]也采用基于规则方法来自动生成问题,使用了依存句法树、语义角色标注等自动分析技术,调用了Word-Net[16]、Verb Net[18]中的语义知识,获得了比神经网络模型更优的效果。虽然他们的规则方法在英语中取得了满意的结果,但是成熟的自动句法语义分析技术、优良的第三方语义资源在其他语言中是很难获得的,也因此Dhole和Manning[17]的方法不易在其他语言中推广。
近年来,基于神经网络模型的问题生成研究层出不穷。大多数工作都采用了序列编码-解码框架,使用带注意力机制的长短时记忆网络(long shortterm memory,LSTM),而采用转换网络(transformer network)的研究并不多见。由于缺乏专门用于问题生成的数据集,已有的研究大多是在阅读理解数据集上进行训练和测试,例如,SQuAD[19]和MS-MARCO[20]。先进的深度学习模型不仅使得自动问题生成得以端到端地执行,省去了人工设计规则的繁琐过程,同时还取得了更为理想的效果,生成了质量更高的问题。林林总总关于问题生成的研究由于其输入内容不尽相同,也就不再笼统地陈述。根据输入文本是句子/段落、有/无答案信息,本节将从以下几个方面来缕析基于神经网络模型的问题生成的研究进展。
在2017年,研究者开始尝试使用神经网络模型来自动生成问题。Du 等人[21]采用双向LSTM 编码器分别对段落文本和关键句进行编码,再使用一个LSTM 网络结合注意力机制进行解码。他们在SQuAD 数据集上进行了问题生成的实验,由于SQuAD 的测试数据没有完全公开,于是将公开部分的SQuAD 数据按照80%:10%:10%的比例划分为训练集、开发集和测试集,后被称为Du split。实验结果的BLEU-4值达到了12.28;而采用Heilman和Smith[4]的基于规则的方法,BLEU-4 仅为11.18,这表明神经网络模型比基于规则的方法能生成更高质量的问题。同年,Zhou等人[22]也提出了神经网络模型的问题生成框架,不同的是,他们对输入文本进行编码时融入了答案短语对应的BIO 位置信息(B:答案的首词;I:答案内部的词;O:答案外部的词),解码器采用基于注意力的门控循环单元(gate recurrent unit,GRU)来生成问题,并应用拷贝机制从原文中拷贝一些词语。他们同样在SQuAD 数据集上进行了问题生成的实验,将原先的开发集以1:1的比例随机划分为开发集和测试集,后被称为Zhou split。同样在2017年,Yuan等人[23]在LSTM 编码—解码框架下,融入了强化学习策略,用预训练的QA 模型来测试自动生成的问题能否被正确回答,在SQuAD 上评测,最好结果BLEU-4为10.5。
有答案的句子级问题生成(answer-aware sentence-level question generation):给定一个句子及对应的答案信息,自动生成问题。Zhou等人[22]最早建模了这个任务,后期很多工作都在探索如何有效地利用答案信息。Song等人[24]采取了三种策略来匹配答案和句子:完全匹配、注意力匹配和最大注意力匹配。Sun 等人在指针生成模型(pointergenerator model)[25]的基础上,利用答案信息来预测疑问词的概率分布,并加入相对位置编码使模型更多关注答案词周边的语境信息[26]。董孝政等人[27]将“潜在提问对象”的位置信息与全句信息相融合。Kim 等人[28]将原文中对应的答案词语替换为一个特殊标记,同时增加了一个关键词网络(keyword-net)去更好地捕捉答案中的关键信息。Liu等人[29]提出了一个问题生成的拷贝网络(copy network for question generation)用以预测问题中的词语应该从原文中拷贝还是从词表中生成,他们在依存树上用图卷积网络(graph convolutional networks,GCN)来预测线索词(即需要拷贝的词),然后将线索词作为特征融入原文的编码。Zhou 等人[30]采用层级结构的联合学习框架,嵌入语言模型来帮助编码器更好地捕捉输入句子的句法信息,从而促进解码器生成更高质量的问题。Zhou等人[31]将问题类型预测作为一个子任务,在联合学习框架下进行问题生成。Li等人[32]认为,前人的假设“距离答案词越近的词越重要”不完全准确,他们利用第三方关系抽取工具(OpenIE)抽取结构化关系作为枢纽语境(to the point context),采用门控注意力机制(gated attention mechanism)去动态注意文本表征和关系表征。Ma等人[33]提出了一个多任务学习框架:用分类器判断生成的问题与答案在语义上是否匹配,利用输入句子和生成的问题来预测答案的位置,将多个损失函数置于一起来联合学习。Jia等人[34]引入复述知识来协助问题生成,他们先用回译(back-translation)方法自动获得句子、问题的复述语句,而后将复述生成作为一个子任务来辅助问题生成。
可以看到,自2017年基于神经网络模型的问题生成任务提出后,至2020年已引起了学界的快速关注并取得了长足进展,表3列出了上述不同研究的性能指标。表中Zhou split和Du split是在SQuAD数据上对开发集和测试集两种不同的数据划分方式。
表3 有答案句子级问题生成的性能进展
有答案的段落级问题生成(answer-aware paragraph-level question generation):给定一个段落(由多个句子组成)及对应的答案信息,自动生成问题。在基于句子生成问题的基础上,研究者开始思考如何利用更大范围的段落语境来帮助问题生成。Zhao等人[35]利用门控自注意力网络(gated self-attention network)来编码段落信息,在解码时应用了最大指针(maxout pointer)来解决重复生成问题,此工作成为了后来众多段落级问题生成的基础。为了解决语义漂移问题,Zhang 和Bansal[13]在强化学习框架下,引入了两个新的奖励因子(reward):问题复述概率(QPP)来评估生成的问题和标准问题是复述的概率;问答概率(QAP)来计算生成的问题和正确答案匹配的概率。Nema 等人[36]应用了双解码器,第一个解码器生成一个草稿,第二个解码器采用双重注意力机制,同时关注到原文编码和第一个解码器生成的问题。Chen 等人[37]采用双向门控图神经网络来编码段落信息,在强化学习框架下融合了交叉熵和评价结果作为奖励因子。为了更好地利用篇章信息,Tuan 等人[38]提出了一个多步注意力机制来捕捉段落中多个句子之间的语义关联。
由于应用了更多的语境信息,段落级问题生成普遍比句子级问题生成取得了更好的性能,具体如表4 所示。
表4 有答案段落级问题生成的性能进展
基于大规模语料的预训练模型在自然语言处理的各项理解和生成任务中取得了令人瞩目的成绩,在2020年的最新研究中,研究者纷纷将预训练模型用于问题生成任务。Wang等人[39]提出了一个自注意力蒸馏模型(self-attention distillation)来压缩庞大的转换预训练模型。Bao 等人[40]利用遮罩策略学习词项之间的关系,利用伪遮罩去学习语段内部的关系。Yan 等人[41]设计的预训练模型的目标是同时预测n元词项,应用了n支(n-stream)注意力机制。Xiao 等人[42]提出了一个多阶预训练和精调框架,其训练目标是预测语义完整的连续语段而不是单个词语。这些预训练模型都在有答案句子级问题生成任务上进行了实验,表4列出了不同预训练模型的实验结果。
无答案的句子级问题生成(answer-agnostic sentence-level question generation):仅给定一个句子而无答案信息,自动生成问题。沿袭传统的规则方法,Du 等人[21]建模的问题生成就没有答案信息,其论文中没有特别关照问题焦点。Ma等人[43]基于细粒度的层面(aspect-based)来进行问题生成,但实验结果表明,自动预测需要提问的层面时,生成问题的性能并没有得到提升。Wang 等人[44]提出了一个多模块互动框架(multi-agent communication framework),用一个局部抽取模块自动识别出值得提问的短语,用其帮助问题生成,进而用生成的问题反馈来提升关键短语的识别性能。Scialom 等人[45]采用了基于注意力机制的转换网络,并针对性地增加了拷贝机制、命名实体泛化策略(placeholding strategy)和语境相关词向量,将BLEU-4 值从Du等人[21]的12.28提升至13.23。
无答案的段落级问题生成(answer-agnostic paragraph-level question generation):仅给定一个段落(由多个句子组成)而无答案信息,自动生成问题,这方面的研究比较有限。Du等人[46]提出了一个流水线模式(pipeline)来处理这个任务:先使用层级编码获得段落表征来预测值得提问的关键句子(question-worthy sentences),而后再应用句子级别的问题生成模型。Subramanian等人[47]同样采用两阶段的处理方式:先用一个指针网络(pointer network)识别出关键短语,然后将关键短语作为答案线索来生成问题。Willis等人[10]也是两步策略:首先利用一个包含丰富特征的网络来识别关键短语,继而基于关键短语来生成问题。
相比英语蓬勃发展、硕果累累的问题生成研究,汉语问题生成的基础数据、模型探索都非常有限。仅有的研究是,Kumar等人[48]提出用跨语言训练的方式来进行问题生成,在汉语的Du Reader[49]数据上进行了实验,但结果不理想。Chi等人[50]提出了一个通用型的面向跨语言生成的预训练模型,在汉语的事实性问答数据WebQA[51]上进行了问题生成实验。
问题生成属于文本生成的范畴,在评价方法上借鉴了机器翻译、自动文摘等任务,一般采用自动评测和人工评测两种方式来评价问题生成的质量。
自动评测采用BLEU[52]、METEOR[53]和ROUGE[54],其中,以BLEU-4为主要指标。BLEU 主要计算n元词语的匹配准确度;METEOR 在计算相似度时考虑了同义关系、复述关系、词根联系;ROUGE 着重考察n元词语的召回程度。但自动评价方法机械地计算生成问题和标准问题的词语匹配程度,不能完全反映问题生成的质量,因此,一般问题生成研究中都会同时加入人工评测。从自动生成的问题中随机选择一些样例(例如,200个),交由多名标注者(多为3名)从不同角度进行人工评价。常包括以下三个方面:①流利度:是否是合乎语法的和流畅的;②相关度:是否与输入文本相关;③可回答性:生成的问题是否可以被正确答案所回答(在有答案输入的情形下)。
研究者也对问题生成的评价方法进行了探讨。Nema和Khapra[55]指出,传统的评价方法不能反映出问题的可回答性(answerability),他们提出了QBLEU 评价方法,将相关实词、问题类型、命名实体、功能词语的考评融入BLEU 计算。后来的有些工作也加入了QBLEU 指标,例如Nema等人[36]的研究。Sultan等人[56]指出,传统指标与多样性表达是反比相关的,进而提出了多样性感知(diversityaware)的评价指标,不过这个指标还需要进一步验证。
问题生成最初的研究主要是面向教育场景、为智能教育服务的(Mitkov 和Ha[3],Heilman 和Smith[4],Lindberg等人[5],Rus等人[6]),而神经网络时代大多数研究将问题生成当作问答系统的一个对偶任务,在问答系统的数据上进行,并没有考虑教育场景下问题生成的特殊需求。
面向教育的阅读理解问题与机器阅读理解问题存在差别。RACE[2]是一个真实的教育考试数据,收集了大量的中国学生英语学习的阅读考试问题。前期研究中,我们对RACE 数据做了一些清洗,删除了宽泛的万能问题,如“what’s the best title of this passage?”,然后比较了RACE 和SQuAD 数据的分布差异,如表5所示。
表5 RACE和SQuAD数据的分布差异
可以看到:①考试数据RACE是由教育专家构建的,投入成本大,耗时长,数据规模(段落数、问题数)远小于众包平台构建的SQuAD;②RACE 的段落长度几近是SQuAD 的2倍,会完整地叙述一个故事或议论一个话题;③SQuAD 数据中大多是事实性问题,答案多是短小的命名实体,而RACE 提供的答案通常会是完整的长句子。这样的数据分布使得面向教育领域的问题生成异常困难。我们重新训练了Zhao 等人[35]的模型,在SQuAD 数据上BLEU-4可以达到16.31,而同样的模型在RACE数据上精细调参后BLEU-4 仅为8.83。
概括而言,前人研究存在的不足体现在以下四方面,而这也是目前问题自动生成的难点所在:
(1)前人研究大多是给定答案来生成问题,然而在真实的应用场景下,是仅给定一段文档、无答案地生成问题。在一段文档中人工划定需要提问的关键短语(或句子)是一件耗时耗力、艰难的工作。前人对无答案的段落级问题生成研究非常有限而且性能不高,Du 和Cardie[46]在SQuAD 数据上评测的BLEU-4仅为11.50,Subramanian等人[47]的结果仅为10.4,远不能满足实际应用的需求。
(2)前人工作投入了很多精力在输入文本中匹配答案信息,但却很少关注输入文本自身的信息捕捉,在问题生成上还未深入探究段落内容表示、篇章结构信息建模等问题,而长文档的内容表示是阅读考试问题生成(如RACE)面临的一个难题。
(3)前人在自动生成问题时,还未能充分利用人类知识,例如语言复述、经验常识等,而这些知识对于生成具有一定难度的、有一定推演力的问题非常重要。
(4)前人的问题生成研究大多是基于英语数据进行的,很少有工作投入到汉语问题生成的基础数据建设和模型研究上。
问题自动生成的研究日新月异,涌现出了很多新颖的工作,未来的研究将可能围绕以下方向展开。
(1)面向更多样化的文本。之前的研究大多是将问题生成作为阅读理解的对偶任务,主要基于阅读理解的数据集SQuAD[19],其文本来源于维基百科,答案多是简单的语块。未来的问题生成研究将面向更广泛领域的文本,处理更多现实生活的任务。例如,基于真实的考试数据RACE,Gao 等人[7]、Zhou等人[8]对问题干扰项生成进行了研究。Yu等人[57]面向在线产品和服务评价来自动生成问题,以帮助用户快速地攫取信息。
(2)服务于更深入的阅读理解。已有的研究大多是基于简短的段落级文本和语段答案来生成问题,对文本内容的理解是有限的。未来的问题生成研究将面向更长的真实完整的文档,需要对文本进行篇章级的深入理解和分析。例如,Pan 等人[58]提出了深度问题生成(deep QA)任务,目标是对文本信息进行一定的推理和整合来生成复杂的问题。Ko等人[59]构建了一个新的问题生成数据集INQUISITIVE,探讨人类在阅读一篇文档时可能发问的知识性问题,寻求更高层次的语义和篇章理解。
(3)充分利用预训练语言模型。基于大规模语料库的预训练语言模型在自然语言处理的各项任务中取得了令人瞩目的进展,在问题生成研究中亦取得了骄人的成绩,例如Wang等人[39],Bao等人[40],Yan等人[41],Xiao等人[42]的研究。面向普适任务的预训练模型如何更好地应用于问题生成任务,还有很大的探索空间。
(4)在更多语言中开展研究。目前的问题生成研究主要是基于英语文本数据,在可预见的未来,借鉴英语的研究成果,问题自动生成研究将在更多语言中展开,并发布公开评测数据,例如汉语、日语等语言。
问题生成研究近年以来逐渐成为关注热点,高水平的论文工作层出不穷。本文综述了问题生成的前沿研究进展,从不同角度叙述了神经网络模型的问题生成方法,并对前人研究的不足作了思考,对未来研究趋势作了展望。虽然英语的问题生成已经取得了令人瞩目的成绩,但在汉语方面,还缺乏优良的公开评测数据集,也没有有效的针对汉语问题特点的神经网络模型,汉语的问题生成研究还任重而道远。