强化学习 / 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、如何评估长期收益。

下一篇建议继续看: