摘要:本文介绍推荐系统中排序阶段的核心模型与策略,包括多目标建模(MMoE)、负样本降采样、预估分数校准、粗排三塔模型等关键技术。内容基于实际项目经验整理。
一、排序阶段在推荐系统中的位置
推荐系统通常分为三个阶段:召回 → 粗排 → 精排。
海量物品 → 召回(千/万级) → 粗排(百级) → 精排(十级) → 策略层 → 最终展示
- 召回:从百万级候选池中快速筛选出千/万级候选
- 粗排:在召回结果中进一步筛选到百级,平衡精度与速度
- 精排:对百级候选进行精确打分排序
本文将重点讨论粗排和精排阶段的核心技术。
二、多目标建模
2.1 为什么需要多目标?
在实际业务中,我们关心的不仅仅是点击率(CTR),还包括:
- 播放时长 / 完播率:用户是否真的看完了
- 点赞 / 评论 / 分享:用户是否有互动行为
- 关注 / 收藏:用户是否有长期兴趣
单一目标模型无法同时优化这些指标,因此需要多目标学习(Multi-Task Learning, MTL)。
2.2 MMoE(Multi-gate Mixture-of-Experts)
MMoE 是 Google 提出的多任务学习架构,通过专家网络和门控机制实现任务间的知识共享与分离。
输入特征 → [Expert_1, Expert_2, ..., Expert_n]
↓ 门控加权
[Tower_CTR] [Tower_CVR]
↓ ↓
P(点击) P(转化)
核心公式:
\[\text{Output}_k = \sum_{i=1}^{n} g_k(i) \cdot f_i(x)\]其中 $g_k(i)$ 是任务 $k$ 对专家 $i$ 的门控权重,$f_i(x)$ 是专家网络的输出。
注意事项:
- 训练时使用 Dropout 缓解极化问题(某个任务主导了所有专家)
- 使用了 MMoE 并不一定带来提升,需要结合业务数据分布和任务相关性来调参
- 当任务高度相关时,Shared-Bottom 可能更简单有效;当任务差异大时,MMoE 的优势才体现出来
2.3 预估分数融合
当有多个目标分数时,需要融合为最终排序分数:
\[\text{Score} = w_1 \cdot p(\text{点击}) + w_2 \cdot p(\text{完播}) + w_3 \cdot p(\text{互动})\]权重 $w_i$ 通常通过业务经验和 A/B 测试确定。
三、训练策略
3.1 负样本降采样
在点击率预估中,负样本(未点击)数量远大于正样本(点击),导致:
- 样本严重不平衡
- 训练效率低下
解决方案:对负样本进行降采样,例如正负比设为 1:2 或 1:3。
3.2 预估值校准
降采样后,模型预估的点击率($p_{pred}$)会高于真实点击率($p_{true}$),需要校准:
\[p_{true} = \frac{n_+}{n_+ + n_-}\] \[p_{pred} = \frac{n_+}{n_+ + \alpha \cdot n_-}\]其中 $\alpha$ 是负样本降采样比例。
校准公式:
\[p_{true} = \frac{\alpha \cdot p_{pred}}{(1 - p_{pred}) + \alpha \cdot p_{pred}}\]这个公式将模型输出的 $p_{pred}$ 还原为真实的点击率,保证排序分数的准确性。
四、视频播放建模
在视频推荐场景中,单纯的 CTR 预估是不够的。排序依据还需要考虑:
4.1 播放时长
\[\text{WatchTimeScore} = \min(\text{实际播放时长}, \text{视频时长})\]4.2 完播率
完播率需要根据视频长度做动态调整:
- 短视频(< 1min):完播率权重较高
- 中视频(1-10min):完播率适中
- 长视频(> 10min):适当降低完播率权重,改为关注有效播放比例
五、排序模型的特征工程
5.1 特征分类
| 类别 | 示例 |
|---|---|
| 用户画像 | 年龄、性别、地域、兴趣标签 |
| 物品画像 | 类别、标签、发布时间、作者 |
| 用户统计特征 | 历史点击率、平均播放时长、活跃天数 |
| 物品统计特征 | 总曝光量、总点击量、CTR、完播率 |
| 场景特征 | 时间段、入口位置、网络环境 |
5.2 特征处理
对于长尾分布的特征(如点赞率),直接输入模型会导致:
- 极少数值过大,主导梯度更新
- 大部分值集中在 0 附近,区分度低
处理方法:
- Log 变换:
log(1 + x)压缩大值,拉伸小值 - 分桶(Binning):将连续值离散化为区间
- 转化为率:如
点赞数 / 曝光量
六、粗排模型
粗排的核心挑战是:牺牲一定准确性,换取推理速度。
6.1 三塔模型
三塔模型是介于前期融合和后期融合之间的折中方案:
用户塔 → User Embedding
物品塔 → Item Embedding
↓
交叉塔(轻量交互)
↓
排序分数
- 用户塔和物品塔:独立的特征编码网络
- 交叉塔:轻量级的交互计算(不送入大神经网络)
- 输出层:直接全连接输出分数,不做复杂的非线性变换
6.2 粗排 vs 精排
| 维度 | 粗排 | 精排 |
|---|---|---|
| 候选数量 | 百级 | 十级 |
| 模型复杂度 | 轻量 | 复杂 |
| 特征交互 | 有限(三塔) | 充分(Deep Cross) |
| 延迟要求 | < 10ms | < 50ms |
七、总结
排序阶段是推荐系统中最直接影响用户体验的环节。关键技术要点:
- 多目标建模(MMoE):平衡 CTR、完播率、互动等多维度指标
- 样本处理:负样本降采样 + 预估分数校准
- 特征工程:长尾分布处理、多类别特征融合
- 粗排优化:三塔模型平衡速度与精度
相关文章: