← 上级:RL-07.应用实战 · 原理:RL-02-03-探索与利用
一、真实落地案例:首页 5 槽位活动推荐
| 项 | 说明 |
|---|---|
| 业务背景 | 电商/内容 App 首页 5 个固定运营位,每日上线不同品类活动;需在有限曝光下快速识别高 CTR 活动,同时试新活动 |
| 形式化 | 5 臂 Bernoulli Bandit:选臂 $a \in {1..5}$,奖励 $r \in {0,1}$(点击) |
| 成功 KPI | 相对固定轮播 baseline,CTR +3%~5%;Regret 亚线性增长 |
| 为何不用全 MDP | 单步决策、无长期状态转移时,Bandit 更简单、可解释、易 A/B |
二、配套 Notebook
📓 bandit_news_recommendation.ipynb
| 章节 | 内容 |
|---|---|
| 模拟 5 臂 CTR | 真实 CTR 对算法不可见 |
| ε-greedy vs UCB1 | Regret 曲线对比 |
| 纯贪心反面教材 | 探索不足导致高 Regret |
| 滑动 CTR | 观察收敛到最优臂 |
1 | pip install numpy matplotlib jupyter |
纯 NumPy,无需 GPU,5 分钟内跑完。
三、落地主要难点与方案
难点 1:冷启动(新活动无历史)
| 方案 | 优势 | 局限 |
|---|---|---|
| UCB / Thompson Sampling | 理论 Regret 保证、自动探索 | 假设平稳 CTR |
| ε-greedy | 实现极简 | 探索无差别,Regret 常更差 |
| 强制探索流量 | 业务可控 | 牺牲短期收入 |
难点 2:CTR 非平稳(季节/疲劳)
| 方案 | 优势 | 局限 |
|---|---|---|
| 滑动窗口估计 | 跟踪变化 | 窗口大小难选 |
| 指数衰减 $Q$ 更新 | 重视近期 | 超参敏感 |
| 定期全量重训 | 简单 | 算力与工程成本 |
难点 3:用户异质(同活动对不同人 CTR 不同)
| 方案 | 优势 | 局限 |
|---|---|---|
| Contextual Bandit(LinUCB、Neural) | 个性化 | 特征工程、延迟 |
| 分群 Bandit | 可解释 | 群划分粗糙 |
| 全序列 RL | 长期 LTV | 离线偏差、复杂 |
难点 4:奖励与业务 KPI 不一致
| 方案 | 优势 | 局限 |
|---|---|---|
| 点击作 reward | 信号快 | 标题党、损害留存 |
| 加权 reward(点击+停留+转化) | 更对齐 | 稀疏、延迟 |
| 线下 A/B 看 GMV/LTV | 金标准 | 周期长 |
反例:只优化 CTR → 推送低俗标题 → 短期 CTR↑、长期留存↓。
难点 5:全序列 RL 与离线日志
| 方案 | 优势 | 局限 |
|---|---|---|
| IPS / Doubly Robust | 用历史日志 | 高方差 |
| CQL / BCQ | 保守、较安全 | 实现复杂 |
| 在线小流量探索 | 真实反馈 | 风险需控 |
四、推荐落地路径
1 | Phase 1: MAB(本 Notebook)→ 5% 流量 A/B |
五、小结
- 案例:5 槽位活动推荐 = 5 臂 Bandit。
- Notebook:对比 ε-greedy / UCB / 贪心。
- 下一案例:调度仿真