← Back to list
ResRank

ResRank: Unifying Retrieval and Listwise Reranking via End-to-End Joint Training with Residual Passage Compression

LLM Alibaba
Abstract 7 Reading 8 Rating —
2026-04-24
Xiaojie Ke, Shuai Zhang, Liansheng Sun, Yongjin Wang, Hengjun Jiang, Xiangkun Liu, Cunxin Gu, Jian Xu, Guanjun Jiang
Qwen Applications Business Group of Alibaba
ResRank 用 Encoder-LLM 把每段压成单 embedding 直接喂给 Reranker-LLM,配合残差连接和余弦相似度打分消除生成瓶颈,通过 dual-stage multi-task 端到端联合训练统一检索与列表式重排,在 BEIR/TREC DL 上以零生成 token 接近 GPT-4 效果
评分原因
摘要评分:用 Encoder-LLM 把 passage 压缩成单 embedding 喂给 Reranker-LLM 做 listwise 排序,配合残差连接和余弦打分消除生成瓶颈;针对 LLM 排序工业落地的延迟瓶颈给出系统性方案,搜索排序方向有借鉴价值。
精读评分:干净自洽的统一检索-重排框架,残差段落压缩+余弦相似度打分+端到端 multi-task 联合训练同时斩断输入长度与 AR 生成两大延迟来源,#Proc=100/#Gen=0 下 single-pass 逼近 GPT-4,实验完整、消融充分、工程可行
pretrained-lm search-ranking contrastive-ssl industrial

ResRank: Unifying Retrieval and Listwise Reranking via End-to-End Joint Training with Residual Passage Compression

一、研究动机与背景

1.1 LLM 列表式重排器的工业落地瓶颈

现代信息检索(IR)系统通常采用多阶段流水线:先用轻量第一阶段检索器(BM25 等)从大规模语料中召回候选段落,再交给更精细的重排器对排序进行精修。随着大语言模型(LLM)的兴起,基于 LLM 的列表式重排(listwise reranking) 成为 SOTA 范式:模型同时接收 query 和数十至上百个候选段落,直接输出一个排列(permutation),效果显著优于传统 cross-encoder。

但要把 LLM 列表式重排器部署到真实搜索引擎,工业界面临两大瓶颈:

  1. 输入侧 — "lost in the middle" 与超长上下文。把数十至上百个候选段落的全文拼接为单条 prompt,序列长度极易超过万 token。研究表明 LLM 对长上下文中部信息利用能力显著下降(Liu 等 2024),直接损伤排序质量。工业界常用 sliding window 缓解此问题:每次只看 w 个段落,多次推理后聚合,但这等于把单次推理放大成多次,延迟与候选数线性相关
  2. 输出侧 — 自回归解码生成 permutation。listwise 重排器要逐 token 生成段落 ID 序列,约 n 到 4.5n 个输出 token(n 为候选数);即便用 constrained decoding 把输出空间限制在段落 ID 上,自回归本身的串行性仍是延迟瓶颈。

近期沿不同方向的缓解工作各有局限:

  • 长上下文 LLM full-list ranking(Liu 等 2024)用一次前向覆盖全部候选,但 self-attention 的二次复杂度仍然限制了规模化。
  • CompLLM(Berton 等 2025)做 segment-wise soft compression,但只是把输入压短,没碰生成瓶颈。
  • PE-Rank(Liu 等 WWW 2025)借鉴多模态 LLM(LLaVA 类)的思路,把每个 passage 用一个独立的 retrieval encoder 压成单 embedding,再投影进 reranker 输入空间——但训练过程是 解耦两阶段:先训 projector 做表征对齐,再训 reranker 做排序,这增加了流水线复杂度,且输出仍依赖 dynamic-constrained decoding 自回归生成 permutation,限制了吞吐。
  • C2R(Zhi 等 AAAI 2026)扩展为多向量 surrogate 并端到端微调 compressor 和 reranker,但仍保留 autoregressive generation 与 sliding window 推理,效率收益受限。
  • E2Rank(Liu 等 arXiv 2510.22733)把 listwise prompt 重新解释为伪相关反馈 query,用 embedding-空间余弦替代 AR decoding——但推理时仍需把所有 top-K 候选段落的 完整文本 输入模型来构造 enriched query,输入长度问题没解决。

1.2 ResRank 的整体定位

ResRank(Alibaba Qwen Applications Business Group)针对上述两个瓶颈给出一站式端到端解法。三大核心创新:

  1. Residual passage compression(残差段落压缩):用一个 Encoder-LLM 把每段独立压成单个 dense embedding,直接 喂入 Reranker-LLM 的 input embedding 空间(不需要 projection 模块),并通过残差连接把原始 encoder embedding 加回 reranker hidden state,缓解压缩导致的信息损失。
  2. Cosine similarity-based scoring(余弦相似度打分):把 [EOS] 位置的 reranker 隐藏态作为 global aggregation embedding,和每个 fused passage embedding 做单步 cosine similarity 得到分数。生成 token 数从 O(n) 降到 0
  3. Dual-stage、multi-task、end-to-end joint training:encoder 和 reranker 从一开始就一起训,loss = λ × InfoNCE(保留 encoder 的检索能力)+ RankNet(让 reranker 的排序对齐 cross-passage 信号),且采用粗-细两阶段 SFT。

实验在 TREC DL 19/20 与 BEIR 八个 OOD 数据集(Covid, NFCorpus, Touche, DBPedia, SciFact, Signal, News, Robust)上展开。在单次前向(single-pass)模式下,ResRank 平均 nDCG@10 = 0.5440 (BEIR),超越 PE-Rank(0.4843,>5 绝对点)和所有 distillation-trained 基线,并接近 GPT-4 驱动的 RankGPT-4(0.5368);同时 每段处理 token = 1,生成 token = 0。当配合 BM25 做 reciprocal rank fusion (RRF) 时,ResRank+BM25 在 TREC DL19 上达到 0.7821,DL20 达到 0.7499,全面 SOTA。

二、核心方法 / 模型架构

2.1 系统总览

记 query 为 $q$,候选段落集合为 $\mathcal{D} = \{d_1, d_2, \ldots, d_n\}$,ResRank 的推理分三步:

  1. 段落压缩:Encoder-LLM 独立把每个 $d_i$ 压成一个 embedding $\mathbf{e}_i$。
  2. 列表式重排:Reranker-LLM 接收 query 文本与 $\{\mathbf{e}_1, \ldots, \mathbf{e}_n\}$ 拼接的输入,通过 causal attention 让所有候选互相感知,输出每个 passage 位置的 contextualized hidden state $\mathbf{h}_i^p$,并经残差融合得 fused passage embedding $\mathbf{r}_i$。
  3. 余弦打分:取 [EOS] 位置 hidden state $\mathbf{h}_{\text{eos}}$ 作为 global aggregation embedding,对每个 $\mathbf{r}_i$ 算 cosine 相似度,按降序排即得到最终排名。整个过程零自回归 token、两次前向(一次 encoder、一次 reranker)。

整体架构如图 1 所示:

Fig. 1: Architecture overview of ResRank

2.2 Encoder-LLM 段落压缩

设第 $i$ 个段落 token 序列为 $d_i = (w_1^i, w_2^i, \ldots, w_{L_i}^i)$,长度 $L_i$。Encoder-LLM $f_{\text{enc}}$ 独立处理每段,提取一个 $d$ 维 embedding:

$$\mathbf{e}_i = f_{\text{enc}}(d_i) \in \mathbb{R}^d \tag{1}$$

这个 embedding 把整段语义压缩进单个表示,per-passage token 数从 $L_i$ 降到 1(≥两个数量级压缩)。

Encoder 的选择至关重要:encoder embedding 质量直接决定了下游 reranker 能用到的信息上限。论文采用 Qwen3-Embedding-4B(Qwen 团队 2025),SOTA 文本 embedding 模型,且与 Reranker-LLM 同源同尺寸同 hidden dim(Qwen3-4B),这一关键设计意味着 encoder 输出的 embedding 可 直接 注入 reranker 的输入层,完全不需要中间 projector 或 alignment 模块——这是相对 PE-Rank(必须用 projection 层桥接异质表示空间)的关键架构简化。

2.3 Residual-Enhanced Listwise Reranker

Encoder 输出的 passage embedding 被当作特殊输入 token,与文本指令、query 拼接成 reranker 输入:

$$\mathbf{X} = [\mathbf{t}_{\text{inst}}; \mathbf{t}_q; \mathbf{e}_1, \mathbf{e}_2, \ldots, \mathbf{e}_n; \mathbf{t}_q'; \mathbf{t}_{\text{eos}}] \tag{2}$$

其中 $\mathbf{t}_{\text{inst}}$ 与 $\mathbf{t}_q$ 是 instruction 与 query 的 token embedding,$\mathbf{t}_q'$ 是 passage embeddings 后的额外 query anchor,$\mathbf{t}_{\text{eos}}$ 是 EOS token。Reranker $f_{\text{rer}}$ 通过 causal self-attention 处理:

$$\mathbf{H} = f_{\text{rer}}(\mathbf{X}) = [\ldots; \mathbf{h}_1^p, \ldots, \mathbf{h}_n^p; \ldots; \mathbf{h}_{\text{eos}}] \tag{3}$$

其中 $\mathbf{h}_i^p \in \mathbb{R}^d$ 是第 $i$ 个 passage embedding 位置的隐藏态。由于 causal attention 的因果性,$\mathbf{h}_i^p$ 已经包含来自 instruction、query 与所有更早 passage 的 cross-passage 交互信号(这是原始 encoder embedding $\mathbf{e}_i$ 没有的)。

残差连接:把整段语义压成单 embedding 必然丢失部分信息;而且在训练初期 reranker 与 encoder 的对齐尚未稳定,单靠 reranker 的 hidden state 作为 passage 表示有学习困难。论文引入残差结构:

$$\mathbf{r}_i = \mathbf{h}_i^p + \mathbf{e}_i \tag{4}$$

$\mathbf{e}_i$ 保留了原始 passage 级语义,$\mathbf{h}_i^p$ 补充 cross-passage 上下文信号;二者相加既给反向传播提供 gradient shortcut,也降低优化难度。这一设计在消融实验中被证实是 ResRank 性能的关键支柱(见 §6.2)。

2.4 Cosine-Similarity-Based Scoring

传统 listwise 重排器要 AR 解码 ~n 到 4.5n 个 token(即便用 constrained decoding,串行性也无法避免)。ResRank 直接把生成阶段去掉:

$$s(q, d_i) = \frac{\mathbf{h}_{\text{eos}}^\top \mathbf{r}_i}{\|\mathbf{h}_{\text{eos}}\| \cdot \|\mathbf{r}_i\|} \tag{5}$$

[EOS] 位置已经 attended 全部 instruction、query 与 passage 信号,是 global aggregation embedding,封装了整个排序问题的全局上下文;与每个 fused passage embedding $\mathbf{r}_i$ 算余弦相似度即得分数。最终排序仅按 $s(q, d_i)$ 降序排序即可。

生成 token 数 = 0,把"逐 token 生成排列"变成"一次并行向量比较"。整个推理流水线只需两次前向(encoder 一次、reranker 一次),无任何自回归循环。

2.5 Multi-Task 训练目标

Encoder 端:标准 InfoNCE 对比学习(保留 encoder 的检索能力)。对训练 query $q_i$,有正样本 $d_i^+$ 和负样本集 $D^-$,batch 大小 $N$:

$$\mathcal{L}_{\text{InfoNCE}} = -\frac{1}{N}\sum_{i=1}^{N}\log\frac{e^{s_{\text{enc}}(q_i, d_i^+)/\tau_1}}{e^{s_{\text{enc}}(q_i, d_i^+)/\tau_1} + \sum_{d_j \in D^-} e^{s_{\text{enc}}(q_i, d_j)/\tau_1}} \tag{6}$$

其中 $\tau_1 = 0.05$,$s_{\text{enc}}$ 为 encoder 端 query/document embedding 的 cosine 相似度。

Reranker 端:RankNet pairwise ranking loss(对所有 inversion 对惩罚)。记融合表示对 query 的得分 $S(q_i, d_j) = \cos(\mathbf{r}_j, \mathbf{h}_{\text{eos}})$,文档相关性序为 $r_j$(小者更相关),$D$ 包含正负样本:

$$\mathcal{L}_{\text{RankNet}} = \frac{1}{N}\sum_{i=1}^{N}\sum_{\substack{d_j, d_k \in D \\ r_j \lt r_k}} \log\left(1 + e^{(S(q_i, d_k) - S(q_i, d_j))/\tau_2}\right) \tag{7}$$

其中 $\tau_2 = 0.05$ 缩放相似度,indicator $r_j \lt r_k$ 确保只对应当 $d_j$ 排在 $d_k$ 之前的对计算损失。

联合目标

$$\mathcal{L} = \lambda \mathcal{L}_{\text{InfoNCE}} + \mathcal{L}_{\text{RankNet}}, \quad \lambda = 0.1 \tag{8}$$

权重 $\lambda = 0.1$ 让 reranker 损失主导优化方向,但 InfoNCE 的存在确保 encoder 不退化为 reranker 内部表示——后者会让 encoder 失去独立检索能力,无法在端到端流水线中扮演第一阶段检索器。这一设计动机在消融 §6.2 中得到验证:去掉 InfoNCE 后排序指标几乎不变,但 encoder 的 standalone retrieval 能力崩溃。

2.6 Dual-Stage SFT 训练

两阶段监督微调,从粗粒度对齐过渡到细粒度排序精修:

  • Stage 1(Coarse-grained alignment):用 232,419 条来自 PE-Rank 的样本(经 Qwen3-Max 重新标注),让模型学到从 passage embedding 到排序行为的基本映射。第一阶段 1 个 epoch,effective batch size 128,学习率 $6\times 10^{-6}$。
  • Stage 2(Fine-grained refinement):用约 87,000 条高质量样本(来自 E2Rank,经 Qwen3-Max 重标注),每条包含 1 个 query、1 个正样本、15 个负样本,提供细粒度对比信号。第二阶段 1 个 epoch,超参与 stage 1 一致。

两阶段都优化式 (8) 的联合 loss——这保证 encoder 的 retrieval capability 在整个训练过程中始终被维护,避免 stage 2 把 encoder 跑偏。

2.7 End-to-End Joint Optimization

与 PE-Rank 的"先训 projector 做表征对齐、再训 reranker 做排序"的解耦流程不同,ResRank 从训练开始就 同时 全参数微调 Encoder-LLM 与 Reranker-LLM。设计动机有二:

  1. 解耦训练限制 encoder 输出空间:单独训出的 passage embedding 未必适合下游 reranker 任务,joint training 让 encoder 根据 reranker 的反馈信号自适应调整表征。
  2. 协同适应:encoder 持续根据 reranker 反馈进化,而 reranker 也学会更好地利用 encoder 不断变化的输出,形成两个模块互相塑形的 synergy。

实现上:Reranker = Qwen3-4B(强 instruction-following),Encoder = Qwen3-Embedding-4B;FlashAttention 加速、DeepSpeed ZeRO-2 分布式训练。

三、关键技术细节

3.1 输入构造模板

Reranker 的输入(式 2)按顺序拼接:

[Instruction tokens][Query tokens][<d1><d2>...<dn>][Query tokens (anchor)][<|endoftext|>]
  • <di> 是 placeholder token,被替换为 encoder 输出的 $\mathbf{e}_i$ 向量(直接注入 input embedding 空间)
  • 末尾追加的 query anchor 让 reranker 在每个 passage embedding 之后再次 "看到" query,强化 query-passage 关联
  • <|endoftext|> 即 EOS,其 hidden state 作为 global aggregation embedding

3.2 Sliding-window 与 single-pass 两种推理模式

为公平对比基线,论文同时报告:

  • ResRank:single-pass 模式,所有候选一次性输入 reranker——为 真实工业部署目标配置
  • ResRank_sw:sliding window 模式(与 RankGPT、RankZephyr 等基线一致的评测协议)——纯做对比用

论文明确强调"in practical industrial search engines, sliding window 会导致 multiplicative latency overhead,部署难度大;除非显式标注 sliding window,所有其他实验都用 single-pass"。

3.3 与 PE-Rank 的架构差异

维度 PE-Rank ResRank
Encoder 与 Reranker 关系 异构(embedding model + reranker LLM),需 projector 桥接 同源(Qwen3-Embedding-4B + Qwen3-4B),同 hidden dim,无需 projector
训练流程 两阶段:先训 projector 对齐表征,再训 reranker 排序(解耦) 端到端 joint training,dual-stage SFT 一致优化
残差连接 有,$\mathbf{r}_i = \mathbf{h}_i^p + \mathbf{e}_i$
输出形式 dynamic-constrained AR decoding(生成 ~180 tokens) cosine similarity(生成 0 token)
Multi-task loss 仅 ranking loss RankNet + InfoNCE,保护 encoder retrieval 能力

四、实验设置

4.1 数据集与评估

  • In-domain:TREC Deep Learning 2019 (DL19) 与 2020 (DL20) test set
  • Out-of-domain:BEIR 八个数据集 — Covid, NFCorpus, Touche, DBPedia, SciFact, Signal, News, Robust
  • 所有方法重排 BM25 检索的 top-100 候选
  • 主指标:nDCG@10(与该领域标准做法一致)

4.2 训练数据

  • Stage 1:232,419 条样本(源自 PE-Rank),用 Qwen3-Max 重新标注以保证一致高质量相关性判断
  • Stage 2:约 87,000 条高质量样本(源自 E2Rank),同样 Qwen3-Max 重标注;每条 = 1 query + 1 正样本 + 15 负样本
  • 标注 prompt 在 Appendix A 给出(图 5、6),让 Qwen3-Max 同时输出 ranking permutation 和 4 级 relevance label(0=Irrelevant, 1=Slightly Relevant, 2=Relevant, 3=Highly Relevant)

4.3 Baselines

四类基线:

类别 模型
Cross-encoders(监督训练) monoBERT, monoT5
Zero-shot LLM 重排器 RankGPT-3.5, RankGPT-4, TourRank
Full-text fine-tuned LLM 重排器 ListT5, RankVicuna, RankZephyr, RankMistral
Compressed-token fine-tuned LLM 重排器 PE-Rank

ResRank 同时报告 single-pass(默认部署配置)与 ResRank_sw(sliding window,便于公平对比)两条结果。

五、主要实验结果

5.1 BEIR Out-of-Domain 评估(Table I)

Model Ret. Covid NFCorpus Touche DBPedia SciFact Signal News Robust Avg.
BM25 0.5947 0.3375 0.4422 0.3180 0.6789 0.3305 0.3952 0.4070 0.4380
Supervised (human annotations)
monoBERT BM25 0.7001 0.3688 0.3175 0.4187 0.7136 0.3144 0.4462 0.4935 0.4716
monoT5 BM25 0.8071 0.3897 0.3241 0.4445 0.7657 0.3255 0.4849 0.5671 0.5136
Unsupervised LLM listwise
RankGPT-3.5 3×BM25 0.7667 0.3562 0.3618 0.4447 0.7043 0.3212 0.4885 0.5062 0.4937
RankGPT-4 3×BM25 0.8551 0.3847 0.3857 0.4712 0.7495 0.3440 0.5289 0.5755 0.5368
TourRank 3×BM25 0.8259 0.3799 0.2998 0.4464 0.7217 0.3083 0.5146 0.5787 0.5094
LLM listwise distillation-trained
RankMistral 6×BM25 0.7800 0.3310 0.2746 0.3771 0.6622 0.3004 0.3710 0.3954 0.4365
ListT5-base 6×BM25 0.7830 0.3560 0.3340 0.4370 0.7410 0.3350 0.4850 0.5210 0.5090
ListT5-3B 6×BM25 0.8470 0.3770 0.3360 0.4620 0.7700 0.3380 0.5320 0.5780 0.5300
PE-Rank 6×BM25 0.7772 0.3639 0.3306 0.4005 0.6938 0.3374 0.4970 0.4740 0.4843
ResRank 6×BM25 0.8409 0.3973 0.3948 0.4583 0.7642 0.3527 0.5485 0.5964 0.5440
ResRank_sw 6×BM25 0.8500 0.3994 0.3994 0.4547 0.7696 0.3337 0.5332 0.6182 0.5448

关键发现

  1. distillation 类内全胜:ResRank 平均 0.5440 显著超越所有 distillation-trained 基线,比同样基于 compressed-token 的 PE-Rank 高出 >5 绝对点——直接验证残差结构 + 余弦打分 + 端到端联合训练三件套的累积收益。
  2. single-pass 模式逼近 GPT-4:ResRank single-pass(0.5440)已超过 RankGPT-3.5(0.4937)和 TourRank(0.5094),逼近基于最强商用 LLM 的 RankGPT-4(0.5368),并在 Signal、News 等数据集上拿到该榜全场最优。
  3. sliding window 拉满 effectiveness:ResRank_sw 平均 0.5448 取得跨基线全场最高,并在 NFCorpus、Robust 等数据集摘下榜首——但论文反复强调这只是为公平对比留作参考,实际部署应当用 single-pass。

5.2 TREC DL In-Domain 评估(Table II)

Model Ret. DL19 DL20
BM25 0.5058 0.4796
Supervised (human annotations)
monoBERT 2×BM25 0.7050 0.6728
monoT5 2×BM25 0.7183 0.6889
Unsupervised LLM listwise
RankGPT-3.5 3×BM25 0.6580 0.6291
RankGPT-4 3×BM25 0.7559 0.7056
TourRank 3×BM25 0.7163 0.6956
LLM listwise distillation
RankVicuna 8×BM25 0.6682 0.6549
RankZephyr 8×BM25 0.7420 0.7086
RankMistral 8×BM25 0.7173 0.6807
ListT5-base 8×BM25 0.7180 0.6810
ListT5-3B 8×BM25 0.7180 0.6910
PE-Rank 8×BM25 0.7048 0.6354
ResRank 8×BM25 0.7359 0.6865
ResRank_sw 8×BM25 0.7457 0.6906

关键发现

  1. ResRank single-pass 在 DL19 和 DL20 都显著超越 PE-Rank(DL19: 0.7359 vs 0.7048,DL20: 0.6865 vs 0.6354),证明改进在 in-domain 同样成立。
  2. ResRank_sw 在 DL19 拿到 0.7457,仅次于 RankGPT-4;在 DL20 上与 ListT5-3B 持平——它运行的是 single-token compressed representation,却能与基于 full-passage 的 distilled reranker 匹敌,是根本不同的效率范式。

5.3 端到端检索-重排(Table III)

ResRank 的 multi-task 设计的一个独特优势是 encoder 本身可作为第一阶段检索器,整套系统形成统一 pipeline。

Model Ret. Covid NFCorpus Touche DBPedia SciFact Signal News Robust BEIR Avg. DL19 DL20
ResRank BM25 0.8409 0.3973 0.3948 0.4583 0.7642 0.3527 0.5485 0.5964 0.5440 0.7359 0.6865
ResRank ResRank 0.8643 0.4313 0.3245 0.4885 0.7941 0.2773 0.4113 0.6626 0.5317 0.7634 0.7462
ResRank ResRank+BM25 0.8839 0.4342 0.3626 0.5038 0.7809 0.3094 0.4698 0.6771 0.5527 0.7821 0.7499

关键发现

  1. ResRank 自身做 retriever 在 TREC DL 大幅胜过 BM25 retriever(DL19: 0.7634 vs 0.7359, DL20: 0.7462 vs 0.6865),证明 joint training 让 encoder 输出的候选集比 BM25 更"对齐 reranker 期望"——单测 retrieval 时 encoder 在 dense-friendly 数据集(NFCorpus、Robust、SciFact)也取得明显优势。
  2. ResRank dense retrieval 在 lexical-friendly 数据集(Signal, News, Touche)反不如 BM25——和 dense vs lexical 检索的经典权衡一致。
  3. 最佳配置为 ResRank+BM25(RRF 融合,K=60),结合 sparse 与 dense 互补优势:BEIR avg 0.5527、DL19 0.7821、DL20 0.7499,全场最优。这个数字从根本上验证了 end-to-end joint training 的设计假设——encoder 学到 reranker-aligned 表征,reranker 拥抱 encoder 进化中的输出,两侧之合协同放大整体收益。

5.4 推理效率分析(Table IV、Figure 2)

Model TREC DL19 nDCG TREC DL19 #Proc. TREC DL19 Avg. $L_p$ TREC DL19 #Gen. Covid nDCG Covid #Proc. Covid Avg. $L_p$ Covid #Gen.
RankMistral_p 0.7196 9635 96.4 910 0.7780 40039 400.4 987
RankMistral_s 0.7050 6021 60.2 882 0.7385 9702 97.0 930
RankMistral_t 0.4543 653 6.5 865 0.7540 2636 26.4 917
PE-Rank 0.7048 100 1.0 180 0.7772 100 1.0 180
ResRank 0.7359 100 1.0 0 0.8409 100 1.0 0

下标说明:RankMistral_p = 原文,RankMistral_s = 摘要,RankMistral_t = 标题。$L_p$ 为平均 per-passage token 数。

Fig. 2: Effectiveness vs. efficiency trade-off

关键发现

  1. 效果-效率全面碾压:ResRank 同时满足 nDCG 最高(DL19: 0.7359, Covid: 0.8409)、#Processed token 最少(100,每段 1 token)、#Generated token = 0;坐标系上它孤悬于左上角,是唯一同时占据"高效果 + 低开销"两极的方法。
  2. PE-Rank vs ResRank 关键差距在生成阶段:两者输入端都是 100 token、$L_p = 1.0$,但 PE-Rank 仍要 constrained-decode 180 个输出 token,ResRank 直接 0 token——这是把 listwise reranker 的"生成排列"任务彻底改写为"并行打分"的根本性收益。
  3. 粗暴文本压缩走不通:RankMistral_s(摘要)和 RankMistral_t(仅标题)在显著降低 token 数的同时性能也大幅退化,特别是 $t$ 变体在 DL19 上 nDCG 跌至 0.4543,证明 naive text compression 会丢失关键语义信号——必须在 embedding 空间 做压缩并配合端到端联合训练。

六、消融与分析

6.1 整体消融(Table V & Figure 3)

Fig. 3: Ablation study summary

Variant Covid NFCorpus Touche DBPedia SciFact Signal News Robust BEIR Avg. DL19 DL20
ResRank (full) 0.8409 0.3973 0.3948 0.4583 0.7642 0.5485 0.5964 0.5440 0.7359 0.6865
W/O 1st Stage 0.8249 0.3948 0.4366 0.4436 0.7694 0.3523 0.5366 0.5903 0.5436 0.7091 0.6295
W/O 2nd Stage 0.8469 0.3940 0.3937 0.4421 0.7551 0.3534 0.5365 0.5385 0.5385 0.7210 0.6791
W/O Hidden State 0.8528 0.3883 0.2850 0.4338 0.7300 0.2877 0.5180 0.5771 0.5091 0.7245 0.6585
W/O Residual Conn. 0.8293 0.3871 0.4314 0.4486 0.6960 0.3227 0.5350 0.5936 0.5305 0.7250 0.6652
W/O Encoder SFT 0.8327 0.3920 0.4268 0.4496 0.7482 0.3598 0.5324 0.5927 0.5418 0.7148 0.6633
W/O Encoder Loss 0.8406 0.3960 0.4072 0.4589 0.7643 0.3610 0.5419 0.5995 0.5462 0.7352 0.6791

注:W/O Hidden State 在 News 列原文未列数值。

关键观察

  • Dual-Stage Training:去 Stage 1 在 in-domain DL20 暴跌 5+ 点(0.6865 → 0.6295),但 BEIR avg 几乎不变;去 Stage 2 在 in-domain 较温和但 BEIR 全面降低。第一阶段建立基础排序行为,第二阶段做细粒度精修,二者贡献互补。
  • W/O Hidden State(仅用 $\mathbf{e}_i$ 作 passage 表示,丢弃 $\mathbf{h}_i^p$):BEIR avg 跌 3+ 点(0.5440 → 0.5091),Touche、Signal、SciFact 均大幅下降——丢失全部 cross-passage 上下文信号,等同于退化为纯 embedding cosine 检索。
  • W/O Residual Conn.(仅用 $\mathbf{h}_i^p$ 作 passage 表示,丢弃 $\mathbf{e}_i$):BEIR avg 跌至 0.5305,Signal 和 SciFact 较为受影响——证明 encoder 的 passage-level 信号对 reranker 的稳定优化不可或缺。两个 ablation 一起表明残差结构(两侧叠加)确实是各取所长。
  • W/O Encoder SFT(冻结 encoder):性能在 TREC DL 和 BEIR 都有所下降——只让 encoder 跟随 reranker 反馈进化才能产生 better-aligned 表征。
  • W/O Encoder Loss(去 InfoNCE 仅留 RankNet):reranking 性能反而 marginally 提升(BEIR avg 0.5462 vs 0.5440),但 encoder 的 standalone retrieval 能力 severely degraded,无法在 end-to-end 流水线中担任第一阶段检索器。这一 trade-off 明确论文为何要保留 multi-task:稍微牺牲 reranker 性能,换 encoder 的双重身份。

Fig. 4: Effectiveness vs. efficiency trade-off

6.2 输入文档顺序敏感性(Table VI)

Input Order Covid NFCorpus Touche DBPedia SciFact Signal News Robust BEIR Avg. DL19 DL20
Original (BM25 desc.) 0.8409 0.3973 0.3948 0.4583 0.7642 0.3527 0.5485 0.5964 0.5440 0.7359 0.6865
Inverse 0.8260 0.3829 0.2646 0.3782 0.6892 0.2318 0.5131 0.5672 0.4816 0.6822 0.6313
Random 0.8699 0.3856 0.3423 0.4003 0.7246 0.2769 0.5457 0.5856 0.5164 0.6993 0.6577

讨论

  • 原序(BM25 降序)效果最好,因为 causal attention 让靠后的位置看到更多 context;如果相关段落本来就排在前面,cross-passage 信号有更多机会汇聚到末尾。
  • Inverse 顺序(相关段落放最末)严重退化(BEIR avg -6.24 点),Touche 和 Signal 跌幅最大——这是因果注意力的固有特性:靠前位置看不到靠后位置,把 relevant passage 塞到末尾会导致前面的 less-relevant 段落得不到 cross-passage 校正信号,造成 "信息流失衡"。
  • Random 介于两者之间。
  • 论文承认这是 causal attention 类 listwise reranker 的共性缺陷,但实际部署中第一阶段检索器的输出本来就大致按相关性排序,positional bias 自然被缓解;future work 可探索 bidirectional attention 或 position-aware data augmentation。

七、与已归档相关工作的对比

SumRank SumRank: Aligning Summarization Models for Long-Document Listwise Reranking (RUC, 2026-03-25)

关系:独立并发(ResRank 未引用 SumRank,两者殊途同归)· 已加载对方精读

  • 共同关注的问题:两篇论文都直面"LLM listwise reranker 输入长度爆炸 → 延迟 + lost-in-middle"的核心痛点,且都把 TREC DL 系列作为主要 in-domain benchmark;都把"压缩 candidate 文档以减少 reranker 输入长度"作为核心思路;都采用"压缩模块 + 重排模块"的两模块流水线,并都强调要让两个模块的 learning objective 对齐。值得注意的是,SumRank 在 Limitations 中明确写到 "未来计划探索统一的端到端架构,同时压缩文档并输出相关性分数" — 这恰恰就是 ResRank 给出的方案,两篇相隔 1 个月独立提出。
  • 相近的技术骨架:两者都用 LLM-as-compressor + LLM-as-reranker,都依赖多阶段对齐训练(SumRank: cold-start SFT → GRPO;ResRank: dual-stage SFT 全程联合优化),都把"对齐 compressor 与 ranker"作为效果的关键。
  • 本文的差异与推进
  • 压缩粒度:SumRank 做文本级压缩(passage → query-aware 摘要文本),仍要把摘要 token 喂给 reranker,per-passage 仍是几十至上百 token;ResRank 做 embedding 级压缩,per-passage 严格 1 token,token 数差 1-2 个数量级。
  • 生成 vs 打分:SumRank 的 reranker 仍 AR 生成 permutation(Qwen2.5-72B sliding window),延迟 1.95-6.98 秒/query;ResRank 用 cosine similarity 替代 AR decoding,输出 token = 0。
  • 训练范式:SumRank 通过 GRPO 用 reranker NDCG 反馈训 summarizer(独立 reward 模型),训练流水线仍是分阶段串联(先 SFT 再 RL);ResRank 是 从初始 全参数 joint training,encoder 与 reranker 互相塑形——这是 SumRank 自己列为"future work"的方向。

  • 可比的方法 / 实验差异:两者都在 TREC DL 上比对,但量纲和数据集略不同。SumRank (7B) 在 DL19 上 0.6730 (NDCG@10) / 6.98s 延迟;ResRank (4B) 在 DL19 single-pass 上 0.7359——ResRank 的效果与效率均更优,证实"embedding 级压缩 + 余弦打分 + end-to-end joint training"的组合相对"文本摘要 + AR 排序"具有方法论级别优势。但需注意:SumRank 主打长文档(数千词的网页),ResRank 主打短段落(约 100 词的 MS MARCO 段落);ResRank 是否适用于长文档还有待验证,SumRank 的文本可读性优势(摘要可被人类审阅)也是 ResRank 没有的。

Step 2.5 排除候选(仅记录,不写入正文):

  • 2604.03642 DebiasFirst — 同样针对 LLM listwise reranker,但主攻 positional bias 用 IPS-based 校准 + position-aware data augmentation;解法路径与"压缩 + 端到端"完全正交,未入选。
  • 2604.15650 SIF / 2604.08933 IAT — 都做"把样本压缩成 token"的工作,但应用领域是工业推荐排序(Meituan / ByteDance ad),目标是延展用户行为序列长度而非 IR 重排器的候选输入;问题陈述与 ResRank 不同构,未入选。
  • 2603.02999 OneRanker — 同样讲"统一生成与排序",但场景是工业广告 rec 而非 IR retrieval-reranking;问题域不同,未入选。

八、讨论与局限性

8.1 核心贡献

ResRank 给出一个干净自洽的 "统一检索-重排" 框架,通过三个互锁创新同时解决 LLM listwise reranker 落地的两大瓶颈:

  1. Residual passage compression 把 per-passage token 从 hundreds → 1 个,且通过残差连接保住 passage-level 语义;
  2. Cosine similarity-based scoring 把 per-query 生成 token 从 ~n 到 4.5n → 0,把 listwise ranker 的 AR 解码改写成并行向量比较;
  3. End-to-end joint multi-task training 让 encoder 和 reranker 互相塑形,既保住 encoder 的 retrieval 能力又让 reranker 充分利用 encoder 不断进化的输出。

8.2 值得借鉴的设计选择

  • 同源 encoder + reranker 消除 projector:选用同 backbone 同 hidden dim 的 Qwen3-Embedding-4B + Qwen3-4B,让 passage embedding 直接进 reranker input space;这种"借力多模态 LLM 范式但去掉 alignment module"的简化值得搜索/推荐场景借鉴。
  • 加性残差作为 gradient shortcut:在表征空间 fusion 时,简单叠加($\mathbf{h}_i^p + \mathbf{e}_i$)比 concat 或门控更稳——尤其是训练初期对齐尚不稳定时,加性结构提供天然 gradient shortcut,降低优化难度。
  • multi-task loss 的 dual-purpose 设计:保留 InfoNCE 不为 reranking 性能(其实关掉 InfoNCE 反而 marginally 更好),而是为了 encoder 的"双角色"——既做 reranker 内部 compressor 又做独立 first-stage retriever。这种把"模块功能复用"显式写进 loss 的设计模式可推广到 multi-stage 系统。

8.3 局限性

  1. Causal attention 导致顺序敏感:W/O 表 VI 显示 inverse ordering 会让 BEIR avg 跌 6+ 点。论文承认这是该范式的共性缺陷,建议未来用 bidirectional attention 或 position-aware augmentation 缓解。
  2. 未在更长候选列表 / 更大 backbone 上验证:所有实验在 top-100 候选 + 4B 参数模型上展开;scaling 到 top-1000 候选或 32B 模型的可行性未知。
  3. Cosine 打分的天花板:global aggregation embedding 是单向量,要承载 query + n 个 passage 的全部排序信息;当 n 极大或语义需要复杂 pairwise 比较时,单向量可能不够。论文未讨论 vector-of-vectors(multi-vector retrieval 类思路)的 trade-off。
  4. 生成数据依赖 Qwen3-Max:训练数据由 Qwen3-Max 重新标注,在弱评分模型或 domain-shift 场景下泛化性如何,未在论文中探讨。

8.4 工业落地价值

ResRank 是少数把 LLM listwise reranker 的两大延迟来源(输入长度 + AR 生成)同时斩断的方案:top-100 候选下 #Processed = 100 + #Generated = 0,理论上可做到 真实工业搜索引擎延迟预算内 的 LLM listwise rerank 部署。论文出自阿里 Qwen Applications Business Group,与 Qwen3 同源同尺寸的工程选型暗示这套方案有潜力嵌入阿里搜索/电商 stack。对于已经在用 GPT-4 类商用 LLM 做 reranker 的团队,ResRank 提供了一条"用开源 4B 模型在 single-pass 模式下逼近 GPT-4 效果"的迁移路径,性价比清晰。