前言

写这本书,起点是一个在推荐算法方向从业者中颇为普遍的困惑。

那些入门者往往读了不少论文,却依然说不清楚自己工作的系统究竟是怎么运转的——某篇讲双塔的论文和某篇讲多任务学习的论文,到底分别处于推荐漏斗的哪个阶段?彼此之间又有什么关联?另一边,已有工作经验的工程师大多熟悉自己负责的某一环节,但对全局的认知却是碎片化的,很难说清楚自己的工作处于整个系统什么位置、上下游模块的设计逻辑又是什么。

这道鸿沟的根源在于:学术论文聚焦于单点创新,而工业实践看重的是系统的全局权衡。论文天然不会告诉你它解决的是哪个阶段的问题、带来了哪些工程代价、以及为什么这个选择在当时是合理的。

本书(又称“小麦书”)正是为填补这道鸿沟而写。它不打算做成一本算法大全,而是试图以工业推荐系统的全链路视角来组织内容——把召回、精排、重排这条主线讲清楚,再展现大模型时代推荐系统正在经历的深刻变革,同时贯穿始终的,是对“为什么这么做”的追问。

本书内容

全书共分两篇,涵盖九章主体内容(第2章至第10章)。

上篇:判别式推荐的工业实践,沿着推荐漏斗的经典架构展开。

第2章介绍召回技术。召回是推荐流水线的起点,需要在毫秒级时间内从亿级物品库中筛选出千级候选,是整个系统对效率要求最苛刻的一环。本章从协同过滤的经典方法出发——ItemCF的物品相似度计算、Swing对共现数据的工业优化、矩阵分解将用户和物品映射为隐向量——再到I2I召回如何将Word2Vec的序列建模思想迁移到推荐场景(Item2Vec、EGES、Airbnb)。双塔模型(DSSM、YoutubeDNN)则将用户和物品分别编码为向量,实现高效的向量检索。此后,序列召回(MIND、SDM)引入用户行为的时序信息,而流式索引召回(Trinity、Streaming VQ)则跳出模型内部压缩的思路,让索引结构实时适应数据分布的变化。

第3章介绍精排技术。经过召回的粗筛,精排需要对千级候选进行精准的偏好打分,是模型泛化能力的主战场。本章从Wide&Deep确立“记忆 + 泛化”的基础框架出发,介绍FM、DeepFM、xDeepFM等特征交叉方法如何让模型摆脱手工特征工程的束缚;DIN和DIEN则把用户历史行为引入精排,前者用注意力机制根据候选物品动态激活相关行为,后者进一步显式建模兴趣随时间的演化过程。在此之上,本章还介绍多目标优化(MMoE、ESMM)和多场景建模如何应对真实业务中多目标共存、多场景差异化的复杂需求。

第4章介绍重排技术。精排输出的列表按分数排列,往往高度同质化。重排的任务是在保持相关性的前提下改善整张列表的体验。本章覆盖MMR的线性平衡策略、DPP用行列式数学框架对多样性的精确控制,以及PRM如何通过Transformer建模物品间的相互影响,实现端到端的个性化列表生成。

第5章是两篇之间的过渡,系统介绍生成式推荐的技术基础。本章对比了判别式与生成式两种范式的本质差异,介绍Transformer自注意力机制和扩散模型加噪-去噪过程的工作原理,以及大语言模型从预训练到偏好对齐的基本流程。核心内容是物品Token化——这是从“记忆ID”到“理解内容”的技术枢纽:稀疏ID词表爆炸、文本ID效率低下,基于VQ-VAE和RQ-VAE的语义ID方案在表示效率与语义丰富度之间找到了平衡,使物品不再是不透明的符号,而是可被模型真正理解的结构化Token序列,这一技术贯穿后续所有章节。


下篇:生成式推荐的技术图景,转向大模型时代推荐系统的新范式。

第6章介绍Scaling Law架构探索。大语言模型证明了“更大的模型 + 更多的数据 = 更好的性能”,但传统推荐模型在规模化时遭遇了两道瓶颈:计算成本与候选数量线性绑定(打一个候选就得算一次)、GPU利用率极低(DLRM的MFU仅有4-5%)。本章介绍工业界探索出的两条互补路径:以Meta的HSTU、字节的GenRank和MTGR为代表的用户粒度建模方案,将逐候选打分转变为用户级序列建模,通过KV caching彻底解除了这一线性绑定,支持数万长度的用户行为建模;以阿里RankMixer、字节OneTrans为代表的硬件感知统一架构,用完整的Transformer替代碎片化手工模块,将GPU利用率拉升至接近大语言模型的水平。

第7章介绍端到端生成式建模。有了规模化的基础,一个更激进的问题随之浮现:能否直接用一个模型替代整条多阶段流水线?本章展示这一思路在三个场景中的落地方式——在推荐场景,快手OneRec通过语义ID、Decoder-Only架构和基于DPO的偏好对齐,直接从用户历史生成推荐序列;在搜索场景,OneSug和OneSearch将查询补全和商品检索重新定义为生成任务,绕过传统的倒排索引 + 多阶段排序链路;在广告场景,EGA将竞价机制融入生成过程,在满足激励相容性约束的同时实现端到端的广告分配。

第8章介绍推理能力的引入。前面的生成式模型虽能高效生成推荐,但其决策过程仍是隐式的黑箱。本章探讨如何赋予推荐模型“先思考、再推荐”的能力:LC-Rec通过多任务对齐框架将协同过滤信号与语言语义融合到统一表征空间;OneRec-Think通过“物品对齐 → 推理激活 → 推理增强”三阶段框架,让模型在推荐前生成结构化的推理过程;更进一步,RecZero探索了纯粹通过强化学习奖励信号、让模型自主演化出推理策略的可能性。

第9章介绍扩散模型在推荐中的应用。与前几章的自回归生成不同,扩散模型提供了另一种生成范式。本章展示其在推荐场景的两类应用:DiffuASR通过条件扩散生成高质量的用户交互序列,缓解短序列用户的数据稀疏问题;AsymDiffRec用离散特征dropout替代高斯噪声构建前向过程,天然适配推荐场景中的特征缺失问题;DMSG则利用扩散模型的随机采样机制,为推荐列表引入可控的多样性。

第10章是全书的实践落地章节。通过一个完整的电影推荐项目,展示如何将前述算法整合为可运行的工业系统:离线部分包含特征工程、YoutubeDNN召回模型训练和DeepFM排序模型训练;在线部分实现多路召回、实时精排和MMR多样性重排;前端使用Vue.js构建交互界面,整体通过Docker Compose编排部署。

目标读者

本书主要面向三类读者。

准备进入推荐算法岗位的学生和转行者。 具备基本的机器学习和深度学习知识即可入门。本书提供了从传统模型到生成式前沿的完整路径,能帮助你快速建立起对工业推荐系统的系统性认知。

已在从事推荐算法工作、希望拓宽视野的工程师。 若你目前负责某一具体环节,可以通过本书了解全链路的技术细节与演进逻辑,特别是下篇关于Scaling Law与生成式推荐的内容,覆盖了近两年工业界最活跃的前沿进展。

对推荐系统感兴趣的研究者。 本书大量引用Meta、阿里、字节、快手、小红书等一线公司的工业论文,有助于理解学术创新背后的真实工业动机与约束。

阅读建议

阅读本书需要具备机器学习基础(梯度下降、过拟合等基本概念)、深度学习基础(全连接网络、注意力机制)以及基本的Python编程能力。有一定推荐系统背景的读者可以根据兴趣自由跳转,第2–5章和第6–10章各自相对独立;对于希望系统性入门的读者,建议按章节顺序阅读。

书中涉及的大多数论文均有开源实现。第10章提供的电影推荐项目配有完整代码,可在配套仓库获取。建议在理解核心思想之后,动手跑一跑实验——推荐算法的很多直觉,只有在和真实数据打过交道之后才能真正建立起来。

配套资源

本书配套代码和相关资源可在 GitHub 获取,同时欢迎访问在线阅读版(书名“深度推荐算法”),内容会持续更新和勘误。如有任何问题或建议,欢迎通过 GitHub Issue 与我们交流。


学习推荐算法是一段有广度也有深度的旅程。希望本书能成为你在这段旅程中可以信赖的地图——让你既不迷失在算法细节里,也不忽视系统思维的重要性。

祝阅读愉快。