强化学习 / 02
Bandit 与探索利用
Bandit 是强化学习里最常见、也最容易在业务里落地的一类方法。它处理的问题是:在不知道哪个动作最好时,如何一边尝试新动作,一边尽量获得收益。
探索和利用
利用是选择当前估计最好的动作。探索是尝试不确定但可能更好的动作。
只利用会陷入旧策略;只探索会伤害体验和收益。Bandit 的核心就是平衡两者。
典型场景
- 推荐系统给新内容探索流量。
- 广告系统测试新人群或新创意。
- 补贴系统测试不同补贴档位。
- 运营触达选择短信、push、优惠券。
- 调度系统尝试不同策略参数。
这些场景都不需要完整 MDP,但需要处理不确定性。
Epsilon-greedy
最简单方法:
- 大多数时候选择当前最优动作。
- 少部分流量随机探索。
优点是简单稳定。缺点是探索不够智能,可能浪费流量。
UCB
UCB 会给不确定的动作加奖励:
score = 估计收益 + 不确定性奖励
尝试少的动作不确定性高,会获得更多探索机会。
Thompson Sampling
Thompson Sampling 从每个动作的后验分布中采样,根据采样结果选择动作。它在很多在线实验和推荐场景中效果不错。
直觉是:不确定但可能好的动作有机会被选中,确定差的动作会逐渐被淘汰。
Contextual Bandit
Contextual Bandit 会考虑上下文。不同用户、区域、时段下,最优动作可能不同。
例如补贴策略:
- 高峰区域需要更高补贴。
- 对补贴敏感的骑手更适合激励。
- 低需求时段不需要额外补贴。
Contextual Bandit 可以根据特征选择动作。
和 A/B 实验的关系
传统 A/B 固定分流,Bandit 会动态调整流量。Bandit 更高效,但分析更复杂,因为分配概率会变化。
如果要做因果评估,需要记录每次动作的选择概率,也就是 propensity。
工业落地注意点
- 探索比例要有限制。
- 关键业务要有安全阈值。
- 记录动作、候选、概率和反馈。
- 避免频繁改变用户体验。
- 分人群、分场景监控。
面试题:推荐冷启动怎么用 Bandit
理想回答:
对新内容可以先通过质量模型筛选,再给一定探索流量。Bandit 根据曝光后的点击、停留、负反馈动态调整探索量。高不确定但表现好的内容获得更多流量,表现差的内容快速退出。探索过程要设置流量上限和负反馈护栏。
总结
Bandit 是业务算法里非常实用的探索工具。面试里要讲清楚:为什么需要探索、如何控制风险、如何记录 propensity、如何评估长期收益。
下一篇建议继续看: