弥合信任鸿沟: 粗粒度分解如何改善 AI 引用

在生成式 AI 飞速发展的今天,信任成为了新的货币。虽然我们惊叹于 GPT-4 或 Claude 等大型语言模型 (LLM) 的流畅表达,但一个挥之不去的阴影始终笼罩着它们的输出: 幻觉 (Hallucinations) 。 当 AI 基于长文档回答复杂问题时,我们如何知道它不是在胡编乱造?

行业标准的解决方案是归因 (Attribution) ——即引用来源。就像学生写论文一样,AI 应该指出源文档中支持其主张的确切句子。然而,说起来容易做起来难,尤其是当 AI 生成了一个综合了多个事实的长而复杂的答案时。

今天,我们将深入探讨一篇引人入胜的研究论文,题为 “Enhancing Post-Hoc Attributions in Long Document Comprehension via Coarse Grained Answer Decomposition” (通过粗粒度答案分解增强长文档理解中的事后归因) ,作者来自 Adobe Research。这篇论文解决了一个具体且棘手的问题: 粒度 (Granularity) 。 当 AI 生成一个复杂的句子时,我们该如何将其拆解以找到正确的证据?如果拆解得太细,我们会失去上下文;如果拆解得不够,我们就无法找到具体的证据。

研究人员提出了一种名为 粗粒度答案分解 (Coarse Grained Answer Decomposition, CoG) 的新方法,该方法利用用户问题的上下文,智能地将答案拆分为可验证的“信息单元”。

让我们来揭开它的工作原理,了解它为何重要,以及它是如何超越现有方法的。


1. 问题所在: “事后”归因的挑战

首先,让我们设定一下背景。我们要处理的是 事后归因 (Post-Hoc Attribution)

想象一下你有一个问答 (QA) 系统。你给它一份 50 页的 PDF 并问一个问题。系统生成了一个答案。事后归因 是指在答案生成 之后 发生的过程。它就像一个事实核查员,回顾答案和原始 PDF,以验证 PDF 中的哪些句子支持答案中的具体主张。

粒度困境

作者解决的核心挑战是 到底应该对什么进行归因?

  • 场景 A (太宽泛) : 如果 AI 生成了一个段落,仅仅指向源文档中的整整一页是没有帮助的。
  • 场景 B (太具体) : 如果我们试图验证每一个名词和动词 (细粒度) ,我们可能会找到“猫”这个词的证据,但无法证明这只猫实际上“坐在垫子上”。
  • 场景 C (复杂性陷阱) : 答案通常很复杂。考虑这句话: *“To paint cast iron, you should first coat it with oil-based primer to create a smooth surface.” (要给铸铁上漆,你应该先涂上一层油基底漆,以形成光滑的表面。) *

这短短一句话包含两个不同的事实:

  1. 你必须使用油基底漆。
  2. 底漆会形成光滑的表面。

在源文档中找到能同时证明这 两点 的单个句子可能是不可能的。源文档可能在第 1 页提到底漆,而在第 2 页提到平滑效果。

现有的方法通常将答案视为单一的块,或者将其分解为不考虑问题上下文的“原子事实”。这导致了 归因不足 (遗漏引用) 或 过度归因 (引用了不相关的文本) 。


2. 解决方案: 粗粒度答案分解 (CoG)

研究人员引入了一个旨在解决粒度问题的流程。其核心思想简单而强大: 不仅仅是分解答案;而是要 基于问题 进行分解。

流程

如下图所示,该过程涉及将生成的答案通过“CoG 分解”步骤,然后再尝试寻找证据。

Figure 2: Pipeline for attribution: Answers are decomposed and sent to the atributor for identifying evidences.

该流程主要有两个阶段:

  1. 分解: 将复杂的答案拆分为更小的“信息单元” (Information Units, IUs) 。
  2. 归因: 使用检索器 (Retriever) 或 LLM 为这些特定单元寻找证据。

为什么要“粗粒度”?

以往最先进的方法 (如 FActScore )专注于“原子事实”——即尽可能小的信息片段。虽然严谨,但原子事实往往剥离了将观点联系在一起的语义粘合剂。

Adobe 的研究人员提出了 粗粒度 (CoG) 分解。他们想要的“块”具有以下特征:

  • 相关性: 它们实际上与用户的问题有关。
  • 有意义: 它们本身可以作为独立的陈述。
  • 上下文相关: 它们与问题相互指代。

问题的角色

这是这篇论文的“秘诀”。大多数分解方法只看 答案。CoG 则同时看 问题 + 答案

如果问题是 *“How do I paint cast iron?” (我该如何给铸铁上漆?) *,分解模型就会知道要关注 步骤材料。如果答案包含像“这是一个很好的问题,这是我发现的内容……”这样的废话,CoG 知道要忽略它,因为它与问题无关。

下面是论文中使用的可验证性数据集的一个例子。注意红色的文字。系统需要足够聪明,不去 尝试为那些礼貌性的对话填充词进行归因。

Figure 1: An example from Verifiability dataset. The input to the post-hoc attribution system is the question, document and answer. The output is evidence sentences from the document. Text marked in red do not require attribution.

负采样: 教 AI 不要 做什么

为了让 LLM 正确分解答案,研究人员使用了带有一点变化的 上下文学习 (In-Context Learning, ICL) 。 通常,提示词 (Prompt) 会提供“好”输出的例子。作者发现 LLM 在处理否定 (即像“不要做 X”这样的指令) 时很吃力。

与其只是告诉模型“不要创建重复的事实”,他们在提示词中提供了 坏信息单元 的例子 (负采样) 。

  • 好单元: “The music video was filmed at Oheka Castle.” (音乐录影带是在 Oheka 城堡拍摄的。)
  • 坏单元 (冗余) : “The song is ‘For You’.” (这首歌是《For You》。) ——如果答案已经是关于歌曲《For You》的,再次陈述这个事实就是无用的噪音。

3. 方法论: 深度剖析

让我们看看使这个系统工作的具体组件。

3.1 基于规则的分类器

使用强大的 LLM 分解每一个句子既昂贵又缓慢。作者意识到简单的句子不需要被拆分。

例如: *“Alex is an engineer.” (Alex 是个工程师。) * 这是一个单一的分句。分解它是在浪费时间。

为了解决这个问题,他们实施了一个基于语言规则 (词性标注) 的 分类器

Equation determining if a sentence is simple.

别被这些符号吓跑了。翻译过来就是:

  • \(S\) : 句子中的标签集合。
  • \(N, P, V, A\) : 名词、代词、动词、冠词。
  • 逻辑检查该句子是否本质上只是名词/代词/冠词的组合,且 至多有一个动词 (\(|S| - 1\))。

如果一个句子符合这些标准 (一个简单的独立分句) ,它就会跳过分解步骤,直接进入归因器。这个简单的过滤器在不牺牲准确性的情况下提高了效率。

3.2 归因器

一旦答案被分解为信息单元 (IUs) ,系统就需要寻找证据。论文探索了两种方法:

  1. 检索器 (Retrievers) : 传统的搜索算法 (如 BM25) 或密集检索器 (如 GTR, MonoT5) 。它们根据文档中的句子与 IU 的匹配程度进行排名。
  2. LLM: 要求像 GPT-4 或 LLaMA-2 这样的模型查看文档并选择证据。

3.3 贪婪合并

当使用检索器时,我们可能会为答案的不同部分得到多个“命中”。研究人员开发了一种 贪婪合并算法 (Greedy Merging Algorithm) 来整理这些结果。

Algorithm 1 Merging of Evidences for Answer Part

该算法确保对于答案中的每条信息,我们都能抓取到得分最高的证据句子。如果多个信息单元指向同一个证据,我们不会列出两次。目标是得到一份干净、排序好的证据列表,覆盖整个答案且没有冗余。


4. 实验与结果

研究人员在两个数据集上测试了他们的方法:

  1. 引文可验证性数据集 (Citation Verifiability Dataset) : 来自搜索引擎 (Bing/Google) 的问题,答案带有行内引文。
  2. QASPER: 基于 NLP 研究论文的问题数据集,需要深厚的技术理解。

他们比较了三种场景:

  • NIL: 无分解 (使用完整的答案句子作为查询) 。
  • FActScore: 细粒度原子事实分解 (之前的基线方法) 。
  • CoG: 提出的粗粒度、问题感知分解。

结果 1: 检索器配合 CoG 表现更好

下表 1 显示了使用标准检索方法 (BM25, GTR, MonoT5) 时的性能。

Table 1: Retrieval based attributor results

关键要点: 看一看 精确率 (P)F1 分数。在所有指标上,CoG 都优于 FActScore。

  • 在 *可验证性 (Verifiability) * 数据集上, CoG+MonoT5 达到了 0.62 的 F1 分数,而 FActScore 只有 0.55。
  • 有趣的是, NIL (无分解) 在 QASPER 上表现相当不错。作者指出,QASPER 通常包含抽取式答案 (从论文中复制粘贴) ,所以拆分它们的帮助没那么大。然而,对于摘要式/生成式答案 (可验证性数据集) ,分解是至关重要的。

结果 2: LLM 成为最先进的归因器

当使用 LLM (如 GPT-4) 来寻找证据时,结果变得更加有趣。

Table 2: LLM based attribution results

关键要点: 使用 CoG 配合 GPT-4 打造了一个强大的系统。

  • 在可验证性数据集上,CoG 的 召回率 (R) 跃升至 0.79 , 而 FActScore 为 0.69。
  • 这表明,当我们为 LLM 提供更清晰、更具上下文的“信息块”时,它在文本中发现支持性证据的能力会大大增强。

为什么 FActScore 失败了?

作者对“原子事实”方法 (FActScore) 为何表现不佳提供了令人信服的分析。

Figure 3: Average number of decomposition per sentence using each method.

如上图所示, FActScore (蓝色柱) 每个句子生成的分解数量 (超过 3.3 个) 明显多于 CoG (约 1.6 个) 。

虽然“更多”听起来像是“更详细”,但在检索中,“更多”往往意味着 噪声 。 通过将句子切成微小的原子,FActScore 稀释了语义含义,使检索器更难将查询与文档匹配。CoG 达到了“恰到好处”的平衡——既不太大,也不太小。

定性分析

让我们看一个真实的例子来感受其中的差异。

问题: “paint cast iron” (给铸铁上漆) 答案: “To paint cast iron, you should first coat it with oil-based primer…” (要给铸铁上漆,你应该先涂上一层油基底漆……)

Table 7: Qualitative example of how decomposition affcts retrieval based attributor and LLM based atributor. GT refers to ground truth. Each row depicts an answer part and respective decompositions and attributions for each method.

表 3 (如上图 007 所示) 中,观察 CoG Decompositions 一列。它将句子分成了两个逻辑步骤:

  1. 涂上油基底漆。
  2. 底漆形成光滑表面。

再看 NIL-MonoT5 列 (使用整句话) 。它检索到了一个关于“用湿抹布擦拭”的句子,这是错误的上下文。 然而, CoG-MonoT5 正确检索到了关于“涂上油基底漆”的句子。

通过逻辑地拆分句子,CoG 允许检索器为特定指令找到 精确 匹配,而不是被复杂的复合句搞糊涂。


5. 消融实验: 什么才是真正重要的?

论文进行了几项“消融实验” (通过移除系统的部分组件来测试) ,以证明他们的假设。

“问题”的影响

一个主要的观点是,在分解提示词中包含 问题 是至关重要的。 表 4 比较了 CoG - Question (不看问题的分解) 与 CoG (带问题) 。

Table 4: Example from Citation Verifiability dataset: In the answer, portions highlighted in red do not need attributions.Lists show the decomposition outputs for each answer part. CoG - Question denotes coarse-grain decomposition without the question in context.

答案 中,第一句话是 *“Are you looking for information on how to paint cast iron?” (你在找关于如何给铸铁上漆的信息吗?) *

  • FActScore 试图将其分解为事实: “此人在寻找信息。” (无用的事实) 。
  • CoG - Question 也很挣扎,为介绍性文本创建了一个单元。
  • CoG (标准版) 对该句子返回 [] (空列表) 。它知道,在问题“给铸铁上漆”的语境下,礼貌的介绍句不包含任何可归因的事实。

这种选择性关注对于减少幻觉和处理时间至关重要。

对检索器分数的影响

研究人员还强调了分解如何修复“分数稀释”问题。

Table 5: Example of retriever score getting affected while using answer part as iu vs using decomposed iu.

在这个例子中,原始答案句子包含多个引文 (BIBREF9, BIBREF10) 。

  • NIL (无分解) : 检索器被混合的主题搞糊涂了,给出了较低的相关性分数 (-0.043) 。
  • CoG: 通过隔离关于“WNUT16”的特定事实,检索器纯粹关注该主题,从而获得更好的相关性分数 (-0.021) 。 (注: 在这些模型中,分数通常是负距离,所以越接近 0 越好) 。

6. 结论与启示

论文 “Enhancing Post-Hoc Attributions in Long Document Comprehension via Coarse Grained Answer Decomposition” 为使 AI 值得信赖迈出了重要一步。

以下是给学生和从业者的关键要点:

  1. 上下文为王: 盲目地将文本分解为“原子”是适得其反的。通过在循环中包含 问题 , 我们生成的分解在语义上更加相关。
  2. 粒度很重要: 在整句和原子事实之间存在一个最佳平衡点。“粗粒度”单元保留了足够的可搜索意义,同时也足够具体以供验证。
  3. 规则带来的效率: 我们不需要把什么都交给 AI。简单的基于规则的分类器 (如这里使用的 POS 标注器) 可以过滤掉简单的句子,从而节省计算资源。
  4. 更好的输入 = 更好的检索: 无论你是使用标准搜索引擎 (BM25) 还是高级 LLM (GPT-4) ,提供干净、分解后的查询都能显著提高寻找证据的精确率。

随着我们迈向能够阅读整本书或法律知识库来回答问题的 AI 智能体,像 CoG 这样的方法将成为验证系统的支柱,确保当 AI 告诉我们某些事情时,它能拿出正确的凭证来支持。