«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (2): 125-131  DOI: 10.19678/j.issn.1000-3428.0060501
0

引用本文  

于尊瑞, 毛震东, 王泉, 等. 基于预训练语言模型的关键词感知问题生成[J]. 计算机工程, 2022, 48(2), 125-131. DOI: 10.19678/j.issn.1000-3428.0060501.
YU Zunrui, MAO Zhendong, WANG Quan, et al. Keyword Aware Question Generation Based on Pre-Trained Language Model[J]. Computer Engineering, 2022, 48(2), 125-131. DOI: 10.19678/j.issn.1000-3428.0060501.

基金项目

国家自然科学基金(U19A2057)

通信作者

毛震东(通信作者), 研究员、博士生导师

作者简介

于尊瑞(1996-), 男, 硕士研究生, 主研方向为问题生成;
王泉, 博士;
张勇东, 教授、博士生导师

文章历史

收稿日期:2021-01-06
修回日期:2021-02-21
基于预训练语言模型的关键词感知问题生成
于尊瑞1 , 毛震东1 , 王泉2 , 张勇东1     
1. 中国科学技术大学 信息科学技术学院, 合肥 230000;
2. 北京百度网讯科技有限公司, 北京 100000
摘要:问题生成任务是指根据给定的文本段落和答案来自动生成对应的问题。针对现有问题生成方法存在的误差累积现象以及问题生成任务固有的“一对多”情况,提出一种带有关键词感知功能的问题生成方法。在预训练语言模型的基础上,实现关键词分类模型与问题生成模型的网络结构设计。输入文本段落中蕴含关键词,为使所生成的问题中包含同样的关键词以保证问题与段落的语义一致性,利用关键词分类模型提取出文本段落中的关键词,将关键词与非关键词的区分特征融入问题生成模型的输入中,该特征作为问题生成过程的全局信息,用以消除问题生成模型仅依赖局部最优解的弊端,减少误差累积与“一对多”情况的发生。在SQuAD数据集上的实验结果表明,该方法能够提升问题生成的质量,其BLEU-4指标值可达24,优于带有复制机制、带有语义监督的问题生成模型,目前已经借助百度百科数据平台实现了大规模工业应用。
关键词问题生成    预训练语言模型    关键词分类    自注意力掩码    嵌入向量    
Keyword Aware Question Generation Based on Pre-Trained Language Model
YU Zunrui1 , MAO Zhendong1 , WANG Quan2 , ZHANG Yongdong1     
1. School of Information Science and Technology, University of Science and Technology of China, Hefei 230000, China;
2. Beijing Baidu Netcom Science Technology Co., Ltd., Beijing 100000, China
Abstract: The Question Generation(QG) task is to automatically generate the corresponding question based on a given text paragraph and answer.The existing QG methods often fail to deal with error accumulation and the one-answer-to-multiple-question problem in QG tasks.To address the problem, this paper proposes a keyword aware question generation method.We design the network structure for keyword classification and QG based on the pre-trained language model.To make the generated question include the same keywords as the input paragraph, which ensures the semantic consistency between the question and paragraph, we use the keyword classification model to extract the keywords in the paragraph, and integrate the feature that distinguish keywords from non-keywords into the input of the QG model.The feature acts as the global information of QG process to reduce dependency of the QG model on the local optimal solution only, and reduce the occurrence of error accumulation and one-answer-to-multiple-question problem.The experimental results on the SQuAD dataset show that this method can improve the quality of generated questions.Its BLEU-4 value reaches up to 24, higher than the QG models with replication mechanism or semantic supervision.This method has realized large-scale industrial application based on the Baidu Encyclopedia, a ten-million-scale data platform.
Key words: Question Generation(QG)    pre-trained language model    keyword classification    self-attention mask    embedding vector    

开放科学(资源服务)标志码(OSID):

0 概述

随着自动对话机器人、电子客服、问答式智能搜索等技术的广泛应用,人与机器之间的交流变得越来越自然流畅,然而,计算机准确理解和使用自然语言的水平仍有待进一步提高。问题生成技术在对话机器人[1]、教育[2-4]、搜索[5]等领域具有重要的应用价值,例如:训练问答模型、智能搜索模型等系统需要大量的“段落-问题-答案”数据,人工标注数据需要耗费巨大的人力、物力以及财力,而互联网(如百度百科、新华网等)中拥有海量的无标注文本数据,利用问题生成技术可以从无标注的文本段落中生成海量的“段落-问题-答案”数据[6-8],从而完成自动问答系统训练[9]。因此,提升问题生成技术的性能具有重要的实用与科研价值。

早期的问题生成研究多数采用基于语法规则和模板的方法,将问题生成任务拆分为“问什么”和“怎么问”2个子任务[10]。具体步骤为:利用语言学知识设计规则和模板,根据输入文本的语法结构等信息自动从文本中提取出所需要的内容,然后填入预先构建好的问题句模板中,形成问句[11-13]。然而,此类方法依赖既定规则,不能根据数据自适应不同的文本领域,迁移成本过高,难以被广泛应用。

随后,“序列到序列”编码器-解码器神经网络被广泛应用于问题生成任务。文献[4]利用“序列到序列”编码器-解码器神经网络模型,根据所给的一个句子生成问题,但其不能输入给定答案信息,导致适用范围受限。文献[14]将答案信息添加到输入中,根据给定的段落和答案实现问题生成。在文献[14]研究成果的基础上,针对问题生成任务所进行的模型设计取得发展,例如:文献[15]根据特定的疑问词捕捉答案中的关键信息;文献[16]采用复制机制、占位符机制和上下文单词嵌入机制等多种策略实现问题生成;文献[17-19]使用段落线索、问题类型、问题风格等信息作为辅助信息进行问题生成;文献[20-21]控制问题的提问角度和难度。在此之后,强化学习策略在该领域的应用也取得了进展,例如:文献[22]在生成对抗框架下增加潜在变量和观察变量;文献[23]在生成评价框架下将所生成问题的语义评分和语法结构评分作为奖励;文献[24]使用语义评分和问答系统评分作为奖励;文献[25-27]将问题生成任务和问答任务作为对偶任务进行联合训练。上述方法在问题生成任务中取得的性能提升,使得问题生成技术在构建大规模问答数据集等研究中得到广泛应用。

近年来,预训练语言模型(如BERT[28]、ERNIE[29]等)在多项自然语言理解任务中表现突出。预训练语言模型通过“预训练-微调”框架来实现:“预训练”是指在海量无标注文本数据上,通过多种任务预先训练好模型参数;“微调”是指针对特定的下游任务,调整模型结构并在标注数据上进行训练,从而完成特定下游任务。在预训练模型中添加自注意力掩码,将双向语言模型改造成序列到序列语言模型,可以实现生成任务。该方法在问题生成任务中的性能表现已经远超传统的序列到序列编码器-解码器神经网络。

然而,现有方法仍无法避免问题生成任务中长期存在的2个问题:一是“误差累积”问题,每个问题都由很多个连续的词组成,生成时需要一个词接一个词地连续迭代生成,因为模型不具备纠正错误的能力,所以在该过程中一旦有一个词生成错误,后续的词会根据错误的词继续生成,误差将进一步扩大;二是“一对多”问题,给定一个文本段落和一个答案,文本段落中会蕴含多种多样的信息,人类可以提出多个问题,也可以判断出哪些问题更具价值,而对于模型而言,难以找到全局最优解,原因是逐个词地连续迭代生成倾向于找到局部最优解。

本文提出一种带有关键词感知的问题生成方法,用以克服问题生成过程中仅依赖局部最优解的不足,减少“误差累积”与“一对多”现象的发生,提升问题生成的质量。具体地,采用“两步走”的流水线式框架,基于预训练语言模型设计关键词分类网络结构和带有关键词信息感知的问题生成网络结构,关键词分类模型从输入段落中提取关键词特征,在经过后处理之后将其作为全局信息融合到问题生成网络的输入中,最终完成问题生成过程。

1 问题生成任务定义

问题生成任务的定义是:给定一个文本段落$ \mathit{\boldsymbol{C}} $和一个答案$ \mathit{\boldsymbol{A}} $,答案$ \mathit{\boldsymbol{A}} $是文本段落$ \mathit{\boldsymbol{C}} $中的一部分连续文本,计算机根据段落$ \mathit{\boldsymbol{C}} $和答案$ \mathit{\boldsymbol{A}} $自动生成对应的问题$ \stackrel{-}{\mathit{\boldsymbol{Q}}} $。问题生成数据示例如表 1所示。

下载CSV 表 1 问题生成数据示例 Table 1 Question generation data example

问题生成模型$ \theta $的目标是在生成问题$ \stackrel{-}{\mathit{\boldsymbol{Q}}} $时,使得数据集中真实的问题$ \mathit{\boldsymbol{Q}} $出现的概率尽量大,表示如下:

$ \stackrel{-}{\mathit{\boldsymbol{Q}}}=\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}{\mathrm{x}}_{Q}P\left(\mathit{\boldsymbol{Q}}\right|\mathit{\boldsymbol{C}}, \mathit{\boldsymbol{A}}, \theta ) $ (1)
$ P\left(\mathit{\boldsymbol{Q}}\right)=\prod\limits _{i=1}^{{L}_{Q}}P\left({Q}_{i}\right|{Q}_{1}, {Q}_{2}, \cdots , {Q}_{i-1}) $ (2)

其中:$ {Q}_{1}, {Q}_{2}, \cdots , {Q}_{{L}_{Q}} $是构成问题$ \mathit{\boldsymbol{Q}} $的词;$ {L}_{Q} $是组成问题$ \mathit{\boldsymbol{Q}} $的词数量。

2 本文方法

本文带有关键词感知的问题生成采用“两步走”的流水线式框架,包括关键词分类、问题生成2个步骤:关键词分类模型针对输入的文本段落中的每个词,预测其为关键词还是非关键词并作为特征;问题生成的输入数据中融合上述特征,经过问题生成模型生成问题。关键词分类模型和问题生成模型的网络结构设计均基于预训练语言模型ERNIE[29]

2.1 预训练语言模型ERNIE

预训练语言模型ERNIE[29]在自然语言理解任务中表现突出,在16个公开数据集上性能领先,在国际通用语言理解评估基准GLUE上率先突破90分,在全球语义评测SemEval 2020中摘得5项世界冠军。基于ERNIE[29]的突出表现,本文选取ERNIE作为基线模型。

ERNIE的网络结构由嵌入向量层(输入)、双向自注意力编码器、下游任务层(输出)3个部分组成,如图 1所示。

Download:
图 1 ERNIE网络结构 Fig. 1 ERNIE network structure

ERNIE等预训练模型在预训练过程中使用的词表是子词(Sub-Token)表,“子词”即将一个英文单词拆分为几个具有一定意义的小单元,以更好地对子词语义嵌入向量进行预训练,例如:将单词“eating(正在吃)”拆分为“eat(吃)”和“ing(正在)”。

在预训练过程中,输入文本数据的格式是:“[CLS] 句子1 [SEP] 句子2 [SEP] …”,其中:[CLS]表示开始;[SEP]表示一个句子结束,两者均为子词表中的特殊标志子词。输入文本数据经过嵌入向量层后被转化为嵌入向量(Embedding Vector),具体过程为:嵌入向量层根据输入的编号查表映射为向量,例如输入的编号为2,则从表中取出第2个向量。嵌入向量由4个部分相加组成,分别是子词语义嵌入(Sub-Token Embedding)、位置嵌入(Position Embedding)、句子嵌入(Sentence Embedding)、任务嵌入(Task Embedding):子词语义嵌入以子词在词表中的顺序位置作为编号,学习子词本身到向量的映射,例如某子词在词表中的第521个位置,其编号即为521;位置嵌入学习子词在输入文本中的位置到向量的映射,例如某子词在输入数据中的第4个位置,其编号即为4;句子嵌入学习子词所属的句子(或文本片段)的位置到向量的映射,例如某子词在第1个句子(或文本片段)中,其编号即为1;任务嵌入学习任务类型到向量的映射。嵌入向量在双向自注意力编码器层进行计算(双向自注意力编码器层采用Transformer[30]结构),计算后的向量传给下游任务层以实现特定的下游任务。

2.2 关键词分类 2.2.1 关键词分类任务定义

在输入的文本段落中有很多实词(如动词、名词),在生成问题的过程中,为了确保问题与原文语义上的一致性,往往需要“拷贝”一些重要的实词,在本文中称这些需要被拷贝的词为“关键词”。关键词分类任务的定义是:给定一个文本段落$ \mathit{\boldsymbol{C}} $和一个答案$ \mathit{\boldsymbol{A}} $,答案$ \mathit{\boldsymbol{A}} $是文本段落$ \mathit{\boldsymbol{C}} $中的一部分连续文本,$ \mathit{\boldsymbol{C}} $由连续的词$ \mathit{\boldsymbol{C}}=\{{C}_{1}, {C}_{2}, \cdots , {C}_{{L}_{C}}\} $构成($ {L}_{C} $是段落$ \mathit{\boldsymbol{C}} $中的词数量),计算机根据段落$ \mathit{\boldsymbol{C}} $和答案$ \mathit{\boldsymbol{A}} $预测段落$ \mathit{\boldsymbol{C}} $中的每一个实词$ {C}_{i}(1\le i\le {L}_{C}) $是否为关键词。

2.2.2 数据标注

实现关键词分类任务需要在训练集中标注关键词,具体操作是:遍历文本段落中的单词,如果该单词不在停词表(包含常用的高频虚词,使用开源工具spaCy和NLTK获取)中,并且该单词也出现在问题中,则将其视为关键词。标注关键词的算法描述如下:

算法1    标注关键词

输入    文本段落$ \mathit{\boldsymbol{C}}=\{{C}_{1}, {C}_{2}, \cdots , {C}_{{L}_{C}}\} $,问题$ \mathit{\boldsymbol{Q}}=\{{Q}_{1}, {Q}_{2}, \cdots , $ $ {Q}_{{L}_{Q}}\} $,停词表S

输出    关键词集合K

1.for Ci in C://遍历文本段落中的单词

2.if Ci not in S://如果单词不在停词表中

3.if Ci in Q://且单词出现在问题中

4.Ci →K//将单词加入关键词集合中

5.end//结束

该算法的运算过程包括对问题中所有词的一次遍历运算、对停词表的查表运算、对问题词集合的查表运算、对关键词集合的插入运算。算法的空间复杂度为O(n),时间复杂度为O(n)。

2.2.3 关键词分类网络结构

关键词分类网络结构如图 2所示。输入数据的格式为“[CLS],C1C2,…,$ {C}_{{L}_{C}} $,[SEP]”。在嵌入向量层中,子词语义嵌入的编号设定方式与ERNIE预训练过程中的设定方式相同,子词语义嵌入所需要的编号由子词在词表中的顺序位置决定;因为[CLS]和[SEP]需要2个位置,所以位置嵌入所需要的编号按顺序设置为0,1,…,LCLC+1,LC+2;因为输入的只有一个文本段落,所以统一将句子嵌入所需要的句子编号设置为0;因为该任务没有在预训练过程中使用过,所以将任务嵌入所需要的任务编号设置为默认值0。

Download:
图 2 关键词分类网络结构 Fig. 2 Keyword classification network structure

嵌入向量在经过双向自注意力编码器与全连接层后,利用Softmax层执行二分类任务,将每一个子词分成关键词或非关键词,表达如下:

$ \mathit{\boldsymbol{I}}_{\mathrm{K}\mathrm{C}}^{\mathrm{I}\mathrm{n}\mathrm{p}\mathrm{u}\mathrm{t}}=\left[\mathrm{C}\mathrm{L}\mathrm{S}\right], {C}_{1}, {C}_{2}, \cdots , {C}_{{L}_{C}}, \left[\mathrm{S}\mathrm{E}\mathrm{P}\right] $ (3)
$ \mathit{\boldsymbol{f}}_{\mathrm{K}\mathrm{C}}\left({C}_{i}\right)=\mathit{\boldsymbol{E}}_{\mathrm{E}\mathrm{n}\mathrm{c}}\left(\mathit{\boldsymbol{E}}_{\mathrm{E}\mathrm{m}\mathrm{b}}\right(\mathit{\boldsymbol{I}}_{\mathrm{K}\mathrm{C}}^{\mathrm{I}\mathrm{n}\mathrm{p}\mathrm{u}\mathrm{t}}\left)\right)\mathrm{ }·\mathit{\boldsymbol{W}}_{\mathrm{K}\mathrm{e}\mathrm{y}}^{\mathrm{T}} $ (4)
$ {P}_{\mathrm{K}\mathrm{C}}\left({C}_{i}\right)=\mathrm{S}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x}\left(\mathit{\boldsymbol{f}}_{\mathrm{K}\mathrm{C}}\right({C}_{i}\left)\right) $ (5)

其中:$ \mathit{\boldsymbol{I}}_{\mathrm{K}\mathrm{C}}^{\mathrm{I}\mathrm{n}\mathrm{p}\mathrm{u}\mathrm{t}} $表示输入数据;$ \mathit{\boldsymbol{E}}_{\mathrm{E}\mathrm{m}\mathrm{b}}( $$ ) $表示嵌入向量层;$ \mathit{\boldsymbol{E}}_{\mathrm{E}\mathrm{n}\mathrm{c}}( $$ ) $表示双向自注意力编码器层;$ \mathit{\boldsymbol{W}}_{\mathrm{K}\mathrm{e}\mathrm{y}}^{\mathrm{T}} $表示参数矩阵;$ \mathit{\boldsymbol{f}}_{\mathrm{K}\mathrm{C}}\left({C}_{i}\right) $表示子词$ {C}_{i} $经过全连接层后的向量;$ \mathrm{S}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x}( $$ ) $表示Softmax层;$ {P}_{\mathrm{K}\mathrm{C}}\left({C}_{i}\right) $表示子词$ {C}_{i} $经过Softmax层后被判定为关键词的概率。在训练过程中,损失函数采用负对数似然损失。

2.2.4 后处理

为了提升问题生成的效果,关键词分类模型输出的结果$ {P}_{\mathrm{K}\mathrm{C}}\left({C}_{i}\right) $需要经过后处理,原因有以下两点:

1)由于问题生成任务固有的“一对多”的特点,关键词分类任务不可能实现准确率和召回率都逼近100%的结果。例如:

段落:学术性刊物《计算机工程》于1975年创刊。

答案:1975年

问题1:《计算机工程》是哪年创刊?

问题2:学术性刊物《计算机工程》是哪年创刊?

在该例中,问题1与问题2都是正确的,但问题1中不包含“学术性刊物”,问题2中包含“学术性刊物”,因此,“学术性刊物”可以是关键词也可以是非关键词。

如果将准确率和召回率都不够高的特征输入到问题生成模型中,必然引入大量噪声,影响问题生成的结果。为解决该问题,可以降低判定为关键词的概率阈值,将特征调整为高召回率的特征,高召回率的直观理解是:对于判定为关键词的子词,问题生成模型应该进行复制;对于判定为非关键词的子词,问题生成模型应该自适应地计算是否复制。

2)原文段落相对较长,问题相对较短,原文段落中存在大量无关词汇,导致数据标注过程中被标注为关键词与非关键词的比例不均衡。可以通过降低关键词的判定概率阈值来解决该问题。

基于以上两点原因,后处理至关重要,其能影响关键词特征的质量以及问题生成的效果。后处理的具体方法是:设定一个关键词阈值$ T $,如果关键词分类模型输出的关键词概率大于等于阈值$ T $,则将其判定为关键词;否则,判定为非关键词。公式描述如下:

$ {C}_{i}\in \left\{\begin{array}{l}\mathrm{K}\mathrm{e}\mathrm{y}\mathrm{w}\mathrm{o}\mathrm{r}\mathrm{d}, P\left({C}_{i}\right)\ge T\\ \mathrm{N}\mathrm{o}\mathrm{n}\mathrm{⁃}\mathrm{K}\mathrm{e}\mathrm{y}\mathrm{w}\mathrm{o}\mathrm{r}\mathrm{d}, P\left({C}_{i}\right) < T\end{array}\right. $ (6)

经过后处理的关键词分类结果将作为特征融合到问题生成模型$ {M}_{\mathrm{Q}\mathrm{G}} $的输入中,并要保持问题生成模型$ {M}_{\mathrm{Q}\mathrm{G}} $在训练和预测过程中接收到的特征具有一致性。预测过程中的特征是由关键词分类模型$ {M}_{\mathrm{K}\mathrm{C}} $得出的,因此,在问题生成模型$ {M}_{\mathrm{Q}\mathrm{G}} $的训练过程中,也应该使用关键词分类模型$ {M}_{\mathrm{K}\mathrm{C}} $预测得出的特征,而不是数据集标注的真实特征。具体做法是:在训练集上训练好关键词分类模型$ {M}_{\mathrm{K}\mathrm{C}} $后,用$ {M}_{\mathrm{K}\mathrm{C}} $在训练集和测试集上均执行一遍预测过程,然后执行调整关键词分类阈值的后处理操作,将结果作为问题生成模型$ {M}_{\mathrm{Q}\mathrm{G}} $的输入特征。

2.3 带有关键词感知的问题生成

带有关键词感知的问题生成网络在结构设计时主要考虑三点:一是在输入层中融合关键词特征;二是在编码器层中添加自注意力掩码,将双向自注意力机制改为序列到序列的自注意力机制;三是在输出层实现训练阶段的并行训练与预测阶段的迭代生成。

基于ERNIE的问题生成网络结构如图 3所示。问题生成任务训练过程的输入文本数据格式为“[CLS],$ {Q}_{1}, {Q}_{2}, \cdots , {Q}_{{L}_{Q}} $,[SEP],$ {C}_{1}, {C}_{2}, \cdots , {C}_{{L}_{C}} $,[SEP]”。$ \mathit{\boldsymbol{Q}}=\{{Q}_{1}, {Q}_{2}, \cdots , {Q}_{{L}_{Q}}\} $是问题,问题的长度$ {L}_{Q} $是定值,对于数据中长于$ {L}_{Q} $的问题,在$ {L}_{Q} $处截断,对于数据中短于$ {L}_{Q} $的问题,用特殊标志子词[PAD]填充至$ {L}_{Q} $长度。对文本段落也做同样处理。在预测过程中,所有的问题子词均以[PAD]作为输入,目的是保持问题在训练和预测的过程中所处位置不变。

Download:
图 3 问题生成网络结构 Fig. 3 Question generation network structure

在嵌入向量层,子词语义嵌入、位置嵌入、任务嵌入的设置方法与关键词分类所用ERNIE方法相同。对于句子嵌入,需要进行特殊处理以区分段落、答案以及问题部分,具体为:将问题的句子嵌入所需编码设置为0,将输入文本段落中非答案部分的句子嵌入所需编码设置为1,将答案部分的句子嵌入所需编码设置为2。

在嵌入向量层,添加关键词特征嵌入并与原来的4种嵌入向量相加。对于关键词,其关键词嵌入的编码设置为1,对于非关键词,其关键词嵌入的编码设置为0。在此,将关键词分类模型及后处理得到的特征信息融合进问题生成模型的输入中,以实现问题生成模型的关键词感知能力。

在编码器层,预训练语言模型ERNIE的自注意力是双向的,即在计算每个子词的向量时,根据其上文和下文2个方向的子词进行向量计算。对于问题生成任务,不能使用双向的自注意力,这是因为在训练过程中要保持并行训练效率,一个问题中的所有子词并行参与训练,不能让问题中后边的子词“看到”前边的子词;另外,问题中所有子词的向量计算均需要“看到”所有文本段落部分的子词,不能让文本段落部分的子词“看到”问题部分的子词,以防数据泄露。如图 4所示,本文采用类似UniLM[31]中提出的自注意力掩码机制,实现问题生成任务所需的序列到序列自注意力编码器。在编码器中计算向量时,问题中的子词可以“看到”问题中前边的子词和文本段落中的子词,文本段落中的子词仅可以“看到”文本段落中的子词。自注意力掩码结构的设计,使得一条数据问题中包含的所有词可以并行训练,不会发生数据泄露,提升了训练效率。在预测过程中,为了保持和训练过程的一致性,也使用该自注意力掩码机制。

Download:
图 4 自注意力掩码示意图 Fig. 4 Schematic diagram of self-attention mask

带有自注意力掩码的编码器输出的向量经过全连接层后,用问题部分前一个子词$ {C}_{i-1} $位置的向量乘以子词嵌入矩阵的逆矩阵,得到的子词编码对应的子词作为当前子词$ {C}_{i} $的预测输出,用公式表示如下:

$ \begin{aligned}\mathit{\boldsymbol{I}}_{\mathrm{Q}\mathrm{G}}^{\mathrm{I}\mathrm{n}\mathrm{p}\mathrm{u}\mathrm{t}}=&\left[\mathrm{C}\mathrm{L}\mathrm{S}\right], {Q}_{1}, {Q}_{2}, \cdots , {Q}_{{L}_{Q}}, \left[\mathrm{S}\mathrm{E}\mathrm{P}\right], \\ &{C}_{1}, {C}_{2}, \cdots , {C}_{{L}_{C}}, \left[\mathrm{S}\mathrm{E}\mathrm{P}\right]\end{aligned} $ (7)
$ \mathit{\boldsymbol{f}}_{\mathrm{Q}\mathrm{G}}\left({Q}_{i}\right)=\mathit{\boldsymbol{E}}_{\mathrm{M}}^{\mathrm{E}\mathrm{n}\mathrm{c}}\left(\mathit{\boldsymbol{E}}_{\mathrm{K}}^{\mathrm{E}\mathrm{m}\mathrm{b}}\right(\mathit{\boldsymbol{I}}_{\mathrm{Q}\mathrm{G}}^{\mathrm{I}\mathrm{n}\mathrm{p}\mathrm{u}\mathrm{t}}\left)\right)\mathrm{ }·\mathit{\boldsymbol{W}}_{\mathrm{T}\mathrm{o}\mathrm{k}}^{\mathrm{T}} $ (8)
$ {P}_{\mathrm{Q}\mathrm{G}}\left({Q}_{i}\right)=\mathrm{S}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x}\left(\mathit{\boldsymbol{f}}_{\mathrm{Q}\mathrm{G}}\right({Q}_{i-1}\left)\right) $ (9)

其中:$ \mathit{\boldsymbol{I}}_{\mathrm{Q}\mathrm{G}}^{\mathrm{I}\mathrm{n}\mathrm{p}\mathrm{u}\mathrm{t}} $表示输入数据;$ \mathit{\boldsymbol{E}}_{\mathrm{K}}^{\mathrm{E}\mathrm{m}\mathrm{b}}( $$ ) $表示带有关键词嵌入的嵌入向量层;$ \mathit{\boldsymbol{E}}_{\mathrm{M}}^{\mathrm{E}\mathrm{n}\mathrm{c}}( $$ ) $表示带有自注意力掩码的编码器层;$ \mathit{\boldsymbol{W}}_{\mathrm{T}\mathrm{o}\mathrm{k}}^{\mathrm{T}} $表示和子词嵌入向量矩阵共享的参数矩阵;$ \mathit{\boldsymbol{f}}_{\mathrm{Q}\mathrm{G}}\left({Q}_{i}\right) $表示子词$ {Q}_{i} $经过全连接层后的向量;$ \mathrm{S}\mathrm{o}\mathrm{f}\mathrm{t}\mathrm{m}\mathrm{a}\mathrm{x}( $$ ) $表示Softmax层;$ {P}_{\mathrm{Q}\mathrm{G}}\left({Q}_{i}\right) $表示子词$ {Q}_{i} $经过Softmax层后应该生成的子词的概率。在训练过程中,损失函数采用负对数似然损失。

3 实验结果与分析 3.1 实验设置

实验代码在开源深度学习框架PaddlePaddle[32]上实现,在V100 GPU上训练与测试。使用预训练模型ERNIE初始化参数,并设置所有参数为可训练状态。设置问题的最大长度$ {L}_{Q} $为40,文本段落的最大长度$ {L}_{C} $为341。优化器为Adam,dropout比率为0.1。使用指数滑动平均(Exponential Moving Average,EMA)进行评估,衰减率设置为0.999 9。学习率使用线性warm up和decay,warm up步数设置为总训练步数的10%。最大学习率为2e-5,批大小(batch size)为16,关键词分类的训练轮数(epoch)为4,问题生成的训练轮数(epoch)为5。

3.2 数据集与评价指标

现有的问题生成研究主要在英文问答数据集SQuAD[33]上进行评价,SQuAD中的数据由段落、问题、答案3个部分组成,其中:段落和问题从维基百科中获取;答案由人工标注。但是SQuAD数据集中官方没有提供测试集,只提供了训练集和验证集。为解决该问题,文献[34]将原始的训练集划分为新的训练集和新的验证集,将原始的验证集划分为新的测试集,这种划分方式在问题生成领域被广泛使用,为了对比实验的公平性,本文同样使用文献[34]中的数据划分方式。

BLEU-4[35]是目前问题生成领域常用的评价指标。BLEU通过计算数据集真实数据和模型生成数据中共同出现的n-gram占所有n-gram的比率,以此来衡量生成质量的高低。BLEU还引入长度惩罚因子,避免过长或过短的句子获得过高的分数。

3.3 问题生成实验

问题生成实验结果如表 2所示。其中,选择3个具有代表性的模型作为对比模型:带有复制机制的问题生成模型[34]带有最大值指针与门控结构复制机制,在段落级的问题生成中取得了突破性的进展与性能提升;带有语义监督的问题生成模型[24]用问答任务来监督问题生成任务,在效能上具有较大的提升;带有序列到序列预训练的问题生成模型UniLM[31]在“序列到序列”预训练之后进行“微调”,是首个将预训练语言模型应用于问题生成任务的方法,在该领域具有很大的影响力。不带关键词感知的问题生成模型是本文的基线模型,其在问题生成模型的嵌入向量层没有添加关键词特征的嵌入向量。从表 2可以看出,本文带有关键词感知的问题生成模型的性能优于基线模型以及对比问题生成模型。

下载CSV 表 2 问题生成实验结果 Table 2 Question generation experiment results
3.4 关键词分类阈值对问题生成的影响

用准确率和召回率评估关键词分类及后处理之后的问题生成质量,多组关键词分类阈值下的实验结果如表 3所示。从表 3可以看出,准确率和召回率无法同时达到很高水平,这是由于问题生成任务固有的“一对多”特点所造成的,需要采用后处理的方法调整关键词分类阈值T来解决该问题。

下载CSV 表 3 关键词分类实验结果 Table 3 Keyword classification experiment results

为进一步探究后处理中关键词分类阈值T对问题生成质量的影响,本文评估多组阈值设置下的问题生成BLEU-4指标,结果如图 5所示。

Download:
图 5 关键词分类阈值对BLEU-4的影响 Fig. 5 Influence of keyword classification threshold on BLEU-4

图 5可以看出:当阈值设置为0.01时,BLEU-4指标结果与基线模型持平;当阈值设置为0.50时,BLEU-4指标略高于基线模型;当阈值设置为0.20时,BLEU-4指标明显优于基线模型。由此可见,关键词后处理操作具有有效性。

3.5 应用场景

带有关键词感知的问题生成方法已经借助千万级规模的数据平台——百度百科实现了大规模工业应用。一条百度百科数据由一个“词条名”和对该词条名的文字介绍构成,例如,词条“红嘴鸥”中有大量文字系统性地介绍了红嘴鸥的形态特征、栖息环境、生活习性等信息。将百度百科数据中的某一个段落以及标记的答案作为问题生成的输入,将词条名作为关键词,通过带有关键词感知的问题生成方法生成包含词条名的问题,将问题加入搜索引擎的问题库,当用户使用搜索引擎搜索该问题时,即可将该段落和答案作为搜索结果。

4 结束语

本文基于预训练语言模型ERNIE,提出一种带有关键词感知功能的问题生成方法。利用关键词分类模型提取关键词信息,经过后处理操作后将其作为全局信息来引导问题生成过程。在SQuAD数据集上的实验结果表明,该方法能够显著提升问题生成效果,BLEU-4指标值可达24。目前,该方法的有效性已在大规模工业应用中得到验证,下一步将探索其在摘要抽取、标题生成等其他自然语言生成任务中的适用性。

参考文献
[1]
SHUM H Y, HE X, LI D. From Eliza to XiaoIce: challenges and opportunities with social chatbots[J]. Frontiers of Information Technology & Electronic Engineering, 2018, 19(1): 10-26.
[2]
DENKOWSKI M, LAVIE A. Meteor universal: language specific translation evaluation for any target language[C]//Proceedings of the 9th Workshop on Statistical Machine Translation. [S. l. ]: ACL Press, 2014: 376-380.
[3]
DANON G, LAST M. A syntactic approach to domain-specific automatic question generation[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1712.09827.
[4]
DU X, SHAO J, CARDIE C. Learning to ask: neural question generation for reading comprehension[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1705.00106.
[5]
HAN F X, NIU D, LAI K, et al. Inferring search queries from Web documents via a graph-augmented sequence to attention network[C]//Proceedings of the World Wide Web Conference. New York, USA: ACM Press, 2019: 2792-2798.
[6]
DU X, CARDIE C. Harvesting paragraph-level question-answer pairs from Wikipedia[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1805.05942.
[7]
TANG D, DUAN N, QIN T, et al. Question answering and question generation as dual tasks[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1706.02027.
[8]
TANG D, DUAN N, YAN Z, et al. Learning to collaborate for question answering and asking[C]//Proceedings of 2018 Conference of the North American Chapter of the Association for Computational Linguistics. [S. l. ]: ACL Press, 2018: 1564-1574.
[9]
ALBERTI C, ANDOR D, PITLER E, et al. Synthetic QA corpora generation with roundtrip consistency[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1906.05416.
[10]
LINDBERG D, POPOWICH F, NESBIT J, et al. Generating natural language questions to support learning on-line[C]//Proceedings of the 14th European Workshop on Natural Language Generation. [S. l. ]: ACL Press, 2013: 105-114.
[11]
MAZIDI K, NIELSEN R. Linguistic considerations in automatic question generation[C]//Proceedings of the 52nd Annual Meeting of the Association for Computational Linguistics. [S. l. ]: ACL Press, 2014: 321-326.
[12]
HUSSEIN H, ELMOGY M, GUIRGUIS S. Automatic English question generation system based on template driven scheme[J]. International Journal of Computer Science Issues, 2014, 11(6): 45-46.
[13]
LABUTOV I, BASU S, VANDERWENDE L. Deep questions without deep understanding[C]//Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing. [S. l. ]: ACL Press, 2015: 889-898.
[14]
ZHOU Q, YANG N, WEI F, et al. Neural question generation from text: a preliminary study[C]//Proceedings of National CCF Conference on Natural Language Processing and Chinese Computing. Berlin, Germany: Springer, 2017: 662-671.
[15]
KIM Y, LEE H, SHIN J, et al. Improving neural question generation using answer separation[C]//Proceedings of AAAI Conference on Artificial Intelligence. [S. l. ]: AAAI Press, 2019: 6602-6609.
[16]
SCIALOM T, PIWOWARSKI B, STAIANO J. Self-attention architectures for answer-agnostic neural question generation[C]//Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics. [S. l. ]: ACL Press, 2019: 6027-6032.
[17]
ZHOU W, ZHANG M, WU Y. Question-type driven question generation[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1909.00140.
[18]
LIU B, WEI H, NIU D, et al. Asking questions the human way: scalable question-answer generation from text corpus[C]//Proceedings of 2020 Web Conference. New York, USA: ACM Press, 2020: 2032-2043.
[19]
LIU B, ZHAO M, NIU D, et al. Learning to generate questions by learning what not to generate[C]//Proceedings of the World Wide Web Conference. New York, USA: ACM Press, 2019: 1106-1118.
[20]
HU W, LIU B, MA J, et al. Aspect-based question generation[EB/OL]. [2020-12-06]. https://openreview.net/forum?id=rkRR1ynIf.
[21]
GAO Y, BING L, CHEN W, et al. Difficulty controllable generation of reading comprehension questions[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1807.03586.
[22]
YAO K, ZHANG L, LUO T, et al. Teaching machines to ask questions[C]//Proceedings of the 27th International Joint Conference on Artificial Intelligence. Washington D.C., USA: IEEE Press, 2018: 4546-4552.
[23]
KUMAR V, RAMAKRISHNAN G, LI Y F. Putting the horse before the cart: a generator-evaluator framework for question generation from text[C]//Proceedings of the 23rd Conference on Computational Natural Language Learning. [S. l. ]: CoNLL Press, 2019: 812-821.
[24]
ZHANG S, BANSAL M. Addressing semantic Drift in question generation for semi-supervised question answering[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1909.06356.
[25]
TANG D, DUAN N, QIN T, et al. Question answering and question generation as dual tasks[EB/OL]. [2020-12-06]. https://arxiv.org/pdf/1706.02027.pdf.
[26]
WANG T, YUAN X, TRISCHLER A. A joint model for question answering and question generation[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1706.01450.
[27]
SUN Y, TANG D, DUAN N, et al. Joint learning of question answering and question generation[J]. IEEE Transactions on Knowledge and Data Engineering, 2019, 32(5): 971-982.
[28]
DEVLIN J, CHANG M W, LEE K, et al. BERT: pre-training of deep bidirectional transformers for language understanding[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1810.04805.
[29]
SUN Y, WANG S, LI Y, et al. ERNIE: enhanced representation through knowledge integration[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1904.09223.
[30]
VASWANI A, SHAZEER N, PARMAR N, et al. Attention is all you need[EB/OL]. [2020-12-06]. https://papers.nips.cc/paper/2017/file/3f5ee243547dee91fbd053c1c4a845aa-Paper.pdf.
[31]
DONG L, YANG N, WANG W, et al. Unified language model pre-training for natural language understanding and generation[EB/OL]. [2020-12-06]. https://papers.nips.cc/paper/2019/file/c20bb2d9a50d5ac1f713f8b34d9aac5a-Paper.pdf.
[32]
MA Y, YU D, WU T, et al. PaddlePaddle: an open-source deep learning platform from industrial practice[J]. Frontiers of Data and Domputing, 2019, 1(1): 105-115.
[33]
RAJPURKAR P, ZHANG J, LOPYREV K, et al. SQuAD: 100, 000+ questions for machine comprehension of text[EB/OL]. [2020-12-06]. https://arxiv.org/abs/1606.05250.
[34]
ZHAO Y, NI X, DING Y, et al. Paragraph-level neural question generation with maxout pointer and gated self-attention networks[C]//Proceedings of 2018 Conference on Empirical Methods in Natural Language Processing. [S. l. ]: ACL Press, 2018: 3901-3910.
[35]
PAPINENI K, ROUKOS S, WARD T, et al. BLEU: a method for automatic evaluation of machine translation[C]//Proceedings of the 40th Annual Meeting of the Association for Computational Linguistics. [S. l. ]: ACL Press, 2002: 311-318.