# 推荐系统算法课堂记录

[[MCS/day4/00 学习指南|day4 学习指南]] · [[MCS/00 MCS学习总览|十一天总览]] · [[MCS/day4/阅读核验与疑问|阅读核验与疑问]] · 上一篇：[[MCS/day4/02 五仁未出现与贝叶斯推断|五仁未出现与贝叶斯推断]] · 下一篇：[[MCS/day4/04 排列组合与概率基础|排列组合与概率基础]]

> 来源：[[MCS/day4排列组合与概率|day4排列组合与概率]]。用途：选学。原有推导、追问与解答保留；阅读时请结合本日核验说明。

## PDD 算法总结

### 整体系统

**SYS**：推荐 + 搜索 + 广告 + 定价补贴 + 拼团机制 + 供应链预测

> 做技术的不能只看到技术这一侧。

**首页信息流 load**：召回 → 粗排 → 精排 → 重排

---

### 一、召回

#### 1. 协同过滤 / 相似度

- 用户相似度：`sim(u,v) = cos(r_u, r_v)`
- 物品相似度同理：给用户推和他相似的人买的东西
- 余弦相似度公式：

$$
\text{sim}(u,v)=\cos(\vec{r}_u,\vec{r}_v)
=\frac{\vec{r}_u\cdot \vec{r}_v}{\|\vec{r}_u\|\,\|\vec{r}_v\|}
$$

- 其中 `r_u = (r_u1, r_u2, ..., run)` 是用户 u 对所有物品的评分向量
- 数据非常稀疏，大多为零

#### 2. 矩阵分解

- `R ≈ UV^T`
- **MSE 均方误差**：用于评分场景
  - 缺点：只能拟合已有打分，没有利用负样本
  - 用户没有用上的样品就是负样本
- **关键认知**：推荐系统最终目标不是预测准确分数，而是把用户喜欢的排到前面；MSE 不直接优化排序

#### 3. 隐式交互

- 行为：点击、收藏、购买
- 用户 u 更喜欢物品 i 胜过物品 j
- 交互过的和没有交互过的，肯定是交互过的商品更相关

#### 4. BPR（Bayesian Personalized Ranking，贝叶斯个性化排序）

- 不是预测分数，而是直接优化物品之间的相对顺序
- 隐式推荐最经典的 loss
- 隐式场景：只有行为没有打分
- 特点：
  1. 成对训练：一次拿一个正样本 + 一个负样本，做成对比较，而非单点预测
  2. 专门适配隐式反馈：只有点击没有评分（电商、短视频推荐）
  3. 优化目标与推荐业务目标完全对齐：把用户更喜欢的商品排在前面
  4. 训练时要采样，每一轮采样做 **3 元组**
- 不是用全部矩阵，这是很基础的方法

#### 5. 双塔模型

- 用户侧网络 + 商品侧网络
- 算召回分：内积或余弦
- 上线后用 **FAISS / ANN** 做向量检索
- 检索方法很多：传统的快的、慢的都有，毫秒级，从海量 item 中捞候选

#### 6. 图召回（拼多多特色）

- 拼多多有社交、拼团关系，要建立：
  - 用户—用户
  - 用户—商品
  - 商品—商品
- 用 **GraphSAGE** 和 **PinSAGE** 这类方法
- 传播邻居信息，得到更准确的 embedding

#### 7. 多路召回

- 行为序列召回
- 热门或新品召回
- 类目召回
- 搜索词召回
- 活动召回
- 广告召回
- 各一路，最终合并去重

---

### 二、粗排

- 轻量 CTR 模型
- 对几千个候选再打一次分，模型更省力 → 省算力
- 常用：
  - 小的 DNN
  - GBDT
  - 经典双塔（召回层也用过）
  - 浅层 FM
- 按 CTR 公式筛选到几百个目标，进入精排

---

### 三、精排

- 直接用 CTR、CVR、加购、成交等多目标
- 核心是 **2 分类概率问题**：给定用户特征、商品特征、场景特征等，预测用户会不会下单、购买、点击

#### 模型演进

- 基础：LR
- 特征交叉：FM（因子分解机）——二阶交叉自动学隐向量，解决高维稀疏
- 深度模型：Wide & Deep、DeepFM、DCN
- 用户行为序列：DIN（注意力机制）、Transformer、Attention
- 多目标：点击 + 加购 + 下单 + 成交金额同时预测
  - **ESMM**：联合训练，解决 CVR 样本很少的问题，以及点击到成交延迟的问题
  - **MMoE / Shared Bottom**：多个专家网络分配任务，避免某一个任务拖垮其他任务

#### 校准

- 模型输出概率要用历史实际转化率做 **Platt Scaling**、分段校准
- 否则出价一定会偏差

---

### 四、重排

精排出来几百个后，不是直接按分展示，还要做：

1. **同类打散**：多样性
2. **DPP（行列式点过程）**：最大化多样性与相关性
3. **品控**：同一店铺或同一张图短期内不能重复曝光
4. **新品探索**：分配少量流量
5. **商业化**：
   - 广告插入
   - 百亿补贴
   - 活动坑位
6. **业务约束**：库存、合规、区域、时效等

---

### 五、其他方向

- **搜索**：NLP + 召回 + 排序，即可做简单搜索
- **广告**：eCPM、oCPX + 智能出价
- **补贴**：优惠券、砍价、定价与博弈
