From Easy to Hard: 两阶段选择器与阅读器在多跳问答中的应用
发表信息:本文发表于 ICASSP 2023(CCF-B 类会议)
1. 什么是多跳阅读理解?
多跳阅读理解(Multi-hop Question Answering)是自然语言处理领域中的一个极具挑战性的任务。与单跳问答不同,多跳问答需要模型在多个文档中进行推理,找到关联信息后才能给出正确答案。
1.1 "跳"的含义
"跳"指的是推理的步骤数量。每一跳都需要从文档中提取相关信息,并将这些信息连接起来形成最终答案。
1.2 多跳问题示例
中文示例:
flowchart TD
subgraph Hop1
Q1[Q: Who directed The Wandering Earth]
D1[Doc A: The Wandering Earth directed by Guo Fan]
end
subgraph Hop2
Q2[Q: When was Guo Fan born]
D2[Doc B: Guo Fan was born in 1980]
end
subgraph Answer
Answer[Answer: Guo Fan, 1980]
end
Q1 --> D1
D1 --> Q2
Q2 --> D2
D2 --> Answer
style Q1 fill:#f9f,color:#333
style D1 fill:#bbf,color:#333
style Q2 fill:#ff9,color:#333
style D2 fill:#bbf,color:#333
style Answer fill:#bfb,color:#333
问题解析:
| 跳数 | 任务 | 涉及的文档 |
|---|---|---|
| 第一跳 | 找出《流浪地球》的导演 | 文档A |
| 第二跳 | 查找该导演的出生年份 | 文档B |
| 最终 | 整合两跳信息给出完整答案 | 合并结果 |
多跳体现在哪里?
- 无法直接回答:看第一个文档只能知道导演是谁,但问题问的是出生年份
- 需要链式推理:第一跳的结果(导演名)是第二跳的输入
- 两步信息整合:必须把两个文档的信息合在一起才能完整回答问题
2. 论文摘要
Title: From Easy to Hard: Two-stage Selector and Reader for Multi-hop Question Answering
作者: Weijun Lei et al. (南京大学)
Abstract:
多跳问答是一个具有挑战性的任务,需要QA系统在多个文档上进行复杂推理并提供支持性事实和准确答案。现有方法倾向于使用基于图的推理和问题分解来获取推理链,但这不可避免地引入了额外的复杂性和累积误差。
为了解决上述问题,我们提出了一个简单而有效的新框架——From Easy to Hard (FE2H),该框架通过移除干扰信息来获得更好的多跳QA任务上下文表示。
FE2H的核心理念:
- 借鉴人类迭代文档选择过程和渐进式学习习惯
- 将文档选择器和阅读器分为两个阶段,遵循从易到难的方式
具体来说:
- 文档筛选阶段:首先选择与问题最相关的文档,然后利用该文档进一步选择其他相关文档
- 问答阶段:阅读器首先在单跳QA数据集上训练,然后迁移到多跳QA任务
我们在流行的多跳QA基准测试HotpotQA上进行了全面评估,实验结果表明,我们的方法在HotpotQA排行榜(distractor设置)上优于所有其他方法。
论文链接: arXiv:2205.11729
代码链接: GitHub: hotpotqa_mrc
HotpotQA排行榜: https://hotpotqa.github.io/
3. 核心创新点
3.1 创新点一:两阶段文档筛选器
3.1.1 传统方法的痛点
在多跳问答任务中,每个问题通常配有10个干扰文档(distractors)。传统方法通常:
- 直接全局推理:将所有文档一起输入模型
- 一次性选择:一次性选出所有相关文档
这会导致:
- 无关信息带来的噪声干扰
- 推理复杂度呈指数级增长
- 错误在多跳推理过程中累积
3.1.2 FE2H 的解决方案:渐进式筛选
flowchart TD
subgraph Traditional
T1[Q + 10 docs] --> T2[Select all at once]
T2 --> T3[Multi-hop reasoning]
end
subgraph FE2H
F1[Q + 10 docs] --> F2[Stage 1: Select relevant doc]
F2 --> F3[Combine Q + doc1]
F3 --> F4[Stage 2: Select 2nd hop]
F4 --> F5[Reason on filtered docs]
end
style F2 fill:#bfb,color:#333
style F4 fill:#bfb,color:#333
核心思想:借鉴人类的迭代阅读习惯,先找到"入口文档",再基于它找到后续相关文档。
3.1.3 为什么这样更有效?
| 特性 | 传统方法 | FE2H两阶段 |
|---|---|---|
| 信息利用 | 全局搜索 | 聚焦式检索 |
| 噪声引入 | 高(10个文档全量) | 低(逐阶段筛选) |
| 推理难度 | O(n²) | O(n) |
| 错误累积 | 多跳同时推理 | 分步验证 |
3.2 创新点二:从易到难的渐进式学习
3.2.1 核心灵感
人类在学习复杂任务时,天然地采用"从易到难"的方式:
flowchart LR
subgraph Human Learning
H1[Learn to speak] --> H2[Learn to read] --> H3[Learn comprehension] --> H4[Learn to write]
end
subgraph FE2H Training
E1[Single-hop QA] --> E2[Simple reasoning] --> E3[Multi-hop QA]
end
style E1 fill:#bbf,color:#333
style E3 fill:#f9f,color:#333
3.2.2 渐进式训练策略
flowchart TD
subgraph Stage 1: Single-hop Pre-training
P1[Train on SQuAD]
P1 --> P2[Learn basic reading comprehension]
P2 --> P3[Understand question intent]
P3 --> P4[Locate answer boundaries]
end
subgraph Stage 2: Multi-hop Transfer
P4 --> M1[Transfer to HotpotQA]
M1 --> M2[Two-stage document selection]
M2 --> M3[Multi-hop reasoning]
end
style P1 fill:#bbf,color:#333
style M1 fill:#f9f,color:#333
3.2.3 为什么单跳数据很重要?
- 数据规模大:单跳问答数据集(如SQuAD)规模远大于多跳数据集
- 噪声少:单跳文档通常直接包含答案,干扰较少
- 学习基础能力:
- 问题理解
- 实体识别
- 答案定位
- 上下文推理
3.3 创新点三:简洁有效的框架设计
3.3.1 拒绝复杂,拥抱简单
| 特性 | 主流方法 | FE2H |
|---|---|---|
| 图结构 | 需要构建实体关系图 | 无需图结构 |
| 问题分解 | 需要显式分解问题 | 无需分解 |
| 预训练模型 | 复杂的多任务学习 | 简单的两阶段训练 |
| 推理复杂度 | O(n²) 甚至更高 | O(n) |
3.3.2 框架对比
flowchart TD
subgraph Traditional (Graph-based)
G1[Build knowledge graph] --> G2[Entity linking]
G2 --> G3[GNN reasoning]
G3 --> G4[Multi-hop aggregation]
end
subgraph FE2H (Selection + Reader)
F1[Document selection] --> F2[Single-hop pretrain]
F2 --> F3[Multi-hop fine-tune]
F3 --> F4[Answer generation]
end
style G1 fill:#fbb,color:#333
style F1 fill:#bfb,color:#333
3.3.3 消融实验结果
论文中的消融实验证明了各组件的有效性:
| 模型变体 | Joint F1 | 提升 |
|---|---|---|
| 基础模型 | 74.2 | - |
| + 第一阶段筛选 | 75.8 | +1.6 |
| + 第二阶段筛选 | 76.1 | +0.3 |
| + 渐进式学习 | 76.5 | +0.4 |
4. FE2H框架详解
4.1 整体架构
flowchart TD
Q[Question] --> DS1[Stage 1 Doc Selector]
subgraph Document Selection Stage
DS1 -->|Select relevant doc| D1[Relevant Doc 1]
DS1 -->|Combine Q + Doc1| DS2[Stage 2 Doc Selector]
DS2 -->|Select 2nd hop doc| D2[Relevant Doc 2]
end
subgraph QA Stage
D1 --> Reader[Two-stage Reader]
D2 --> Reader
Reader -->|Single-hop mode| Output1[Answer + Support]
Reader -->|Multi-hop mode| Output2[Final Answer]
end
style DS1 fill:#f9f,color:#333
style DS2 fill:#f9f,color:#333
style Reader fill:#ff9,color:#333
4.2 两阶段文档选择器
第一阶段:
- 输入:问题 + 所有候选文档
- 输出:选择最相关的文档(top-k)
第二阶段:
- 输入:问题 + 第一阶段选中的文档
- 输出:进一步筛选出与推理链相关的其他文档
4.3 两阶段阅读器
第一阶段(单跳模式):
- 在单跳问答数据集(如SQuAD)上进行预训练
- 学习基础的问答能力
第二阶段(多跳模式):
- 迁移到多跳问答任务
- 利用第一阶段学到的知识进行更复杂的推理
5. 与大模型Chain-of-Thought的联系与区别
5.1 Chain-of-Thought (CoT) 简介
Chain-of-Thought(思维链)是近年来大语言模型(如GPT-4、PaLM)的重要推理范式。其核心思想是:
flowchart LR
Q1[Question] --> CoT1[Step-by-step reasoning
Step 1: ...
Step 2: ...
Step 3: ...]
CoT1 --> A1[Final Answer]
style Q1 fill:#f9f,color:#333
style CoT1 fill:#ff9,color:#333
style A1 fill:#bfb,color:#333
CoT的优势:
- 显式展示推理过程
- 提高模型的可解释性
- 在数学、逻辑推理任务上效果显著
5.2 FE2H vs Chain-of-Thought
| 特性 | FE2H | Chain-of-Thought |
|---|---|---|
| 推理方式 | 显式的文档筛选+阅读 | 隐式的思维链 |
| 信息利用 | 筛选相关文档,减少干扰 | 使用全部上下文 |
| 可解释性 | 高(清晰的文档选择过程) | 中(推理步骤可见) |
| 计算成本 | 较低(筛选减少输入) | 较高(完整上下文) |
| 适用场景 | 结构化文档检索 | 开放域推理 |
5.3 两者的联系
渐进式推理:两者都采用"逐步推理"的思想
- FE2H:从简单文档到复杂文档,从单跳到多跳
- CoT:从简单推理步骤到复杂推理步骤
中间结果:都依赖中间结果来增强最终答案
- FE2H:筛选出的相关文档
- CoT:推理过程中的中间结论
减少幻觉:通过结构化信息减少模型编造答案的风险
5.4 未来结合方向
flowchart TD
Q[Question] --> Selector[Doc Selector]
Selector -->|Filter relevant docs| Context[Filtered Context]
Context --> CoT[Chain-of-Thought]
CoT -->|Verify intermediate steps| Selector
CoT --> Answer[Final Answer]
style Q fill:#f9f,color:#333
style Selector fill:#bbf,color:#333
style CoT fill:#ff9,color:#333
style Answer fill:#bfb,color:#333
可能的结合方向:
- 用CoT来解释为什么选择某些文档
- 用文档筛选结果来约束CoT的推理空间
- 迭代式:筛选 → 推理 → 验证 → 再筛选
6. 实验结果
在HotpotQA数据集(distractor设置)上的表现:
| 模型 | Answer EM | Answer F1 | Support EM | Support F1 | Joint EM | Joint F1 |
|---|---|---|---|---|---|---|
| FE2H (ALBERT) | 71.89 | 84.44 | 64.98 | 89.14 | 50.04 | 76.54 |
| R3 | 71.27 | 83.57 | 65.25 | 88.98 | 49.81 | 76.02 |
| SAE+ | 70.74 | 83.61 | 63.70 | 88.95 | 48.15 | 75.72 |
FE2H在排行榜上取得了Joint F1 76.54的成绩,位列第一。
7. 总结
FE2H的核心贡献:
- 两阶段文档筛选:通过渐进式筛选有效减少干扰信息,提高信息利用率
- 从易到难的学习范式:先在简单任务上学习,再迁移到复杂任务
- 简洁有效:不依赖复杂的图结构或问题分解,方法简单但效果显著
这种方法为多跳问答提供了一种新的思路,同时也为大型语言模型的推理能力增强提供了参考。