Bandit算法

算法思想

累计遗憾
i = 1 T ( G o p t G i ) \sum_{i=1}^T (G_{opt}^* - G_{i})
G o p t G_{opt}^* 是最优选择方案的收益 , G i G_{i} 是实际采取的选择的收益。
目标是累计遗憾最小 。

  1. 更多选择确定好的方案
  2. 更少寻找确定不好的方案
  3. 更多选择不确定好坏的方案

常见的Bandit算法

汤普森采样

Beta分布的PDF概率密度函数为:
1 B ( α , β ) x α 1 ( 1 x ) β 1 \frac{1}{B(\alpha, \beta)}x^{\alpha-1}(1-x)^{\beta-1}
其中:
B ( α , β ) = Γ ( α + β ) Γ ( α ) Γ ( β ) B(\alpha, \beta)=\frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}
Beta分布

  1. α + β \alpha+\beta 越大,曲线越窄,分布越集中。
  2. α α + β \frac{\alpha}{\alpha+\beta} 越大,中心越接近于1;反之则越接近于0。

则可分为三种情况:

  1. α + β \alpha+\beta 很大,并且 α α + β \frac{\alpha}{\alpha+\beta} 很大,分布很窄,中心接近于1
  2. α + β \alpha+\beta 很大,并且 α α + β \frac{\alpha}{\alpha+\beta} 很小,分布很窄,中心接近于0
  3. α + β \alpha+\beta 很小,分布很宽

当Beta分布用到推荐系统时, α \alpha 可表示推荐后用户点击次数, β \beta 可表示推荐后用户未点击次数。每个用户每个商品都要维护各自的 α β \alpha和\beta

  1. α + β \alpha+\beta 很大,并且 α α + β \frac{\alpha}{\alpha+\beta} 很大,表示该物品用户比较大可能点击,是个好的候选项,起到利用Exploit的作用。
  2. α + β \alpha+\beta 很大,并且 α α + β \frac{\alpha}{\alpha+\beta} 很小,表示该物品用户比较小可能点击,是个坏的候选项
  3. α + β \alpha+\beta 很小 ,表示该物品被推荐的次数比较少,用户是否点击不太确定,需要多推荐。起到探索Explore的作用。
scipy.stats.distributions.beta.ppf(np.random.random(size), pos, neg)

UCB算法

置信区间上界。为每个臂评分,每次选出评分最高的臂输出,然后观察用户反馈,再更新相应的臂的参数。
每个臂的评分为:
X j ( t ) + 2 l n t T j , t \overline X_j(t) + \sqrt{\frac{2lnt}{T_j,_t}}

X j ( t ) \overline X_j(t) 是该候选臂到目前为止的平均收益, T j , t T_j,_t 是该候选臂被选择的次数,t为总的选择次数。
算法思想和汤普森采样一样 :

  1. 以每个候选臂的平均收益为基准进行选择。
  2. 对于选择次数不足的给予照顾。
  3. 倾向于选择那些确定收益较好的选择。
 for arm in range(n_arms):
   bonus = math.sqrt((2 * math.log(total_counts)) / float(counts[arm]))
   new_rewards[arm] = old_rewards[arm] + bonus

Epsilon算法

{ , ϵ 1 ϵ \begin{cases} 随机选择一个臂, & 以\epsilon概率 \\[2ex] 选择最大平均收益的臂, & 以1-\epsilon概率 \end{cases}

   if random.random() > epsilon:
      return ind_max(rewards)
    else:
      return random.randrange(len(rewards))

反馈更新: n e w _ r e w a r d = n 1 n o l d _ r e w a r d + 1 n r e w a r d new\_reward =\frac{n-1}{n}* old\_reward +\frac{1}{n} * reward

发布了10 篇原创文章 · 获赞 0 · 访问量 283

猜你喜欢

转载自blog.csdn.net/eyeshere/article/details/101371537
今日推荐