论文解读:Improving the robustness of machine reading comprehension model with hierarchical knowledge and auxiliary unanswerability prediction
摘要: 先前深度学习方法在MRC任务上均成功应用,但他们普遍脆弱且在给定一些对抗噪声时不鲁棒。为了提升MRC,我们通过引入额外知识库的信息增强模型的表征能力,其次引入辅助不可回答预测模块并使用监督类的多任务学习来进行抽取式答案区间预测。
动机:
(1)先前方法(BiDAF、QANet、SAN、SLQA等)虽然获得了比较好的效果,且超越了人类的水平,但其依然存在不鲁棒,脆弱的问题,例如先前模型很难去判断一个问题是否存在答案;其次段落中可能存在一些干扰项,模型很难去识别这些对抗干扰项。
(2)最近一些工作使用encoder-attention-decoder架构,通过引入额外的策略来提升推理能力。
- 添加额外的验证模块用于检测该问题是否存在答案;
- 利用预训练模型获得更充分的语义信息;
- 引入外部知识库作为背景知识来进行增强,支持复杂推理的背景知识使MRC更真实
(3)先前方法依然没有考虑到鲁棒性和脆弱性问题。例如当添加一些无关的对抗句子时,效果会变差;或当有的句子包含问题相关的词时,但该句子并非是目标答案,也容易被预测错误。另外先前引入知识库的方法中,对知识库三元组的表征是事先完成的,而没有与query问句相结合,即给定不同的query和passage时,相同的三元组应该有不同的表征;
(4)先前工作如何使用知识库?
- retrieve-then-encode:首先根据知识库对每个token进行检索,再对检索的子图进行表征;
- encode-then-retrieve:首先对知识库进行表征,再根据token进行检索;
(5)层次结构:本文将从多个层次来提取不同粒度的知识信息;
(6)多任务学习:本文利用多任务学习来同时预测答案区间以及是否存在答案
方法:
(1)依然采用encoder-attention-decoder的模式。首先使用LSTM表征query和passage;其次使用注意力机制捕捉query和passage之间的语义交互;最后使用指针网络寻找答案;
(2)层级知识增强模块(hierarchical knowledge enrichment module):利用额外知识库作为背景知识来增强上下文表征;低层部分使用WordNet构建每个word之间的语义联系;中层从query提取有用的知识;高层应用融合策略利用有用的知识增强passage和query的表征;
(3)辅助不可答预测模块(auxiliary unanswerability prediction module):与答案区间预测一并完成,用于判断当前的问题在passage中是否存在答案;
贡献:
(1)我们的方法能够从KB中获取有用的知识,并根据query和passage来将其集成到模型中;
(2)辅助不可答预测模块可以提升模型的鲁棒性;
(3)在SQuAD、AddSent以及AddOneSent数据集上进行验证
模型:
Encoder Layer
使用Word和char两个层次获得word embedding,包括GloVe、Elmo等。最终使用双向LSTM进行表征,分别得到query和passage的表征向量:
Knoledge Enrichment Layer
首先根据query和passage中每两个token去寻找相应的三元组(subject,relation,object);其次利用entity location信息根据当前的query生成背景知识;最终利用门控单元将外部知识与原始的token进行集成;
(1)WordNet:记录passage中任意两个token之间是否存在关系(对应于wordnet,使用启发式的规则判定,具体不描述)
(2)query supportive knowledge:遍历每个query和passage的token,判断每个token之间是否存在语义联系(根据知识库中的三元组),如果存在关系则即为1,否则为0,得到矩阵:
其次计算query与passage的相似度,并得到权重,权重矩阵与
C
Q
C^Q
CQ 相乘,表示存在语义关系的token之间保留权重,最终根据新的权重对所有query进行加权求和;
(3)passage supportive knowledge:
相似地,对于passage,计算passage中任意两个token之间是否存在语义联系,存在记做1,否则为0,得到如下矩阵:
随后计算每个token之间的相似度,并与
C
P
C^P
CP 相乘后得到新的权重,并进行加权求和
(4)gate mechanism:通过学习一个门控来决定使用多少外部知识和自身的知识:
分别对query和passage进行处理,最终得到丰富知识的query和passage的表征。
应用co-attention以及self-attention进行信息交互;其中co-attention表示对于query和passage中的token,使用多种决方式(拼接或差值等)计算attention;self-attention则是token之间互相计算attention。
Answer Prediction Layer
指针网络预测start和end位置,并使用negative log损失函数来计算;
使用query-aware context喂入线性层用于预测该问题是否存在答案。使用交叉信息熵来计算loss
实验:
总体对比:
和先前工作比,其效果并不是最优,但是在添加了一定噪声后,效果达到最优,说明我们的方法可以相较于其他工作更好的鲁棒性;
添加噪声后效果都普遍下降,说明噪声对问答的影响很大;
消融
当在原始模型基础上取出knowledge或不可答预测模块后,效果均下降,说明这些组件可以起到提升效果;
分析
从四个角度来分析模型效果:
- 解释为什么knowledge enrichment和joint learning strategy可以提升效果;
- 根据训练曲线分析学习过程;
- 根据question的类型和长度分析模型的性能;
- 样例分析模型在含有干扰项和噪声的情况下的推理能力和鲁棒性;
解释为什么knowledge enrichment和joint learning strategy可以提升效果;
(1)人类的思考是具有层次化的,根据已学习的知识来进行理解文本。作者认为思考分为三层,最底层用来理解每个word组合之间的关系,并结合背景知识;其次在中层和高层则生成丰富有用的知识并增强表征;
(2)联合辅助不可答预测模块训练的优势有两点,一点是提升了训练集的规模;另一点是促使模型预测答案是否可答,也促使模型去理解。另外增加新的任务则可以让模型学习更多的信息,侧面提升效果。
根据训练曲线分析学习过程;
(1)figure2,分析训练loss曲线来判断模型的收敛性;
(2)figure3和4,分析F1和EM曲线。可知我们的模型很快就收敛,其次,在一开始模型是为了提升预测效果,后面则是提升鲁棒性;
(3)问题类型:作者发现模型对when,who类问题很简单,但对why类问题则很困难,这需要进一步提升推理能力;
(4)答案与问题长度:短的答案回答更准确,长的问题咋很困难。当问句长度小于18时,模型很稳定,但超过18后会下降;
(5)passage的长度影响:波动影响