Unsupervised Dense Retrieval with Relevance-Aware Contrastive Pre-Training
这是一篇关于如何改进无监督密集检索模型的论文。密集检索(Dense Retrieval)通过将查询(Query)和文档(Passage)都编码成向量,然后在向量空间中寻找最相似的文档来工作。
问题 (Problem)
传统的密集检索模型严重依赖大量的人工标注数据,这使得它们在新领域的应用成本高昂且泛化能力不足。
为了解决这个问题,研究界提出了无监督的对比预训练方法,例如 Contriever 模型。这类方法通过在无标签的文档中自动构建正样本对(例如,从同一篇文档中随机裁剪出两段文字作为“查询”和“相关文档”)来进行学习。
然而,这种自动构建的方式存在一个核心缺陷:“假正例”(False Positives)问题。如下图1所示,一篇文档中相邻的两个句子也可能在语义上毫不相关。如果模型被强制认为它们是相关的,就会学习到错误的表示,从而损害检索性能。

图1:论文中的一个例子,源自维基百科。高亮的两个句子虽然来自同一篇文章,但内容上几乎没有关联。随机裁剪很容易将它们构造成一个“假正例”对。
本文提出的 ReContriever 模型,旨在解决无监督预训练中的“假正例”问题。
方法 (Method)
ReContriever 的核心思想是让模型在训练过程中学会区分“真”正例和“假”正例,并对前者赋予更高的学习权重。它建立在 Contriever 模型之上,并引入了两个关键组件:“一文多对”策略和**“相关性感知对比损失”**。
一文多对 (One-Document-Multi-Pair)
传统的对比学习方法通常从一个文档中只生成一个正样本对 (q, d+)。为了更充分地利用数据并为后续的相关性评估提供基础,ReContriever 采用“一文多对”策略。
具体来说,对于一个文档 T,它会首先裁剪出一个固定的“查询”段落 q,然后再从该文档中裁剪出 n 个不同的“候选正例”段落 d_1+, d_2+, ..., d_n+。这样,就从单个文档中生成了 n 个正样本对。保持 q 不变是关键,因为它为后续比较这 n 个候选段落与 q 的相关性提供了一个统一的基准。
相关性感知对比损失 (Relevance-Aware Contrastive Loss)
这是该方法的核心。标准的对比学习损失函数是 InfoNCE,其目标是拉近正样本对的距离,推远负样本对的距离。其公式如下:
其中:
- 是查询
q和正例d+的相似度得分(如点积)。 - 是一系列负例文档。
- 是一个温度超参数。
传统方法中,一个批次的总损失是所有样本对 InfoNCE 损失的平均值。
ReContriever 对此进行了改进,引入了相关性权重。它利用模型自身在当前训练阶段的能力来充当一个“不完美的预言家”,评估每个正样本对的“可信度”。改进后的损失函数 如下:
其中:
m是一个批次中的文档数量,n是每个文档生成的正样本对数量。- 是模型(参数为 )计算出的第
i个文档的查询 与其第j个正例 之间的相似度。 - 相关性权重部分是关键:对于源自同一个文档
i的所有n个正样本对,模型会计算它们各自的相似度,然后进行归一化。模型认为更相关的样本对(即 得分更高)会获得更大的权重,从而在损失计算中占据主导地位。反之,那些可能是“假正例”的样本对权重会很小,对模型更新的影响也随之减弱。
通过这种方式,ReContriever 能够自适应地关注那些质量更高的正样本对,从而减轻“假正例”带来的负面影响。
Baseline (对比模型)
论文将 ReContriever 与多个强大的基线模型进行了比较:
- 传统稀疏检索模型: BM25。
- 无监督密集检索模型:
- 基于对比学习: Contriever (主要对比对象), SimCSE, coCondenser, Spider。
- 基于自编码: RetroMAE。
- 有监督密集检索模型 (作为参考): DPR。
数据集 (Datasets)
模型在两个主流的评测基准上进行了评估:
- BEIR: 一个异构的信息检索评测基准,包含了15个不同的公开数据集,用于评估模型的零样本(zero-shot)泛化能力。
- 开放域问答 (Open-Domain QA): 三个代表性的问答检索数据集:Natural Questions (NQ), TriviaQA, 和 WebQuestions (WQ)。
此外,还在4个特定领域的语料库上进行了进一步预训练的实验,以测试模型的实际应用潜力。
可复现性 (Reproducibility)
- 代码: 论文明确指出代码是公开的(在GitHub上:
Yibin-Lei/ReContriever)。代码基于 Pytorch、Huggingface-Transformers 和 Contriever 的官方代码实现,具有较好的可复现基础。 - 算力:
- 预训练: 在 16 块 NVIDIA A100 GPU 上进行,批处理大小为 2048,训练了 500,000 步。
- 领域内预训练: 在 8 块 NVIDIA A100 GPU 上进行。
- 少样本实验: 在单块 NVIDIA A100 GPU 上进行。
- 模型从
BERT-base-uncased初始化。这些详细的配置和算力需求为复现工作提供了清晰的指引。
可改进的几个点 (Potential Improvements)
论文在局限性部分也坦诚地指出了几个未来可以改进的方向:
- 通用性仍有不足: 尽管 ReContriever 表现出色,但在零样本、通用场景下,其性能仍然落后于经典的 BM25 模型。这意味着在面对一个全新的领域时,如果想获得最佳性能,可能仍需要基于该领域的语料进行额外的预训练,这在一定程度上限制了它的即开即用性。
- 潜在的社会偏见: 模型基于 BERT-base 初始化,因此不可避免地会继承其预训练语料中可能存在的社会偏见(如性别、种族歧视等),这在使用时需要特别注意,并可能需要采取去偏见措施。
可以被引用的一些结论 (Citable Conclusions)
- 核心贡献: 通过“一文多对”和“相关性感知对比损失”,ReContriever 有效缓解了无监督对比学习中的“假正例”问题,为密集检索提供了一个更鲁棒的预训练范式。
- 性能超越 SOTA: 在 BEIR 基准的15个任务中,ReContriever 在10个任务上优于之前的最强无监督模型 Contriever,平均排名第一。在开放域问答检索任务中,性能也几乎全面领先于所有无监督方法。
- 实践应用价值高:
- 领域适应性强: 在特定领域的语料上进行短暂的二次预训练后,ReContriever 能够稳定地超越强大的 BM25 基线,展现了很好的领域适应潜力。
- 少样本学习能力强: 在只有少量(例如128个)标注样本的情况下进行微调,ReContriever 的性能可以媲美使用数千个样本训练的有监督 DPR 模型,这对于标注数据稀缺的场景非常有价值。
- 方法组件的必要性: 消融实验证明,“一文多对”策略和“相关性感知损失”缺一不可。单独使用相关性感知损失甚至会导致性能下降,说明两者结合才能产生协同效应,共同提升模型性能。