UCB(Upper Confidence Bound)算法
在推荐系统中,通常量化一个物品的收益率(或者说点击率)是使用点击数/展示数
,例如点击为10,展示数为8,则估计的点击率为80%,在展示数达到10000后,其表现ctr是否还能达到80%呢? 显然是不可能的。而这就是统计学中的置信度问题,计算点击率的置信区间的方法也有很多,比如威尔逊置信空间
UCB算法步骤包括:首先对所有item的尝试一下,然后每次选择score值最大的那个:
Input: N arms, number of rounds T >= N
step.1.
For t = 1 … N, play arm tstep.2.
For t = N+1 … T, play arm
其中step.2.
中,play arm
时选取的item应该是经过排序的,排序score的计算方式为:
s
c
o
r
e
(
j
)
=
C
j
,
t
T
j
,
t
+
2
ln
t
T
j
,
t
score(j) = \frac { C _ { j, t } } { T _ { j , t } } + \sqrt { \frac { 2 \ln t } { T _ { j , t } } }
score(j)=Tj,tCj,t+Tj,t2lnt
其中,式子“+”的左半部分为物品到目前的收益均值,右半部分本质上是均值的标准差。
t
: 总实验次数T(j,t)
: j 帖子被推荐次数C(j,t)
:j 帖子被点击次数
这个公式表明随着每个物品试验次数的增加,其置信区间就越窄,收益概率就越能确定。如果收益均值越大,则被选中的机会就越大(exploit),如果收益均值越小,其被选中的概率也就越少,同时哪些被选次数较少的item也会得到试验机会,起到了explore的作用。