Hierarchical Graph Network for Multi-hop Question Answering (2020) 阅读笔记
动机: | 现有的工作首先检索出可能包含正确答案的段落,再利用机器阅读理解模型根据所选的段落预测正确的答案。然而,如何利用不同粒度的数据资源去同时预测support evidence 和 answer 是一个难以解决的问题。 为了解决这个问题,最近的研究构建实体图,再在图上执行多跳推理。这些工作以下问题:
|
贡献: | 作者将解决多跳QA任务,分解为三个子任务:1. 从给定的段落中识别出相关段落;2. 找出这些段落中能回答问题的支撑证据;3.基于找到的支撑证据预测最终的答案。 作者提出了一个Hierarchical Graph Network (HGN)用于多跳机器问答。该模型可以通过一个分层架构的多水平细粒度图来共同预测答案和支撑证据。具体地,作者为每一个问题构建包含四种节点的图:问题,段落,句子和实体。首先利用预训练的bert模型为每种类型的节点得到一个上下文表示。然后,初始的上下文表示在图中实现信息的传递,最后将更新后的节点运用于不同的子任务中(段落选择,支撑证据预测和答案预测)。 |
模型: | HGN主要由四个部分组成:1 图构造模块; 2 上下文编码模块; 3 图推理模块; 4 多任务预测模块 1. Graph Construction该部分分为两步:1. 识别与问题相关的多跳段落 和 2. 对于所选的段落, 增加可以表示句子/实体间联系的边
预训练一个语言模型RoBERTa再接一个二分类的神经网络层,来训练一个paragraph ranker,其输出表示,当前的输入句子包括support sentence的概率。 首先选择标题跟问题中的短语可以匹配的段落(称为title match)。如果有多个段落被选中,则利用ranker 选择得分最高的两个段落; 如果通过title match匹配不到任何段落,则寻找包含出现在问题中的实体的段落。如果这步操作也失败,则利用ranker选取得分最高的两个段落; 利用上述操作可以构建first-hop 的段落候选集。下一步需要操作的是,发现support facts 和 entity 从而找到 second-hop 的段落。 作者利用first-hop 段落中的超链接来构建second-hop 段落。并在first-hop 段落中的所有句子和 second-hop 段落中的所有句子间构建边,并使这些边为双向的。 为了确保不受噪音的干扰,在每跳中,再次使用ranker选取前k个段落。
构建四种节点:问题,段落,句子,和实体 连接七种边:1 问题节点和段落节点(first-hop paragraph); 2 问题节点和问题中所包含的实体的节点; 3 段落节点和该段落所包含的所有句子的节点; 4 句子节点 和 句子中所包含的超链接所指向的段落的节点; 5句子节点和该句子所包含的所有实体的节点;6 段落与段落的节点; 7 相同段落中的句子间。
2. Context Encoding将所选的段落和问题进行拼接,再输入到RoBERTa+ bi-attention 模块种,得到编码的问题表示和编码后的上下文表示. 再将上下文表示输入到一个Bi-LSTM中,目的是从Bi-LSTM 的输出中抽取不同类型的节点表示:
并利用max pooling 层得到问题的表示 3.Graph Reasoning所有图节点的上下文信息被传递到更高一层的特征。 令,其中P,S,E分别表示段落节点,句子节点,实体节点的向量表示、 利用图注意力网络执行分层图中节点信息的传播: 为更新后的节点信息 Gated Attention 其中,为融合后的表示,随后被用于答案预测。 4.Multi-task Prediction三个子任务:段落选择,支撑证据预测和答案预测 通过多任务学习执行,最终的目标函数为:
其中,
实体损失起到的是正则化的作用,最终的答案预测从是文本中提取的。
其中为G的第一个隐藏层表示
|
实验: | 模型容易出现的错误:
|
IDEA | 优点:在图中构建不同等级的节点。 缺点:图边节点的构建太琐碎了,可能会引入噪音; 本文更倾向于动态图的构建。
|