跳转至

第四部分 · LLM 与生成式建模在广告排序与推荐系统中的应用

每次你打开短视频 App、刷社交信息流,或者在搜索结果旁边看到一条广告,背后都是一个推荐系统在几十毫秒内,从数百万乃至数十亿的候选中挑出了寥寥几条。这类系统是地球上规模最大的机器学习应用之一:每天要在数百亿条用户行为上训练,决定着数十亿人看到什么,对靠广告赚钱的公司来说,更决定了大部分收入从哪里来。

十多年来,工业界的推荐系统和语言模型长得很不一样:它们由巨大的 ID embedding 表、人工设计的特征交叉网络,以及一条逐级缩小候选集的级联(cascade)多模型链路搭起来。2024 年以来,这一局面正在快速改变。你在第 1–3 部分学过的那些思想——对序列做 Transformer、scaling law、next-token prediction、基于 RL/DPO 的偏好对齐,以及借助 KV cache 的高效推理——正被迁移过来,催生出生成式推荐(generative recommender)和大推荐模型,它们的效果会随算力增长而可预测地提升。

这一部分从零开始讲这个领域。我们先讲清楚经典的推荐与广告系统到底是怎么运转的(这样你才知道什么被替换了、为什么要换),然后逐步推进到基于语义 ID 的生成式召回、用 RL 对齐的端到端生成式推荐、把 LLM 当作推荐器和特征提供者,最后落到广告的经济学:竞价、校准和自动出价。

先修知识与学习时间

  • 数学: 线性代数(点积、矩阵乘法)、概率(伯努利分布、期望、贝叶斯公式)、求梯度所需的基础微积分。
  • 代码: Python 与基础 PyTorch(nn.Module、nn.Embedding、优化器训练循环)。
  • 本站内容: 第 1 部分的 Transformer 与 next-token prediction;第 2 部分的 DPO 与基于 RL 的对齐;第 3 部分的 KV cache、batching 与推理成本。每一章都会回链到它所复用的具体思想。
  • 预计时间: 阅读加练习约 25–35 小时;如果把所有动手项目都做完,时间翻倍。

章节地图

章节 你将学到什么
4.1 推荐系统基础 推荐问题的定义、反馈类型、多阶段级联、带 sampled softmax 的双塔召回、ANN 检索、离线与在线指标、反馈回路与流式训练
4.2 精排与 CTR 模型 作为分类问题的 CTR 预估、embedding 表、LR → FM → Wide & Deep → DCN → DLRM、目标注意力(DIN)、多任务学习、分数融合、校准、embedding collapse
4.3 用户行为序列建模 用户行为序列、SASRec("item ID 上的 GPT")、BERT4Rec、终身序列(基于检索的兴趣模型)、实时 vs 离线用户 embedding、基础用户模型
4.4 推荐模型的 Scaling DLRM 为什么会遇到瓶颈、推荐系统的 scaling law、HSTU / Generative Recommenders 详解、Wukong、RankMixer、MTGR、LUM、MARM、算力预算
4.5 语义 ID 与生成式召回 向量量化与残差量化、RQ-VAE、语义 ID 冲突、TIGER、带 trie 约束解码的 beam search、排序中的语义 ID、生成式召回 vs 稠密召回
4.6 端到端生成式推荐 用一个模型取代级联:OneRec、reward model、迭代式 DPO 与 RL、OneRec-V2、推荐中的推理、PLUM、开放问题
4.7 LLM 在推荐中的应用 LLM 作为推荐器、作为离线知识/特征提供者、作为用户/物品编码器;360Brew、RecGPT;延迟与成本的设计模式
4.8 广告系统 广告竞价(eCPM、GSP、VCG)及带数值的定价示例、校准为何重要、转化建模与延迟反馈、预算/pacing/自动出价、生成式出价与生成式广告

心智模型

经典的工业级推荐栈是一个由越来越昂贵的模型组成的漏斗,每一级打分的候选越来越少:

             候选池:10^6 – 10^10 个物品(视频、帖子、商品、广告)
                              │
   ┌──────────────────────────▼──────────────────────────┐
   │ 召回(双塔 + ANN,多路并行)                          │  输出约 10^3–10^4   (4.1 章, 4.5 章)
   └──────────────────────────┬──────────────────────────┘
   ┌──────────────────────────▼──────────────────────────┐
   │ 粗排(轻量模型,通常也是双塔)                        │  输出约 10^2–10^3   (4.1 章)
   └──────────────────────────┬──────────────────────────┘
   ┌──────────────────────────▼──────────────────────────┐
   │ 精排(重型多任务 CTR/CVR/观看时长模型)               │  逐个打分           (4.2 章, 4.3 章, 4.4 章)
   └──────────────────────────┬──────────────────────────┘
   ┌──────────────────────────▼──────────────────────────┐
   │ 重排 / 竞价(多样性、策略、广告 eCPM)                │  最终展示约 10 个   (4.8 章)
   └──────────────────────────┬──────────────────────────┘
                              ▼
                        用户屏幕 ──► 点击、观看、跳过 ──► 训练日志(回流)

每个方框都正在用 LLM 的思想重新审视。下面这张对照表是整个第四部分的主线:

经典架构 生成式 / LLM 架构 所在章节
物品 = 巨大稀疏表中的随机 ID embedding 物品 = 语义 ID:由内容导出的一小段离散 token 序列 4.5
模型变大后就不再提升的特征交叉 DNN(FM、DCN、DIN) 作用于用户行为历史的序列 Transformer(HSTU),以及遵循 scaling law 的 GPU 友好骨干网络(RankMixer、Wukong) 4.3, 4.4
彼此独立的召回 → 精排 → 重排模型 一个生成式模型直接解码出推荐列表(OneRec) 4.6
针对日志点击的 pointwise CTR loss 下一行为预测 + 偏好对齐(reward model、DPO、RL) 4.6
人工设计的文本/图像特征 LLM / 多模态 embedding、LLM 生成的知识、LLM 对意图的推理 4.7
手工调参的竞价 + RL 出价器 生成式自动出价(diffusion)与端到端生成式广告 4.8

开始之前,值得先记住推荐系统与 LLM 的四点差异,因为你之后看到的大多数设计选择都能用它们来解释:

  1. 词表。 LLM 的词表只有约 10^5 个 token 且永远不变;推荐系统有 10^8–10^10 个物品,每天还有数百万个被创建、被下线。
  2. 数据。 训练数据是非平稳的数据流。模型在线训练,通常每个样本只看一遍,若不及时更新,几天内效果就会衰退。
  3. 延迟与扇出。 一次请求必须在几十毫秒内返回,而精排模型在极高的 QPS 下,每次请求要给数百到数千个候选打分。
  4. 钱。 在广告里,预测概率要乘以出价、进而决定价格。预测必须是校准过的,而不仅仅是排序正确。

如何学习这一部分

  1. 按顺序读 4.1 → 4.2 → 4.3;它们是后面所有章节默认你已掌握的"经典"基础。做一下代码练习:带 in-batch 负样本的双塔模型、FM 层、DIN 注意力单元,以及 SASRec。
  2. 接着读 4.4(scaling)和 4.5(语义 ID);两者相互独立,并且都会汇入 4.6。
  3. 读 4.6 之前,先回顾第 2 部分的 DPO 与 RL。
  4. 4.7(LLM 在推荐中的应用)在读完 4.3 之后的任何时候都可以读。
  5. 最后读 4.8(广告);它会用到 4.2 的校准和 4.6 的生成式建模。

建议的动手项目(至少选两个):

  • 在 MovieLens-1M 或 Amazon Reviews 上训练 SASRec;再训练一个 GPT 风格的下一物品模型,确认两者其实是同一个思想(4.3)。
  • 构建语义 ID:用句子编码器对物品文本做 embedding,训练一个 RQ-VAE(3 层 × 每层 256 个码字),检查相似物品是否共享前缀(4.5)。
  • 实现 TIGER 风格的、带 trie 约束 beam search 的生成式召回(可从 GRID 入手);与双塔基线比较召回率,尤其是在冷启动物品上(4.5)。
  • 运行 Meta 开源的 generative-recommenders(HSTU)仓库,画出效果随模型规模变化的曲线(4.4)。
  • KAR 风格实验:让 LLM 离线撰写用户兴趣摘要,对其做 embedding 后作为特征加入 DIN 或 DCN-V2 的 CTR 模型,度量 AUC 提升(4.7)。
  • 用点击 vs 跳过的偏好对,通过 DPO 对齐一个小型生成式推荐器(4.6)。
  • 用一个未校准的 pCTR 模型模拟 GSP 竞价,度量其对收入和广告主成本分布造成的扭曲(4.8)。