Hierarchical Graph Network for Multi-hop Question Answering

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

代码:https://github.com/yuwfan/HGN

任务

​ 提出了用于多跳问题回答的 Hierarchical Graph Network(HGN)。为了将分散在多个段落的文本中的线索汇总起来,通过构建不同粒度级别的节点(问题、段落、句子和实体)来创建一个层次图。将异质节点被编织成一个完整的图,不同颗粒度的节点被用于不同的子任务(例如,段落选择、支持事实提取和答案预测)。

方法(模型)

​ 为了将分散在多个段落的文本中的线索汇总起来,通过构建不同粒度级别的节点(即问题、段落、句子和实体)来创建一个hierarchical graph,这些节点的表示是由基于BERT的上下文编码器初始化的。

Hierarchical Graph Network

四个主要的组件:

  • Graph Construction Module

    构建层次图以连接不同来源的线索。

    构建步骤

    • 识别相关的多跳段
    • 添加代表所选段落内句子和实体之间联系的边
  • Context Encoding Module

    通过基于BERT的编码器获得图形节点的初始表示。

    将所选段落和问题串联后输入到BERT预训练模型。

  • Graph Reasoning Module

    应用基于图形注意力的消息传递算法来共同更新节点表示。

    GAT(Graph Attention Network),将节点作为输入,GAT通过邻居$N_i$更新节点的特征表示$h_i^{‘}$。

    σ(·)表示激活函数,$α_{ij}$为注意力系数。

  • Multi-task Prediction Module

    同时执行多个子任务,包括段落选择、支持事实预测、实体预测和答案跨度提取。

    段落选择基于段落节点,支持事实预测基于句子节点,答案预测基于实体节点。

模型结构:

image-20210521175510269

支持事实预测过程:

image-20210521222206209

左侧问题:Q → P1 → S4 → P2 → S7

右侧问题:Q → P1 → S1 → S2 → P2 → S3

数据集

HotpotQA Distractor and Fullwiki setting

性能水平 & 结论

性能水平:

image-20210521192345886

HGN方法在Distractor和Fullwiki设置中都取得了领先的性能水平。