课程 3:Found in the Middle — 校准位置注意力偏置

基于论文:Found in the Middle: Calibrating Positional Attention Bias Improves Long Context Utilization (Hsieh et al., ACL Findings 2024)

📄 论文信息

标题:Found in the Middle: Calibrating Positional Attention Bias Improves Long Context Utilization

作者:Cheng-Yu Hsieh, Yung-Sung Chuang, Chun-Liang Li, Zifeng Wang 等 11 人

机构:University of Washington, MIT, Google Cloud AI Research

来源:arXiv:2406.16008 · ACL Findings 2024

核心贡献:找到 Lost in the Middle 的根因(U 形注意力偏置),提出校准机制,让模型找回中间信息,RAG 性能提升达 15 个百分点

💡 一句话总结

LLM 其实能注意到中间的相关信息,但被"开头和结尾更重要"的位置偏置压制了。减去这个偏置(校准),中间的信息就能被"找到"——故名 "Found in the Middle"。

前置知识:本课是 课程 2:Lost in the Middle 的续篇。课程 2 发现了问题(U 形性能曲线),本课找到原因并提出解法。

一、三大贡献概览

1 找到原因:U 形注意力偏置

模型的 self-attention 权重本身就呈 U 形——开头和结尾的 token 分到更多注意力,与内容无关。即使随机打乱文档顺序,U 形注意力模式仍然存在。

2 提出解法:注意力校准机制

把注意力分解为 相关性 + 位置偏置。用一个"虚拟文档"测量位置偏置,然后从真实文档的注意力中减去这个偏置,得到校准后的注意力——它只反映真实相关性。

3 验证效果:RAG 性能显著提升

在 NaturalQuestions 数据集上,校准注意力用于文档重排序,Recall@3 比 vanilla attention 提升最高 48 个百分点;端到端 RAG 性能提升最高 15 个百分点

二、贡献一:U 形注意力偏置

论文首先回答一个关键问题:为什么模型会 lost in the middle?答案藏在 self-attention 的权重分布里。

Self-Attention 权重 vs 文档位置(Vicuna-7B, K=20 篇文档)

·
·
·
·
·
·
位置 1(开头) 位置 5-6(中间) 位置 10(结尾)

红色 = 高注意力。开头和结尾的文档获得更多注意力,中间的最少——即使文档内容被打乱,这个 U 形依然不变

关键观察:偏置与内容无关

研究者做了一个对照实验:随机打乱文档顺序后,U 形注意力模式依然存在。这说明注意力偏置是由位置本身决定的,不是由文档内容决定的——它是一种系统性的位置偏差。

但模型其实"知道"相关性

对照实验还有一个发现:当位置 10 放的是金文档(含答案)时,该位置的注意力比放干扰文档时更高。说明模型确实在根据相关性分配注意力——只是位置偏置太强,把这个信号淹没了。

两个力量的拉锯:模型注意力 = 相关性信号(弱)+ 位置偏置(强)。位置偏置赢了,就 lost in the middle。

三、贡献二:注意力校准机制

既然注意力 = 相关性 + 位置偏置,那把位置偏置减掉,剩下的就是纯相关性——这就是校准的核心思路。

3.1 假设:注意力的线性分解

论文假设模型对第 k 个文档的注意力可以分解为两个因素:

Attn(xdoc, k) = f( rel(xdoc), bias(k) )
注意力 = f(文档相关性, 位置偏置) — f 是单调递增函数

用奥卡姆剃刀原则,简化为线性模型

Attn(xdoc, k) = rel(xdoc) + bias(k) + ε
公式 (2):注意力 = 相关性 + 位置偏置 + 噪声

验证结果:Spearman 秩相关 0.76,线性模型足够好。两个单调条件验证通过率分别为 83% 和 72%。

3.2 校准:减去位置偏置

关键技巧——引入一个虚拟文档(dummy document)来测量纯位置偏置:

Attn(xdum, k) = rel(xdum) + bias(k) + ε
公式 (3):虚拟文档的注意力 = 固定相关性 + 同样的位置偏置

虚拟文档放在同一个位置 k,它的相关性 rel(xdum) 是常数。两式相减:

rel(xdoc) = Attn(xdoc, k) − Attn(xdum, k) + const
公式 (4):校准注意力 = 真实注意力 − 虚拟注意力 → 位置偏置被抵消
真实文档注意力
Attn(doc, k)
虚拟文档注意力
Attn(dummy, k)
=
校准注意力
纯相关性 rel(doc)

直觉理解

想象你在考试。每道题的难度(位置偏置)不同——第 1 题和最后 1 题你总是更认真。用一道你完全不会的题(虚拟文档)做基准,把你在每道题上的"认真程度"减去基准,剩下的就是你真正因为题目内容而产生的认真程度(纯相关性)。

什么是虚拟文档?

虚拟文档是一段固定不变、与问题无关的占位文本(如一段通用说明)。把它放在位置 k 时,它获得的注意力就是"位置 k 本身的偏置"——因为它的内容相关性是常数。用真实文档的注意力减去这个基准,就消除了位置的影响。

四、贡献三:RAG 性能显著提升

4.1 文档重排序:Recall@3 大幅领先

用校准注意力对检索到的文档按相关性排序,与现有方法对比(金文档放在中间位置,最难的场景):

方法 K=10 文档 K=20 文档
Vanilla Attention(原始注意力) 0.36 0.21
Query Generation 0.69 0.58
Relevance Generation 0.55 0.40
Calibrated Attention(本文) 0.74 0.68

Recall@3:前 3 名中包含金文档的比例。校准注意力在 K=20 时比 vanilla attention 高出 48 个百分点(0.68 vs 0.21)。

4.2 端到端 RAG:最高提升 15 个百分点

将校准注意力应用于实际 RAG 管线(基于校准注意力重排序文档后再生成),在 NaturalQuestions 数据集上:

+15%
RAG 端到端准确率提升
+48pt
Recall@3 提升(vs vanilla)
0.76
线性模型 Spearman 相关
多模型
Vicuna / MPT 均有效

🔑 核心洞见

LLM 有能力注意到中间的相关信息——校准后,校准注意力与真实相关性的排序高度一致。问题不在模型的"理解力",而在于位置注意力偏置压制了相关信号。校准之后,信息就被"找到"了。

五、方法局限与未来方向

论文坦诚的局限

六、检验:凭记忆作答

回忆比重读更能形成长期记忆。先盖住上面,凭脑子答完再看解析。

1. Found in the Middle 论文发现 Lost in the Middle 的根本原因是什么?
A. 模型的上下文窗口不够长
B. 模型的 self-attention 存在 U 形位置偏置,开头/结尾获得更多注意力
C. 模型参数量不够大,无法处理长文本
D. 检索系统返回的文档质量太差
2. 校准注意力的核心公式是?
A. 校准注意力 = 真实注意力 × 虚拟注意力
B. 校准注意力 = 真实注意力 − 虚拟注意力(减去位置偏置)
C. 校准注意力 = 真实注意力 + 虚拟注意力
D. 校准注意力 = 真实注意力 / 虚拟注意力
3. 虚拟文档(dummy document)的作用是什么?
A. 作为干扰项,增加任务难度
B. 提供正确答案给模型参考
C. 测量纯位置偏置——它的内容相关性是常数,注意力只反映位置偏差
D. 扩展上下文长度,让模型能处理更多文档
4. 论文的关键洞见(key insight)是什么?
A. LLM 根本无法理解中间位置的信息,必须用外部检索器
B. LLM 能注意到中间的相关信息,但被位置偏置压制了——校准后就能"找到"
C. 只要扩大模型参数量,Lost in the Middle 问题就会消失
D. 注意力偏置对所有任务都有害,应该完全消除

七、本课小结

🎯 核心要点

八、两篇论文的关系

课程 2 · Lost in the Middle(2023)

发现现象 → U 形性能曲线,中间信息被遗忘

↓ 一年后

课程 3 · Found in the Middle(2024)

找到原因 → U 形注意力偏置

提出解法 → 注意力校准(减去偏置)

验证效果 → RAG 提升 15 个百分点

九、延伸阅读

📖 主要来源:Found in the Middle 原始论文 (arXiv:2406.16008)

📖 前置论文:课程 2:Lost in the Middle(arXiv:2307.03172)

💡 相关概念:

💬 有疑问? 随时向我提问!可以询问任何 unclear 的概念,或要求我深入解释某个技术细节。