M7-021M7: Retrieval, Ranking & RecSysHybrid Retrieval & RRF FusionMedium
Mastery:
Hybrid Retrieval & RRF Fusion: 解释多路召回的设计与配额分配。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 多路(稀疏/稠密/i2i/热门/新品)各自召回再融合;需分配各路的候选配额(top-k)与去重。
📌 Key Takeaways
- •多路召回:稀疏、稠密、协同(i2i/u2i)、热门、新品、规则
- •配额:每路取多少候选(总候选数受'重排预算'限制)
- •去重:同一文档可能被多路召回
📐 Mathematical Derivations
数学机理:<strong>多路召回的设计</strong>——(1) <strong>为什么要多路</strong>——不同通道捕获<strong>不同信号</strong>:(a) <strong>稀疏(BM25)</strong>——精确匹配;(b) <strong>稠密(嵌入)</strong>——语义匹配;(c) <strong>协同过滤(i2i/u2i)</strong>——'相似物品/相似用户'(利用行为数据,捕捉'语义之外'的关联);(d) <strong>热门</strong>——流行度(质量/权威性的代理);(e) <strong>新品/时效</strong>——新鲜度;(f) <strong>规则/运营</strong>——人工干预(促销/合规);(g) <strong>图/知识</strong>——关系(如'同一作者的其他作品')。<strong>没有单路能覆盖所有需求</strong>——故多路是工业检索/推荐的标配。(2) <strong>配额分配(quota)</strong>——每路取多少候选?总候选数 K 受<strong>重排预算</strong>限制(重排的算力 ∝ 候选数)。<strong>分配依据</strong>——(a) <strong>各路的'独有贡献'</strong>(该路能召回多少'其他路召不到的相关文档')——独有贡献大的多给配额;(b) <strong>各路的精度</strong>(precision@k)——精度高的多给;(c) <strong>业务优先级</strong>(新品/促销需保证曝光);(d) <strong>经验/调参</strong>(A/B 测试优化)。<strong>常用做法</strong>——(a) <strong>固定配额</strong>(如稀疏 100 + 稠密 100 + 协同 50 + 热门 20);(b) <strong>动态配额</strong>(按查询类型调整:精确型查询多给稀疏、语义型多给稠密);(c) <strong>按分数/排名截断</strong>(而非固定数量);(d) <strong>去重后合并</strong>(见下)。(3) <strong>去重(dedup)</strong>——同一文档可能被多路召回;<strong>处理</strong>——(a) <strong>按 id 去重</strong>(保留最高分/最早出现);(b) <strong>近重复检测</strong>(同一内容的不同版本);(c) <strong>'多路命中'作为特征</strong>(被多路召回说明更相关——可用于融合打分)。(4) <strong>融合</strong>——用 RRF 或学习式融合(见前两题)。<strong>工程要点</strong>——(a) <strong>并行执行</strong>(各路并行,延迟 = 最慢一路 + 融合);(b) <strong>超时与降级</strong>(某路超时则跳过,保证可用性);(c) <strong>配额可配置</strong>(便于调优);(d) <strong>监控各路的贡献</strong>(独有贡献、精度、延迟)。<strong>与其他阶段的关系</strong>——(a) <strong>召回 → 粗排 → 精排 → 重排</strong>(多级级联);多路召回是'召回'阶段的设计;(b) 多路召回的目标是<strong>高召回</strong>(尽量不漏),精度靠后续阶段。<strong>实践建议</strong>——(a) <strong>至少 2~3 路</strong>(稀疏 + 稠密 + 协同);(b) <strong>配额按'独有贡献'调</strong>(而非平均分配);(c) <strong>去重 + 多路命中特征</strong>;(d) <strong>并行 + 降级</strong>(可用性);(e) <strong>监控每路的独有贡献</strong>(若某路贡献低则砍掉,省成本)。<strong>度量</strong>——(a) <strong>各路的独有召回</strong>(其他路漏掉的相关文档数);(b) <strong>总召回率</strong>(合并后的 Recall@K);(c) 延迟与成本;(d) 端到端 NDCG。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'各路的独有贡献'是配额分配的核心依据</strong>——若某路只召回'其他路也能召回的文档',则它无价值;面试中能指出这一点是深度理解的标志。② <strong>'协同过滤通道捕捉语义之外的关联'</strong>——如'买了 A 的人也买 B'(行为共现),这是嵌入与 BM25 都捕捉不到的;故多路是必需的。③ <strong>'热门/新品通道'是业务需求</strong>——它们不优化'相关性',但保证'曝光与新鲜度';故需在配额中预留。④ <strong>'多路命中作为特征'</strong>——被多路召回说明更相关(可作为融合或排序的特征);这是'免费'的信号。⑤ <strong>'并行 + 降级'保证可用性</strong>——某路超时不应拖垮整个检索。⑥ <strong>面试要点</strong>——被问'多路召回怎么设计',应给出'<strong>通道类型(稀疏/稠密/协同/热门/新品/规则)+ 配额(按独有贡献/精度/业务优先级)+ 去重 + 融合</strong>'与'<strong>并行执行 + 监控各路贡献</strong>';能指出'按独有贡献分配配额'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕平均分配配额(未按贡献)
- ✕不做去重(同一文档重复占候选位)
🎯 Interviewer Follow-ups
- ?配额如何分配?
- ?为什么需要'热门/新品'这类'非相关性'通道?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.