🏠 总目录📚 本教程 02 · 推荐系统是什么
📑 本页目录(点开跳转)

02 · 推荐系统到底是什么

15 分钟 | ⭐ 核心


🎯 一句话

推荐系统是在信息过载的世界里,替你做筛选的机器——它要回答的唯一问题是:「在这个时刻,把哪个东西放在这个人面前,最好?」


🧠 为什么需要它(用数字感受一下)

平台 物品数量 屏幕能放几个
抖音 / TikTok 每天新增数千万条视频 1 个
淘宝 数十亿商品 首页 ~20 个
Netflix 数万部影视 首屏 ~30 个
小红书 数亿笔记 双列 ~6 个

核心矛盾:供给是「亿」级,展示位是「个」位数。差了 8 个数量级。

💡 一句话区分:搜索是「人找物」,推荐是「物找人」。


📐 推荐问题的标准定义

任何推荐系统,都可以写成这个式子:

        score = f( 用户 U , 物品 I , 上下文 C )

然后按 score 从高到低排,取前 N 个给用户看。就这么简单。

后面所有的复杂度,都来自三个问题:

问题 展开
f 怎么设计? 从余弦相似度 → 矩阵分解 → 深度网络 → 生成式模型(第 4、5、8、14 节)
U/I/C 怎么表示? 特征工程 + 向量表示(第 3、7 节)
物品有 1 亿个,怎么在 200ms 内算完? 分层漏斗架构(第 6、10、15 节)

记住这个式子,它是整份教程的骨架。


🧭 三大流派(这就是推荐算法的全部分类)

① 基于内容 Content-Based
  • 「你看过科幻片 → 再推科幻片」
  • 看的是:物品自身的属性(标签、文本、图像)
  • ✅ 新物品也能推 ❌ 推荐结果单调,出不了圈
② 协同过滤 Collaborative Filtering ← 第 1 节你写的
  • 「和你像的人也喜欢这个 → 推给你」
  • 看的是:用户行为,完全不看物品内容
  • ✅ 能挖出意外惊喜 ❌ 冷启动死穴(新用户新物品没行为)
③ 混合 / 模型化 Hybrid & Model-Based ← 工业界的真实答案
  • 「把①②和几百个特征一起喂给一个模型,让模型自己学」
  • ✅ 效果最好 ❌ 复杂、贵、需要大量数据和工程

现实:2026 年任何一家公司的推荐系统都是 ③,但 ①② 作为其中的召回通路依然在跑。学 ①② 不是学历史,是学零件。


🎬 一次真实的推荐,发生了什么

你在抖音上滑了一下。接下来 200 毫秒内:

你的手指松开 · t = 01. 取特征~10ms你是谁?最近看了什么?现在几点?在 WiFi 还是 4G?2. 召回~30ms1 亿 → 几千几十路并行:关注的人、相似内容、热门、地理位置、协同过滤…3. 粗排~20ms几千 → 几百小模型快速砍一刀,先淘汰明显不行的4. 精排~80ms几百 → 几十大模型,几百个特征,全链路最贵的一步预测:点击率?看完率?点赞率?→ 融合成一个分5. 重排~10ms几十 → 几个去重、打散、多样性、塞广告、避免连续同类型视频出现在你屏幕上 · 全程约 200ms6. 你的反应变成新的训练数据闭环看完 / 划走 / 点赞 / 评论 → 回流 → 模型更新
200 毫秒里的五步流水线:越往下候选越少、模型越贵。⭐ 最容易被漏看的是虚线那条回路 —— 第 6 步把你的反应喂回第 1 步,推荐系统会改写自己的训练数据

这个循环叫推荐系统的闭环。第 6 步是最关键的——推荐系统会改变它自己的训练数据,这是它和普通机器学习最大的不同(第 12、13 节会深挖这个坑)。


💰 它值多少钱(为什么公司愿意砸钱)

这解释了为什么推荐算法工程师薪资高:它的效果可以被直接换算成钱,A/B 实验涨 1% 点击率,能算出来值多少营收。


🔄 一个必须先知道的事:反馈闭环

推荐系统和你学过的其他模型有一个结构性的不同它会改变自己的训练数据。

普通的监督学习数据集是给定的 —— 换个模型,数据还是那些模型只是在「观察」世界推荐系统模型决定推什么 —— 用户只能对推的做反应模型在「制造」自己的世界回流模型决定推什么曝光用户只能看到这些点击 / 划走日志只有曝光过的才有记录日志变成下一轮的训练数据 —— 闭环
普通监督学习的数据是给定的,推荐系统的数据是它自己造出来的。⭐ 模型没推过的东西永远不会产生日志,也就永远学不到它到底好不好 —— 冷启动、探索利用、去偏,根子都在这张图。

🔑 最关键的一句话模型没推过的东西,永远不会产生数据,也就永远学不到它到底好不好。

💡 这一个事实,解释了后面一大半的内容

你后面会遇到的根源都在这个闭环
热门偏置 热门被推得多 → 数据多 → 模型更确信它好 → 推得更多(第 11 节
冷启动 新物品没数据 → 模型不敢推 → 永远没数据(第 13 节
信息茧房 推你爱看的 → 你只反馈这类 → 模型更确信 → 越推越窄
为什么必须做探索 不主动推没把握的东西,就永远拿不到它的数据(第 13 节
为什么离线指标常常骗人 离线数据是旧模型选出来的,评不准新模型(第 12 节
为什么必须做 A/B 实验 只有真的放上线,才能拿到新模型自己的反馈数据

如果这一章只记一件事,记这个闭环。 它不是一个「缺点」,而是推荐系统这个问题本身的性质—— 你不是在预测一个固定的世界,你是在参与塑造它。

🔗 挑战项目 B 就是让你亲手把这个闭环跑起来,看着茧房自己长出来。


⚖️ 但它也有真实的代价

不学这部分你会成为一个危险的工程师:

问题 说明
信息茧房 / 回音室 只推你爱看的 → 你的世界越来越窄
热门偏置 第 1 节你已经撞见了:富者愈富,长尾内容永无出头日
成瘾性设计 优化「停留时长」的直接后果就是让人停不下来
偏见放大 训练数据里的社会偏见会被模型学会并放大
短期指标 vs 长期价值 标题党点击率高 → 模型学会推标题党 → 用户长期流失

工业界的通用解法:多目标优化 + 多样性约束 + 长期价值建模(第 11、12 节)。 但没有完美解——这是这个行业的持久课题,不是已解决的问题。


🗂️ 推荐系统的四种典型场景

不同场景,做法完全不同。搞清楚你在做哪种:

场景 例子 特点
信息流 Feed 抖音、小红书、朋友圈 无限流、即时反馈、追求时长
相关推荐 「看了又看」「买了还买」 有明确锚点物品,上下文强
首页猜你喜欢 淘宝首页、Netflix 首屏 冷启动重、多品类平衡
通知/推送 App Push、邮件推荐 打扰成本高,宁缺毋滥

🔗 这一章连到哪里

去哪为什么
强化学习 01推荐是典型的序贯决策 + 探索利用问题
上线之后 01反馈闭环在所有线上模型里都存在,不只推荐
上线之后 12「score 高 = 效果好」这一步怎么验证

✅ 检查点

  1. 搜索和推荐的根本区别是什么?
  2. 写出推荐问题的标准式子(三个输入)
  3. 三大流派各是什么?工业界实际用哪个?
  4. 为什么说「推荐系统会改变自己的训练数据」?

👀 答案
  1. 谁发起:搜索是用户主动给出关键词(「我知道我要什么」),推荐是系统主动猜(「我不知道我要什么」)。⭐ 一句话:搜索是「人找物」,推荐是「物找人」
  2. score = f(用户 U, 物品 I, 上下文 C),然后按 score 排序取 top N。⭐ 后面所有复杂度都来自三个问题:f 怎么设计、U/I/C 怎么表示、1 亿物品怎么在 200ms 内算完
  3. ①基于内容(看物品属性,新物品也能推但出不了圈)②协同过滤(看用户行为,能挖惊喜但有冷启动死穴)③混合/模型化(把①②和几百个特征一起喂给模型)。⭐ 工业界实际用③,但①②作为召回通路依然在跑——学①②不是学历史,是学零件
  4. 因为用户只能对「你推给他的东西」做出反馈,而这些反馈又回流成下一轮的训练数据。⭐ 模型没推的东西,永远不会产生数据,也就永远学不到它好不好——这是一个自我强化的闭环,也是热门偏置和信息茧房的根源。(🔗 挑战项目 B 就是让你亲手把这个闭环跑出来。)

🛑 可以停在这里

走神救援

推荐 = score = f(用户, 物品, 上下文),排序取 top N。三大流派:内容、协同过滤、混合。真实系统是个漏斗:召回→粗排→精排→重排,200ms 内从 1 亿筛到几个。用户反馈会回流成训练数据,形成闭环。那个 score = f(用户, 物品, 上下文) 的式子是整份教程的骨架:后面所有复杂度都来自三个问题 —— f 怎么设计(4/5/8/14 节)、U/I/C 怎么表示(3/7 节)、1 亿物品怎么在 200ms 内算完(6/10/15 节)。⭐⭐ 而反馈闭环是这一章最该记住的:模型没推过的东西永远不会产生数据,也就永远学不到它好不好 —— 热门偏置、冷启动、信息茧房、离线指标骗人,根子全在这一条上。

下一节 👉 03-数据长什么样.md

打卡记录保存在你的浏览器里,首页能看到总进度