当你在搜索引擎中输入查询时,你希望立即获得相关的结果。然而,在幕后,速度与准确性之间始终存在着一场拉锯战。现代信息检索 (IR) 系统通常依赖于一个两步流程来平衡这一权衡: 首先是一个快速的“检索器 (Retriever)”来查找广泛的候选文档集,紧接着是一个较慢但更精确的“重排序器 (Reranker)”对它们进行排序。
多年来,研究人员一直试图让快速检索器变得更聪明,以减少对计算成本高昂的重排序器的依赖。标准的方法是知识蒸馏 (Knowledge Distillation) : 教导快速模型模仿智能模型的评分。
但是,我们通常的做法存在一个缺陷。大多数系统教导检索器模仿绝对分数 (例如,“这篇文档是 8.5/10 分”) 。这被称为单点 (Pointwise) 排序。问题在于?绝对分数众所周知地难以校准。在一种语境下的 8.5 分真的比另一种语境下的 8.4 分更好吗?
在这篇文章中,我们将深入探讨 PAIRDISTILL , 这是一篇提出视角转变的研究论文。作者不再问“这篇文档有多好?”,而是问“文档 A 是否比文档 B 更好?”。通过成对比较 (Pairwise comparisons) 来蒸馏知识,这种新方法取得了最先进的结果,有效地弥合了稠密检索中速度与精度之间的差距。
格局: 检索器 vs. 重排序器
要理解 PAIRDISTILL,我们首先需要了解它旨在改进的架构。
1. 稠密检索器 (学生模型)
稠密检索模型,如稠密段落检索器 (DPR),使用的是双塔编码器 (Dual-Encoder) 架构。它们将用户的查询和文档转换为向量嵌入 (一串数字列表) 。文档的相关性由其向量在数学空间中与查询向量的接近程度决定。
相似度函数记为 \(s(q, d_i)\),通常是点积或余弦相似度:

由于文档向量可以预先计算,这个过程非常快,允许系统在毫秒级内搜索数百万篇文档。
这些模型通常使用对比学习 (Contrastive Learning) 进行训练。目标是最大化相关文档 (\(d^+\)) 的相似度得分,同时最小化不相关文档 (\(d \in D'\)) 的得分。损失函数通常如下所示:

2. 重排序器 (教师模型)
重排序器,特别是交叉编码器 (Cross-Encoders) , 则有所不同。它们将查询和文档放在一起并同时处理 (通常使用 BERT 或 T5 等模型) 。这使得模型能够“关注”查询和文档中词语之间的特定交互。
虽然准确得多,但交叉编码器的计算成本很高。你无法预先计算分数,因为分数取决于具体的查询。因此,它们通常仅用于对检索器找到的前 100 个左右的结果进行重新排序。
3. 知识蒸馏
为了兼得两者的优点,研究人员使用了知识蒸馏。其核心思想是提取重排序器 (教师) 的精确评分,并强制稠密检索器 (学生) 复现这些评分。
理想情况下,如果学生学得足够好,它可能就不再需要教师了,或者至少能提供一个更好的初始候选列表。
单点评分的问题
大多数现有的蒸馏方法使用单点重排序器 (Pointwise Rerankers) 。 这些模型独立地为每个文档分配一个绝对的相关性分数。蒸馏过程试图使学生模型的概率分布与教师模型保持一致。
学生模型选择文档 \(d_i\) 的概率是通过对分数使用 softmax 函数计算得出的:

同样,教师 (单点重排序器) 也会产生自己的分布。为了让学生学习,我们使用 KL 散度 (衡量两个概率分布差异的指标) 来最小化这两个分布之间的差异。
这里的缺陷在于基准不一致 。 单点重排序器可能会给查询 A 的一个“相关”文档打 3.0 分,但给查询 B 的一个“相关”文档可能只打 1.5 分。试图教导学生模型预测这些不断变化的绝对数值是困难且充满噪声的。这可谓是一叶障目,不见泰山。
解决方案: PAIRDISTILL
PAIRDISTILL 的作者认为, 成对重排序 (Pairwise Reranking) 提供了一个更清晰的信号。成对重排序器不预测原始分数,而是选取两篇文档 (\(d_i\) 和 \(d_j\)) ,并估计 \(d_i\) 比 \(d_j\) 更相关的概率。

这种相对比较通常更容易被模型学习,并且从本质上解决了校准问题。如果文档 A 优于文档 B,无论它们的绝对分数是 10 对 9 还是 2 对 1,关系 \(A > B\) 都是成立的。
架构
PAIRDISTILL 框架是传统单点蒸馏与这种新的成对方法的优雅结合。让我们看看整体架构:

如图 2 所示,该过程在两条平行的轨道上运行:
- 顶部 (教师) : 系统检索顶部文档。它运行标准的单点重排序器以获得初始分数。然后,它对文档进行成对采样,并运行成对重排序器来看看哪一个实际上更好。
- 底部 (学生) : 学生 (稠密检索器) 试图同时匹配单点分数和成对结果。
学生模型如何以“成对”方式思考
你可能会想: 学生模型只为一篇文档输出一个分数。它如何预测成对概率?
这是数学上巧妙的部分。即使学生是一个产生单一分数 (\(s(q, d_i)\)) 的双塔编码器,我们也可以使用 softmax 函数在成对的语境下解释这些分数。学生模型估计文档 \(i\) 优于文档 \(j\) 的概率计算如下:

如果学生给 \(d_i\) 的分数远高于 \(d_j\),这个概率就接近 1。如果分数相等,则是 0.5。
训练信号
教师为这些对提供了“真值 (ground truth)”。这个真值可以来自两个来源:
- 分类 (Classification): 一个训练过的模型,如果 \(d_i > d_j\) 输出 1,否则输出 0。
- 大语言模型 (LLMs): 可以提示大型语言模型 (如 GPT 或 FLAN-T5) 来判断哪篇文档更好 (“回答 A 或 B”) 。

成对蒸馏损失 (\(\mathcal{L}_{pair}\)) 衡量的是教师的成对置信度与学生隐含的成对概率之间的距离:

这看起来很复杂,但它的意思很简单: 对于每一个采样的文档对,确保学生以与教师相同的顺序和相同的置信度对它们进行排名。
最终的训练目标结合了三种损失:
- 对比损失 (\(\mathcal{L}_{CL}\)): 使用标记数据的标准训练方法。
- 单点蒸馏 (\(\mathcal{L}_{KD}\)): 模仿教师的绝对分数。
- 成对蒸馏 (\(\mathcal{L}_{pair}\)): 模仿教师的相对比较。

实验结果
增加这种成对的复杂性真的有帮助吗?答案是肯定的。
研究人员在庞大的 MS MARCO 数据集 (搜索的标准基准) 和 BEIR 基准 (测试模型在生物医学或金融等新主题上的泛化能力) 上评估了 PAIRDISTILL。
与最先进水平 (SOTA) 的比较
让我们看看表 1 中的结果摘要。

从这个表格中有几个关键的结论:
- 域内优势: 在 MS MARCO 开发集 (这些模型的“主场”) 上,PAIRDISTILL 实现了 40.7% 的 MRR@10。这击败了像 SPLADE++ 和 ColBERTv2 这样成熟的重量级模型。
- 域外泛化: 在 BEIR 基准 (BEIR-13 平均值) 上,PAIRDISTILL 得分为 51.2% , 再次优于基线模型。这表明学习文档之间的关系有助于模型理解相关性,即使是在它以前从未见过的主题中。
为了直观地展示这一点,作者绘制了各种模型的性能图,X 轴代表域内性能,Y 轴代表域外泛化能力。

如图 1 所示,PAIRDISTILL (红点) 位于右上角,表明它在两个类别中都优于 GTR-XXL 和 Dragon+ 等竞争对手。
为什么成对更好?
为了证明额外工作的合理性,作者分析了重排序器本身。如果教师不聪明,学生就学不到东西。

表 5 显示,成对重排序器 (duoT5) 实现了比单点重排序器 (MiniLM 的 40.5) 显著更高的 MRR@10 (41.5)。这证实了成对模型确实是更“聪明”的教师,为学生提供了更高的目标上限。
消融实验: 我们需要所有部分吗?
你可能会问,我们是否可以只使用成对损失而忽略其他部分。作者通过逐一移除组件来测试这一点。

表 3 显示,移除成对损失 (\(\mathcal{L}_{pair}\)) 会使分数从 40.7 降至 39.7。有趣的是,仅依赖成对损失 (没有单点损失) 也会略微降低性能。这表明这两种信号是互补的: 单点给出了粗略的全局估计,而成对则细化了相似文档之间的困难区分。
零样本域适应
PAIRDISTILL 最令人兴奋的意义之一是它能够在没有标记训练数据 (零样本) 的情况下工作。通过使用 LLM 为新领域 (如医疗或法律) 的查询生成成对标签,我们可以专门为该领域微调检索器。
在这种情况下,对比损失 (需要人工标签) 被丢弃,只留下蒸馏损失:

在特定领域数据集 (FiQA, BioASQ, Climate-FEVER) 上的结果表明,这种方法效果出奇地好。

如表 4 所示,使用 PAIRDISTILL 进行域适应始终优于仅使用标准知识蒸馏 (仅 \(\mathcal{L}_{KD}\)) 或基础 ColBERTv2 模型。
结论
PAIRDISTILL 代表了我们训练搜索 AI 方式的逻辑进化。我们从统计关键词 (BM25) 开始,发展到嵌入含义 (稠密检索),然后是用重型 AI (重排序) 来优化结果。
现在,通过 PAIRDISTILL,我们通过有效地将那些重型重排序器的智能压缩回快速检索器中,从而完成了闭环。通过从单点分数 (“这是 8 分”) 转向成对决策 (“A 比 B 好”) ,模型学会了定义真正相关性的细微差别。
对于 NLP 和信息检索领域的学生和从业者来说,关键的启示很明确: 当绝对校准困难时,寻找相对信号。有时候,知道什么更好比知道什么好更有价值。
](https://deep-paper.org/en/paper/2410.01383/images/cover.png)