前面的章节分别讲解了召回、排序、重排等核心算法模块。但论文里的模型跑得通,不等于能在真实场景里部署——这是几乎所有推荐系统学习者都会遇到的断层。本部分用一个 端到端的电影推荐系统 项目,把分散的算法串成一个能跑、能服务、能部署的完整系统,回答「如何从零构建一个生产级推荐系统」这个工程问题。
章节
| 章节 | Topic | The Big Idea |
|---|---|---|
| 11.1 | 项目引言与目标 | 厘清离线评估与在线部署的鸿沟,明确技术选型与学习路径 |
| 11.2 | 系统架构设计 | 离线与在线解耦,漏斗式「召回→排序→重排」经典结构 |
| 11.3 | 离线流水线 | 特征工程、YoutubeDNN/DeepFM 训练、向量生成、特征上线与模型部署 |
| 11.4 | 在线流水线 | 冷启动(UCB)、多路召回(Snake Merge)、DeepFM 排序、多样性重排 |
| 11.5 | 前端与交互 | Vue 3 五页面、Pinia 状态、搜索防抖、评分驱动的数据闭环 |
| 11.6 | 部署与运维 | Docker Compose 一键编排五服务,健康检查与排障 |
读完本 Part 你将能够
- 🟢 描述 离线系统与在线系统的职责边界,以及二者如何通过存储层解耦
- 🟢 解释 漏斗式架构为何必需:召回用轻模型筛候选、排序用重模型精打分
- 🟡 实现 YoutubeDNN 召回与 DeepFM 排序的训练闭环,并理解物品向量预计算的意义
- 🟡 设计 冷启动策略(UCB 探索 + 偏好类型 + 热门兜底)与多路召回的融合(Snake Merge)
- 🔴 部署 一个包含 PostgreSQL/Redis/Elasticsearch/后端/前端的多容器系统,并能排查常见问题
- 🟢 完成 各节的分层练习题,巩固工程实现要点
关键概念
| Concept | 章节 | Relevance |
|---|---|---|
| 离线 vs 在线 | 11.2 | 推荐系统工程的基本边界,质量与延迟的取舍 |
| 漏斗式架构(召回→排序→重排) | 11.2 | 工业推荐的主干骨架 |
| 物品向量预计算 | 11.3 | 在线毫秒级向量检索的前提 |
| 冷启动 / UCB | 11.4 | 解决「无行为新用户」的探索-利用平衡 |
| 多路召回 + Snake Merge | 11.4 | 用融合弥补单策略覆盖不足 |
| 数据闭环 | 11.5 | 前端行为反馈驱动特征更新与推荐优化 |
前置条件
- 已读完 1.1 的三阶段流水线认知,理解召回/排序/重排分工
- 了解 2.3 双塔(YoutubeDNN)与 3.x 排序模型(DeepFM)的基本原理
- 具备 Python、基础神经网络与 SQL 常识;了解 Docker 基本概念更佳
本项目代码位于
datawhalechina/fun-rec仓库的web_project/目录,可边读边运行。
给本 Part 的建议
- 先跑通再抠细节。 用 Docker Compose 一键启动完整项目,建立整体直觉。
- 抓住「离线与在线的边界」。 这是工程系统的核心认知框架。
- 关注那些论文里没有的环节 :特征如何跨系统传递、模型如何不停服更新、冷启动如何降级。
Let's build it! 🛠️