基于论文:Found in the Middle: Calibrating Positional Attention Bias Improves Long Context Utilization (Hsieh et al., ACL Findings 2024)
LLM 其实能注意到中间的相关信息,但被"开头和结尾更重要"的位置偏置压制了。减去这个偏置(校准),中间的信息就能被"找到"——故名 "Found in the Middle"。
模型的 self-attention 权重本身就呈 U 形——开头和结尾的 token 分到更多注意力,与内容无关。即使随机打乱文档顺序,U 形注意力模式仍然存在。
把注意力分解为 相关性 + 位置偏置。用一个"虚拟文档"测量位置偏置,然后从真实文档的注意力中减去这个偏置,得到校准后的注意力——它只反映真实相关性。
在 NaturalQuestions 数据集上,校准注意力用于文档重排序,Recall@3 比 vanilla attention 提升最高 48 个百分点;端到端 RAG 性能提升最高 15 个百分点。
论文首先回答一个关键问题:为什么模型会 lost in the middle?答案藏在 self-attention 的权重分布里。
红色 = 高注意力。开头和结尾的文档获得更多注意力,中间的最少——即使文档内容被打乱,这个 U 形依然不变。
研究者做了一个对照实验:随机打乱文档顺序后,U 形注意力模式依然存在。这说明注意力偏置是由位置本身决定的,不是由文档内容决定的——它是一种系统性的位置偏差。
对照实验还有一个发现:当位置 10 放的是金文档(含答案)时,该位置的注意力比放干扰文档时更高。说明模型确实在根据相关性分配注意力——只是位置偏置太强,把这个信号淹没了。
既然注意力 = 相关性 + 位置偏置,那把位置偏置减掉,剩下的就是纯相关性——这就是校准的核心思路。
论文假设模型对第 k 个文档的注意力可以分解为两个因素:
用奥卡姆剃刀原则,简化为线性模型:
验证结果:Spearman 秩相关 0.76,线性模型足够好。两个单调条件验证通过率分别为 83% 和 72%。
关键技巧——引入一个虚拟文档(dummy document)来测量纯位置偏置:
虚拟文档放在同一个位置 k,它的相关性 rel(xdum) 是常数。两式相减:
想象你在考试。每道题的难度(位置偏置)不同——第 1 题和最后 1 题你总是更认真。用一道你完全不会的题(虚拟文档)做基准,把你在每道题上的"认真程度"减去基准,剩下的就是你真正因为题目内容而产生的认真程度(纯相关性)。
虚拟文档是一段固定不变、与问题无关的占位文本(如一段通用说明)。把它放在位置 k 时,它获得的注意力就是"位置 k 本身的偏置"——因为它的内容相关性是常数。用真实文档的注意力减去这个基准,就消除了位置的影响。
用校准注意力对检索到的文档按相关性排序,与现有方法对比(金文档放在中间位置,最难的场景):
| 方法 | 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)。
将校准注意力应用于实际 RAG 管线(基于校准注意力重排序文档后再生成),在 NaturalQuestions 数据集上:
LLM 有能力注意到中间的相关信息——校准后,校准注意力与真实相关性的排序高度一致。问题不在模型的"理解力",而在于位置注意力偏置压制了相关信号。校准之后,信息就被"找到"了。
回忆比重读更能形成长期记忆。先盖住上面,凭脑子答完再看解析。
课程 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 的概念,或要求我深入解释某个技术细节。