M7-055M7: Retrieval, Ranking & RecSysRecommender Systems FoundationsMedium
Mastery:
Recommender Systems Foundations: 解释召回-排序两阶段架构。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 召回从百万级取千级(多路、快);排序对千级精排(慢、准);两阶段是算力约束下的必然。
📌 Key Takeaways
- •召回:百万→千(多路、双塔/CF/热门,快)
- •排序:千→十(深度模型,准、慢)
- •为什么分两阶段:算力预算固定,不能对百万级用重模型
📐 Mathematical Derivations
数学机理:<strong>两阶段架构的必然性</strong>——(1) <strong>算力约束</strong>——用深度排序模型(含大量特征、数十层网络)对<strong>百万级</strong>物品打分不可行(算力 ∝ 物品数 × 单次成本);故需<strong>先粗筛</strong>:用<strong>廉价</strong>方法把候选从百万降到千,再用<strong>昂贵</strong>方法精排。(2) <strong>召回阶段</strong>——(a) <strong>目标</strong>——<strong>高召回</strong>(尽量不漏掉用户可能喜欢的);(b) <strong>方法</strong>——<strong>多路召回</strong>(i2i/u2i/热门/新品/向量检索)+ <strong>融合</strong>(见多路召回题);(c) <strong>模型</strong>——双塔(可用 ANN)、ItemCF、热门、规则;(d) <strong>特点</strong>——快(毫秒级)、简单特征、可扩展。(3) <strong>排序阶段</strong>——(a) <strong>目标</strong>——<strong>高精度</strong>(把最相关的排前面);(b) <strong>模型</strong>——深度模型(Wide&Deep/DeepFM/DIN/MMoE 等),用<strong>丰富特征</strong>(用户/物品/上下文/交叉);(c) <strong>特点</strong>——慢(数十毫秒)、特征多、模型复杂。(4) <strong>两阶段的'目标错配'</strong>——(a) 召回优化'召回率'(是否包含相关物品);(b) 排序优化'排序质量'(NDCG/CTR);(c) 故'召回最优 ≠ 排序最优'(与检索的错配同源);(d) <strong>对策</strong>——蒸馏(用排序模型蒸馏召回)、共享特征、端到端训练(难)。(5) <strong>实际架构</strong>——常为<strong>多级</strong>:(a) <strong>召回</strong>(百万→千);(b) <strong>粗排</strong>(千→百,用轻量模型);(c) <strong>精排</strong>(百→十,用深度模型);(d) <strong>重排</strong>(多样性/业务规则)。<strong>(6) 评估</strong>——(a) <strong>召回</strong>——Recall@k(是否漏掉相关物品)、覆盖率;(b) <strong>排序</strong>——AUC/GAUC(CTR 预估)、NDCG;(c) <strong>端到端</strong>——在线 CTR/时长/GMV。<strong>与其他问题的关系</strong>——(a) 与'检索的级联'同源;(b) 与'多目标'(排序阶段的多目标融合);(c) 与'位置偏置'(排序的训练数据有偏)。<strong>实践建议</strong>——(a) <strong>保证召回率</strong>(Recall@1000 要高);(b) <strong>多路召回 + 融合</strong>;(c) <strong>粗排用轻量模型</strong>(省算力);(d) <strong>精排用深度模型 + 丰富特征</strong>;(e) <strong>重排处理多样性与业务规则</strong>;(f) <strong>监控各阶段</strong>(召回率、延迟、增量收益)。<strong>度量</strong>——(a) 各阶段召回率/精度;(b) 延迟(P50/P99);(c) 端到端在线指标;(d) 各阶段增量收益。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'算力预算是分阶段的根本原因'</strong>——不能对百万级用重模型;面试中能指出这一点是深度理解的标志。② <strong>'召回的评估是 Recall@k'</strong>——这是最容易被忽视的指标(很多团队只看端到端);但召回率决定上限。③ <strong>'两阶段的目标错配'</strong>——与检索的错配同源;故需蒸馏/共享特征。④ <strong>'粗排'常被省略但重要</strong>——它用轻量模型把千降到百(进一步省算力);是'三级架构'的中间层。⑤ <strong>'重排'处理业务需求</strong>——多样性/新品/合规等;这些不适合放在精排(因为精排优化 CTR)。⑥ <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.