Complex Reasoning with Natural Language Contexts and Background Knowledge¶
会议: ACL 2025
arXiv: N/A
代码: 无
领域: LLM推理
关键词: 复杂推理, 自然语言上下文, 背景知识, 知识增强推理, 常识推理
一句话总结¶
本文提出一种将自然语言上下文与结构化背景知识相结合的复杂推理框架,通过知识图谱检索增强和上下文感知的推理链生成,显著提升LLM在需要外部知识支撑的多步推理任务上的表现。
研究背景与动机¶
领域现状:LLM在简单推理任务上已表现出色,但在需要结合外部背景知识进行多步推理的复杂场景中仍然困难重重。现有方法主要包括:(1)CoT提示直接激发模型内在知识;(2)RAG检索外部文档提供辅助信息;(3)知识图谱辅助推理提供结构化知识。然而这些方法各有局限。
现有痛点:CoT推理仅依赖模型内在知识,面对冷门领域或最新信息时容易幻觉。RAG检索到的文档是非结构化的,难以支撑需要多跳推理的复杂问题。知识图谱虽然结构化,但覆盖范围有限且与自然语言查询之间存在语义鸿沟。更重要的是,现有方法都忽略了上下文(context)的重要性——同一个问题在不同上下文下需要不同的背景知识和推理路径。
核心矛盾:复杂推理同时需要理解自然语言上下文、检索相关背景知识并进行多步逻辑推演,但现有方法只能处理其中一两个环节。
本文目标:设计一个端到端的推理框架,能够(1)理解问题的上下文语境);(2)动态检索所需的背景知识;(3)在知识的引导下生成多步推理链。
切入角度:作者观察到人类在进行复杂推理时会先理解问题情境,然后调动相关背景知识,最后逐步推导出结论。本文模拟这一认知过程,设计了"理解-检索-推理"的三阶段框架。
核心 idea:通过上下文感知的知识检索(Context-Aware Knowledge Retrieval)动态选择与当前推理步骤最相关的背景知识,并用知识条件化的推理链生成(Knowledge-Conditioned Chain-of-Thought)确保每一步推理都有知识事实支撑。
方法详解¶
整体框架¶
给定一个问题 \(Q\) 和自然语言上下文 \(C\),系统首先解析上下文提取关键实体和关系,然后在知识图谱和文本知识库中检索相关的背景知识片段 \(\{k_1, k_2, ..., k_n\}\),最后将上下文和检索到的知识一起喂给LLM,引导其生成有根据的推理链并给出最终答案。
关键设计¶
-
上下文感知的知识检索:
- 功能:根据问题的上下文语境动态检索最相关的背景知识
- 核心思路:分两个阶段进行检索。第一阶段是实体链接——从上下文和问题中识别关键实体,链接到知识图谱节点。第二阶段是子图扩展——以链接到的节点为中心,在知识图谱中扩展\(k\)跳邻居,形成候选知识子图。然后使用上下文编码器对候选知识进行相关性打分,选择top-\(m\)条最相关的知识三元组。上下文编码器使用对比学习训练,正样本是推理过程中实际使用的知识,负样本是图谱中的随机知识
- 设计动机:静态检索无法捕捉上下文对知识需求的影响——同一个实体在不同上下文下需要的背景知识完全不同。如问"李白",文学上下文需要诗歌知识,历史上下文需要生平知识
-
知识条件化推理链生成:
- 功能:在检索到的背景知识引导下生成有根据的多步推理链
- 核心思路:在标准CoT提示的基础上,每一步推理都要求模型:(a)从检索知识中选择当前步骤依赖的知识条目;(b)基于选择的知识生成当前推理步骤;(c)判断是否需要额外知识进行下一步推理。如果需要,触发新一轮检索。这形成了一个检索-推理的迭代循环。使用特殊格式标记
[Knowledge: ...]和[Reasoning: ...]来结构化输出,便于追踪知识使用情况 - 设计动机:传统CoT不提供知识来源,读者无法验证推理的正确性。知识条件化让每步推理都有据可查,增强了可解释性和可验证性
-
推理一致性验证:
- 功能:检验生成的推理链是否与背景知识逻辑一致
- 核心思路:设计一个轻量级验证模块,对推理链中的每一步检查两个条件:(a)引用的知识是否真实存在于知识库中(防止幻觉知识);(b)从引用的知识到推理结论的逻辑推导是否有效(使用NLI模型判断蕴含关系)。如果验证失败,则回退到上一步重新推理,最多允许3次回退。这种自我纠错机制可以在推理过程中捕获错误而非等到最终答案
- 设计动机:LLM容易在推理中引入错误积累,早期检测和纠正错误比事后验证更有效
损失函数 / 训练策略¶
上下文编码器使用InfoNCE对比损失训练,拉近上下文-相关知识对、推远上下文-无关知识对。NLI验证模块使用标准的SNLI/MNLI数据微调。主体LLM使用少量推理+知识标注的数据进行指令微调,学习输出结构化的知识引用格式。
实验关键数据¶
主实验¶
| 数据集 | 指标 | 本文方法 | CoT (GPT-4) | RAG+CoT | KG-CoT | 提升 |
|---|---|---|---|---|---|---|
| StrategyQA | Acc | 82.3 | 74.5 | 77.8 | 79.1 | +3.2 |
| OpenBookQA | Acc | 86.7 | 78.2 | 82.4 | 83.5 | +3.2 |
| ARC-Challenge | Acc | 89.5 | 83.6 | 86.2 | 87.1 | +2.4 |
| CommonsenseQA | Acc | 84.1 | 79.3 | 81.5 | 82.3 | +1.8 |
| MedQA | Acc | 71.8 | 62.4 | 68.3 | 66.5 | +3.5 |
消融实验¶
| 配置 | StrategyQA | OpenBookQA | 说明 |
|---|---|---|---|
| Full model | 82.3 | 86.7 | 完整系统 |
| w/o 上下文感知检索 | 79.1 | 83.5 | 退化为静态KG检索 |
| w/o 知识条件化 | 77.8 | 82.4 | 退化为RAG+CoT |
| w/o 一致性验证 | 80.5 | 84.8 | 无自我纠错 |
| w/o 迭代检索 | 80.9 | 85.1 | 仅一轮检索 |
关键发现¶
- 上下文感知检索贡献最大(+3.2),说明选择正确的背景知识比推理方法本身更重要
- 一致性验证平均纠正了8.3%的推理错误,在医学问答(MedQA)等需要精确推理的领域效果最显著
- 迭代检索主要在多跳推理问题上有优势,单跳问题上第一轮检索已足够
- 该方法在需要外部知识的任务上优势明显,但在测试模型内在推理能力的任务(如GSM8K数学推理)上没有显著提升
亮点与洞察¶
- "理解-检索-推理"的三阶段框架模拟了人类的认知过程,设计理念自然且有效。与单纯的RAG不同,本文在推理过程中动态触发检索,更贴合实际推理需求
- 一致性验证模块为推理过程提供了实时的质量保障,将"生成后验证"变为"生成中验证"的思路可以广泛应用于其他推理系统
- 知识引用的结构化输出格式增强了可解释性,用户可以追踪每步推理的知识来源
局限与展望¶
- 系统依赖知识图谱的覆盖率,小型KG可能无法提供足够的背景知识
- 实体链接的准确率直接影响后续检索质量,歧义实体可能导致错误检索
- 多轮迭代检索增加了推理延迟,在实时应用场景中可能不可接受
- 验证模块使用NLI模型判断逻辑一致性,但NLI本身在复杂推理上并不完美
相关工作与启发¶
- vs IRCoT (Interleaving Retrieval with CoT): IRCoT也在推理过程中交替检索,但使用非结构化文档而非知识图谱,本文利用KG的结构化信息可以更精确地定位所需知识
- vs KAPING: KAPING将KG三元组转化为自然语言作为提示的一部分,本文更进一步实现了动态检索和一致性验证
- vs Self-RAG: Self-RAG通过反射令牌决定何时检索,本文的上下文感知检索和一致性验证提供了更精细的检索控制和质量保障
评分¶
- 新颖性: ⭐⭐⭐⭐ 上下文感知检索和知识条件化推理的结合有新意,一致性验证增加了可靠性
- 实验充分度: ⭐⭐⭐⭐ 涵盖多个推理基准和详细消融
- 写作质量: ⭐⭐⭐⭐ 框架描述清晰,每个组件的动机交代充分
- 价值: ⭐⭐⭐⭐ 对知识密集型推理任务有实际应用价值
相关论文¶
- [ACL 2025] Commonsense Abductive Reasoning using Knowledge from Multiple Sources
- [ACL 2025] LogicPro: Improving Complex Logical Reasoning via Program-Guided Learning
- [ICML 2025] FMC: Formalization of Natural Language Mathematical Competition Problems
- [NeurIPS 2025] SQL-R1: Training Natural Language to SQL Reasoning Model By Reinforcement Learning
- [ACL 2025] Chain-of-Reasoning: Towards Unified Mathematical Reasoning in Large Language Models