ACL2019|Dynamically Fused Graph Network for Multi-hop Reasoning

本文介绍了一种名为动态融合图形网络(DFGN)的新型文本问答方法,特别适用于需要跨多个文档进行推理的问题。DFGN通过构建实体图并进行多跳推理,为开放域问答提供了解决方案。在HotpotQA数据集上的实验表明,DFGN能有效地整合来自不同文档的信息,显著提高了多文档问答的准确率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文本问答(TBQA)近年来得到了广泛的研究。大多数现有的方法主要是在一个段落内找到问题的答案。然而许多困难的问题需要在两个或多个文档之中寻找答案。本文提出了动态融合图形网络(DFGN)这种新的回答方法,为需要多个分散证据来进行推理的文本问答提供了新的思路。在人类的逐步推理行为的启发下,DFGN包含了一个动态融合层,该层从给定查询中提到的实体开始,沿着文本动态构建的实体图进行探索,并从给定的文档中逐步找到相关的支持实体。

论文地址:
https://arxiv.org/abs/1905.06933

引言

问答是自然语言处理的重要组成部分,它提供了一种可量化的方法来评估NLP系统的语言理解和推理能力。传统的问答研究大多数都集中在从一个段落中寻找证据和答案,很少测试底层模型的深层推理能力。有研究提出,现有问答基准中的大多数问题都可以避过推理,通过检索一组句子来回答。
本文研究了基于多跳机制的文本问答,所谓多跳机制为在多个原始文本中进行多跳推理。在不依靠任何与训练知识库的前提下,使用不同文档中的多个证据来进行答案的推理。即模型需要可以概括和回答开放域中的问题。此模型的两大难点为:1)多跳机制需要高效地从多文档种抽取有效信息。现有研究大多使用静态的图神经网络(GNN)来聚合QA对实体图中的信息。2)现有研究中,通常将所有文档信息聚合到一个QA对实体图种,然后直接在实体图上选择实体作为答案。这种方法很难应用于开放域的任务中。
本文针对多跳文本问答提出了动态融合图形网络的方法,并且提出了通过DFGN来预测部分被遮盖实体图来解释和评估推理链的方法。

方法

人类对于问答的推理过程是:首先从查询中的某个感兴趣的实体开始,接下来关注实体周围的词语、邻近的与此实体有关系的实体或者被相同表面引用连接的实体,之后不断地重复这个步骤形成一个推理链,最后定位到可能是答案的某个实体或者片段上。
通过模仿人类的推理行为,此文章针对于问答系统构建了5个组件:用于段落选择的子网络,实体图结构单元,编码层,多跳推理的融合模块和最终的推理层。
图 1 模型结构概览

段落选择

对于每一个问题,有 N p N_p Np的段落用于推断答案。因为不是每段中的信息都与问题相关,作者训练了一个子网络用于选择段落。此子网络使用预训练的BERT模型,后接基于sigmoid预测的句子分类器进行训练。使用查询语句 Q Q Q和段落进行二分类。

构建图网络

文章使用斯坦福CoreNLP工具包,对内容 C C C进行POL(Person, Organization和Location)实体抽取,抽取出的实体数目为 N N N。首先对 C C C中所有句子出现的每一对实体对进行连接,作为句子层的连接;对具有相同文本的实体对进行连接,作为内容层的连接;对相同段落的中心实体点和其他实体点进行连接,作为段落层的连接,其中中心实体点为从段落题目中抽取出的实体点。

编码查询和内容

将查询 Q Q Q和内容 C C C进行级联,之后通过预训练BERT模型得到表示:
Q = [ q 1 , . . . , q L ] ∈ R L × d 1 Q=[q_1,...,q_L]\in \mathbb{R}^{L\times d_1} Q=[q1,...,qL]RL×d1,
C T = [ c 1 , . . . , c M ] ∈ R M × d 1 C^{T}=[c_1,...,c_M]\in \mathbb{R}^{M\times d_1} CT=[c1,...,cM]RM×d1
其中 L , M L,M L,M Q , C Q,C Q,C的长度, d 1 d_1 d1为BERT的隐状态层数。
之后将两个表示通过一个双注意层来增强两者之间的交互,然后将输出与输入相加得到最终表示 Q 0 ∈ R L × d 2 Q_0 \in \mathbb{R}^{L \times d_2} Q0RL×d2, C 0 ∈ R M × d 2 C_0\in \mathbb{R}^{M\times d_2} C0RM×d2,其中 d 2 d_2 d2为输出嵌入的维度。

使用融合模块进行推理

整个模块分为四步:文档到图,动态图注意力机制,更新查询,图到文档。
图 2 融合模块结构概览

文档到图

文章构建了一个二元矩阵 M M M,如果内容中第 i i i个token属于第 j j j个实体范围,则 M i , j M_{i,j} Mi,j等于1。使用之前的到的token嵌入通过平均池化层和最大池化层得到实体嵌入 E t − 1 = [ e t − 1 , 1 , . . . , e t − 1 , N ] E_{t-1}=[e_{t-1,1},...,e_{t-1,N}] Et1=[et1,1,...,et1,N]。其中 E t − 1 E_{t-1} Et1的维度为 2 d 2 × N 2d_2\times N 2d2×N N N N为实体数目, 2 d 2 2d_2 2d2可以表示平均池化和最大池化的结果。

动态图注意力机制

文章假设每一个实体点都会传播信息到附近的实体点,所以与查询越接近的实体点,其附近的实体点收到的信息越多。首先将内容部分实体点进行遮蔽(mask),之后在查询的嵌入和内容的嵌入上使用注意力网络,来预测遮蔽的实体点,最终得到与查询最有关的实体点。

其中 V t V_t Vt为线性投影矩阵, σ \sigma σ为sigmoid函数。
接下来使用动态子图传播信息:

其中 U t ∈ d 2 × 2 d 2 , W t ∈ ( R ) 2 d 2 U_t \in \mathbb{d_2\times 2d_2}, W_t\in\mathbb(R)^{2d_2} Utd2×2d2,Wt(R)2d2为线性投影参数, α i \alpha _i αi代表第 i i i行信息传播的比例。
在动态图注意力机制中,信息流的表示为:

其中 B i B_i Bi为实体点 i i i的邻接点,实体点嵌入的更新表示为 E ( t ) = [ e 1 ( t ) , . . . , e N ( t ) ] E^{(t)}=[e_1^{(t)},...,e_N^{(t)}] E(t)=[e1(t),...,eN(t)]

更新查询

一个完整的推理链包含很多个步骤,每一步新访问的实体点都会变成下一步的起始实体点。文章参考双重注意力网络设计了查询嵌入的更新机制

图到文档

使用之前构建的二元矩阵 M M M,联合内容嵌入 C t − 1 C_{t-1} Ct1和相应的实体嵌入 E t − 1 E_{t-1} Et1得到token。同时使用LSTM进行下一步内容嵌入的预测:

预测

预测框架由四格输出维度构成,包括支持句,答案的开始位置,答案的结束位置和答案类型。使用堆栈结构的4层同构LSTM来进行预测:

最终损失函数为:

实验

文章在数据集HotpotQA上进行实验。在段落选择阶段,文章使用BERT的分词器对所有段落和问题进行分词,句对的编码向量由BERT预训练模型确定。在图构建阶段,文章使用斯坦福Core NLP工具包里的预训练NER模型进行实体抽取。在编码阶段,文章依然使用BERT预训练模型作为编码器。
以下为模型表现:
图 3 HotpotQA不同测试集的表现
图 4 消融学习
本文还定义了ESP(实体等级支持)的分数:路径(Path)为融合模块的实体序列访问顺序, P = [ e p 1 , . . . , e p t + 1 ] P=[e_{p_1},...,e_{p_{t+1}}] P=[ep1,...,ept+1];路径分数(Path Score)为遮盖与路径上注意力分数的乘积, s c o r e ( P ) = ∏ t i = 1 m i , p i α t , p i , p i + 1 score(P)=\prod_{t}^{i=1}m_{i,p_i}\alpha_{t,p_i,p_{i+1}} score(P)=ti=1mi,piαt,pi,pi+1;击中句(Hit)为如果句子中至少有一个实体在路径中,则称此句为击中句。对于 m m m个支持句,根据最高分选择前 k k k个路径预测为推理链。对于每个支持句,使用这 k k k个路径计算多少句为击中句,最终得到两种ESP得分为:
图 5 ESP得分
ESP EM:对于 m m m个支持句,如果 m m m句都为击中句,则称为完全契合(Exact Match)。
ESP Recall:对于 m m m个支持句,如果 h h h句为击中句,则此值为 h / m h/m h/m
图 6 案例研究

结论

本文针对多跳推理文本问答提出了一种新的动态融合图网络,在HotpotQA上取得了很好的效果,并定义了新的评测分数ESP EM和ESP Recall,为多文档的QA问题提供了新的思路。



扫码识别关注,获取更多论文解读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值