Dynamically Fused Graph Network for Multi-hop Reasoning

用于多跳推理的动态融合图网络

0. Abstract

提出了一个Dynamically Fused Graph Network (动态融合图网络,DFGN)。受到人类循序渐进的推理行为的启发,DFGN包括一个动态融合层,它从给定查询中提到的实体开始,沿着从文本动态构建的实体图进行探索,并从给定文档中逐渐找到相关的支持实体。SOTA,此外,我们的分析表明,DFGN可以产生可解释的推理链。

1. Introduction

multi-hop QA,给出一个查询,一系列文档,单并不是全部相关。答案需要从多个文档选择,而且需要进行推理。这种设置是通用的,不依赖于任何额外的预定义知识库。因此,这些模型有望很好地概括和回答开放领域的问题。

挑战一:过滤噪音,删掉无用文档,抽取有用信息。
方法:从输入段落构建实体图,用GNN实体图聚集信息。然而,所有现有的工作都是基于每个QA对的静态全局实体图来应用GNNs,这可以被认为是执行隐式推理。作者认为应该在根据查询定制的动态局部实体图上显式地执行查询引导的多跳推理

挑战二:之前通过聚合到实体图,在实体图上选择答案,但现实情况答案不一定在实体图上。因此,现有的方法很难直接应用于开放域多跳问答任务,如HotpotQA。

本文:动态融合图网络(DFGN)
对于挑战一,DFGN是基于查询和文档中的实体提及构建了一个动态实体图(dunamic entity graph)。这个过程在多轮中迭代,以实现多跳推理。在每一轮中,DFGN通过掩码预测模块在动态图上生成和推理,其中不相关的实体被屏蔽,而只有推理源被保留。如图一,掩码预测模块是以端到端的方式学习的,从而缓解了错误传播问题。
对于挑战二:提出fusion process。我们不仅将来自文档的信息聚合到实体图(doc2graph),还将实体图的信息传播回文档表示(graph2doc)。融合过程通过文档标记和实体在每一跳迭代执行,然后从文档标记获得最终结果。doc2graph和graph2doc与动态实体图的融合过程共同改善了文档信息和实体图之间的交互,从而导致噪声较小的实体图,从而得到更准确的答案。

作为一个优点,DFGN的预测遮挡隐含地诱导推理链,这可以解释推理结果。针对开放领域语料库中基本真理推理链难以定义和标注的问题,提出了一种弱监督掩码学习的可行方法。我们提出了一个新的度量来评估预测推理链和构建的实体图的质量。
在这里插入图片描述

总结贡献:

  1. 我们提出了DFGN,一种新的方法来解决基于多跳文本的问答问题
  2. 我们通过解释DFGN预测的实体图掩码,提供了一种解释和评估推理链的方法。掩模预测模块另外被弱训练。
  3. 我们在一个公共数据集(HotpotQA)上提供了一个实验性研究,以证明我们提出的DFGN与最先进的未发表的作品相比是有竞争力的。

2. Related work

Text-based Question Answering:文本问答可以端到端的抽取事实进行推理
关于多跳推理QA保证需要识别多个相关事实并对它们进行推理,例:美国最大的州的首府是哪里

现有的多跳问答数据集WikiHop和ComplexWebQuestions是使用现有的知识库构建的,并受到它们使用的知识库模式的约束。例如,答案被限制在维基百科中的实体中,而不是由HotpotQA中的自由文本形成的(参见图2的例子)。在这项工作中,我们侧重于多跳基于文本的问答,所以我们只在HotpotQA上进行评估。
在这里插入图片描述

Multi-hop Reasoning for QA
常用GNN框架,GNN\GAT\GRN已经看到希望,Coref-GRN、MHQA-GRN和Entity-GCN在回答现实世界的问题时探讨了图的构造问题。然而,如何有效地对构造的图进行推理,这是本文研究的主要问题。

另外一类是序列模型处理多跳问题。这种模型为查询构造表示,为上下文构造存储单元,然后以多跳方式在它们之间进行交互。IRNet(周等,2018)在每一步生成一个主题状态和一个关系状态,计算数据集KB给出的所有实体和关系之间的相似性得分。在每个时间步骤中得分最高的那些被链接在一起,形成一个可解释的推理链。
在这里插入图片描述

3. 动态融合图网络

我们的直觉来自于QA的人类推理过程。人首先从查询中感兴趣的实体开始,集中在开始实体周围的单词上,连接到在邻域中找到的或由相同表面提及链接的某个相关实体,重复该步骤以形成推理链,并落在某个可能是答案的实体或片段上。为了模仿人类的推理行为,我们在我们提出的QA系统中开发了五个组件(图3):
段落选择子网实体图构建模块编码层多跳推理融合块最终预测层

3.1 段落选择

对一个问题,假设有 N p N_p Np个段落(例: HotpotQA中 N p = 10 N_p=10 Np=10)。由于不是每篇文章都与问题相关,我们训练一个子网络来选择相关段落。用BERT+sigmoid进行句子分类。选择器网络以一个查询Q和一个段落作为输入,输出一个介于0和1之间的相关性得分。(?)训练标签是通过给段落分配1来构建的,每个问答对至少有一个支持句。在推理过程中,选择预测得分大于 η η η (=实验中为0.1)的段落,并连接在一起作为上下文 C C C η η η被适当地选择,以确保选择器达到相关段落的显著高的召回率。q和C由上层进一步处理。

3.2 构建实体图

我们不假设一个总体知识库。相反,我们使用斯坦福corenlp工具包(Manning等人,2014)从上下文C中识别命名实体。提取的实体数量表示为 N N N。实体图是以实体为节点构建的,边的构建如下。

  1. 每对实体出现在同一个句子 C C C中(句子级链接)
  2. 每对实体在文本 C C C中有相同的提及(上下文级链接)
  3. 在中心实体节点和同一段落内的其他实体之间(段落级链接)

中心实体是从每个段落的标题句中提取的。请注意,上下文级链接确保多个文档中的实体以某种方式连接在一起。我们不对代词应用共指解析,因为它引入了额外的有用和错误的链接。

3.3 编码查询(Query)和上下文(Context)

拼接Q和C将结果传给BERT获得 Q = [ q 1 , . . . , q L ] ∈ R L × d 1 Q=[q_1, ... , q_L] \in 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 R^{M \times d_1} CT=[c1,...,cM]RM×d1。L,M是查询和上下文的长度,d1是BERT隐藏状态的大小。在实验中,我们发现连接查询和上下文比将它们分别传递给BERT更好。

表示进一步通过双向注意力层(Seo等人,2016),以增强查询和上下文之间的交叉交互。在实践中,我们发现添加双关注层比仅使用BERT编码获得了更好的性能。输出表示为 Q 0 ∈ R L × d 2 Q_0∈R^{L×d_2} Q0RL×d2和C_0 \in R^{M×d_2},其中d_2是输出嵌入大小。

3.4 用融合块推理(Reasoning with the Fusion Block)

对于为查询Q和上下文C计算的嵌入,剩下的挑战是如何识别支持实体和潜在答案的文本跨度(即答案)。我们提出一个融合模块来模仿人类的一步推理行为—从 Q 0 Q_0 Q0 C 0 C_0 C0开始,寻找一步支持实体。融合模块实现以下功能:

  1. 通过从token计算实体嵌入将信息从token传递到实体(Doc2Graph流);
  2. 在实体图上传播信息;
  3. 将信息从实体图传递到文档token,因为最终预测是基于token的(Graph2Doc流)。
    如图4
    在这里插入图片描述

Document to Graph Flow:由于每个实体都是通过NER工具识别的,因此与实体相关联的文本跨度被用来计算实体嵌入(Doc2Graph)。为此,我们构造了一个二进制矩阵 M M M,其中,如果上下文中的第I个标记在第j个实体的跨度内,则 M i , j M_{i,j} Mij为1。(token i在j实体中)。 M M M用于选择与实体相关联的文本跨度。
根据上面部分计算token嵌入(是包含 C t − 1 C_{t-1} Ct1的选定列的可训练矩阵),传递到一个mean_max池化计算实体嵌入 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 × N 2d2×N,N是实体的数量, 2 d 2 2d_2 2d2维是mean-pooling 和max-pooling的结果。这个模块被称为Tok2Ent

Dynamic Graph Attention
C t − 1 C_{t-1} Ct1获得实体嵌入后,我们应用图神经网络将节点信息传播给它们的邻居。我们提出了一种动态图形注意机制来模拟人类一步一步的探索和推理行为。在每个推理步骤中,我们假设每个节点都有一些信息要传播给邻居。与查询越相关,邻居节点从附近接收到的信息就越多。

我们首先通过在实体上创建软掩码来识别与查询相关的节点。它充当信息看门人,即只允许那些与查询相关的实体节点传播信息。我们使用查询嵌入和实体嵌入之间的注意网络来预测软掩码 m t m_t mt,其旨在表示第t个推理步骤中的开始实体
q ~ = M e a n P o o l i n g ( Q ( t − 1 ) )   ( 1 ) \widetilde{q}=MeanPooling(Q^{(t-1)}) \ (1) q =MeanPooling(Q(t1)) (1)
γ i ( t ) = q ~ ( t − 1 ) V ( t ) e i ( t − 1 ) d 2   ( 2 ) \gamma_i^{(t)} =\frac{\widetilde{q}^{(t-1)}V^{(t)}e_i^{(t-1)}}{\sqrt{d_2}} \ (2) γi(t)=d2 q (t1)V(t)ei(t1) (2)
m ( t ) = σ ( [ ( γ i ( t ) ) , . . . , γ N ( t ) ] )   ( 3 ) m_{(t)}=\sigma {([( \gamma_i^{(t)}),...,\gamma_N^{(t)}])} \ (3) m(t)=σ([(γi(t)),...,γN(t)]) (3)
E ~ = [ m 1 ( t ) e 1 ( t − 1 ) , . . . , m N ( t ) e N ( t − 1 ) ]   ( 4 ) \widetilde{E}=[m_1^{(t)}e_1^{(t-1)},...,m_N^{(t)}e_N^{(t-1)}] \ (4) E =[m1(t)e1(t1),...,mN(t)eN(t1)] (4)
V是线性投影矩阵。通过将软掩码和初始实体嵌入,将鼓励期望的起始实体,而惩罚其他实体。因此,信息传播的这一步骤被限制在实体图的动态子部分。

下一步是通过动态子图传播信息。受GAT的启发,我们通过以下方式计算两个实体之间的注意力得分α
h i ( t ) = U t e i ~ ( t − 1 ) + b t   ( 5 ) h_i^{(t)}=U_t \widetilde{e_i}^{(t-1)} + b_t \ (5) hi(t)=Utei (t1)+bt (5)
β i , j ( t ) = L e a k y R e L U ( W t T [ h i ( t ) , h j ( t ) ] )   ( 6 ) \beta_{i,j}^{(t)}=LeakyReLU(W_{t}^T [h_i^{(t)},h_j^{(t)}]) \ (6) βi,j(t)=LeakyReLU(WtT[hi(t),hj(t)]) (6)
α i , j ( t ) = e x p ( β i , j ( t ) ) ∑ k e x p ( β i , k ( t ) )   ( 7 ) \alpha_{i,j}^{(t)}=\frac{exp(\beta_{i,j}^{(t)})}{\sum_k exp(\beta_{i,k}^{(t)})} \ (7) αi,j(t)=kexp(βi,k(t))exp(βi,j(t)) (7)

这里,α的第I行表示将被分配给实体I的邻居的信息的比例。
请注意,我们模型中的信息流不同于大多数以前的GATs。
在动态图注意力中,每个节点在其列上求和,形成一个新的实体状态,该状态包含它从邻居接收的全部信息:
e i ( t ) = R e L U ( ∑ ( j ∈ B i ) α j , i ( t ) h j ( t ) )   ( 8 ) e_i^{(t)}=ReLU(\sum \limits_{(j \in B_i)} \alpha_{j,i}^{(t)}h_j^{(t)}) \ (8) ei(t)=ReLU((jBi)αj,i(t)hj(t)) (8)
Bi是实体i的邻居集,获得更新后的实体嵌入 E ( t ) = { e 1 t , . . . , e N ( t ) } E^{(t)}=\{e_1^{t}, ... ,e_N^{(t)}\} E(t)={e1t,...,eN(t)}

Updating Query一个推理链包含多个步骤,每一步新访问的实体将是下一步的开始实体。为了预测下一步的预期开始实体,我们引入了查询更新机制,其中查询嵌入由当前步骤的实体嵌入更新。在我们的实现中,我们利用双向注意力网络(Seo等人,2016)来更新查询嵌入:
Q ( t ) = B i − A t t e n t i o n ( Q ( t − 1 ) , E ( t ) )   ( 9 ) Q^{(t)}=Bi-Attention(Q^{(t-1)}, E^{(t)}) \ (9) Q(t)=BiAttention(Q(t1),E(t)) (9)

Graph to Document Flow利用Tok2Ent和动态图关注,实现了实体级的推理步骤。然而,无限制的答案仍然无法追溯。为了解决这个问题,我们开发了一个Graph2Doc模块,以保持信息在上下文中从实体流回token。因此,与答案相关的文本范围可以在上下文中定位。

使用如上所述的相同二进制矩阵M, C t − 1 C_{t-1} Ct1中的先前字符嵌入与对应于字符的相关实体嵌入相连接。M中的每一行对应一个字符,因此我们使用它从 E t E_t Et中选择一个实体的嵌入,如果该字符参与了该实体的提及。该信息进一步用LSTM层处理(Hochreiter和Schmidhuber,1997),以产生下一级上下文表示:
C ( t ) = L S T M ( [ C ( t − 1 ) , M E ( t ) T ] )   ( 10 ) C^{(t)}=LSTM([C^{(t-1)},ME^{(t)T}]) \ (10) C(t)=LSTM([C(t1),ME(t)T]) (10)
C ( t ) C^{(t)} C(t)作为下一个融合模块的输入。此时,当前子图的推理信息已经传播到整个上下文中。

3.5 Prediction

我们遵循与相同的预测层结构 (Yang et al., 2018). 该框架有四个产出层面,包括:

  1. 辅助句子(支持句子)
  2. 答案的开始位置
  3. 答案的结束位置
  4. 答案类型

我们使用级联结构来解决输出依赖关系,其中四个同构的LSTMs F i F_i Fi 一层一层地堆叠。最后一个融合块的上下文表示被发送到第一个LSTM F 0 F_0 F0
每个Fi的输出是对数表示 O ∈ R M × d 2 O \in R^{M×d_2} ORM×d2并且计算这些逻辑上的交叉熵损失。
O s u p = F 0 ( C ( t ) )   ( 11 ) O_{sup}=F_0(C^{(t)}) \ (11) Osup=F0(C(t)) (11)
O s t a r t = F 1 ( [ C ( t ) , O s u p ] )   ( 12 ) O_{start}=F_1([C^{(t)}, O_{sup}]) \ (12) Ostart=F1([C(t),Osup]) (12)
O e n d = F 2 ( [ C ( t ) , O s u p , O s t a r t ] )   ( 13 ) O_{end}=F_2([C^{(t)}, O_{sup},O_{start}]) \ (13) Oend=F2([C(t),Osup,Ostart]) (13)
O t y p e = F 3 ( [ C ( t ) , O s u p , O e n d ] )   ( 14 ) O_{type}=F_3([C^{(t)}, O_{sup},O_{end}]) \ (14) Otype=F3([C(t),Osup,Oend]) (14)

我们共同优化这四个交叉熵损失。每个损失项由一个系数加权。
L = L s t a r t + L e n d + λ s L s u p + λ t L t y p e   ( 15 ) L=L_{start}+L_{end}+\lambda_s L_{sup} + \lambda_t L_{type} \ (15) L=Lstart+Lend+λsLsup+λtLtype (15)

Weak Supervision此外,我们引入弱监督信号来引导每个融合块的软掩码与启发式掩码相匹配。对于每种训练情况,启发式掩码包含从查询中检测到的起始掩码,通过在相邻矩阵上应用宽度优先搜索(BFS)获得的附加BFS掩码给出起始掩码。然后,在预测的软掩码和启发法之间的二元交叉熵损失被添加到目标。我们跳过那些不能从查询中检测到起始掩码的情况。

4. 实验

4.1 实现细节

利用BERT分词器对文章和问题分词,句子对的编码向量是从预先训练的BERT模型中生成的(Devlin等人,2018)。设置较低的阈值找到97%的召回率和合理的精确度(69%)的支持事实。
Stanford CoreNLP Toolkits进行命名实体识别抽取实体,图形中实体的最大数量设置为40。实体图中的每个实体节点的平均度数为3.52
d 1 = 768 ,   d 2 = 300 d_1=768, \ d_2=300 d1=768, d2=300

4.2 主要结果

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

4.3 图形构造和推理链的评价

推理链是实体图上的有向路径,因此高质量的实体图是良好推理的基础。由于NER模型的有限准确性和我们的图构造的不完全性,开发集中31.3%的案例不能执行完整的推理过程,其中至少一个支持语句不能通过实体图到达,即在该语句中没有实体被NER模型识别。我们将这类案例命名为“缺失支持实体”,这类案例的比例可以评价图形构建的质量。在下面的分析中,我们重点关注其余68.7%的好案例。

在下文中,我们首先给出几个定义,然后给出实体级支持ESP(Entity-level Support)分数。

Path 路径是融合块访问的实体序列, P = [ e p 1 , . . . , e p t + 1 ] P=[e_{p1}, ... ,e_{pt+1}] P=[ep1,...,ept+1](假设t层融合块)。

Path Score路径的得分是通过将相应的软掩码和沿着路径的注意力得分相乘而获得的, s c o r e ( P ) = ∏ i = 1 t m p i ( i ) α p i , p i + 1 ( i ) score(P)=\prod_{i=1}^tm_{pi}^{(i)} \alpha_{pi,pi+1}^{(i)} score(P)=i=1tmpi(i)αpi,pi+1(i)

Hit给定一条路径和一个支持句,如果该路径访问了支持句的至少一个实体,我们称这个支持句被命中
给定一个有m个支持句的案例,我们选择得分最高的前k条路径作为预测推理链。对于每个支撑句,我们使用k个路径来计算有多少支撑句被命中。

在下文中,我们引入了两个指标来通过实体级支持分数来评估多跳推理的质量。

**ESP EM(Exact Match)**对于一个有m个支持句子的案例,如果所有的句子都被击中,我们称这个案例为完全匹配。ESP EM评分是完全匹配案例的比例。

ESP Recall对于一个有m个支持句,其中h个被命中的案例,这个案例的召回分为h/m。整个数据集的平均召回率就是ESP召回率。

我们用两个融合块训练一个DFGN来选择k值最高的路径。在开发集中,长度为2的平均路径数为174.7。我们选择k作为1,2,5,10来计算ESP EM和ESP Recall分数。证明BERT实体抽取更好。

此外,随着实体图的大小变大,推理链空间的扩展使得命中更加困难。然而,BERT NER模型仍然保持比较,甚至更好的性能指标的新兴市场和召回。因此,从BERT NER模型建立的实体图比以前的版本更好。

4.4 个案研究

在这里插入图片描述

图5提供案例研究。第一个案例说明了DFGN的推理过程与两层融合块。在第一步,通过将查询与实体进行比较,我们的模型生成Mask1作为推理的开始实体掩码,其中“Barrack”和“British Army Lynx”被检测为两个推理链的开始实体。然后,两个起始实体的信息被传递给它们在实体图上的邻居。在第二步中,Mask2检测到对同一实体“IRA”的提及,作为在两段之间传播信息的桥梁。最后两个推理链通过桥梁实体“IRA”链接在一起,正是答案。

图5中的第二种情况很糟糕。由于NER模块出现故障,唯一的启动实体“Farrukhzad Khosrau V”未能成功检测到。没有起始实体,推理链无法建立,实体图中的进一步信息流在第一步就被阻塞。

图5中的第三种情况也是一种糟糕的情况,它包括一个比较查询类型的查询。由于我们的模型缺乏数值计算能力,所以未能给出正确答案,虽然查询只是简单对比了两天“February 20, 1959”和“February 10, 1967”。在比较查询类型的情况下,为了进一步提高性能,合并数值运算是一个基本问题

5. 总结

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值