-
经常用于冷启动的bandit算法
-
推荐系统和计算广告中经常会碰到某些长尾广告或长尾item从来没有机会或者很少机会的展示,
导致CTR预估非常不准,需要探索性地创造机会给它们一定的展示量,但又不能带来太大的损失。
这种问题一般称作Explore and Exploit问题。
在学术界经常把它描述成为一个多臂赌博机问题(multi-armed bandit problem, MAB),若干台赌博机,
每次可以选择一台机器摇一下,有一定概率会吐钱出来,但各台机器吐钱概率不一致且未知,
那么赌徒每次该如何选择来最大化收益?
每个赌博机相当于一个item,吐钱:item的质量(简单的看作点击率)赌徒:推荐算法,这样就把我们的推荐系统映射到bandit算法了 -
探索和利用(Explore and Exploit):概念介绍
exploit-explore问题,
exploit意思就是:对用户来说,是比较确定的用户兴趣,对item来说,系统知道这个item的质量(丰富行为产生的历史ctr)
explore意思就是:不断探索用户新的兴趣才行,不然很快就会出现一模一样的反复推荐。对item来说,
针对新出现的item,要给一定的概率进行推荐试错。
-
用bandit算法解决冷启动的思路
用圈定的推荐候选item表示每个用户不同兴趣,也就是MAB问题中的臂(Arm),通过几次试验,
来刻画出新用户心目中对每个item的感兴趣概率。
如果用户对某个item感兴趣(提供了显式反馈或隐式反馈),就表示得到了收益,ctr
如果推给了它不感兴趣的item,推荐系统就表示无收益。无点击
如此经历“选择-观察-更新-选择”的循环,理论上是越来越逼近用户真正感兴趣的item。
这里介绍一下UCB算法,UCB算法全称是Upper Confidence Bound(置信区间上界):
x j ˉ ( t ) + 2 ln t T j , t \bar{x_{j}}(t)+\sqrt{\frac{2\ln t}{T_{j,t}}} x