EE探索在推荐召回中应用

bandit EE的算法网上有很多文章介绍,这里就不再赘述了。本文主要介绍EE UCB算法在推荐召回中的实际应用。
UCB的公式如下: 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}}} scorej=Tj,tCj,t+Tj,t2lnt

C j , t C_{j,t} Cj,t:topic点击次数; T j , t T_{j,t} Tj,t:topic展示次数; t:该用户展现总次数 。
该公式前半部分计算topic的实际点击率;后半部分计算探索概率。
在topic展现次数较大时,主要依赖前半部分的值,即实际点击率的置信度较高。
在topic展现次数较小时,点击率的置信度较低,此时对该topic主要靠探索值来排名。
在推荐召回中,根据上述公式计算用户对每个topic的score,然后根据score取topK个topic,最后召回topK topic下的热门feed。

在实际使用中,有如下两个trickle

  1. 对于从未展示过的topic,T的初始值设为多少比较合适
    需要根据业务中的探索需求大小来设定,假设用户总展现次数t=10,可以通过下表来选择T的初始值
展现次数点击次数score
111+ 2 ln ⁡ 10 1 \sqrt{\frac{2\ln10}{1}} 12ln10 =3.14
10 2 ln ⁡ 10 1 \sqrt{\frac{2\ln10}{1}} 12ln10 =2.14
210.5+ 2 ln ⁡ 10 2 \sqrt{\frac{2\ln10}{2}} 22ln10 =2.017
20 2 ln ⁡ 10 2 \sqrt{\frac{2\ln10}{2}} 22ln10 =1.517
310.33+ 2 ln ⁡ 10 3 \sqrt{\frac{2\ln10}{3}} 32ln10 =1.569
30 2 ln ⁡ 10 3 \sqrt{\frac{2\ln10}{3}} 32ln10 =1.239
410.25+ 2 ln ⁡ 10 4 \sqrt{\frac{2\ln10}{4}} 42ln10 =1.323
40 2 ln ⁡ 10 4 \sqrt{\frac{2\ln10}{4}} 42ln10 =1.073

从表中可以看出,如果将未展示过的topic T初始值设为2,则未展示过的topic score会大于展示过3次未点击的topic以及展示过4次只点击1次的topic。 即T的初始值越小,探索概率越大;反之探索概率变小。

  1. 所有未展示过的topic中优先选择哪些topic做推荐
    一般有类似linucb算法来根据用户meta特征选取匹配的topic
    在这里插入图片描述
    然而在实际推荐系统中,除了EE召回,还有其他各种召回,最后通过排序模型来选择展示给用户的内容。因此所有展现给用户的topic都是已经与用户特征做过匹配的了。基于以上想法,可以不用实现linucb这类复杂的算法,直接分别计算未展示topic与所有已展示topic的距离和,对未展示的topic按距离和做倒序排序选取即可。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值