NumNet

在这里插入图片描述

       NumNet: Machine Reading Comprehension with Numerical Reasoning
       https://arxiv.org/abs/1910.06701
       https://github.com/ranqiu92/NumNet

1.Motivation

将数值推理集成到机器阅读理解模型中。两个关键因素:

  1. 数值比较:问题的答案可以通过在文档中进行数值比较,如排序和比较,直接获得。例如,在表1中,对于第一个问题,如果MRC系统知道“49 > 47 > 36 > 31 > 22”的事实,它可以很容易地提取出第二长的场地目标是47码。
    在这里插入图片描述
  2. 数值条件:问题的答案不能通过文献中简单的数值比较直接得到,往往需要数值比较才能理解文本。例如,对于表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):

  1. Passage span:答案是passage的跨度,答案概率被定义为开始和结束位置概率的乘积
  2. Question span:答案是question的跨度,答案概率也定义为开始位置和结束位置概率的乘积。
  3. Count:答案是通过计数得到的,被当作十个数(0-9)以上的多类分类问题处理,覆盖了DROP数据集中的大部分Count类型答案。
  4. 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)。
在这项工作中考虑了两组边:

  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),则从 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中用实线箭头表示。
  2. 更小或等于关系边( 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由以下两个属性决定:

  1. 数值关系:>或者≤
  2. 节点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在这里插入图片描述

3.6 Case Study

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值