Multi-Armed Bandit

May 16, 2016


1. Multi-Armed Bandit

在赌徒面前有一排老虎机,选择任意一台老虎机后,该台老虎机会给一个数值奖励,每台老虎机给的数值奖励服从一个单独的概率分布

赌徒并不知道每台老虎机的概率分布,赌徒的目标是最大化玩T次后得到的总奖励

赌徒想获取各个老虎机分布的信息(哪台老虎机能获得最大的奖励),这个称为exploration

同时又要根据exploration的结果获得最多的奖励,这个称为exploitation

赌徒面临着exploration和exploitation的权衡,这就是Multi-Armed Bandit问题

一个比较有名的方法称为

在某轮选择中

  • 使用的概率选择迄今为止奖励均值最高的老虎机
  • 使用的概率选择剩下的老虎机(剩下的老虎机被选择概率相等)

兼顾了exploration和exploitation,通常设定为一个较小的值(比如0.01)

实际的在线推荐系统可以直接套用这个问题

在线推荐的问题中,我们也有一堆的老虎机(商品/广告等),选择一个物品,会得到一个奖励(用户购买/点击等)

在线推荐的目标也是最大化这个总奖励

2. Contextual Bandit

在实际的在线推荐中,通常我们还会有一个特征向量描述当时的上下文场景(用户历史行为、天气等)

每次决策时,需要额外利用这个特征向量的信息,这种Multi-Armed Bandit的变种称为

一个处理Contextual Bandit问题的算法流程如下

  • For t = 1,2,3,…
    • 获取老虎机集合,对每台老虎机,获取所有的上下文向量(特征向量)
    • 选择一个老虎机作为本轮的选择,随后得到本轮的奖励
    • 使用新的观测值和历史的观测值调整策略

于是,我们可以定义T轮的总奖励为

定义第t轮时最大奖励对应的老虎机为,那么可以定义最优的T轮总奖励为

这个差值称为regret,定义T轮regret

\begin{align} R_A(T) = E\left[\sum_{t=1}^Tr_{t,a_t}\right]-E\left[\sum_{t=1}^Tr_{t,a_t^*}\right] \end{align}

最大化奖励,也就是最小化regret了