RL-07-02-实战-推荐与Bandit

← 上级: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
2
pip install numpy matplotlib jupyter
jupyter notebook bandit_news_recommendation.ipynb

纯 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
2
3
Phase 1: MAB(本 Notebook)→ 5% 流量 A/B
Phase 2: Contextual Bandit + 用户特征
Phase 3: 序列 RL(仅当有明确长期 reward 且离线评估就绪)

五、小结

  • 案例:5 槽位活动推荐 = 5 臂 Bandit。
  • Notebook:对比 ε-greedy / UCB / 贪心。
  • 下一案例调度仿真
-------------本文结束感谢您的阅读-------------