推荐系统核心 20% — 结构比模型重要

一句话:推荐系统的效果由架构分层决定,不由单个模型决定。记住「召回 → 粗排 → 精排 → 重排」四段漏斗,以及每段各自的容量约束,剩下的就是填模型。


🎯 这 20% 能解决哪些问题

常见困惑本质本页答案
有几十万商品,怎么算得过来需要分层漏斗见「四段漏斗」
协同过滤还要不要学仍是召回主力见「召回四路」
新用户新商品怎么推荐冷启动问题见「冷启动五招」
离线 AUC 涨了线上没变化评估与目标不一致见「离线与线上的鸿沟」
推荐越来越窄反馈循环见「三个偏差坑」

一、四段漏斗

graph LR
    A["召回<br/>10⁵ → 10³"] --> B["粗排<br/>10³ → 10²"]
    B --> C["精排<br/>10² → 10¹"]
    C --> D["重排<br/>多样性与规则"]
阶段目标模型容量关键约束
召回不漏掉可能相关的轻量(双塔、向量检索)延迟(毫秒级)
粗排快速筛到百级中等与精排一致性
精排精确预估点击/转化重(深度交叉)特征实时性
重排多样、去重、业务规则规则/轻模型体验与生态

核心矛盾:精排最准但只能算百级候选,所以召回决定天花板——召回没找到的,精排再强也没用。


二、召回四路

路线原理优点局限
协同过滤(ItemCF/UserCF)共现相似稳定、可解释冷启动差
向量召回(双塔、ANN)用户/物品嵌入近邻扩展性好训练与索引需同步
规则/热门/地理业务规则兜底、稳定大盘个性化弱
序列召回(SINE、MIND)从行为序列生成兴趣向量捕捉短期兴趣依赖行为数据

实用配置:多路召回各取 Top-N(如每路 200)合并去重,再用统一模型粗排。多路的目的是覆盖不同兴趣维度,不是互相替代。


三、精排选型

模型特点何时用
LR / GBDT + 人工特征稳定、可解释基线、样本少
Wide&Deep / DeepFM记忆 + 泛化通用首选
DIN / DIEN注意力建模行为序列用户行为丰富
双塔可离线算向量大规模召回与粗排
生成式推荐直接生成候选前沿,需大量数据

必做的一件事:精排的预估目标要与业务一致。只优化点击会推标题党,所以要联合建模点击 → 转化 → 留存。


四、冷启动五招

手段适用
内容特征(标题/图像/类目嵌入)新物品
人口属性 + 注册来源新用户
热门与地域兜底全冷启动
探索流量(EE)需要数据积累
迁移学习(跨域兴趣)有多业务数据

EE(探索-利用)的三种做法:ε-greedy(简单)、Thompson 采样(效果好)、UCB(可解释)。没有探索,新物品永远出不来。


五、离线与线上的鸿沟

差异说明
目标不同离线优化 AUC,线上看点击/时长/GMV
数据偏差离线数据来自旧策略(只记录了曝光过的)
位置偏差排在前面的天然点击高
反馈延迟转化可能隔天才发生
交互效应推荐结果改变用户行为分布

缓解手段:逆倾向加权(IPS)、位置特征只在训练用、线上必须 A/B、看长期指标(留存)而非单次点击。


六、三个偏差坑

坑表现纠正
反馈循环越推越窄,兴趣固化加探索、多样性约束、兴趣打散
位置偏差模型学会”位置高就好”训练时把位置作为特征并在推理置零
热度马太效应头部越推越热热度惩罚、长尾扶持、新物品流量池

七、落地清单

#检查项
1四段漏斗是否齐全,各段延迟预算是否明确
2召回覆盖率(候选里有没有该出现的物品)
3特征实时性:哪些必须秒级、哪些可天级
4冷启动兜底策略是否可运行
5线上指标是否含长期指标(留存/复访)
6是否有探索流量与多样性约束

📋 一页速查

问题答案
架构分几段召回/粗排/精排/重排
决定天花板的是召回
离线涨线上不涨目标不一致 + 数据偏差
冷启动靠什么内容特征 + 探索流量
越推越窄怎么办加探索与多样性约束
精排必须联合建模点击 → 转化 → 留存

🔗 相关链接

主题链接
智能系统概览智能系统
机器学习机器学习
无监督学习无监督学习核心 20%
知识图谱知识图谱核心 20%
数据基础数据基础