排行榜半衰期算法

原文链接

放射性元素的原子核有半数发生衰变时所需要的时间,叫半衰期。随着放射的不断进行,放射强度将按指数曲线下降,放射性强度达到原值一半所需要的时间叫做同位素的半衰期。原子核的衰变规律是:N = No * ( 1 / 2 ) ^ ( t / T )。其中:No 是指初始时刻( t = 0 )时的原子核数,t 为衰变时间,T 为半衰期,N 是衰变后留下的原子核数。

对于排行榜所涉及的因素无外乎有几个:上架时间、下载量、评分、参与评分的人数。将元素的半衰期规律应用到排行榜算法中是一个很好的选择,可以将以上所有因素都结合在这个公式中。N 为一个应用获得的权重,No 为初始值,我们设置为一个单位。t 为距离初始值的时间。(如果 No 设置为一天,t 即为几天;如果初始值设置为一小时,t 即为几个小时)将 T 设置为排行中一个应用的活跃期,可以有效将时间这个因素利用起来,这样可以减小马太效应,避免强者越强、弱者越弱。

对于参与评分人数,不同的应用可能参与评分的人数不在一个数量级上,这样将这个参数引入到公式中就会对结果造成过大的影响,因此可以采用将参与评分的人数取对数的方式转换到同一个数量级上,并保持原有的递增规律。

基于以上的理论,num 代表评分人数,排行榜半衰期算法公式为:N = No * ( 1 / 2 ) ^ ( t / T ) * lg(num)

你可能感兴趣的:(排行榜半衰期算法)