NumNet: Machine Reading Comprehension with Numerical Reasoning
https://arxiv.org/abs/1910.06701
https://github.com/ranqiu92/NumNet
1.Motivation
将数值推理集成到机器阅读理解模型中。两个关键因素:
- 数值比较:问题的答案可以通过在文档中进行数值比较,如排序和比较,直接获得。例如,在表1中,对于第一个问题,如果MRC系统知道“49 > 47 > 36 > 31 > 22”的事实,它可以很容易地提取出第二长的场地目标是47码。
- 数值条件:问题的答案不能通过文献中简单的数值比较直接得到,往往需要数值比较才能理解文本。例如,对于表1中的第二个问题,MRC系统需要知道哪个年龄组占人口的7%以上才能计算组数。
2 Methodology
2.1 Framework
NumNet模型的概述如上图所示。分为编码模块、推理模块和预测模块。
Encoding Module
使用QANet的编码组件将问题和段落编码到向量空间表示中。形式上,问题Q和短文P首先编码为:
然后 passage-aware 的问题表示和question-aware的文章表示被计算为:
其中QANet-Emb-Enc()和QANet-Att()分别表示QANet的“stacked embedding encoder layer”和“context-query attention layer”。前者由卷积层、self-attention层和前馈层组成。后者是一个passage-question 的关注层。
Reasoning Module
首先建立一个异构图: G G G =( V V V; E E E),其节点 ( V V V)对应于passage和question中的数字,边( E E E)用于编码数字之间的数值关系。然后基于图神经网络进行推理:
其中
W
M
W^M
WM是一个共享权重矩阵,
U
U
U是对应于数字的节点的表示,QANet-Mod-Enc( ·)是QANet中定义的“模型编码器层”,类似于QANet-Emb-Enc(), Reasoning(·) 的定义将在第3.3节中给出。
最后,由于
U
U
U只包含数字的表示,为了解决包含非数字单词的跨度式答案,将
U
U
U与
M
P
M^P
MP连接起来,产生的数字感知的段落表示
M
0
M_0
M0。形式上:
[;]表示矩阵连接,
I
I
I(
i
i
i)返回索引。
Prediction Module
遵循NAQANet,将答案分为四种类型,并使用唯一的输出层来计算每种类型的条件答案概率 P P P r r r(answer|type):
- Passage span:答案是passage的跨度,答案概率被定义为开始和结束位置概率的乘积
- Question span:答案是question的跨度,答案概率也定义为开始位置和结束位置概率的乘积。
- Count:答案是通过计数得到的,被当作十个数(0-9)以上的多类分类问题处理,覆盖了DROP数据集中的大部分Count类型答案。
- Arithmetic expression:答案是一个算术表达式的结果。表达式分三步获得:(1)从passage中提取所有数字;(2)为每个数字指定一个符号(加号、减号或0);(3)对有符号的数字求和。
同时,还使用额外的输出层来预测每种答案类型的概率
P
P
P
r
r
r(type)。在训练时,最终答案概率定义为所有可行答案类型上的联合概率,即
这里,不需要答案类型注释,概率
P
P
P
r
r
r(type)由模型学习。在测试时,模型首先贪婪地选择最可能的答案类型,然后据此预测最佳答案。
2.2 Numerically-aware Graph Construction
将question和passage中的所有数字都视为图中的节点,以便进行推理,对应于出现在question和passage中的数字的一组节点分别表示为
V
Q
V^Q
VQ和
V
P
V^P
VP。将所有节点表示为
V
V
V =
V
Q
V^Q
VQ∪
V
P
V^P
VP,数字对应于一个节点
v
v
v ∈
V
V
V表示为
n
n
n(
v
v
v)。
在这项工作中考虑了两组边:
- 更大关系边( E → E^→ E→):对于两个节点 v i v_i vi, v j v_j vj∈ V V V,如果 n n n( v i v_i vi) > n n n( v j v_j vj),则从 v v v i _i i指向 v j v_j vj的有向边 e e e i _i i j _j j → ^→ →= ( v i v_i vi, v j v_j vj)将被添加到图中,这在图1中用实线箭头表示。
- 更小或等于关系边( E ← E^← E←):对于两个节点 v i v_i vi, v j v_j vj∈ V V V,如果 n n n( v i v_i vi) ≤ n n n( v j v_j vj),则有向边( e e e i _i i j _j j ← ^← ←= ( v j v_j vj, v i v_i vi)将被添加到图中,这在图1中用虚线箭头表示。
2.3 Numerical Reasoning
当构建图 G G G =( V V V; E E E)时,利用NumGNN来执行推理,这对应于等式(7)中的Reasoning(·) 函数。推理过程如下:
Initialization
对于每个节点 v v v P ^P P i _i i∈ V P V^P VP,其表示被初始化为 M P M^P MP的对应列向量。形式上,初始表示为
v v v P ^P P i _i i= M P M^P MP[ I p I^p Ip( v v v P ^P P i _i i)]
其中
I
p
I^p
Ip(
v
v
v
P
^P
P
i
_i
i)表示对应于
v
v
v
P
^P
P
i
_i
i的词索引。
类似地,节点
v
v
v
Q
^Q
Q
i
_i
i∈
V
Q
V^Q
VQ的初始表示被设置为
M
Q
M^Q
MQ的对应列向量。最后将所有初始节点表示表示为
v
0
v^0
v0 = {
v
v
v
P
^P
P
i
_i
i }∪{
v
v
v
Q
^Q
Q
i
_i
i }。
One-step Reasoning
给定图
G
G
G和节点表示
v
v
v,使用GNN分三步进行推理:
(1) Node Relatedness Measure:
由于通常只有少数数字与回答问题相关,因此为每个节点计算一个权重,以便在推理中忽略不相关的数字。在形式上,节点
v
i
v_i
vi的权重计算如下
其中
W
v
W_v
Wv是权重矩阵,
b
v
b_v
bv是偏置。
(2) Message Propagation:
由于数字在推理中的作用不仅由它自己决定,而且与上下文有关,因此将massage从每个节点传播到它的邻居,以帮助执行推理。由于question和passage中的数字可能在推理中扮演不同的角色,并且应该区分对应于不同数字关系的边,所以我们在消息传播中使用特定关系的转换矩阵。在形式上,定义以下传播函数来计算节点的前向传递更新:
其中
v
v
v
’
^’
’
i
_i
i
−
^-
−是节点
v
i
v_i
vi的消息表示,
r
r
r
j
_j
j
i
_i
i是分配给边
e
e
e
j
_j
j
i
_i
i的关系,
W
W
W
r
^r
r
j
^j
j
i
^i
i是关系特定的变换矩阵,
N
i
N_i
Ni= {
j
j
j|(
v
j
v_j
vj,
v
i
v_i
vi) ∈
E
E
E}是节点
v
i
v_i
vi 的邻居。对于每条边,
r
r
r
j
_j
j
i
_i
i由以下两个属性决定:
- 数值关系:>或者≤
- 节点type:边的两个节点对应于两个数,即:(1)都来自question(
q
q
q
−
-
−
q
q
q);(2)两者均来自passage(
p
p
p
−
-
−
p
p
p);(3)分别来自question和passage(
q
q
q
−
-
−
p
p
p);(4)分别来自passage和question(
p
p
p
−
-
−
q
q
q)。即:
(3) Node Representation Update:
由于上一步得到的消息表示只包含来自邻居的信息,需要与节点表示融合,与节点本身携带的信息相结合,执行如下:
最后,表示整个一步推理过程作为单一功能:
Multi-step Reasoning
通过单步推理,只能推断相邻节点之间的关系。然而,对于某些任务,例如排序,可能需要多个节点之间的关系。因此,执行多步推理至关重要,可以按如下方式进行:
其中t ≥ 1。假设执行
K
K
K步推理,
v
v
v
K
^K
K在Eq(7)中用作
U
U
U.
3 Experiments
3.1 Dataset and Evaluation Metrics
数据集:DROP
评价指标:EM和F1
3.2 Experimental Settings
本文在开发集上调整模型,并使用网格搜索来确定最佳参数。所有表示的维度(例如,
Q
Q
Q、
P
P
P、
M
M
M
Q
^Q
Q、
M
P
M^P
MP、
U
U
U、
M
M
M
’
^’
’
0
_0
0、
M
M
M
0
_0
0和
v
v
v)都设置为128。如果没有指定,推理步骤
K
K
K设置为3。
Adam优化器,β1= 0.8,β2= 0.999,
∈
∈
∈= 10-7以最小化目标函数。学习率为5e-4,L2权重衰减λ为10-7,梯度限幅的最大模值为5。还对所有可训练变量应用衰减率为0.9999的指数移动平均。该模型以40个epoch16个batch_szie的规模进行训练。passage和question在训练期间分别被削减到400和50个token,在测试期间分别被削减到1000和100个token。
3.3 Overall Results
3.4 Effect of GNN Structure
不同GNN结构对DROP开发集的影响。结果如下表所示。“Comparison”, “Number” and “ALL”分别对应于比较问题子集、数字型答案子集和整个开发集。如果替换数字感知图为完全连通的图,则模型退回到传统的GNN,在表中表示为“GNN”。此外,““- question num”表示问题中的数字不包含在图形中,“-≤type edge”和“->type edge”分别表示不采用≤和>型的边。
3.5 Effect of GNN Layer Number![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e786cd155707da86cfa49dd2225252e3.png)
3.6 Case Study