ACTA Scientiarum Naturalium Universitatis Pekinensis
中文机器阅读理解的鲁棒性研究
北京大学学报(自然科学版) 第 57 卷 第1 期 2021 年 1 月Acta Scientiarum Naturalium Universitatis Pekinensis, Vol. 57, No. 1 (Jan. 2021) doi: 10.13209/j.0479-8023.2020.088李烨秋1 唐竑轩1 钱锦1 邹博伟1,2 洪宇1,†
1. 苏州大学计算机科学与技术学院, 苏州 215000; 2. 新加坡资讯通信研究院, 新加坡 138632; † 通信作者, E-mail: tianxianer@gmail.com
摘要 为了更好地评价阅读理解模型的鲁棒性, 基于 Dureader 数据集, 通过自动抽取和人工标注的方法, 对过敏感、过稳定和泛化3个问题分别构建测试数据集。还提出基于答案抽取和掩码位置预测的多任务学习方法。实验结果表明, 所提方法能显著地提高阅读理解模型的鲁棒性, 所构建的测试集能够对模型的鲁棒性进行有效评估。关键词 机器阅读理解; 鲁棒性; 中文语料库
作为自动问答(question answering, QA)领域的一个重要子任务, 机器阅读理解(machine reading comprehension, MRC)旨在让模型理解段落内容后,根据问题给出答案。机器阅读理解数据集主要包含5个类别: 抽取式(extractive)、生成式(generative)、选择题(multiple choice)、完形填空(cloze-type)和会话(conversation)。其中, 抽取式阅读理解由于问题的多样性及易于评价等特点, 近年来成为被研究频率最高的评测任务。随着大规模数据集(如 SQUAD[1])的发布, 基于神经网络的抽取式阅读理解模型研究得到快速发展, 特别是基于预训练语言模型[2]的阅读理解模型, 其水平甚至已超越人类[3]。虽然抽取式阅读理解模型在大量数据集上不断
刷新其最佳性能, 但在鲁棒性方面仍存在较大的缺陷, 即面对不同分布或干扰性强的数据时, 模型性
[4–6]能受到严重的影响 。目前, 抽取式阅读理解模型的鲁棒性问题主要体现在以下3个方面。
1) 过敏感问题。主要体现在回答复述问题(与原问题字面上不完全相同, 而表达相同含义且答案相同的问题)时, 模型通常输出与原问题不同的错误答案。存在过敏感问题的模型, 对复述问题在字面上的差异过度敏感, 导致其错误地理解问题的语义。如表1所示, 复述问题仅将原问题中“送”改为“送给”, 在语义没有发生变化的情况下, 模型便给出无关的答案。
2) 过稳定问题。与过敏感问题相反, 当段落中
出现干扰句(存在大量与原问题相同词语的句子)时,阅读理解模型无法区分干扰句与答案所在句, 导致其在干扰句中寻找到错误的答案。现有的阅读理解模型虽然有能力通过词共现等浅层线索回答问题,但忽略了对关键语义的理解, 从而使段落中的干扰句影响模型的预测结果。如表1所示, 干扰问题与干扰句存在的相同词语为“光大”、“银行”、“信用卡”和“有效期”, 而干扰问题与答案所在句相同的词语为“光大”、“信用卡”和“有效期”, 因此模型被误导为从干扰句中抽取答案。
3) 泛化问题。现有阅读理解模型能够通过训练, 在与训练集相同领域的测试集上取得高性能。如果将已经训练好的模型应用于不同领域或采用不同方法构建的数据集上, 其性能会急剧地下降。如表1所示, 由于训练集不包含数学领域的样本, 模型无法学到“解方程”问题的相关表示, 因此选择错误的答案。
1 相关工作1.1 阅读理解数据集
随着众包服务模式的普及, 大规模机器阅读理解数据集的标注成为可能。Rajpurkar等[1]采用众包方法, 构建第一个大规模抽取式机器阅读理解数据
[7]集 SQUAD, 后续的数据集(如 Trischler 等 构建的Newsqa和 Rajpurkar等[8]构建的SQUAD 2.0)中加入不可回答的问题, 增加了数据集的难度。近年来,研究者开始在中文阅读理解领域构建大规模机器阅
[9]读理解数据集。Cui 等 通过众包方式, 构建中文
[10]抽取式阅读理解数据集CMRC。He等 基于百度搜索和百度知道的数据, 构建面向中文领域的大规模数据集Dureader。以上数据集通过加入各种类型的问题, 提高了抽取式阅读理解的难度, 但大都忽略了针对阅读理解模型鲁棒性的评价。
最近, 人们开始尝试构建针对阅读理解模型鲁棒性评价的数据集。Tang等[4]在 Dureader数据集的基础上, 针对鲁棒性问题进行标注, 构建中文阅读理解数据集 Dureaderrobust , 但未针对各鲁棒性任务构建单独测试集, 所以无法分别验证模型在过敏感、过稳定和泛化方面的性能。
1.2 阅读理解模型鲁棒性研究
阅读理解模型的鲁棒性通常集中在3 个方面。1) 过敏感问题在阅读理解模型上主要体现在当模型遇到复述问题时, 无法给出正确答案。现有的研究主要通过构建复述问题来攻击阅读理解模型。Zhao等[11]提出利用生成对抗网络的方法, 生成复述问题来攻击阅读理解模型。Ribeiro等[6]提出生成语义相同的对抗数据, 并结合专家标注的方法,检测神经网络模型的过敏感问题。上述研究发现,现有的神经网络模型在面对复述问题时, 性能远低于原问题, 存在比较严重的过敏感问题。针对该问题, 目前的主要方法是利用模型自动生成大量复述问题, 但其数据集缺乏语言的自然性。因此, 本文将真实应用环境下的用户数据作为复述问题的来源, 确保评价数据集的真实性和自然性。
2) 存在过稳定问题的模型倾向于利用词语分布等浅层线索, 而忽略了语义理解。Jia等[5]通过在SQUAD数据集的段落中加入干扰句的方法, 干扰阅读理解模型, 导致模型性能大幅下降。Kavumba等[12]认为现有的深度学习模型擅长浅层信息学习而非深层语义理解, 通过改进COPA数据集[13]上词
语的分布和词性的重叠等浅层线索, 证明现有模型在失去浅层线索后会导致性能损失。上述研究通过增加或消除文本中的浅层线索, 误导模型的答案,但这种修改方式易使段落语义受到干扰, 从而为模型的预测引入不可预知的变量。为避免该问题, 本文首先选取存在干扰句的段落, 然后根据该干扰句和答案, 人工标注问题, 在保证段落语义不被改变的同时, 对模型进行干扰。
3) 阅读理解模型的泛化对开放域问答和现实应用(如搜索引擎)的发展有不可忽视的作用。Fisch等[14]在 EMNLP中设置针对阅读理解泛化能力的工作站任务MRQA ① , 整合 SQUAD 和 Newsqa 等 18个领域各异的数据集, 将其中6个领域作为训练集,
[4] 12个领域作为泛化测试集。受该研究及Tang等的启发, 本文选用与训练集不同的教育和金融领域,采用人工标注方法构建泛化测试集。
2 数据集构建
本文基于 Dureaderrobust 构建3个测试数据集②,分别评估阅读理解模型在过敏感、过稳定和泛化3个方面的性能。此外, 以 Dureaderrobust的验证集作为领域内测试集, 用来对比模型在非鲁棒性任务上的性能。数据格式参照SQUAD数据集, 数据样本为
三元组形式, 其中q为问题, p为供模型阅读的段落, p中包含答案a。如表1中过稳定样例所示, 答案a可能存在多种形式, 数据集对所有答案均标注起始位置。参照Dureaderrobust 的设置, 本数据集的数据类型为实体类问题, 即答案为实体,段落为描述该实体的一段文字。构建的测试集数据规模如表 2 所示。
2.1 过敏感测试集
将一个复述问题输入机器阅读理解系统, 应当得到与原问题同样的答案, 否则, 该系统对字面上的差异过度敏感, 影响其对语义的理解。为构建过敏感测试集, 本文采用复述问题查询和人工校验的方法产生测试样本。首先, 通过“问题–段落”二元组匹配的方法, 从 Dureaderrobust 测试集和 Dureader 2.0训练集中取出问题与段落分别相同的二元组
集合; 然后, 将 Dureader 2.0中存在多个复述问题{q1, …, qm}的样例
作为候选样本; 最后, 通过人工校验的方法, 去除语言不自然
和语义不一致的样例, 生成过敏感样本集合{
}。过敏感测试集划分为原问题和过敏感问题两个测试集, 分别包含246和2703个样本。
2.2 过稳定测试集
当阅读理解段落中出现干扰句时, 过稳定问题尤其明显, 表现为模型无法区分段落中包含正确答案的句子和仅与原问题存在较多共同词语的句子。
本文利用自然段落中存在的干扰性语句, 在标注问题时尽量与干扰句保持更多的共同词语, 在保证语言自然性的同时, 也使段落语义不受干扰句影响。过稳定数据集的标注过程如算法1所示。
算法 1 过稳定测试样本构建算法1. INPUT: 原问题
2. OUTPUT: 过稳定样例
或 null 3. 识别p 中所有实体, 标记同类实体{e1,…, em} 4. IF m≥2 THEN 5.定位{e1, …, em}所在句{s1, …, sm} 6.从{s1, …, sm}选择一对相似句 si 和 sj 7. si作为答案句, sj作为干扰句, ei 记为 a′ 8.标注人员根据 si标注问题 q′ 9.返回
10. ELSE 返回 null对 Dureaderrobust中的样本
, 识别段落p中的所有实体及实体类型, 若p中存在两个以上个类型相同的实体, 将其标记为{e1, …, em}, 组成候选样本
, 并进行下一步标注, 否则跳过此样例。对每个候选样例
, 标注人员定位所有实体所在句{s1, …, sm}, 从中选出一对相似句si 和 sj, 将 si作为答案句, si对应的实体ei作为答案, 记为a′, 将 sj作为干扰句。标注人员根
据 si 和 sj标注问题q′, 使 q′尽可能与干扰句保持更多的共同词。最终得到一组过稳定测试样例
。过稳定数据集同样分为原问题和过稳定问题两个测试集, 分别有456和496个样例。
2.3 泛化测试集
机器阅读理解模型的泛化能力通常指该模型在与训练集数据分布不同的测试数据集上, 能够取得接近领域内测试集上的性能[14]。根据Dureaderrobust数据集的领域设置, 本文采用21个教育和金融领域的关键词, 从 Dureaderrobust 测试集中检索出q中至少包含一个关键词的候选样本
; 然后人工筛选符合要求的候选样本, 并根据p和q人工标注答案 a; 最终获得测试样本
。泛化测试集包含 1036 个样本, 与其对比的领域内测试集包含1417个样本。
3 机器阅读理解鲁棒性模型3.1 中文 Robertalarge 抽取式问答模型
[15] Liu 等 基于BERT模型架构提出改进预训练方法的 ROBERTA, 该模型利用更大的模型参数量、更多的训练数据和新的动态掩码模式, 在很多自然语言处理任务上取得比BERT更好的性能。本文采用 Liu等[15]和 Cui等[16]在来自中文维基百科的13.6 M条数据上预训练的Robertalarge模型为基线模型,该模型在CMRC等中文数据集上取得了较好的性能。对输入样本
, 首先将段落p和问题q 作为输入(input), 接受输入的ROBERTA模型输出字符级隐状态 hidden_state, 最后 hidden_state 通过全连接层, 输出段落中每个位置作为开始和结束位置的概率:
input {[CLS], q , [SEP], p, [SEP]} , (1) hidden_state=roberta (input) , (2) start_logit, end_logit = FC (hidden_state) 。 (3)
3.2 基于答案抽取和掩码位置预测的多任务学习模型
针对阅读理解的过敏感问题, 本文结合答案抽取与掩码位置, 预测进行多任务学习的方法。掩码语言模型(masked language model)为 Devlin 等[2]提出的预训练方法, 通过随机遮蔽, 输入数据中的一些词, 利用上下文预测被遮蔽的词。在掩码位置模型训练过程中, 模型获得从上下文中理解语义的能
力, 因此, 针对语义相同的复述问题产生的扰动则更为健壮。本文参考Liu等[17]的研究, 共享ROBERTA的编码层, 在解码层进行基于答案抽取和掩码位置预测的多任务学习。
针对答案抽取任务, 本文采用开始位置预测和结束位置预测的交叉熵损失的平均值作为损失, 答案起始位置 start_position由训练集样本提供, 结束位置 end_position通过起始位置与答案a的长度计算得到:
start_loss=crossentropyloss (start_logit, start_position) , (4) end_loss=crossentropyloss (end_logit, end_position) , (5)
1 (6) LMRC ( )= (start_loss+end_loss) 。2针对掩码位置预测任务, 本文将掩码预测结果mlm_prediction与掩码位置标签mlm_label的交叉熵作为模型损失, 损失函数如下所示: LMLM ( )=Crossentropyloss (mlm_prediction, mlm_label)。(7)
答案抽取与预测掩码位置多任务学习的过程如算法2所示。对每个批次的样本, 按1:2的比例随机分配答案抽取和掩码位置预测任务, 并对每个批次样本单独计算损失, 计算梯度并更新参数。
算法2 多任务学习算法1. 划分训练集D为 m 个批次{D1, …, Dm} 2. FOR Di IN D DO 3. 1:2 的比例随机分配答案抽取和掩码位置预测任务4. IF 答案抽取任务5. 计算答案抽取损失 LMLM(Θ) 6. IF 掩码位置预测7. 遮蔽 15%的 token 8. 计算掩码位置预测损失 LMLM(Θ) 9. 计算梯度▽(θ) 10. 更新模型参数 θ = θ–ε▽(θ) 11. END
3.3 多轮微调机制
为进一步提高模型的鲁棒性, 本文采用多轮微
[18]调预训练模型的方法。Conneau 等 以及 Mccann等[19]的研究表明, 从大规模同类数据集进行迁移学习可以有效提高预训练语言模型在目标任务上的性能。Liu等[20]和 Li等[21]进一步证明, 基于多轮微调的预训练模型可以取得更好的泛化能力。因此, 本文在上述抽取式问答模型和多任务学习中都利用大
规模中文阅读理解数据集CMRC和 Dureader, 预微调 Robertalarge 模型, 然后在 Dureaderrobust 训练集上进行微调。
4 实验4.1 实验设置
将 Dureaderrobust的训练集作为训练集, 将其验证集作为领域内测试集, 鲁棒性测试集采用本文构建的3个数据集。在多轮微调实验中, 采用CMRC和Dureader 2.0作为辅助数据集。参照 Dureaderrobust训练集的构造方法, 对 Dureader 2.0训练集数据进行清洗, 仅使用其中单实体类的问题。各数据集的规模如下: Dureaderrobust 为 14520个样本, CMRC 2018 为 10142 样本, Dureader 2.0 (单实体)为 15519个样本。本文采用抽取式阅读理解中通常采用的指标作为评价标准。完全匹配值(exact match, EM): 以预测结果与正确答案是否完全匹配作为衡量系统性能的评价指标, EM值为答案完全匹配的样本数n与总样本数m的比值。F1值(F1-score): F1值是准确率(precision, P)和召回率(recall, R)的加权调和平均值,评价预测结果字符串与答案字符串的匹配程度。准确率为预测片段和正确答案重叠字符数o (overlap)与预测片段字符数p的比值, 召回率为重叠字符数o与答案字符数g的比值。两类评价指标的计算公式如下: EM =n , P=o , R=o , F1= 2PR 。 (9)
m p g P+R本文进行的3组实验使用同一组超参数, 学习率为 3×10–5, 批次大小为32, 最大文档长度设置为512, 最大答案长度为20。训练轮次安排如下: 基线模型在训练集上微调轮次为2轮; 多轮微调在
CMRC, Dureader 2.0数据集上各微调1轮, 在训练集上微调2轮; 多任务学习训练在CMRC, Dureader 2.0数据集上各微调3轮, 在训练集上微调6轮。4.2 实验结果与分析4.2.1 不同模型在机器阅读理解鲁棒性任务中的性能比较
基线模型 中文 Robertalarge 预训练模型已在多个中文机器阅读理解数据集上取得最好的结果[16],本文在训练集上直接微调中文ROBERTA模型作为基线模型。如表3所示, 其在领域内数据集上的F1值和EM值分别为 85.98%和 74.38%, 高于Dureaderrobust 官方提供的最佳模型 Enrie2.0large[22]的 84.68%和 72.74%。然而, Robertalarge 在3个鲁棒性测试集上的性能, 与其在领域内测试集上的性能相比, F1值降低18%~25%。由此可见, 现有的机器阅读理解模型, 即使是在领域内取得较高性能的ROBERTA, 在鲁棒性测试上仍存在很大的缺陷。
多阶段微调 旨在让模型借助其他大规模同类数据集进行迁移学习, 从而提高模型的鲁棒性。如表3所示, 多阶段微调的模型在3个鲁棒性测试集上的性能比基线模型都有明显的提升, F1值分别提高8.8%, 9.2%和3.6%。说明通过迁移自其他大规模数据集的预训练模型, 学习了更多的语言现象, 语义理解的能力获得提升, 因此, 复述问题和干扰句产生的扰动对其产生的影响相对较小。尤其在过稳定测试集上, 多阶段微调的方法使模型减少对浅层线索的依赖, 模型性能显著提高。尽管可以在一定程度上克服鲁棒性问题, 多阶段微调模型的鲁棒性测试结果与领域内测试结果之间仍然存在较大的差距。基于答案抽取和掩码位置预测的多任务学习能够有效地减轻模型过拟合的情况, 提高模型的泛化
能力[17]。同时,的上下文理解能力,表法,基线模型提高力可以让模型减少对复述句扰动的敏感性。在过稳定数据集上,模型高由于在利用遮蔽语言模型提高上下文理解能力的同时,致在过稳定测试集上性能的下降。3可以看出,在过敏感测试集上取得的性能比较高,干扰句中出现的共同词对语义的影响变大, 4.9%, 虽然多任务学习模型的但比多阶段微调模型低12.8%,利用遮蔽语言模型的多任务学习方掩码语言模型的训练可以增强模型提高模型的语义理解能力。从说明提高模型上下文理解能F1 4.3%,值也比基线F1可能是值比导4.2.2了原问题。为了验证本文构建的有效性,对比实验较。实验结果如表本文在构建过敏感与过稳定测试集时,机器阅读理解鲁棒性测试集有效性对上述, 其中泛化测试集与领域内测试集的比3个模型在原问题集和测试集进行4所示。 3个数据集标注的还标注
源于试集和过敏感测试集进行测试,过敏感测试集246个原问题。本文将基线模型用于原问题测该数据集包含实验结果如表2703个样本, 4所来示。基线模型在过敏感测试集上的问题测试集分别降低6.5%和 8.5%, F1多轮微调和多和EM值比原任务学习的方法降低了模型对复述句中微小差异的敏感性, 但与原问题仍存在差距。可见预训练模型对复述问题与原问题之间字面上的微小差异过度敏感, 导致性能下降, 同时也证明了该数据集在测试阅读理解模型的过敏感问题时的有效性。
过稳定测试集 该测试集包含496个样本, 来源于456个原问题样本。从表4可以看出, 所有模型在过稳定测试集上的F1和EM值明显下降。以基线模型为例, 相较于原问题, 测试集分别降低22.3%和26.4%。由此可见, 在遇到干扰句时, 预训练模型倾向于根据共现的词语去选择干扰句中的同
类实体作为答案, 体现现有的神经网络模型倾向于通过浅层线索, 而非通过深入理解语义去解决自然语言处理任务。同时证明本文构建的过稳定测试集能够有效地反映模型在稳定性方面的性能。
泛化测试集 该数据集包含1036个样本。实验结果(表4)表明, 与领域内数据集的性能相比, 基线模型的F1和EM值分别降低18.7%和 26.2%, 多轮微调和多任务学习方法也存在同样的差距, 表明在缺少领域知识时, 预训练模型在领域外数据上的性能远低于领域内。本文构建的泛化测试集可用来有效地评价机器阅读理解模型的泛化性能。
5 结语针对机器阅读理解中模型的鲁棒性评价问题,本文构建过敏感、过稳定和泛化3个中文阅读理解鲁棒性测试数据集以及对应的原问题测试集, 以便比较模型性能。同时, 本文采用目前最好的中文机器阅读理解模型作为基准系统, 其在鲁棒性测试数据集上的性能大幅下降表明本文鲁棒性测试集的有效性。此外, 本文还提出基于答案抽取和掩码位置预测的多任务学习模型和多阶段微调策略, 提高了中文机器阅读理解模型的鲁棒性。未来的工作中,将在阅读理解模型的训练阶段尝试加入更多类型的扰动, 进一步提高模型在鲁棒性任务中的性能。
参考文献
[1] Rajpurkar P, Zhang J, Lopyrev K, et al. SQUAD: 100,000+ questions for machine comprehension of text // Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing. Austin, 2016: 2383–2392 [2] Devlin J, Chang M W, Lee K, et al. BERT: pretraining of deep bidirectional transformers for language understanding // Proceedings of the 2019 Con