这四个环节是 推荐/搜索系统的核心召回排序流程 ,目的是从海量候选集里筛选出用户最可能感兴趣的内容,同时保证结果的多样性,整体流程遵循 "从多到少、从粗到精" 的原则。以下是每个环节的详细职责、目标和实现逻辑:
一、召回(Recall):从海量数据中"捞人"------广撒网,抓候选
1. 核心目标
从百万/亿级的全量候选集 (如商品、视频、文章)中,快速筛选出 数千级别 的用户可能感兴趣的候选集,解决"从哪找"的问题。
- 特点:速度快、召回率优先、精度要求低,宁可多召回一些潜在相关的内容,也不能漏掉用户可能喜欢的。
2. 核心逻辑
基于简单的用户兴趣信号 和规则/轻量化模型 ,不做复杂计算,追求极致性能。
常见召回策略:
- 协同过滤召回:基于用户行为相似性(如"和你相似的用户都喜欢XX")、物品相似性(如"你喜欢的A,类似的B/C/D");
- 内容召回:基于物品属性(如用户喜欢"科幻电影",召回所有科幻类电影)、用户标签(如用户标签是"健身",召回健身相关内容);
- 热门召回:兜底策略,召回全局/分类热门内容(防止新用户无数据可推荐);
- 地理位置召回:本地生活场景常用(如推荐附近3km内的餐厅)。
3. 关键指标
- 召回率:真正感兴趣的内容被召回的比例(越高越好,避免漏选);
- 响应时间:必须在毫秒级完成(通常 < 10ms),否则影响用户体验。
一句话总结
召回是**"海选"**------用低成本的方式,从海量数据里捞出一批"可能合格"的候选人。
二、粗排(Coarse Ranking):快速过滤------初筛,降数量
1. 核心目标
对召回阶段输出的 数千级别候选集 进行快速排序,筛选出 数百级别 的候选集,解决"初步筛选"的问题,是召回和精排之间的"承上启下"环节。
- 特点:速度较快、兼顾效率与精度,模型复杂度介于召回和精排之间。
2. 核心逻辑
使用轻量化的机器学习模型,输入比召回更丰富的特征,但特征维度和模型复杂度低于精排。
- 特征选择:用户基础特征(年龄、性别)、物品基础特征(类别、热度)、简单交互特征(点击/收藏次数);
- 模型选择:通常用 LR(逻辑回归)、FM(因子分解机)、简单的深度学习模型(如 Wide & Deep 的 Wide 部分);
- 目标:预测用户对候选内容的"兴趣得分",按得分排序后,截断取前 N 个(如取前200)进入精排。
3. 关键指标
- 精确率:筛选后内容的相关度(比召回高);
- 吞吐量:能处理的候选集数量(高于精排);
- 耗时:通常 < 50ms,比精排快1~2个数量级。
一句话总结
粗排是**"一轮面试"**------快速淘汰明显不相关的内容,减少精排的计算压力。
三、精排(Fine Ranking):精准排序------决胜,定最终顺序
1. 核心目标
对粗排输出的 数百级别候选集 进行精准排序,输出 数十级别 的最终推荐列表,解决"用户最想要什么"的核心问题,是整个流程的"核心决策环节"。
- 特点:精度优先、模型复杂、计算成本高,直接决定用户看到的内容顺序。
2. 核心逻辑
使用复杂的深度学习模型 ,输入全方位的高维特征,精准预测用户的行为概率(点击、下单、停留时长等)。
- 特征选择 :
- 用户特征:详细行为序列(如最近7天点击的10个商品)、兴趣标签、消费能力;
- 物品特征:详细属性(如商品的品牌、价格、评分)、内容详情(如文章关键词);
- 交互特征:用户与物品的匹配度(如用户是否收藏过该品牌的商品)、上下文特征(如当前时间、场景);
- 模型选择:DeepFM、DIN(深度兴趣网络)、DIEN(深度兴趣进化网络)、Transformer 类模型(如 BERT4Rec);
- 目标:优化核心业务指标(如 CTR 点击率、CVR 转化率、GMV 销售额),按预测得分从高到低排序。
3. 关键指标
- 核心业务指标:CTR、CVR、停留时长(直接影响用户体验和平台收益);
- 排序稳定性:避免排序结果波动过大。
一句话总结
精排是**"终面"**------用最精准的模型,确定用户最可能感兴趣的内容顺序。
四、打散(Diversification):调整结果------去同质化,保多样性
1. 核心目标
对精排输出的最终列表进行后处理 ,打破同质化内容的集中展示,保证结果的多样性,解决"推荐单调、用户审美疲劳"的问题。
- 特点:非排序环节,是排序后的优化策略,不改变内容的核心相关性,只调整展示顺序。
2. 核心逻辑
精排的目标是"精准",但可能导致结果高度同质化(如连续推荐10个同一品牌的口红),打散就是通过规则/算法调整顺序,平衡"精准"和"多样"。
常见打散策略:
- 类别打散:限制同一类别内容的连续展示次数(如最多连续展示2个美妆类商品,之后必须插一个服饰类);
- 商家打散:电商场景常用,避免同一商家的商品集中展示(防止用户反感);
- 热度打散:在热门内容中插入少量长尾内容(扶持小众优质内容,提升生态多样性);
- 算法打散:基于内容相似度矩阵,调整顺序使相邻内容的相似度低于阈值。
3. 关键指标
- 多样性:结果集的类别/商家覆盖度(越高越好);
- 相关性损失:打散后核心指标(如CTR)的下降幅度(越小越好)。
一句话总结
打散是**"最终调参"**------在不牺牲核心体验的前提下,让推荐结果更丰富,提升用户长期留存。
四、完整流程串联(以电商推荐为例)
- 召回:从1亿商品中,基于用户历史购买记录+商品相似性,召回2000个候选商品;
- 粗排:用LR模型快速排序,筛选出200个用户可能喜欢的商品;
- 精排:用DIN模型精准预测转化率,输出30个得分最高的商品;
- 打散:限制同一品牌最多连续展示2个,调整顺序后最终展示给用户10个商品。
核心区别对比表
| 环节 | 输入规模 | 核心目标 | 模型特点 | 耗时 | 核心指标 |
|---|---|---|---|---|---|
| 召回 | 亿级 | 广撒网,捞候选 | 规则/轻量化模型 | <10ms | 召回率 |
| 粗排 | 数千级 | 初筛,降数量 | 轻量机器学习模型 | <50ms | 效率+精度 |
| 精排 | 数百级 | 精准排序,定胜负 | 复杂深度学习模型 | <500ms | CTR/CVR |
| 打散 | 数十级 | 去同质化,保多样 | 规则/相似度算法 | <10ms | 多样性 |
补充:为什么需要这四个环节?
直接对亿级数据用精排模型计算,时间和资源成本完全不可行。
- 召回:解决"从海量数据快速筛选"的效率问题;
- 粗排:承上启下,进一步缩小范围,降低精排压力;
- 精排:保证结果的精准性,提升核心指标;
- 打散:优化用户体验,避免推荐单调,兼顾平台生态。
这四个环节的组合,实现了 "效率、精度、多样性"的三者平衡。