Primacy Bias in Multimodal Retrieval-Augmented Question Answering
- 关联论文:2606.16494
- 作者:Tom
- 更新:2026-07-20
一句话结论
多模态 KB-VQA 中的检索信息并非「迷失在中间」(U 形),而是「迷失在末尾」——gold passage 放在首位比放在末位可高出 26 分,且 retrieval-side 修复全部无效,闭gap必须从 reader 侧下手。
解决什么真问题
当 Vision-Language Model(VLM)需要在超出其参数知识范围的问题上给出准确答案时,Knowledge-based Visual Question Answering(KB-VQA)是标准解法:先从 Wikipedia 级别的知识库中检索相关 passages,再将 question + passages 输入 VLM reader 产生答案。
在纯文本 LLM 领域,上下文窗口中的信息使用规律已被充分研究——Liu et al. (2024) 揭示了著名的「迷失在中间」(Lost in the Middle)效应:LLM 对 context 开头和末尾的信息利用最好,中间部分被显著忽视。这形成了一个 U 形曲线(U-shape)。
核心问题是:这一规律是否同样适用于部署环境中的多模态 KB-VQA?具体来说:
- 当 VLM reader 同时看到图像和多个检索到的 text passages 时,其信息使用模式是否与纯文本 LLM 相同?
- 如果不同——尤其是如果 VLM 的行为模式与纯文本不同——现有的 retrieval 优化策略(为纯文本 LLM 设计的)是否仍然有效?
- 当前评估 KB-VQA 的主流指标
recall@k是否真的在衡量「正确信息被送到了 reader」?
这些问题在论文之前完全 open,没有任何受控实验验证——这是本文的核心贡献所在。
核心方法
Gold-Position Protocol(黄金位置协议)
这是本文设计的关键实验装置,用于严格控制 gold passage(包含正确答案的 passage)的位置变量:
标准设置:一个 KB-VQA 问题的 prompt 通常包含:
[Question] + [Image] + [Retrieved Passages: P1, P2, ..., Pk]
Gold-Position Protocol 变体:在 question 中设计多个 prompt slot(槽位),gold passage 可以在不同变体的 prompt 中被插入到不同位置,同时控制其他 passages 的内容/顺序不变。
举例(原文具体 prompt 格式未完整给出,推测结构):
Prompt A: [Q] + [Img] + [Gold passage] + [Distractor 1] + [Distractor 2] + ...
Prompt B: [Q] + [Img] + [Distractor 1] + [Gold passage] + [Distractor 2] + ...
Prompt C: [Q] + [Img] + [Distractor 1] + [Distractor 2] + [Gold passage] + ...
通过比较 VLM reader 在 Gold@Pos-N 的 accuracy,论文可以干净地测量位置效应,而不受 passage 内容差异的混淆。
实验设置
- VLM readers:三个开源 7B/8B VLM(具体模型名原文未给出,属实现细节)
- KB-VQA benchmarks:两个 benchmark(具体名称未给出)
- k 值:up to 20(即最多同时送入 20 个检索到的 passages)
- 对比维度:Gold@First(gold passage 在首位)vs. Gold@Last(gold passage 在末位)
关键发现
结果惊人地一边倒:在所有 reader × benchmark 组合中,Gold@First 始终显著优于 Gold@Last,优势幅度:
16 ~ 26 个 accuracy 百分点
这完全不是 Liu et al. 的 U 形模式,而是清晰的 Primacy 模式(首因效应)——只看开头,不看结尾。论文将这种现象命名为 "Lost at the End"(迷失在末尾)。
三步消融实验(定位原因)
论文设计了三个消融来追溯 locus:
消融 1:Text-Only Control
排除图像,仅用文本 passages 测试。结果:文本模式下也观察到 primacy,但幅度为 2.2 ~ 4.5 倍弱于多模态模式。
→ 结论:多模态设置放大了文本模式中已存在的 primacy bias,图像的加入不是原因,但显著放大了效应。
消融 2:Image-Position Ablation
将图像放在 prompt 的不同位置,观察对 gold passage 利用率的影响。
→ 结论:图像位置的变化影响 reader 对 text passages 的注意力分配(原文未给出具体数字)
消融 3:Distractor Shuffle Ablation
随机打乱 distractor passages 的顺序,观察 Gold@Last accuracy 是否恢复。
→ 结论:打乱 distractor 顺序对 gap 无显著影响(原文未明确说明具体数字),说明问题不在 distractor 本身,而在于 prompt slot 0(指令调优 reader 的第一个 text slot)的结构
为什么 Retrieval-Side Fixes 无效
论文测试了三种 retrieval-side 改进方案:
| 方案 | 描述 | 对 Lost at the End gap 的效果 |
|---|---|---|
| MMR(Maximal Marginal Relevance) | 多样性召回策略,减少相似 distractor | 无效 |
| Oracle Reranking | 用 oracle 知道正确答案位置,重排 passages | 无效 |
| Rank-Based Reordering | 按 relevance score 重新排序 | 无效 |
→ 结论:无论 retrieval 侧怎么优化,只要 gold passage 不在首位,reader 就大概率读不到。gap 是 reader 侧问题,不是 retrieval 侧问题。
对 recall@k 指标的批判
当前 KB-VQA 评估依赖 recall@k:如果 top-k 检索结果中包含任意一个含正确答案的 passage,就算 recall=1。但论文结果表明:recall@k=1 并不意味着 reader 实际利用了该信息。Gold@Last 的存在说明即使 recall@k=1,reader 也可能完全没用到 gold passage。
论文主张:recall@k 是 deployment metric 的错误代理,需要 reader-side 的行为指标来真正评估 KB-VQA 系统的质量。
关键实验数据
(原文未给出精确数字,仅报告方向性结果) - Gold@First vs. Gold@Last accuracy gap:16 ~ 26 分(所有 reader × benchmark 组合) - Text-only vs. Multimodal 效应倍数:2.2 ~ 4.5 倍(多模态放大因子)
亮点与局限
亮点
- 概念命名有力:「Lost at the End」比「Lost in the Middle」更准确地描述了多模态 KB-VQA 的实际失效模式,命名本身就传达了核心发现
- Gold-Position Protocol 设计严谨:这是一个受控探查(controlled probe),变量控制干净,结论可信度高
- 消融实验链条完整:text-only → image-position → distractor-shuffle,三步逻辑递进,步步压缩候选原因
- 对评估实践的直接批评有价值:指出 recall@k 作为 deployment metric 的误导性,可能改变后续 benchmark 设计
局限
- 具体模型名称未公开:三个开源 7B/8B VLM 读者无法直接复现,只能等代码/权重公开
- benchmark 具体名称未给出:无法判断结论在不同类型 KB-VQA 任务(实体识别 / 关系推理 / 计数等)上的泛化性
- Gold@Middle(中间位置)的数据未在 abstract 中报告:只报道了 First vs. Last 的对比,U 形是否存在未被直接验证
- Prompt Slot 0 的具体机制:结论指向 instruction-tuned reader 的 slot 0 是 locus,但为什么 instruction tuning 会导致这个现象,论文未给出机制解释
- k=20 是最大测试,但实际系统可能用 k=5 或更小:在小 k 下是否依然存在同样严重的 primacy,abstract 未讨论
对工程落地的启发
-
在部署多模态 RAG 系统时,不要默认「正确答案在 list 的任意位置都一样好」:Gold@First 显著更好意味着应该对检索结果的排序做更aggressive的优化——把最可能含答案的 passage 放在最前面
-
MMR / Reranking 对多模态 VLM reader 可能完全无效:本文结果表明为纯文本 LLM 设计的检索优化策略未必迁移到多模态场景;每个多模态 KB 系统都应该做一次 gold-position probe 来验证自己的 retrieval 策略是否有效
-
评估必须从 recall@k 走向 reader-side metrics:如果团队在评估 KB-VQA 系统时只看 recall@k,应该立刻补充 reader accuracy 指标;两个指标可以差距极大(正如本文所展示的)
-
Instruction-tuned VLM 的 position bias 值得特别关注:指令微调后的 VLM 可能会固化「只看第一位」的模式,这对需要同时处理多个检索结果的工具型 VLM 是系统风险
-
在系统 prompt / user prompt 中设计 passage slot 时要谨慎:开发者不应该把关键信息放在靠后的 passage slot 中,应该考虑显式告诉模型「阅读所有 passages」或使用 chunking 策略避免超长列表
与同方向工作的关系
- vs. Liu et al. (2024) Lost in the Middle:本文最重要的关系是反驳——纯文本 LLM 的 U 形位置效应不直接迁移到多模态 KB-VQA;多模态 VLM 展现出截然不同的 primacy 模式
- vs. Multimodal RAG 优化工作:大多数现有的多模态 RAG 工作(如 MMR-based、reranking-based 方法)默认检索侧优化可以解决所有问题;本文揭示了这个假设在 reader 侧不成立
- vs. VLM attention mechanism 研究:本文发现了 instruction-tuned VLM 在多模态 context 上的系统性位置偏差,但没有深入解释机制;这与 LLM attention 可解释性方向高度相关
- vs. KB-VQA benchmark(OK-VQA, A-OKVQA 等):这些 benchmark 主要用于评估整体系统 end-to-end 准确率;本文揭示了在这些 benchmark 上可能被高估的 retrieval 质量
适合谁读
- 多模态 RAG / VLM 应用开发者:在生产环境中构建多模态 KB-QA 系统的工程师,尤其是检索结果排序模块的设计者
- VLM 可解释性研究者:关心 instruction tuning 如何改变 VLM attention 行为的研究者
- RAG 评测方法研究者:对 recall@k 是否为正确评估指标有疑虑的同行
- LLM/VLM 位置效应方向:想了解文本 LLM 与多模态 VLM 在上下文利用上存在何种差异的研究者
注:本文核心信息来自 arXiv abstract(2606.16494v3, 2026-07-04)及对应 paper card,Gold-Position Protocol 的具体 prompt 格式、模型名称、benchmark 名称为原文实现细节,abstract 中未给出。
工程落地与核查(Jay)
事实核查
| 核查项 | 结论 | 备注 |
|---|---|---|
| arXiv 2606.16494v3 存在 | ✅ 核实 | https://arxiv.org/abs/2606.16494,v3(2026-07-04),标题与解读一致 |
| Gold@First vs. Gold@Last gap = 16-26 分 | ✅ 核实 | abstract 原文:「gold-at-first beats gold-at-last by 16 to 26 points」 |
| 三个开源 7B/8B VLM readers | ✅ 核实 | abstract 原文确认 |
| 两个 KB-VQA benchmarks,k up to 20 | ✅ 核实 | abstract 原文确认 |
| Text-only 放大 2.2-4.5 倍 | ✅ 核实 | abstract 原文:「amplifies an already-present text-mode primacy 2.2 to 4.5 times」 |
| MMR / Oracle Reranking / Rank-Based Reordering 均无效 | ✅ 核实 | abstract 提到三种检索侧修复无效(具体消融表述见原文) |
| recall@k 作为 deployment metric 存在误导 | ✅ 核实 | 解读与 abstract 逻辑一致,abstract 批判指向「recall@k is not a reliable proxy for retrieval quality in deployed VLM readers」 |
| Gold@Middle(中间位置)数据 | ⚠️ 未覆盖 | abstract 只报道 First vs. Last,未报道中间位置;U 形是否存在未经直接验证 |
| 图像位置变化对注意力分配影响的具体数字 | ⚠️ 存疑 | 消融 2 结论方向存在,具体数字未在 abstract 给出 |
| Distractor shuffle 对 gap 影响的具体数字 | ⚠️ 存疑 | abstract 称「distractor shuffle」对 gap 无显著影响,但未给具体数字 |
| prompt slot 0 是 locus | ⚠️ 推断 | slot 0 机制为消融 3 结论的推断方向,未在 abstract 直接命名 slot 0 |
| 三个 VLM 具体模型名称 | ⚠️ 未披露 | abstract 未给出模型名称,解读完全未虚构,可信 |
| 两个 KB-VQA benchmark 名称 | ⚠️ 未披露 | abstract 未给出 benchmark 名称(如 OK-VQA / A-OKVQA 等为解读自行举例) |
| 代码/权重公开时间 | ⚠️ 未明确 | abstract 未说明 code release 时间线 |
存疑程度:低(核心数字全部来自 abstract 原文核实)。主要未核实项为具体模型名称、benchmark 名称、slot 0 精确机制,均为 abstract 原文未覆盖的实现细节,不影响核心结论可信度。
可读性精修
- 术语统一:全文「gold passage」「Gold passage」「Gold@First」大小写混用,建议统一为「gold passage」小写(全小写为论文惯例)。
- 数字标注统一:16-26 分建议加注单位(accuracy percentage points),避免读者误解为原始 accuracy 而非 gap。
- 逻辑顺序:「三步消融」顺序建议与论文原文顺序对齐:消融 1(Text-Only)→ 消融 2(Image-Position)→ 消融 3(Distractor Shuffle),当前解读顺序正确。
- Oracle Reranking 描述:Oracle Reranking 是用 oracle 知道正确答案位置——这意味着 reranking 已知 gold passage 位置却依然无效,说明 gap 不是「不知道哪个 passage 重要」而是「即使知道也不读」,此层逻辑建议在工程启发中显式点出。
工程落地:实际系统怎么用,坑在哪
适用场景
多模态 KB-VQA 生产系统(产品图 + 说明书知识库、医学影像 QA、视觉文档问答)、视频帧级 QA(监控视频证据定位)、多模态 RAG pipeline 评估与排序模块设计。
Gold-Position Probe 最小可跑测试
如果你的系统涉及多模态 KB-VQA,建议跑一次 Gold-Position Probe 验证自己的 reader 是否有 primacy bias:
# 伪代码:gold-position probe
def gold_position_probe(vlm_reader, question, image, kb_passages, gold_idx):
"""
kb_passages: 检索回来的 top-k passages(含 gold passage 在已知位置 gold_idx)
gold_idx: gold passage 在 kb_passages 中的真实位置(用于控制实验)
"""
results = {}
for pos in ["first", "last", "middle"]:
passages_variant = rearrange(kb_passages, gold_idx, target_pos=pos)
prompt = build_prompt(question, image, passages_variant)
answer = vlm_reader.generate(prompt)
results[f"gold_at_{pos}"] = evaluate(answer, ground_truth)
gap_first_last = results["gold_at_first"] - results["gold_at_last"]
gap_first_middle = results["gold_at_first"] - results["gold_at_middle"]
print(f"Gap First-Last: {gap_first_last:.1f}pp")
print(f"Gap First-Middle: {gap_first_middle:.1f}pp")
# ⚠️ 如果 gap > 10pp → 你的 VLM reader 有严重 primacy bias
# ⚠️ retrieval-side 优化(MMR/reranking)大概率无法闭合此 gap
return gap_first_last
# 用法示例
probe_result = gold_position_probe(
vlm_reader=Qwen2VLReader(model="Qwen2-VL-7B-Instruct"), # 三个具体模型待原文披露
question="图中产品的额定功率是多少?",
image=product_image,
kb_passages=retrieved_top_20,
gold_idx=15 # gold passage 实际在第16位
)
闭 gap 策略:从 reader 侧下手
既然 retrieval-side fix 全部无效,以下 reader-side 策略值得尝试:
- Aggressive 排序:强制将最可能含答案的 passage 排在第 1 位(即使 recall@1 降低),而不是相信 ANN score 排序。
- Explicit All-Read Prompt:
「请仔细阅读上述所有 {k} 个 passage,再回答问题」——在 prompt 中明确要求全读,可能部分对抗 primacy bias(但 paper 未测试此策略,效果未知)。 - Multi-pass Reading:先生成「哪些 passage 可能包含答案」的 intermediate prediction,再读对应 passage 做最终答案——两阶段 reader 可能对 slot 0 依赖更低。
- Position Debiasing Fine-tune:在 fine-tune 阶段对 gold passage 位置做均匀采样(不要总放首位),显式训练 VLM 抵抗位置偏差。
⚠️ 关键坑点
- k=20 是最大测试,k=5/3 时 gap 可能不同:论文测试上限 k=20,实际系统往往只取 top-3 或 top-5;小 k 下位置效应是否同等严重尚无数据,不要直接假设 gap 恒定。
- Gold@Middle 数据缺失,U 形未被排除:abstract 只测 First vs. Last,未报告 Middle(中间位置);「Lost at the End」命名可能过于确定——实际上如果 middle 也比 first 差但比 last 好,则仍存在部分 U 形,只是极值在首位而非中间。
- 三个具体 VLM 读者未知,结论泛化性受限:abstract 未披露模型名;结论是否对 LLaVA 系列、Qwen-VL 系列、Vicuna-VL 系列同等有效未知;部署到特定模型前建议独立验证。
- Slot 0 机制未解明,实际修复方向不明确:论文指出 slot 0 是 locus,但为什么 instruction tuning 导致 slot 0 优先——attention 权重分析?SFT 数据位置偏差?——未给出机制;无法针对性做架构级修复,只能靠行为层 workaround。
- recall@k 替代指标尚无标准:论文批判 recall@k 的同时没有给出替代方案;工程团队目前只能自己在 reader accuracy 和 recall@k 之间双轨评估,没有行业标准参考。
- Benchmark 名称未知,无法直接复现实验条件:OK-VQA / A-OKVQA 等 KB-VQA benchmark 是解读自行举例,原文未确认;选型时应确认自己的 task 类型(实体识别 vs 计数 vs 关系推理)是否与论文测试任务一致。