面向中文成语的阅读理解方法研究
2021-08-13徐家伟刘瑞芳高升李思
徐家伟,刘瑞芳,高升,李思
(1.北京邮电大学人工智能学院,北京100088;2.北京邮电大学模式识别与智能系统实验室,北京100088)
0 引言
中文机器阅读理解是一个充满挑战的任务,其要求模型对自然语言有深刻的理解。而完形填空任务[1]是机器阅读理解的一种特殊形式,它要求模型联系上下文从备选词或句中选择合适的选项填入指定位置。由于其形式简单,完形填空任务作为一种经典的评估模型语言理解能力的方法被广泛使用[2]。
本文主要探究中文成语理解的完形填空任务[3]。成语作为一种特别的语言现象,在中国已经演化了上千年。其中大量的成语构成不遵循常规的语法结构,并且相当一部分成语具有隐喻的意义。同时一些成语也存在看似相同但语义完全不同的情况。这些因素使得在完形填空中选择正确的成语变得极具挑战性[4]。
过去几年中,已有一些深度模型被用于机器阅读理解任务,包括BiLSTM[5]模型,Stanford Attention Reader[6]模型及近年大热的BERT[7]预训练语言模型等。这些深度学习模型可以被训练用来完成中文完形填空任务。其中微调的BERT 模型可以得到强于其他模型的效果。
尽管微调的BERT 模型表现出色,但让模型在不同的语境中找到成语关注的重点依然很困难。在微调BERT 模型的基础上,本文引入了全局注意力机制去试图捕获那些影响了模型决策过程的关键词语。通过观察其中的全局对齐权重,我们发现,模型关注的文本重点常常不够精确,甚至是错误的。成语在不同的句子中往往会有不同的作用。由于丰富的语境,机器很难准确认识到成语在句法中扮演的角色。这些因素使得机器选择成语的准确度大大受限。事实上,习语在写作中的使用往往过于抽象,即使是人类也常常无法根据上下文找出句子中哪些词语与成语有密切的联系。因此,本文并不期待模型可以完成人类都无法做到的任务。在数据集CHID[8]中,问题中每一个要填的空格都对应了若干个候选成语。尽管其中只有一个是正确选项,但在其他错误选项中依然会有一些相似或相关的成语。本文希望模型可以从这类选项中得到有用的信息。例如,如果两个成语语义相近,那么模型可以从中加强语义相近部分的学习;或者虽然两个成语语义不同,但在语境下充当了相同的句法成分(比如都是作为宾语或谓语),那么模型可以从中加强对成语句法成分的学习。具体来说,在通过注意力层之后,每一个选项在文本的位置维度上会有不同的关注区域。我们利用这些区域的相似部分去缩放和调整全局注意力权重,从而突出正确的语义特征区域。据了解,此前尚未有同样的思路被提出。上述简单而有效的方法就是本文提出的增强型全局注意力(global enhanced attention,GEA)机制。本文的模型是对BERT 模型用于完形填空任务的一种新尝试,并且效果很好。相关数据集上的实验表明,本文所提出的模型性能得到了明显提升,并且显著加强了语义特征的学习。
本文主要贡献有以下几点:
(1)提出了一种基于BERT 的完形填空式阅读理解模型。
(2)提出了一种基于全局注意力机制的增强型全局注意力机制,该机制在完形填空任务上的表现和可解释性都高于原始的全局注意力机制。
(3)提供了一种新的思路去提升模型理解特殊语言现象(如成语)的能力,实现了对语义特征在更多维度上的捕获。
1 相关工作
1.1 BERT模型
BERT(bidirectional encoder representations from transformers)是基于大量语料训练的预训练模型。BERT的模型架构基于多层的Transformer[9]解码器部分,可以通过微调用于多个自然语言处理任务上,例如,文本分类、自然语言推理学习等。当BERT 在多个任务上展现出惊人的效果后,BERT的作者公开了一个叫作全词掩蔽BERT 的升级版本,该版本改善了训练样本的生成策略。据本文所知,Adhikari等人[10]最先将BERT 用于分类任务。在他们的模型中,一个全连接层被引入到BERT 最终的隐藏状态上,隐藏状态中包含一个代表整体输入的神经元,之后通过选择额外的softmax分类器参数来加权隐藏状态层,进一步优化了模型。
1.2 注意力机制
注意力机制在最近几年变得非常流行。其首先在机器翻译领域受到广泛关注[11],随后吸引了更多自然语言处理任务,例如,文本摘要[12]、阅读理解[13]等。随着注意力机制的快速发展,很多自然语言处理任务在引入注意力机制后也随之实现了更好的效果。同时,不同于其他的一些典型的机器学习算法表现出的黑盒性,注意力机制使得神经网络的解释性有所提高。在Xu等人[14]的工作中,提出了软注意力机制和硬注意力机制。之后Luong 等人[15]提出了注意力的两个修正版本,即全局注意力和局部注意力。两者的区别在于上下文向量的计算方法,也就是注意力是聚焦于全部的位置还是局部或特定的位置。全局注意力可以简单地理解为软注意力的简化版本。但与软注意不同,全局注意机制直接根据当前隐藏状态和每个输入隐藏状态计算对齐权重,然后通过源的隐藏状态和权重的加权求和得到上下文向量。本文提出的增强型全局注意力是对全局注意力机制的改进,使模型可以更好地理解汉语成语。与全局注意力机制相比,GEA 增加了少量额外的参数,但性能更好。
1.3 汉语成语
在自然语言处理领域,针对汉语成语的研究并不多,并且流行的研究思路往往只针对成语自身而忽略了成语与成语之间的关联。但在中国语言文学领域,研究者们已经早早地注意到了成语间复杂而有趣的联系[16]。成语间的联系可以归结到语素和句法功能两个方面[17]——比如,有些成语间存在相同的语素,因此存在相似的语义,但感情色彩强烈程度不同;又比如,有些成语间虽然语素和语义都极少有相同点,但在相同语境下却有着同样的句法功能。本文将目光聚焦在完形填空任务选项中的成语之上,使注意力机制得以从中受益,增强了模型对成语的学习能力。
2 研究方法
2.1 任务定义
典型的完形填空任务以带有填空的文本和对应选项作为输入,然后在所给选项内进行答案预测。该任务形式化定义为:给定文本d={ω1,ω2,…,ωn},填空位置b,选项C={c1,c2,…,cm},依据式(1)输出答案。
其中,n为文本长度,m为选项的个数。
2.2 模型框架
本文模型框架如图1所示,由编码层、融合层、注意力层和推理层四部分组成。各层主要功能如下:
图1 本文模型框架
(1)编码层:对输入的文本和选项分别进行语义化表示;
(2)融合层:对选项和文本中填空的编码进行融合;
(3)注意力层:进一步捕获选项和上下文之间的关系;
(4)推理层:对答案进行预测。
2.3 编码层
由于BERT 在阅读理解任务上的出色表现,本文选择它作为模型的编码层。具体来说,本文用BERT 对原始文本进行编码以获取语义表示hs,之后从BERT 最后的输出中提取填空的隐藏状态hb。具体如式(2)、式(3)所示。
将[cls]和[sep]拼接在文本首尾为BERT 的标准输入格式,其中[sep]为分隔符,[cls]为输入的聚合表示,用于微调BERT 下游的分类任务。
同时,本文对所有的成语进行了随机初始化,使每一个成语具有自己的语义表示,并在后续随着模型的训练逐渐调整。模型根据每道题的选项从成语的编码层中取出对应的若干编码e。
2.4 融合层
为了在文本内的填空和选项间建立连接,本文使用了爱因斯坦求和约定对隐藏状态hb和成语的对应编码e进行了矩阵相乘,具体如式(4)所示。
2.5 注意力层
注意力层进一步捕获选项与填空上下文之间的关联,帮助模型在决策之前从源文本中得到更多信息。在注意力层中,由融合层得到的目标隐藏状态ht被用来得到上下文向量c,具体计算过程可以参考全局注意力机制[15]。在得到目标隐藏状态和上下文向量之后,本文在连接层引入了激活函数PRelu[18],对这两个向量进行合并以产生一个新的注意力隐藏状态ha,具体如式(5)所示。
其中,Wc为权重矩阵。
本文在注意力层中分别尝试了全局注意力机制和本文提出的GEA 机制来获得注意力隐藏状态。
2.6 增强型全局注意力机制
为了增强模型学习复杂语义的能力,本文提出了增强型全局注意力(global enhanced attention,GEA)机制。该机制的架构如图2所示,可以看出这个机制和全局注意力机制存在相似之处。
图2 GEA 架构示意图
实际上,本文将GEA 看作一种全局注意力机制的改进版本,因此本文会将GEA 和全局注意力机制的相似之处作简单描述。本文首先使用一个点乘作为得分函数对当前的目标隐藏状态ht和源文本hs的隐藏状态进行比较,如式(6)所示。随后通过式(7)计算得到对齐向量ai。
在这步之后,模型完成了对文本中每个字分配不同“关注度”的过程。但这个过程显然不够精确。如果可以在一个合理范围内提高一些字的“关注度”,那么帮助模型抓住重点字的概率也会增加。怎样得到这个合理的范围呢? 不同于全局注意力机制,本文试图从同一个填空的所有选项中获取信息以实现这个目标。
如果每个填空对应M个选项,那么就会有M组对齐向量ai与之对应。直观的说,选择不同的成语时,模型对上下文中每个字的关注程度也会相应的做出改变,这些向量即表示这些“关注程度”。针对不同的选项,模型会对源文本给出不同的注意力分布。本文希望抓住它们的共同点,以调整模型在每个决策过程中关注的特征。因此本文计算了这M组ai的向量之和以生成一个特殊全局特征x,具体如式(8)所示。
随后,为了获得增强型全局对齐权重,本文将特殊全局特征x通过sigmoid函数门并以此对原本的对齐权重ai进行缩放,具体如式(9)所示。
在此之后,本文担心全局注意力机制的效果会因此被削弱。为了解决这个问题,本文将对齐向量ai通过一个平均函数[本文使用了自适应均值汇聚层F(·)作为这个平均函数]得到一个近似值,如式(10)所示。
其中,n为文本长度。
这个近似值在一定程度上代表了全局注意力机制针对每个选项给出的注意力程度。然后本文对这个近似值和增强全局权重ai做了一个简单的点乘,如式(11)所示。
受到被广泛使用的正则化方法的启发[19],本文为上下文向量c引入了γ,β参数去更好地保持模型的语义表示,具体如式(12)所示。
其中,γ和β是和上下文向量c大小相同的可学习的变换参数向量,可参考batch normalization中的尺度因子和平移因子[19],本文对γ和β进行了不同的初始化尝试。
2.7 推理层
最后,由注意力层生成的隐藏状态ha被输入到推理层中由softmax对每一个选项进行打分,具体如式(13)所示。
α中得分最高的选项将被选作答案。其中,Ws为权重矩阵。
3 实验
3.1 数据集
本文针对成语这种特殊的语言现象进行研究,因此选择了大型的中文成语完形填空数据集CHID。在该数据集中的每一个例子中,成语都被空格代替。同时每个空格都对应若干个选项,选项中包括了一个正确答案。一般来说,考虑到汉语成语的特点,正确答案通常不会出现在上下文中。数据集中使用的成语都由四个字组成。根据统计,数据集中一共出现了3 848个成语。数据集中的文本主要从小说、散文及新闻中提取,这样保证了样本的多样性。本文使用了准确率作为评估标准,并且使用了和原数据集一样的训练集/验证集/测试集/域外集划分。准确率计算如式(14)所示。
3.2 实验细节
本文使用了全词掩蔽的中文BERT 预训练模型[20]。为了确保GEA 机制能够使BERT 模型受益,并且确实比全局注意力机制在完形填空任务上表现更好,本文在微调的BERT 模型后分别引入了全局注意力机制和GEA 机制构建实验模型。我们在所有的实验中都使用相同的超参,同时固定了实验的随机数种子。批处理大小为64,共训练10轮。模型训练的初始学习率被设为2e-5,并且本文在训练过程中引入了学习率的预热策略。为了加速训练过程同时减少显存的占用,本文使用了混合精度训练技术apex。本文的代码在Py Torch框架中实现。
在数据预处理阶段,本文用[MASK]令牌替代文本中的填空。在训练的初始阶段,本文对3 848个成语的词向量进行了随机初始化。
在微调过程中,本文使用了额外的softmax分类器参数对整个模型进行端到端的优化。本文模型使用了交叉熵[21]作为损失函数。
3.3 实验结果
本文选用在验证集上准确率最高的模型在测试集上进行测试。所有实验的结果如表1所示。本文同样将GEA 模型与当前流行的模型效果进行了对比。这些模型分别为:
表1 模型实验准确率结果(单位:%)
(1)BiLSTM 模型,双向长短时记忆循环神经网络模型。
(2)Attention Reader(AR)模型,该模型在BiLSTM 中引入了注意力机制。
(3)Stanford Attentive Reader(SAR)模型,相比于AR 模型,SAR 应用了双线性矩阵计算注意力权重。
(4)BERT 模型,谷歌提出的预训练模型。
其中,BiLSTM 模型、AR 模型及SAR 模型的实验结果来源于前人的实验[8],其余模型的实验结果来自于本文。据本文所知,已有模型中,BERT 模型的实验结果准确率最高。
结果表明,本文模型的性能优于其他模型。对于微调BERT 模型来说,引入注意力层是一个行之有效的方法。而比起全局注意力机制,本文提出的GEA 机制可以让模型的表现更进一步。虽然成语的使用在不同的文体中不尽相同,本文的模型依然在域内集和域外集上都得到了更高的精度。对不同领域测试数据都有性能提升的结果表明,本文的方法也提高了模型的泛化能力。
3.4 消融实验
为了调查GEA 算法各部分的效果,本文在CHID 数据集上进行了消融实验。
在GEA 模型中,本文使用了增强型全局对齐权重代替原始对齐权重去计算上下文向量。本文假设模型可以从所有全局对齐权重的共同点中获益,因此我们将其作为一个特殊的全局特征来生成增强型全局对齐权重。同时,本文使用了一个平均函数,在一定程度上使每一个原始对齐向量的特性得以留存。为了验证这个假设,本文通过分别去除增强型全局对齐权重和平均函数进行实验,实验结果如表2所示。从表2可以发现,模型去除两者后的性能都明显降低,而且这两个部分的效果存在相互抵消的可能性。这个实验结论与我们的假设一致。
表2 模型使用或去除增强型全局对齐权重和平均函数F(· )时的表现 (单位:%)
表2 模型使用或去除增强型全局对齐权重和平均函数F(· )时的表现 (单位:%)
____________a^i&F(·)验证集测试集域外集___同时使用77.3 75.8 70.3____去掉_a^i 77.3 75.5 70.2____去掉F(·)76.7 75.4 70.1____两者都去掉76.4 74.7 60.6___
3.4.2 参数γ和β的初始化
在实验过程中,初始化向上下文向量c引入的参数γ和β对实验结果有明显的影响。为了探明怎样设置这组参数可以得到最好的效果,本文使用了0,1的值进行网格搜索来初始化γ和β以观察实验结果。表3表明,将γ,β都初始化为0,可以使结果性能最高。受已有的正则化研究的启发[22],本文推测γ和β的初始化能够帮助模型在注意力机制占主导作用之前保留某种基础的语义表示。
表3 模型使用不同的参数γ 和β 初始化时的表现 (单位:%)
本文同样进行了实验尝试对上下文向量c直接进行正则化操作,在验证集上的精度为76.3%,在测试集上的精度为74.4%,精度均有明显降低。综上所述,虽然GEA 机制在一定程度上受到了正则化研究的启发,但直接的正则化方法并不适用于GEA。
3.5 可视化
为了直观地了解GEA 机制怎样改进模型对上下文的注意力分布,以及其怎样影响模型,本文分别从引入了全局注意力层和引入了GEA 层的模型中提取注意力权重分布。然后通过对相应的字符进行着色处理,实现权值的可视化。权重越高,颜色越深。本文选择了一篇有两个空格的章节作为例子来说明这种可视化。图3显示了全局注意力的权重,图4显示了GEA 机制的权重。文本中的[MASK]表示填空的位置。由于GEA 的特殊机制,含有更多的着色字符,但这并不妨碍可视化反映出更受模型关注的字。
图3 对全局注意力权重的可视化
图4 对GEA 注意力权重的可视化
对于这个有两个空格的例子,引入全局注意力的模型只选对了第一个填空的正确答案,而引入GEA 模块的模型两个填空都对了。更重要的是,可视化直观地反映出带有GEA 模块的模型总是聚焦在句子的主体上,而具有全局注意力的模型,无论答案是对是错,其“注意力”往往是分散、难以解释的。同时,我们可以发现在GEA 模型中,对决策起关键作用的字也获得了更多的关注,如图4所示。
具体来说,这个例子的选项分别是{比比皆是,名不副实,绝无仅有,销声匿迹,无可奈何,偃旗息鼓,不一而足,不胜枚举,委曲求全,凤毛麟角},答案是“凤毛麟角”,在汉语里的意思是稀有而珍贵的事物。在图3中,很难发现深色的字和答案之间有什么联系。但与此相对的是,图4里深色的词如“国内一流”“得益”等,同“凤毛麟角”一样具有褒义的感情色彩。这正符合本文的假设,即调整“注意力分布”可以提高模型捕获关键字的概率。这也和人们的常识相呼应,即成语的日常学习与使用需要对语境有更多关注。
尽管成语是一种抽象的语言现象[23],但借助GEA 机制还是可以在某种程度上一窥机器决策的过程。这是全局注意力机制几乎做不到的。在这点上,GEA 更贴近于人的思维,也使得模型在一定程度上提高了可解释性。
4 结论
本文提出的增强型全局注意力机制可以帮助模型捕获比全局注意力机制更多的语义信息,并且通过可视化直观地表明了模型在理解汉语成语能力上的进步与可解释性。GEA 的方法简单有效,贴合人类学习特殊语言现象的思路,实现了在完形填空式阅读理解上可靠的进步。
目前本文对于成语语义特性的捕获仍不充分,仅尝试利用了选项间的关系来增强模型学习语义信息的能力。未来的工作将着眼于探索成语的语义特性对机器阅读理解的影响,例如,情感色彩及成语的语法结构等。