智能推荐系统新用户冷启动—EE问题及Bandit算法!
前言
几乎在所有信息消费类的应用场景中,对于外部画像缺失的新用户,如何承接都是一个棘手但又十分关键的问题。承接的好,理所当然就能提升留存率,离人生巅峰就更进一步了,嘿嘿!
算法适用场景:
- 新用户冷启动
- 用户兴趣探索
- (请各位补充)
如何定义新用户(冷启动用户)?
在这抛砖引玉,说三点简单的方法。
- 综合曝光,点击数等行为。
- 基于用户画像。
- 综合各种信息。
Exploration and Exploitation(简称EE)
在推荐系统中:Exploitation的意义在于对用户感兴趣的要大力开发。但一直给用户推荐那几样内容,用户就会腻。所有就需要exploration。探索挖掘用户兴趣。
bandit算法
bandit算法泛指解决EE问题的所有算法,在此介绍其中较为经典的两种——LinUCB和Thompson Sampling。
Thompson Sampling:
简单来说:以用户对不同item的兴趣,分别计算兴趣值。且我们假设用户对item的兴趣是符合Beta分布的。
算法实现流程:
- 每个臂(item或类目等)都对应一套(a,b)参数,然后通过上述公式生成beta随机数。
- 将产生的随机数最大的臂作为结果,并根据用户反馈,点击则a+1,否则b+1
在尝试次数越来越多的时候,所有的(a,b)都已经很大,这时候每一个beta分布都会变得接近中心位置,生成的随机数趋于稳定。
若某个臂的a+b跟a/(a+b)都很大的时候,beta分布会很窄,且概率集中到1附近,所以该臂生成的随机数每次都会比较大,被选中概率就会很大。
存在问题
- 臂的数量:若臂数量过多,则影响算法收敛。所以需要事先筛选,控制臂的数量。
- a,b超参的选择——设置为1。原因在这就留给看官们来解答吧。