推荐系统——排行榜算法
推荐系统——排行榜算法

推荐系统——排行榜算法

本文标题将“推荐系统”与“排行榜”联系到了一起,你可能会有所疑惑,它们之间有什么关系呢?

推荐系统是“智能”的,带有学习性质,能够和用户进行互动,在互动的过程中,算法参数得到更新和进化。

但是,这一切的前提是要以数据为前提的,推荐系统有一个顽疾就是冷启动,冷启动就是没有数据。

一个新用户来了,推荐系统对其一无所知,没有数据推荐系统怎么学习呢?这时候你就需要一个排行榜了。

  • 排行榜可以作为解决新用户冷启动问题的推荐策略。
  • 排行榜可以作为老用户的兴趣发现方式。
  • 排行榜本身就是一个降级的推荐系统。

如何为电商系统构建一个合理的排行榜?

最简单的排行榜,就是直接统计某种指标,按照大小去排序。在社交网站上,按照点赞数、转发数、评论数去排序,这是一种最常见、最朴素的排行榜。

在我们正在研发的电商导购类产品中,就是按照销量去排序。

这种推荐算法很简单,但是这样做并不靠谱,原因在于:

  1. 很容易被刷榜。
  2. 马太效应一直存在,不能反映出排行榜随着时间的变化。

考虑时间因素——牛顿冷却定律

物品受关注度如温度一样,不输入能量的话它会自然冷却,而且物体的冷却速度和其当前温度与环境温度之差成正比。

公式为:

T(t) = H + C * e−αt

公式中字母意义如下:

H:环境温度,可以认为是平均销量,由于不影响排序,可以不使用。

C:净剩票数,即时刻t物品已经得到的票数,也就是那个最朴素的统计量,当前场景下为商品销量。

t:为物品冷却时间,一般以小时为单位。

alpha:是冷却系数,反映物品自然冷却的快慢。

如何确定alpha?

假如一个物品在时间过去B个单位后,因为增加了A个投票数,而保持了热门程度不变,那这样的话a应该多少呢?

C * e−αt = (C + A) * e−α(t+B)

可以得到 α = 1 / B * ​ln(1 + A/C​)

用这个公式加上自己产品的实际情况来确定alpha就容易得多,假如按照 B = 24,也就是过一天来看:

直观解释A / Calpha
投票数翻倍10.03
投票数增加两倍20.05
投票数增加三倍30.06
投票数增加三百倍3000.24
结合业务情况计算alpha

发表评论

邮箱地址不会被公开。