什么是 交叉编码器(Cross-Encoder)?

交叉编码器(Cross-Encoder)是一种在单次前向计算中联合编码查询与候选,并返回任务特定相关性、相似度或分类分数的成对评分模型架构。

工作原理

联合编码与分数语义

常见文本模型会序列化为 [CLS] query [SEP] candidate [SEP],让 Transformer Layer 处理联合序列,再把 Pooling 表示映射为标量;其他模型家族和模态可能使用不同布局。早期 [BERT Passage Reranking](https://arxiv.org/abs/1901.04085)工作在 MS MARCO 与 TREC-CAR 条件下展示了该路线的能力。Sigmoid 可以把 Logit 映射到 [0,1],却不会自动把它校准成概率;排序、阈值与解释仍依赖模型和工作负载。

候选预算与运行时边界

每个候选都需要构造 Pair、Tokenize 和执行模型计算。Batch 可以提高吞吐,却可能加剧排队或尾延迟;长候选还会竞争共享序列长度。截断策略必须保留证据区域,不能静默地只评分开头。候选深度要结合重排前 Recall@K、重排后 nDCG 或 MRR、p95 延迟、成本与超时率调优。当前 [Sentence Transformers 文档](https://www.sbert.net/examples/sentence_transformer/applications/retrieve_rerank/README.html)把 Retrieve-then-rerank 作为两阶段模式,但其中候选数量只是示例,不是默认值。

失败模式与发布评测

Cross-Encoder 无法恢复缺失候选、修复越权检索,也不能证明片段足以支持最终答案。它可能过拟合来源特征、偏爱冗长文本、误判否定或语言变化,并给貌似合理但无支撑的候选高分。评测应固定候选、标签与截断,按 Query Group 报告 nDCG、MRR、Precision@K、证据支持度、延迟和成本。关于扩大 Reranker 推理的研究还显示,评分更多文档可能在某个深度后停止增益甚至降低质量,因此候选深度必须作为实证发布参数。

主要特点

  • 联合处理两个输入,让 Attention 建模 Pair-level Token 交互
  • 输出任务特定分数,而不是可复用的独立文档向量
  • 通常用更高的单候选计算成本换取更丰富的排序信号
  • 依赖上游检索阶段提供有界候选集合
  • 受序列化、截断、模型 Revision、Activation 与标签语义影响
  • 阈值使用前必须经过目标工作负载校准与排序评测

常见用途

  1. 重排 RAG 管线中的词法、稠密或混合候选
  2. 在搜索中识别细粒度约束、否定与实体差异
  3. 为领域相关性任务评分 Question-Passage Pair
  4. 审计扩大重排候选预算能否抵偿延迟和成本
  5. 为蒸馏成本更低的检索模型提供 Teacher Score

示例

loading...
Loading code...

常见问题

Cross-Encoder 分数是相关概率吗?

不一定。许多 Reranker 输出无界 Logit;应用 Sigmoid 只是数值变换,不会自动完成校准。任何阈值都应使用目标语言、语料、候选来源与模型 Revision 的留出标签验证。

为什么 Cross-Encoder 不能直接搜索整个语料库?

它必须为每个 Query-Candidate Pair 执行联合前向计算,也无法为任意查询复用一个独立文档向量。大型语料因此需要成本更低的第一阶段 Retriever 限制 Pair 数量。

Cross-Encoder 应该重排多少个候选?

不存在通用 Top-K。应逐步扩大深度,同时测量重排前 Recall@K、重排后 nDCG 或 MRR、截断、p95 延迟、成本与超时;边际质量不再抵偿成本或开始回退时就应停止。

所有 Reranker 都是 Cross-Encoder 吗?

不是。Reranker 还可以使用 Late Interaction、Listwise LLM、学习特征、业务规则或组合方案。应记录真实模型、输入分组与分数语义,不能从 Reranker 名称反推架构。

Cross-Encoder 分数可以缓存吗?

只有在归一化 Query、候选内容、模型 Revision、序列化与策略上下文都相同的情况下才可复用。候选更新、权限、截断或模型变化都会使 Pair Score 失效,缓存也不能绕过访问控制。

相关术语

相关文章