Hierarchical Graph Network for Multi-hop Question Answering 论文笔记

Hierarchical Graph Network for Multi-hop Question Answering 论文笔记

2020 EMNLP,Microsoft 365, 这篇文章所提出的层级图模型是在leaderboard上排名比较高的一个模型。

Overview

这篇文章同样是引入图表示学习来做多跳推理,但是本文在建图上做了改进和创新,提出Hierarchical Graph。作者认为之前基于图表示学习的方法有两个不足:一是图只被用来预测答案,没有充分地去寻找supporting fact;二是一些简单的Entity Graph无法完成复杂的multi-hop reasoning。基于以上两点问题,作者将建图方式做了改进,本文提出的层级图包含4类结点,7类边。

本文的contribution如下:

  1. 提出HGN,异质结点可以聚合到同一张层级图中
  2. 不同细粒度的结点为supporting fact的提取和答案地预测提供了更强的supervision
  3. 在HotpotQA上成为了SOTA

HGN

还是先来看模型架构图

Hierarchical Graph Network for Multi-hop Question Answering 论文笔记_第1张图片

从图中不难得出HGN主要有4个子模块:

  • Graph Construction Module
  • Context Encoding Module
  • Graph Reasoning Module
  • Multi-task Prediction Module

Graph Construction Module

本文的图可以视作是heterogeneous graph,结点分为四类:question、paragraph、sentence、entity,而连边的情况共有7种。

Paragraph Selection

对于段落的选取,首先进行title matching,即抽取出所有包含问题中某个phrase的段落,然后使用预训练的RoBERTa作为打分器,如果title matching返回了多个candidates,那就选取得分最高的两个;如果title matching没有返回任何结果,那么就选取所有包含问题中实体的段落,然后再进行打分取前2;如果还是没有找到,那就直接进行打分取前2。这一步段落选取是first-hop,至多得到两个段落。

接下来是second-hop的段落选取,这里作者提到entity linking的方式噪声比较多,因此他们采用的是通过first-hop段落的hyperlink来找second-hop段落(这里的hyperlink不清楚具体是什么,但是原文中提到是由Wikipedia提供的)。

Nodes and Edges

结点有四类:question、paragraph、sentence、entity,如上图中所示。作者说这样的异质结点能够使模型学习到不同细粒度的信息,从而更加准确地捕捉到supporting fact和answer。

连边总共有七种情况:

  1. question结点和所有的paragraph结点
  2. question结点和它所包含地entity结点
  3. paragraph结点和对应的sentence结点
  4. sentence结点和通过hyperlink相连的paragraph结点
  5. sentence结点和它所包含的entity结点
  6. paragraph结点和paragraph结点
  7. sentence结点和同一个段落里的sentence结点

Context Encoding Module

作者先是通过一个RoBERTa得到问题和所选段落的embedding Q ∈ R m × d Q\in{R^{m\times d}} QRm×d C ∈ R n × d C\in{R^{n\times d}} CRn×d。接着,对于段落编码 C C C,再经过一层BiLSTM得到 M ∈ R n × 2 d M\in{R^{n \times 2d}} MRn×2d。接下来,本文获取结点embedding的做法与DFGN比较类似,虽然没用采用mask,但是仍然是基于不管是entity、sentence还是paragraph,都可以表示为一个span的事实来计算embedding。

Hierarchical Graph Network for Multi-hop Question Answering 论文笔记_第2张图片

P、S、E分别表示Paragraph、Sentence、Entity,start和end就表示对应span的起始index和结束index。而对于问题结点的embedding则是通过max pooling获得。

Graph Reasoning Module

得到结点的embedding之后,就是在图上进行推理,应用图神经网络,本文也是选用了GAT模型。首先,整张图可以表示为 H ∈ R g × d H\in{R^{g\times d}} HRg×d,其中 g   =   n p + n s + n e + 1 g\ =\ n_{p}+n_{s}+n_{e}+1 g = np+ns+ne+1,是paragraph结点数量、sentence结点数量、entity结点数量和question结点数量之和。
s i , j   =   L e a k y R e L u ( W T [ h i ; h j ] ) α i j   =   e x p ( s i , j ) ∑ k e x p ( s i , k ) h i ′   =   R e L u ( ∑ j ∈ N i α i , j h j ) s_{i,j}\ =\ LeakyReLu(W^{T}[h_{i};h_{j}])\\ \alpha_{ij}\ =\ \frac{exp({s_{i,j}})}{\sum_{k}exp(s_{i,k})}\\ h^{'}_{i}\ =\ ReLu(\sum_{j \in N_{i}}\alpha_{i,j}h_{j}) si,j = LeakyReLu(WT[hi;hj])αij = kexp(si,k)exp(si,j)hi = ReLu(jNiαi,jhj)
经过GAT后我们就得到了更新后的 H ′ H^{'} H。由于本文采取的也是通过context representation来进行answer prediction,因此接下来要对context representation进行更新,做法是Gated Attention。
C   =   R e L u ( W m M ) ⋅ R e L u ( W h H ′ ) H ˉ   =   s o f t m a x ( C ) ⋅ H ′ G   =   σ ( [ M ; H ˉ ] W s ) ⋅ t a n h ( [ M ; H ˉ ] W t ) C\ =\ ReLu(W_{m}M)\cdot ReLu(W_{h}H^{'})\\ \bar{H}\ =\ softmax(C) \cdot H^{'}\\ G\ =\ \sigma([M;\bar{H}]W_{s}) \cdot tanh([M;\bar{H}]W_{t}) C = ReLu(WmM)ReLu(WhH)Hˉ = softmax(C)HG = σ([M;Hˉ]Ws)tanh([M;Hˉ]Wt)

Multi-task Prediction Module

本文设计了多任务学习,在原有的四个prediction基础上又加入了paragraph selection和entity prediction
o s e n t   =   M L P 4 ( S ′ )        o p a r a   =   M L P 5 ( P ′ ) o e n t   =   M L P 6 ( E ′ ) o s t a r t   =   M L P 7 ( G )        o e n d   =   M L P 8 ( G ) o t y p e   =   M L P 9 ( G [ 0 ] ) o_{sent}\ =\ MLP_{4}(S')\ \ \ \ \ \ o_{para}\ =\ MLP_{5}(P')\\ o_{ent}\ =\ MLP_{6}(E')\\ o_{start}\ =\ MLP_{7}(G)\ \ \ \ \ \ o_{end}\ =\ MLP_{8}(G)\\ o_{type}\ =\ MLP_{9}(G[0]) osent = MLP4(S)      opara = MLP5(P)oent = MLP6(E)ostart = MLP7(G)      oend = MLP8(G)otype = MLP9(G[0])
而损失函数也是所有的和
L   =   L s t a r t + L e n d + λ 1 L p a r a + λ 2 L s e n t + λ 3 L e n t + λ 4 L t y p e L\ =\ L_{start}+L_{end}+\lambda_{1}L_{para}+\lambda_{2}L_{sent}+\lambda_{3}L_{ent}+\lambda_{4}L_{type} L = Lstart+Lend+λ1Lpara+λ2Lsent+λ3Lent+λ4Ltype

Experiment

Hierarchical Graph Network for Multi-hop Question Answering 论文笔记_第3张图片

这个模型在当时是成为了新SOTA。

作者对Hierarchical Graph的构建进行了消融实验

Hierarchical Graph Network for Multi-hop Question Answering 论文笔记_第4张图片

PS表示只有paragraph和sentence,PSE又加入了entity

本文还进行了error分析,总结出了六类错误原因

Hierarchical Graph Network for Multi-hop Question Answering 论文笔记_第5张图片

Reflection

这篇文章的效果提升的确是非常显著的。我们把这篇文章与DFGN做一个比较会发现,两者模型结构上其实比较相似,最大的不同点就在于图的构建,而F1差出了12个点。我感觉本文改进的建图方式成功之处在于极大地丰富了图的信息,文中提到 n p = 4 n_{p}=4 np=4 n s = 40 n_{s}=40 ns=40 n e = 60 n_{e}=60 ne=60,可以看到这张图还是比较大的。其实 n p = 4 n_{p}=4 np=4说明图中包含了至少两个不相关的噪声段落,但从实际效果来看,这并没有什么影响,反而图的信息量变大后使得GAT进行信息传递变得更加有效。

你可能感兴趣的:(NLP,Deep,Learning,深度学习,计算机视觉,人工智能)