引言
像 GPT-4 和 Llama 这样的大语言模型 (LLMs) 已经彻底改变了我们与信息交互的方式。它们可以写诗、编写网站代码,并回答各种各样的问题。然而,尽管它们才华横溢,却有一个臭名昭著的缺陷: “幻觉”。当 LLM 不知道某个具体事实——或者当该事实晦涩难懂、过时的时候——它往往会极其自信地编造内容。
为了解决这个问题,研究人员依赖于检索增强生成 (Retrieval-Augmented Generation, RAG) 。 这个想法很简单: 在 LLM 回答问题之前,我们从外部来源 (如数据库或文档) 检索相关数据,并将其作为上下文提供给 LLM。
知识图谱 (Knowledge Graph, KG) 是这种外部数据最结构化和最可靠的来源之一。KG 以三元组 (主体,关系,客体) 的形式存储事实,例如 (Larry Page, founder, Google)。但问题在于: LLM 是基于自然语言文本训练的,而不是基于结构化的图数据。
我们如何弥合结构化知识图谱与基于文本的 LLM 之间的鸿沟?
最朴素的方法是将原始数据直接丢进提示词 (prompt) 中。然而,最近的研究表明,这往往会让模型不堪重负,或者丢失复杂推理所需的语义细微差别。
在这篇文章中,我们将深入探讨一篇名为 “CoTKR: Chain-of-Thought Enhanced Knowledge Rewriting for Complex Knowledge Graph Question Answering” (CoTKR: 面向复杂知识图谱问答的增强型思维链知识重写) 的论文。这项研究提出了一个引人入胜的解决方案: 我们不只是检索数据,而是使用一个专门的“重写器”模型来逐步思考,提取并将图数据翻译成回答模型真正可以使用的连贯叙述。
我们将探讨这种名为 CoTKR 的方法如何利用思维链 (Chain-of-Thought) 推理来重写知识,以及一种名为 PAQAF 的新颖训练策略如何将这一重写过程与获得正确答案的最终目标对齐。
背景: 知识重写的瓶颈
在剖析新方法之前,我们需要了解知识图谱问答 (KGQA) 的现状。
当你问一个复杂的问题,比如 “谷歌的创始人去哪里上的大学?” 时,一个 KGQA 系统通常执行两个步骤:
- 检索: 它搜索知识图谱以找到一个“子图”——即与“谷歌”、“创始人”和“大学”相关的实体和关系的集合。
- 回答: 它将这个子图提供给 LLM 以生成最终答案。
关键瓶颈在于 知识重写 (Knowledge Rewriting, KR) 。 这是将检索到的子图转换为 LLM 可以处理的文本格式的过程。

如 图 1 所示,目前有三种标准方法,每种方法都有明显的缺陷:
- 简单线性拼接 (Triple) : 这种方法获取原始数据
(Larry Page, attend, Stanford)并直接将其提供给 LLM。
- *问题: * 它缺乏语义连贯性。这只是一堆数据点。对于复杂的查询,这种非结构化的“数据堆砌”迫使 LLM 进行过多的处理,通常导致错误。
- KG 转文本 (KG-to-Text) : 这使用一个模型将每个三元组变成一个完整的句子。
- *问题: * 它非常冗长。如图所示,它生成了一大段文字,包含了与用户关于大学的问题无关的冗余信息 (例如“谷歌总部位于山景城……”) 。
- 摘要 (Summary) : 这试图将子图总结成一个与问题相关的段落。
- 问题: * 虽然比较好,但单步摘要往往会丢失回答所需的逻辑*。它可能会提到 Larry Page,但因为试图过快地压缩太多信息而意外遗漏 Sergey Brin。
CoTKR 的作者指出,这些方法失败的原因在于它们是静态的。它们没有对实际需要什么信息进行推理 。 它们只是转换数据。
解决方案: 增强型思维链知识重写 (CoTKR)
为了解决“单步”重写的局限性,研究人员提出了 CoTKR 。 这里的核心理念是,重写知识不应该是一次性的任务,而应该是一个推理和提取的迭代过程。
受 ReAct (推理与行动) 范式的启发,CoTKR 将知识重写视为“思考”与“行动”之间的对话。
交替过程
CoTKR 不是一次性转换整个图,而是在两个特定操作之间交替进行:
- 推理 (Reasoning) : 模型查看问题和图谱,思考: “接下来我需要寻找什么具体信息?”
- 摘要 (Summarization) : 基于该推理,模型从图谱中提取具体的相关事实并写下来。

让我们看看 图 2 。 用户问: “谷歌的创始人去哪里上的大学?”
一个标准模型可能会吐出关于谷歌的所有事实。然而,CoTKR 生成了一个 思维链 (CoT) :
- 步骤 1 推理: “我需要知道谷歌的创始人是谁。”
- 步骤 1 知识: “谷歌的创始人是 Sergey Brin 和 Larry Page。”
- 步骤 2 推理: “我需要知道 Sergey Brin 和 Larry Page 去哪里上的大学。”
- 步骤 2 知识: “Sergey Brin 就读于马里兰大学……Larry Page 就读于密歇根大学和斯坦福大学。”
通过分解问题,生成的文本结构清晰、合乎逻辑,并且准确包含回答问题所需的证据——不多也不少。
迭代的数学原理
我们可以将此过程形式化。设 \(X_{t-1}\) 代表迄今为止生成的推理和知识的历史记录。

在任意步骤 \(t\),重写器模型 (\(R\)) 首先查看问题 (\(q\)) 、检索到的子图 (\(G'\)) 和历史记录 (\(X_{t-1}\)) 以生成推理轨迹 (\(x_{t,r}\)) :

接下来,利用该特定推理轨迹作为指导,模型提取知识摘要 (\(x_{t,k}\)) :

这个循环重复进行,直到模型确定它拥有足够的信息。最终输出是一个连贯的叙述,引导下游的 QA 模型得出正确答案。
训练策略: PAQAF
这篇论文最具创新性的方面之一不仅在于模型如何工作,还在于它是如何训练的。
如果你想训练一个模型来重写知识图谱,你如何定义“成功”?如果摘要在语法上正确,它就算成功吗?不一定。 只有当摘要帮助 QA 模型得到正确答案时,它才是成功的。
研究人员引入了 PAQAF: 基于问答反馈的偏好对齐 (Preference Alignment from Question Answering Feedback) 。 该策略将重写器的输出与 QA 模型的需求对齐。

如 图 3 所示,训练过程分为两个阶段。
第一阶段: 有监督微调 (SFT)
最初,模型需要学习重写的基本机制。研究人员使用 ChatGPT 生成推理和摘要的“黄金标准”示例。然后,他们使用标准的有监督微调损失训练一个较小的开源模型 (如 Llama-2) 来模仿这些示例:

这教会了模型如何重写,但并没有教会它针对难题的最佳重写是什么样的。
第二阶段: 通过反馈进行对齐
这正是 PAQAF 大放异彩的地方。其目标是弥合重写器与 QA 模型之间的“偏好鸿沟”。
- 采样: 系统针对同一问题生成多个不同的重写版本 (候选表示) 。
- 测试: 每个重写版本都被输入到 QA 模型中。
- 反馈:
- 如果重写版本 A 导致了正确的答案,它被标记为“偏好” (\(k^+\)) 。
- 如果重写版本 B 导致了错误的答案,它被标记为“非偏好” (\(k^-\)) 。
- 优化: 然后使用 直接偏好优化 (DPO) 更新模型。
DPO 损失函数有效地增加了生成有帮助的重写版本 (\(k^{++}\)) 的概率,并降低了生成无帮助版本 (\(k^{-}\)) 的概率:

其中 \(r(x, k)\) 代表新策略与参考模型之间的概率比率:

通过针对 QA 模型的成功而不是仅仅针对语言质量进行优化,CoTKR 确保生成的文本在实践中是有用的。
实验与结果
为了验证他们的方法,研究人员在两个主要的基准测试集上将 CoTKR 与基准方法 (Triple, KG-to-Text, 和 Summary) 进行了对比测试: GrailQA 和 GraphQuestions 。
他们使用三个指标来评估性能:
- 准确率 (Acc) : 回答中是否包含至少一个正确答案实体?
- 召回率 (Recall) : 找到了多少比例的正确答案实体?
- 精确匹配 (EM) : 回答是否包含所有正确答案实体?
整体表现
结果令人信服。下方的 表 1 突出了不同设置下的表现。

数据中的关键要点:
- CoTKR 的主导地位: 无论是在重写器 (Llama-2, Llama-3, ChatGPT) 还是 QA 模型 (ChatGPT, Mistral) 的组合中, CoTKR+PA (偏好对齐) 几乎都取得了最高分。
- “Triple”方法的迷思: RAG 研究中一个普遍的观念是 LLM 处理原始三元组比处理文本更好。然而,数据显示 Triple 通常优于简单的文本转换( KG-to-Text ),但始终不敌 CoTKR 。 这证明自然语言确实对 LLM 更好,前提是它经过了正确的结构化和推理。
- 对齐的影响: 从 CoTKR 到 CoTKR+PA 的提升是显著的,证实了基于 QA 反馈来训练重写器是至关重要的。
跨检索方法的鲁棒性
一个好的重写方法应该无论数据是如何找到的都能起作用。研究人员使用三种不同的检索策略测试了 CoTKR:
- 2-Hop: 检索图谱中 2 跳范围内的邻居的标准方法。
- BM25: 基于关键词的检索。
- GS (Ground Truth Subgraph) : 检索完美时的理想场景。

图 4 显示了结果。无论检索质量是低 (2-Hop) 还是完美 (GS) ,CoTKR 始终将准确率上限推得比基准方法更高。
CoTKR 赢在哪里?
研究人员进行了对比分析,以确切了解 CoTKR 在哪些方面比“Triple”方法有所改进。

图 5 显示了代表正确性变化的饼图。 绿色部分代表 Triple 方法失败但 CoTKR 成功的问题 (“错误 -> 正确”) 。CoTKR 的部分相当可观,表明它可以挽救那些原始数据堆砌无法解决的难题。
一个具体的例子
为了真正体会其中的差异,让我们看看研究中的一个具体例子 (表 8) 。
问题: “拥有伏特每米电场强度单位的测量系统,其面积单位是什么?”
这是一个需要跨越多个事实的复杂问题。

- Triple: 倾倒关于单位的原始数据。QA 模型简单地回答“平方米”。
- Summary: 被数据量搞混了,未能将“伏特每米”的要求与“面积”的要求联系起来,导致回答模糊。
- CoTKR:
- *推理: * “我需要找到具有……伏特每米的测量系统。”
- *知识: * 找到国际单位制。
- *推理: * “我需要识别该系统内的面积单位。”
- *知识: * 找到平方千米和平方米。
由于 CoTKR 分解了问题,QA 模型正确地识别了“平方千米”和“平方米”。
结论与启示
CoTKR 论文在检索增强生成方面迈出了重要的一步。它解决了知识图谱 QA 中的一个根本脱节问题: 结构化数据存储与非结构化 LLM 推理之间的不匹配。
通过在重写阶段实施 思维链 过程,该系统的作用不再仅仅是一个简单的翻译器,而更像是一个调查员,一步步地收集证据。此外, PAQAF 训练策略引入了一个反馈循环,确保这个调查员对最终的决策者 (QA 模型) 确实有帮助。
关键要点:
- 交替推理为王: 在“思考”和“检索”之间交替进行可以减少噪音并提高注意力。
- 反馈循环很重要: 基于下游任务 (QA) 的成功来训练模块,比孤立地训练它更有效。
- 自然语言 > 原始数据: 与某些观念相反,LLM 更喜欢结构良好的自然语言,而不是原始的图谱三元组,前提是这些语言是通过稳健的推理生成的。
随着我们迈向更复杂的 AI 系统,像 CoTKR 这样的方法表明,我们提供给模型的“上下文”质量与模型本身一样重要。未来的工作可能会看到这些技术被应用到知识图谱之外,优化 LLM 如何消费表格、长文档和代码库。
](https://deep-paper.org/en/paper/2409.19753/images/cover.png)