【论文阅读】Multi-hop Question Answering via Reasoning Chains
Multi-hop Question Answering via Reasoning Chains
论文:2019-Multi-hop Question Answering via Reasoning Chains
基于推理链的多跳问题回答
任务
本文提出了一种在文本中提取离散推理链的方法,模型不依赖于gold annotated chains or “supporting facts,使用基于命名实体识别和共指消解的启发式算法得到的pseudogold reasoning chains。

推理链是一系列的句子,逻辑上把问题与一个事实联系起来,这个事实与给出一个合理的答案相关(或部分相关)。
方法(模型)
提出一个two-stage model
extractor model:提取推理路径。extractor模型对句子序列进行评分,并通过beam search 生成n-best 链列表。
answer module:将提取的推理链输入到BERT中提取最终的答案。
Learning to Extract Chains
Heuristic oracle chain construction
使用命名实体识别提取句子中的实体,如果两个句子中有匹配的实体,则在这两个节点上添加一条边。对段落中的所有句子进行这一操作。
从问题的节点开始,搜索所有可能的推理链。
使用两种方式选择heuristic oracles:
Shortest Path:选择最短的推理链。
Question Overlap:计算每条链的Rouge-F1,选择得分最高的推理链,这样可以找到更完整的答案链。
Chain extraction model
输入:文档+问题
处理流程:sentence encoding and chain prediction
Sentence Encoding
- 将输入问题和段落使用BERT编码。句子可以从段落中提取出来。
s_j = Span Extractor(p_i, s^{START}_j , s^{END}_j )
s_j表示段落p_i中第i句话
BERT-para
本文设计的paragraph-factored model,比在整个上下文运行BERT更高的效率和可拓展性。
使用bert-base-uncased预训练模型。

Chain Prediction
将所有编码的句子表示作为一个句子包,并采用基于LSTM的pointer network来提取推理链。
在第一步中,使用问题q的max-pooled表示初始化pointer network中的隐藏状态h_0,并提供一个特殊的令牌SOS作为第一个输入。
P(c_t= i|c_1, . . . , c_{t−1}, s) = softmax(α)[i]
α_i= W[h_{t−1}; s_{c_{t−1}};h_{t−1} \odot s_{c_{t−1}}]
c_1, . . . , c_{t−1}:推理链中句子索引。
W:要学习的权重。
Training the Chain Extractor
step t的损失:
loss_t=-log(P(c∗t)|c^∗_1,...,c^∗_{t−1}s)
c^∗_1:目标句子
数据集
- WikiHop
- HotpotQA
性能水平&结论
Comparison of Chain Extraction Methods
- 使用更多的上下文有助于链提取器找到相关的句子。
- one-best推理连通常包含答案。
- Q-Overlap有助于找到更多的支持事实。
- 可以通过跨多个链使用并集来提高性能。(BRRT-Para(top5))

Results compared to other systems
HotpotQA:使用RoBERTa 预模型作为权重。
- 性能超过了使用标记支持事实的模型,说明本文提出的heuristicallyextracted chains可以有效的替代标记支持事实进行监督。

Evaluation of chains
有序抽取优于无序抽取。
在HotpotQA-Hard上,更需要多跳推理。

- 链接提取的性能已接近HotpotQA上的性能极限。
- Table4中人类评估的得分与模型在oracle上的F1的分相近,表明本文提出的模型不再需要人工注释的支持事实。

