Dynamically Fused Graph Network for Multi-hop Reasoning

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

代码:https://github.com/woshiyyya/DFGN-pytorch

任务

处理基于文本的问题回答(TBQA),现有的大多数方法都侧重于在一个段落中寻找问题的答案。但是许多复杂的问题需要从两个或更多的文档中分散的文本中寻找多个支持证据。本文提出了动态融合图网络(DFGN),来回答需要从多个分散的证据推理的问题。

方法(模型)

DFGN包含一个动态融合层,它从给定查询中提到的实体开始,沿着从文本中动态构建的实体图进行探索,并逐渐从给定文档中找到相关的支持实体。

工作方式:

image-20210413205001014

两个挑战:

  • 并非每个文档都包含相关信息,因此基于多跳文本的质量检查要求从多个段落中过滤掉噪音并提取有用的信息。

  • 以前的多跳Qa工作通常会将文档信息汇聚到实体图形,然后在实体图的实体上直接选择答案。 但是,在更真实的情况下,答案甚至可能不会驻留在提取的实体图的实体中 。

解决:

  • 对于第一个挑战,DFGN根据查询和文档中提及的实体,构建一个动态实体图。这个过程经过多轮迭代,实现多跳推理。在每一轮中,DFGN都会在动态图上生成和推理,通过掩码预测模块(mask prediction module),将不相关的实体屏蔽掉,只保留推理源。
  • 提出fusion process,不仅将文档中的信息聚合到实体图(doc2graph),还将实体图的信息传播回文档表示(graph2doc)。融合过程在每一跳都会通过文档标记和实体进行迭代,然后从文档标记中得到最终的结果答案。doc2graph和graph2doc的融合过程与动态实体图共同提高了文档信息与实体图之间的交互性,使得实体图的噪声更小,从而使答案更加准确。

Dynamically Fused Graph Network(DFGN)

模型结构:

image-20210414091718194

5个组件:paragraph selection sub-network, entity graph construction, encoding layer, a fusion block for multi-hop reasoning, final prediction layer

  • paragraph selection sub-network

    通过sub-network选择相似度较高的段落。

  • Constructing Entity Graph:

    使用Stanford corenlp toolkit进行命名实体识别。

    边添加规则:

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

    中间实体从标题中提取。

  • Encoding Query and Context

    实验BERT预训练模型编码。

Q,C代表问题和上下文。L,M分别表示问题和上下文的长度,$d_1$是BERT隐藏层的尺寸。

  • Reasoning with the Fusion Block

    模仿人类的one-step推理行为。

    image-20210414094506444

    1. 将文档中的信息聚合到实体图(doc2graph
    2. 将实体图的信息传播回文档表示(graph2doc)
    3. 然后从文档标记中得到最终的结果答案

数据集

HotpotQA :distractor setting

性能水平

image-20210414104935396

答案性能和联合表现达到了当前最优性能,DFGN可以产生可解释的推理链。

消融研究:

image-20210414105356961

每个模型组件都可以提供1%至2%的性能提升。

并且模型对于黄金段落和支持事实并不敏感。

结论

提出的动态融合的图形网络(DFGN)以解决多跳推理。在HotpotQA上对DFGN评估取得了领先的结果。DFGN可以产生可靠和可解释的推理链。从文本中构建实体图,可解决更多困难的推理问题。