SG-Net: Syntax-Guided Machine Reading Comprehension
句法引导的机器阅读理解
1. Abstract
对于机器阅读理解来说,从冗长的细节中有效地对语言知识进行建模和克服噪声的能力是提高机器阅读理解性能的关键。传统的注意力模型关注的是所有的词,没有明确的约束,这导致了对一些不必要的词的不准确的关注。在这项工作中,本文建议使用句法来引导passage和问题的文本建模,将显式句法约束融入注意机制,以获得更好的语言动机单词表征。为了达到这一目的,本文提出了一种新颖的双重上下文结构,称为语法引导网络(SG-Net),它由一个BERT上下文向量和一个句法引导上下文向量组成,以提供更细粒度的表示。对常用基准测试的大量实验表明,与微调的BERT基准相比,所提出的方法取得了显著的改善。
2. Instruction
理解句子的意义是解决许多自然语言理解(NLU)问题的先决条件,例如基于机器阅读理解(MRC)的问答。显然,这需要很好地表达一个句子的意思。
一个人在阅读和理解句子的过程中,大多数单词都是表面上的,并且更注重关键的单词。虽然已经提出了各种注意力模型来模仿人类学习,但其中大多数,特别是全局注意力方法平等地处理一个句子中的每个单词,并注意到一个句子中的所有单词,而没有显式的修剪和事先的焦点,这将导致不准确地集中在一些可有可无的单词上。
本文观察到,当回答较长的问题时,MRC模型的准确性降低(如5.1节所示)。通常情况下,如果文本特别冗长和细节千篇一律,深度学习模型就很难理解,因为它受到噪声的影响,对文本成分的关注很模糊,更不用说准确地回答问题了。相比之下,广泛的研究已经证实,人类通过一系列的注视和第一眼快速扫视后的扫视来高效阅读句子。
此外,对于涉及阅读理解的文章,输入序列通常由多个句子组成。目前几乎所有的注意方法和语言模型,例如Bert,都将输入序列视为一个整体,例如一篇文章,而没有考虑每个句子内部的语言结构。这将导致由于噪声过多和每个相关单词缺乏关联跨度而导致的加工偏差。
所有这些因素促使本文寻求一种信息性的方法,只需在句法结构线索的指导下,显式地考虑每个输入句子中相关的句法重要性词子集,就可以有选择地挑选出重要的词,从而给出更准确的注意信号,并减少长句带来的噪声影响。
在本文中,本文用句法引导的约束来扩展自我注意机制,以捕捉每个关注词的句法相关部分。具体地说,本文采用预先训练好的依存句法分析树结构来产生句子中每个词的相关节点,即兴趣依存关系(DOI),将每个词作为一个子节点,由依存句法分析树中的所有祖先节点和它自己组成。图1中显示了一个示例。
为了有效地适应这样的DOI信息,本文提出了一种称为句法引导网络(SG-Net)的双重语境结构,它结合了BERT语境向量和句法引导语境向量,为具有挑战性的阅读理解任务提供了更细粒度的表示。本文的评估是基于两个广泛使用的具有挑战性的MRC任务,基于跨度的SQuAD 2.0和多项选择风格的RACE。
这是首次将句法关系作为机器阅读理解的注意指导,并提出了一个用于深度聚合的通用句法指导结构。一系列的实验和分析表明,该方法是有效的。
3 Syntax-Guided Network
本文的目标是设计一个有效的神经网络模型,尽可能有效地利用语言信息来进行端到端的MRC。首先提出了一般的句法制导的注意结构,建立在最近先进的BERT的基础上,然后适合于机器阅读理解任务的任务特定层。
图2描述了模型的整个体系结构。
使用语法引导的自我注意层将BERT嵌入转换为条件注意表示。然后,将BERT和条件注意学习的输出进行整合。最后,将得到的语法增强的表示传递给特定于任务的层以进行最终预测。
3.1 BERT Encoder
在BERT的实现之后,每个序列的第一个token是特殊token[CLS],并且序列由[SEP]令牌分隔。然后,BERT的输出H被馈送到提出的句法制导的关注层,以获得句法增强的表示。
3.2 Syntax-Guided Network
句法制导表示是通过两个步骤获得的。
- 首先,将编码的表示传递给语法制导的自我关注层;
- 然后将相应的输出与原始的BERT编码器输出聚合,形成语法增强的表示。
该模型可以看作是对诸如BERT等注意语言模型的扩展,增加了一个句法制导层以包含句法依赖。它被设计成将句法树结构信息合并到多头注意机制中,以指示每个句子的标记关系,这将如下所示。
Syntax-Guided Self Attention Layer
在这项工作中,本文首先训练一个句法依存句法分析器来标注每个句子的依存结构,然后将其反馈到SG-Net作为标记感知注意的指导。
为了利用句子的句法依存关系树提供的中心词和依赖词之间的关系,本文只限制单词和它的所有祖先中心词之间的注意范围。换句话说,本文希望每个词只关注句子中具有句法重要性的词,即在子词看来的祖先中心词。如图3所示,在这句话中,credit这个词不是关注整个段落中的每个单词,而是只关注它的祖先中心词Reflect和Lost以及它自己,这意味着信用的DOI包含Reflect、Lost和它自己。
具体来说,给定输入token序列 S = { s 1 , . . . , s n } S=\{s_1,...,s_n\} S={s1,...,sn},首先使用句法分析器来生成依存关系树。然后,根据依存关系树推导出每个词 s i s_i si的祖先节点集 P i P_i Pi。最后学习一个DIO掩码M序列,它被组织成n*n矩阵:
显然 M [ i , j ] = 1 M[i,j]=1 M[i,j]=1表示token s i s_i si是 s j s_j sj的祖先节点。
如图3所示,credit(i=4)的祖先是reflect(j=2)、losses(j=5)及其自身(j=4),因此 M [ 4 , ( 2 , 4 , 5 ) ] = 1 M[4,(2,4,5)]=1 M[4,(2,4,5)]=1和 M [ 4 , ( 0 , 1 , 3 ) ] = 0 M[4,(0,1,3)]=0 M[4,(0,1,3)]=0。
然后,将来自Vanilla Bert的最后一层输出H投影到维度 L × d k , L × d q , L × d v L\times d_k, L\times d_q, L\times d_v L×dk,L×dq,L×dv的不同的键、值和查询表示中,分别表示每个头部i的 K i ′ K_i' Ki′, Q i ′ Q_i' Qi′, V i ′ V_i' Vi′。然后,执行点积来对具有兴趣的mask依赖性的key-value对进行 评分,以获得维度为 L × L L\times L L×L的关注权重,表示为 A i ′ A_i' Ai′:
然后,所有头部的 W i ′ W_i^′ Wi′ 被串联并通过前馈层,随后是Gelu激活。在通过另一前馈层之后,对输出和初始表示的和应用一层归一化,以获得最终表示,表示为:
Dual Context Aggregation
与BERT等语言模型中的多头注意相比,本文集成了两个上下文向量来进行答案预测:
- 直接来自BERT编码器最后一层的普通BERT上下文向量,始终关注所有单词;
- 来自提出的句法制导层的句法制导上下文向量;
为此,除了来自BERT编码器的传统上下文向量 H = { h 1 , . . . , h n } H=\{h_1,...,h_n\} H={h1,...,hn}之外,从上面的语法制导层学习上下文向量 H ′ = { h 1 ′ , . . . , h n ′ } H'=\{h_1',...,h_n'\} H′={h1′,...,hn′}。
形式上,最终模型输出 H − = { h − 1 , . . . , h − n } \overset{-}{H}=\{\overset{-}{h}_1 ,...,\overset{-}{h}_n\} H−={h−1,...,h−n}的计算公式为:
3.3 Task-specific Adaptation
本文重点研究了两种类型的阅读理解任务,跨度阅读理解任务和多项选择式阅读理解任务,它们分别可以描述为<P,Q,A>或<P,Q,C,A>,其中P是一篇文章(上下文),Q是对P的内容的查询,其中跨度或选择C是正确答案A。
本文的系统不仅应该预测段落P中的开始和结束位置,并提取SPAN作为答案A,而且当问题无法回答时,还返回空字符串。对于多项选择题,该模型在种族数据集上实现,要求从一组候选答案中根据给定的段落和问题选择正确的答案。
在这里,本文建立了这两个任务的模型,并根据特定的任务将语法制导网络的输出反馈到任务层。给定专门针对种族的段落P、问题Q和选项C,本文将BERT的输入X组织为以下两个序列。
该序列被馈送到上面提到的ERT编码器以获得上下文表示H,然后该H被传递到本文提出的语法制导的自我关注层和聚合层以获得最终的语法增强的表示 H − \overset{-}{H} H−。
为保持简单性,下游任务特定层基本上遵循BERT的实现。本文在下面概述,以保持本文模型体系结构的完整性。
对于基于跨度的任务,本文将 H − \overset{-}{H} H−馈入线性层,并通过Softmax获得开始和结束位置上的概率分布。
对于多项选择任务,本文将其输入到分类器中来预测多项选择模型的选择标签。
SQuAD 2.0
对于 SQuAD 2.0,本文的目标是答案文本的跨度,因此本文使用带有SoftMax运算的线性层,并将 作为输入,以获得开始和结束概率s和e:
本文SQuAD模型的训练目标被定义为开始和结束预测的交叉熵损失,
对于预测,给定输出开始和结束概率s和e,本文计算有答案分数Score和无答案分数Score:
本文得到有答案分数和无答案分数之差作为最终分数。设置阈值δ来确定问题是否可回答,该阈值是根据开发集在线性时间内用动态规划启发式计算的。如果最终分数高于阈值,该模型预测给出Has-Answer分数的答案跨度,否则预测空字符串。
RACE
选择H中的第一个令牌表示H0,并将其传递给前馈层以给出预测p。对于具有n个选择候选的每个实例,本文根据训练期间的交叉点损失来更新模型参数,并在测试时选择概率最高的一个作为预测。本文RACE模式的训练目标被定义为,
其中, p i p_i pi表示预测, y i y_i yi表示目标,i表示数据索引。
4 Experiments
4.2 Main Results
5 Discussions
5.1 Effect of Answering Long Questions
本文观察到,当遇到较长的问题时,基线的性能会大幅下降,特别是对于那些超过20个单词的问题,而本文提出的SG-Net工作得很好,甚至显示出准确率和长度之间的正相关。这表明,与基线相比,通过语法增强的表示,本文的模型更能处理冗长的问题。
5.2 Visualization
在句法引导下,问题中的关键字名称、立法和1850被突出显示,文章中的密苏里和妥协也得到了高度关注,这正是正确的答案。可视化实验证明,得益于句法制导的关注层,本文的模型能够有效地选择关键部分,引导下游层收集更多的相关片段进行预测。
5.3 Dual Context Mechanism Evaluation
在SG-Net中,本文将句法制导的关注层和普通的自我关注层的表示整合在双重上下文层中。为了揭示每个潜在组件的贡献,本文在基线上与以下各项进行比较:
- 仅VAnilla注意,在BERT输出之后增加一个额外的香草BERT关注层。
- 仅句法制导注意,在BERT输出之后增加额外的句法制导层。
- 如第3.2节所述,SG-Net最终采用双重上下文注意。
表3显示了结果。
本文观察到,双重上下文注意会产生最佳的表现。增加额外的关注并不会带来任何进展,这表明引入更多的参数不会促进强大的基线。句法引导的注意也是微不足道的,因为它在计算注意时只考虑了与句法相关的部分,这是对传统注意机制的补充,具有更多的噪声但更多样化的信息,最终激励了双重上下文层的设计。实际上,除了双重聚合之外,还有其他操作可以合并双重上下文层的表征,如拼接和双向注意,我们的比较也涉及到这两种操作,本文的实验表明,使用双重语境注意可以产生最好的结果。
6. 启示
- 本文将句法分析融入到自注意力中,称为句法引导的注意力,创新点很好,最近正在实现这种方法。
- 对于特征融合来说,还是相加的效果好于拼接和注意力。
- 欢迎关注微信公众号:自然语言处理CS,一起来交流NLP。