Revela: Dense Retriever Learning via Language Modeling¶
会议: ICLR2026
arXiv: 2506.16552
代码: 待确认
领域: self_supervised
关键词: dense retrieval, self-supervised learning, language modeling, in-batch attention, retriever
一句话总结¶
提出 Revela,通过 in-batch attention 机制将检索器学习融入语言建模——NTP 不仅依赖本序列上下文,还依赖批内其他序列(由检索器相似度加权),无需标注 query-document 对即可训练强大的密集检索器。
研究背景与动机¶
- 领域现状:密集检索器通常需要标注的 query-document 对训练,在专业领域和复杂场景中标注成本高昂。
- 现有痛点:自监督检索方法(如 Contriever)容易过拟合数据结构偏差;自编码方法缺乏成对监督。
- 核心矛盾:LM 通过 NTP 学习 token 间依赖(自监督成功),如何将类似思路扩展到学习 chunk 间依赖?
- 切入角度:将检索类比为"序列级 NTP"——NTP 找最相关的上文 token,检索找最相关的文档。
- 核心idea一句话:在 Transformer 块中引入 in-batch attention,让 NTP 同时依赖序列内上下文和批内其他序列,检索器提供跨序列权重。
方法详解¶
整体框架¶
将文档分成 chunk 放入同一批次,检索器计算 chunk 间相似度 → LM 的 Transformer 块中加入 in-batch attention → NTP 损失同时优化 LM 和检索器。
关键设计¶
- In-batch Attention: 序列 \(i\) 的 embedding 可以 attend 到批内其他序列 \(j\) 的 embedding,权重由检索器计算的 \(\text{Sim}(D_i, D_j)\) 调制
- 联合优化: 检索器和 LM 在同一 NTP 目标下端到端联合训练
- 同文档负样本: 同一文档的不同 chunk 放入同一批次,类似硬负样本
训练策略¶
在 Wikipedia(通用)或代码语料(代码检索)上训练,135M-3B 参数规模。
实验关键数据¶
主实验¶
| 方法 | CoIR (nDCG@10) | BRIGHT | BEIR |
|---|---|---|---|
| E5-Mistral-7B (监督) | 基线 | 基线 | 基线 |
| Revela-3B (无监督) | +2.8 | 超越商业API | 无监督SOTA |
关键发现¶
- 无标注数据超越 7B 参数的监督模型
- 用约 1000× 少的数据和 10× 少的计算达到 BEIR 无监督 SOTA
- 跨域泛化能力强于对比学习方法
- 随 batch size 和模型规模持续提升
亮点与洞察¶
- NTP→检索的类比极为自然且有效
- 联合优化避免了冻结 LM 困惑度校准差的问题
- 比传统对比学习有更强的跨域泛化
局限性 / 可改进方向¶
- batch size 对性能影响大,需要足够大的 batch
- 仅验证了文本和代码检索
评分¶
- 新颖性: ⭐⭐⭐⭐⭐ NTP 学检索的范式非常新颖
- 实验充分度: ⭐⭐⭐⭐⭐ 三个基准、多规模、缩放分析
- 写作质量: ⭐⭐⭐⭐ 动机清晰
- 价值: ⭐⭐⭐⭐⭐ 为自监督检索提供了强大的新范式