Retriever Portfolios: A Principled Approach to Adaptive RAG¶
会议: ICML 2026
arXiv: 2605.31176
代码: 无
领域: 信息检索 / 自适应 RAG
关键词: 检索增强生成, 检索器组合, 子模优化, 查询路由, best-of-k
一句话总结¶
本文把 RAG 中"选哪个 retriever"重新表述为一个 best-of-\(k\) 组合优化问题,从 360 个候选 retriever 里离线贪心挑出一个互补的 size-\(k\) 组合(portfolio),并训练一个轻量对比学习路由器在线把每个 query 分发给组合里的 top-\(\ell\) 个成员,在 4 个 QA 基准上同时打过单 retriever 和 Vendi-RAG 类推理时调参方法,并显著降低 token 和延迟成本。
研究背景与动机¶
领域现状:主流 RAG 系统几乎都是"选一个 retriever + 一套固定超参数"打天下,从早期 DPR、FiD 一路到 Self-RAG 都遵循 one-size-fits-all 的范式(Lewis 2020;Karpukhin 2020;Shuster 2021)。
现有痛点:QA query 的分布高度异质——有的是单跳 factoid 题(lexical 命中就够),有的是多跳推理题(需要语义多样的多文档聚合),有的是领域术语题。已经有充分证据显示任何一个固定 retriever 都不可能在所有 query 上最优(Karpukhin 2020;Jeong 2024;Kalra 2025a),即使是同一个参数化 retriever,最优超参数也随 query 漂移(Rezaei & Dieng 2025)。
核心矛盾:现有自适应方案要么走"少数预设策略 + 分类器"路线(Adaptive-RAG 只在"不检索 / 单步 / 多步"三档里选),要么走"per-query 在线超参搜索"路线(Vendi-RAG 在每个 query 上迭代 retrieve-generate-judge 调 diversity 参数 \(s\))。前者表达能力太弱、后者推理成本爆炸且无法并行。
本文目标:在不做 per-query 在线搜索的前提下,从一个大的候选 retriever 池里挑出一个小的、行为互补的子集,使其在期望意义下覆盖 query 分布的不同区域。
切入角度:把每个 retriever 视作算法选择问题里的"候选算法",每个 query 视作"问题实例",于是 RAG 检索器选择问题 = 数据驱动的 solution portfolio 问题(Drygala 2025)/ catalogue 问题(Kleinberg 2004)。一旦套上这个外壳,目标函数 \(F(S)=\mathbb{E}_{q}[\max_{r\in S} s(q,r)]\) 自动满足非负、单调、子模性,于是经典贪心就有 \((1-1/e)\) 近似。
核心 idea:用 best-of-\(k\) 组合目标替代 average 目标 + 离线贪心选 portfolio + 在线对比学习路由器,把"自适应"这件事的开销摊销到离线阶段。
方法详解¶
整体框架¶
整套 pipeline 分两阶段:
离线阶段:在训练 query 集上对所有候选 retriever 评估打分得到分数矩阵 \(s(q,r)\in[0,1]\)(论文里用 Recall@\(k\) 作为 \(s\)),然后用 Algorithm 1 贪心地挑 \(k\) 个 retriever 出来组成 portfolio \(S\)。同时基于 retrieval 监督训练一个 contrastive router。
在线阶段:来一个 query \(\mathbf{q}\),router 把它编码后和 \(k\) 个"retriever embedding"算相似度,挑出 top-\(\ell\) 个 portfolio 成员并行执行检索 + LLM 生成,最后 selector 聚合候选答案。关键点是 \(\ell\le k\) 都是固定的小常数,所以延迟可预测、调用可并行。
关键设计¶
-
Best-of-\(k\) 组合目标 + 子模性近似保证:
- 功能:把"选哪个 retriever"重写成一个可证明的组合优化问题。
- 核心思路:定义 portfolio \(S\subseteq\mathcal{R}\) 的得分为 \(\mathrm{score}(q,S)=\max_{r\in S} s(q,r)\),整体目标 \(F(S)=\mathbb{E}_{q\sim\mathcal{D}}[\max_{r\in S} s(q,r)]\)。这个 \(\max\) 形式天然奖励"覆盖不同 query 子群"的成员(行为相似的冗余 retriever 对最大值几乎没贡献)。Algorithm 1 是采样 \(N\) 个 query 后跑贪心:每步加一个边际增益 \(\frac{1}{N}\sum_{q\in Q}\max(0,s(q,r)-V[q])\) 最大的 \(r\),并把 \(V[q]\) 维护成"当前 \(S\) 在 \(q\) 上的最优得分",于是每步 \(\mathcal{O}(|\mathcal{R}|N)\)。理论侧给出 Theorem 3.1:取 \(N=\mathcal{O}((k\log|\mathcal{R}|+\log(1/\delta))/\epsilon^2)\) 样本,以 \(1-\delta\) 概率有 \(F(S)\ge (1-1/e)\mathrm{OPT}-\epsilon\)。
- 设计动机:之前的 Adaptive-RAG / Vendi-RAG 都是启发式,没有形式化"覆盖异质 query 分布"这件事。把目标设成 best-of-\(k\) + 子模 + Hoeffding 联合界后,可以理论保证贪心选出来的 portfolio 接近最优、且样本复杂度只跟 \(\log|\mathcal{R}|\) 走(独立于 query 分布的支撑大小),这是工程上把候选池开到 360 还跑得动的根本原因。
-
跨家族 + 双 backbone 的 360 维候选池:
- 功能:给 portfolio 选择算法准备一个真正异质的候选集,让 \(\max\) 算子有可挑的对象。
- 核心思路:候选池由三个 retriever 家族 × 两个 embedding backbone(MPNet 与 E5)拼接而成。① DiscountedSimilarity (DS):在 FAISS top-\(M=1000\) 候选里贪心选 \(n=4\) chunk,参数 \((\gamma, r)\) 控制对已选 chunk 的相似度惩罚,每个 backbone 140 + 1 个 dense baseline = 141 个配置。② Vendi:用 Vendi-score 在相关性和集合内多样性之间权衡,diversity 参数 \(s\in[0,1]\) 步长 0.05 共 21 配置。③ GraphDense:先用 query 实体在"实体-chunk 二部图"上做 BFS 扩展,再用 MPNet/E5 重排,扫 hop 数、实体最大文档频次等共 36 配置。最终全池 \(|\mathcal{R}|=360\)。打分矩阵在两个 backbone 上分别缓存 candidate 集合,batched 评估,使得 \(360\times|Q|\) 规模的 score table 离线可计算。
- 设计动机:portfolio 思想的实际收益完全取决于"候选成员是否真互补"。如果候选池里只有 DS 的不同 \(\gamma\),那 best-of-\(k\) 就和单 retriever 没区别。论文实测 size-5 portfolio 里同时出现了 GraphDense/E5、Vendi/E5 多个不同参数和 GraphDense/MPNet(见 Table 2),印证只有跨家族 + 跨 backbone 才能让 greedy 在前几步就显著拉开和"top-\(k\) by average score" baseline 的差距。
-
离线 portfolio + 在线 contrastive router 的两段式 pipeline:
- 功能:避免在线 per-query 超参搜索的高延迟,把"挑哪个 retriever 给当前 query"压成一次轻量前向。
- 核心思路:router 输入 query 原文 + cached MPNet 与 E5 query embedding,过一个 frozen Flan-T5-Large encoder 得到文本表示,再 fuse 两个 backbone-specific dense embedding,输出对每个 portfolio 成员的相似度分。训练目标沿用 Chen et al. 2024 的 multi-positive contrastive loss——把"在该 query 上取得最高 Recall@\(k\) 的 retriever"作为正样本。推理时取 top-\(\ell\)(论文主表用 \(\ell\in\{2,3\}\))个成员并行跑检索 + LLM 答案生成,最后用同一个 LLM 作 selector 聚合。
- 设计动机:相比 Vendi-RAG 那种"retrieve → generate → LLM judge → 调 \(s\) → 再 retrieve"的串行循环,本文的 router 一次前向就决定 routing,所有 \(\ell\) 个分支可以并行执行;token 开销和 wall-clock 都对 \(\ell\) 线性、对 \(k\) 无关,因此 \((k=4,\ell=2)\) 这种配置既保住准确率又拿到可预测的服务成本——这正是 Figure 4 里 portfolio 在 cost-accuracy 平面上压过 Vendi-RAG 的原因。
损失函数 / 训练策略¶
- 离线 portfolio:以 Recall@\(k\) 作为 \(s(q,r)\)(用 ground-truth 支撑文档算),所有 4 个训练集 query 池化为 union training set 后跑 Algorithm 1,主结果用 \(k=4\) 或 \(5\)。
- Router:multi-positive contrastive,positives = 该 query 上 Recall@\(k\) 最高的 retriever;具体 loss / tie 处理 / 优化器在附录 B.9。
- 答案模型:Gemma-3-27B-It 和 Llama-3.1-70B-Instruct,全程 prompt 模板固定保证公平比较。
实验关键数据¶
主实验¶
四个 QA 基准(HotpotQA / MusiQue / TriviaQA / 2WikiMultiHopQA),两个 answer LLM,end-to-end Exact Match(节选 Table 3,加粗为该列最优):
| 方法 | HotpotQA (Gemma) | MusiQue (Gemma) | 2Wiki (Gemma) | HotpotQA (Llama) | MusiQue (Llama) | 2Wiki (Llama) |
|---|---|---|---|---|---|---|
| No retrieval | 0.326 | 0.061 | 0.226 | 0.348 | 0.059 | 0.192 |
| NN retrieval (MPNet) | 0.395 | 0.129 | 0.241 | 0.476 | 0.139 | 0.292 |
| Best DS retriever | 0.513 | 0.139 | 0.354 | 0.435 | 0.109 | 0.244 |
| Best Vendi retriever | 0.511 | 0.143 | 0.356 | 0.433 | 0.112 | 0.245 |
| Vendi-RAG (\(T=20\)) | 0.285 | 0.131 | 0.256 | 0.483 | 0.206 | 0.290 |
| All-pool portfolio \((k{=}4,\ell{=}2)\) | 0.552 | 0.173 | 0.405 | 0.590 | 0.182 | 0.414 |
| All-pool portfolio \((k{=}4,\ell{=}3)\) | 0.558 | 0.195 | 0.414 | 0.583 | 0.209 | 0.419 |
Retrieval-only 端(Figure 3,跨 4 数据集平均):size-5 学得 portfolio 拿到 Support Recall 0.594 / F1 0.500,而 "top-5 by average score" baseline 只有 0.492 / 0.432,差距在 10 个点量级。
消融实验¶
| 配置 | 关键指标 | 说明 |
|---|---|---|
| Top-\(k\) by avg score | Recall 0.492 @ \(k=5\) | 按平均分挑 top-5,被相似的 GraphDense/E5 配置霸榜,缺互补性 |
| Single retriever × 4\(k\) docs | F1 从 0.32 → 0.11 (\(k{=}1\to 5\)) | 单 retriever 多检 chunk 反而把 F1 拖死,因为引入大量非支撑文档 |
| Portfolio \(k=2\) | 优于单 retriever 取 20 docs | 证明收益来自 retriever 互补,不是"塞更多 context" |
| Vendi-only portfolio \((k{=}5,\ell{=}2)\) | EM 平均明显低于 all-pool | 限定到单家族单 backbone 后,portfolio 优势缩水,凸显跨家族池的价值 |
| Routing budget \(\ell=2 \to 3\) | EM 在 MusiQue / 2Wiki 上明显涨 | \(\ell\) 是 cost-accuracy 的旋钮,TriviaQA 简单题 \(\ell{=}2\) 足够 |
关键发现¶
- 互补性 > 平均分:portfolio 的第 2、3 名往往不是平均分最高的 retriever,而是"覆盖前面成员失败 query"的成员,这是 best-of-\(k\) 目标与 average-best 选择最本质的差异。
- 多检 ≠ 互补:单 retriever 把返回 chunk 数翻倍并不能取代 portfolio——Recall 涨但 F1 暴跌,说明额外 chunk 是噪声而非新信号。
- 离线 portfolio 在受控比较里全面碾压 Vendi-RAG:在只放 Vendi/MPNet 的同一搜索空间下,固定 portfolio 在更少 token 和更低 wall-clock 下达到甚至超过 Vendi-RAG 的 EM;Vendi-RAG 偶尔反超也需要付出几倍 token 代价。
- 跨数据集泛化:一个 union-trained portfolio 在所有 4 个数据集上同时打过对应的家族最佳 retriever,说明 best-of-\(k\) 目标在 union 训练集上学到的 retriever 互补性是跨任务可迁移的。
亮点与洞察¶
- 把 RAG 检索器选择套进 solution portfolio 框架:一旦认出 \(\max_{r\in S}s(q,r)\) 是 query 维度上的 coverage 函数,整个体系(子模性、\((1-1/e)\) 紧近似、\(\log|\mathcal{R}|\) 样本复杂度)立刻落地,是把组合优化经典结果"恰到好处地"移植到 RAG 的好例子。
- 离线摊销 = 推理可并行:相比一切 inference-time tuning(Vendi-RAG / Self-RAG),portfolio 在线只是 routing + 并行执行,没有任何依赖前一步输出的串行环节,这对延迟敏感的生产系统是直接卖点。
- router 训练目标的设计:以"Recall@\(k\) 最优的 retriever"为 contrastive 正样本,巧妙地把"挑 retriever"问题转成了一个标准 contrastive embedding 学习问题,这套思路可以直接迁移到 expert LLM 路由、tool-use agent 的工具挑选等问题。
- 方法是"objective + 候选池",对 retriever 形态无要求:sparse、graph、生成式 retriever 都能直接塞进 \(\mathcal{R}\),未来扩展到 BM25 + LLM-as-retriever 几乎不用改算法。
局限与展望¶
- 依赖训练集有 ground-truth 支撑文档:评分矩阵 \(s(q,r)\) 用的是 Recall@\(k\),依赖每条 query 标注好的 supporting documents。开放域、无标注的真实生产 query 该用什么 proxy 打分(LLM judge?click-through?)作者未深入。
- 目标函数限定 \(|S|\le k\) 而非按 cost 加权:现实里不同 retriever 的检索/嵌入成本差异很大(dense vs graph BFS),论文目前只控制数量,不控制单次成本,对成本不均的候选池可能选出昂贵 portfolio。
- router 在分布漂移下的鲁棒性未测:训练 query 池 union 自 4 个学术 QA 数据集,路由器在面对真实世界领域漂移(医学/法律)时是否会把 query routing 到错误成员,缺乏实证。
- 未与最新 retriever-LLM 联合训练方案对比:例如把 retriever 嵌入和 LLM 联合 fine-tune 的方案是否会让 portfolio 优势缩小,是一个值得跟进的实验。
- 可改进方向:把 \(|S|\le k\) 改成 knapsack 约束(\(\sum_{r\in S} c(r)\le B\)),子模 + knapsack 上仍有 \((1-1/e)\) 近似,可以原生支持异质成本;或者把 portfolio 学习与 router 训练 end-to-end 联合(当前是两阶段独立的)。
相关工作与启发¶
- vs Adaptive-RAG (Jeong 2024):Adaptive-RAG 用 query 复杂度分类器在 3 个手工策略(no-/single-/multi-step)里选,本文则是从 360 个细粒度 retriever 配置里组合优化选 portfolio,表达空间和理论保证都强一档。
- vs Vendi-RAG (Rezaei & Dieng 2025):Vendi-RAG 在线 per-query 迭代调 diversity 参数 \(s\),需要 retrieve-generate-judge 串行循环;本文把同一个 \(s\) 搜索空间离线压缩成固定 portfolio,推理 token 数和延迟显著降低且可并行。
- vs MoR (Kalra 2025b):MoR 是在给定异质 retriever 集合上做 score-level fusion;本文先解决怎么从大池里选小集合的问题,再叠 routing,两者正交、可组合(先用本文挑出 portfolio,再用 MoR 在线 fusion 也行)。
- vs RouterDC (Chen 2024):RouterDC 把 expert LLM 用 dual contrastive 路由起来;本文 router 训练直接借用了该 multi-positive contrastive 范式,把路由对象从 LLM 换成 retriever,但理论贡献集中在 portfolio 选择问题本身。
- vs Drygala 2025 / Kleinberg 2004:理论祖先——data-driven solution portfolio 与 segmentation problems 给出了 \((1-1/e)\) + 子模 + 样本复杂度的工具箱,本文是其在 RAG 场景下的精确实例化与工程落地。
评分¶
- 新颖性: ⭐⭐⭐⭐ 把 RAG 检索器选择重新表述为有理论保证的 best-of-\(k\) portfolio 问题,是 RAG 领域内少见的"先把问题形式化再上算法"的工作。
- 实验充分度: ⭐⭐⭐⭐ 4 个 QA 基准 × 2 个 answer LLM × 360 候选 retriever,主表、消融、cost-accuracy 都有;缺无标注 query 下的真实生产实验。
- 写作质量: ⭐⭐⭐⭐ 问题动机、理论保证、pipeline 结构清晰;公式和算法伪代码完整;个别图表(Figure 3/4)依赖说明文字读懂。
- 价值: ⭐⭐⭐⭐ 提供一个可立刻接入现有 RAG 系统的"离线选 portfolio + 在线 route"范式,token 和延迟优势对工业部署友好。