Welcome

首页 / 软件开发 / 数据结构与算法 / 基于用户投票的排名算法(四)牛顿冷却定律

基于用户投票的排名算法(四)牛顿冷却定律2014-10-20 阮一峰 这个系列的前三篇,介绍了Hacker News,Reddit和Stack Overflow的排名算法。

今天,讨论一个更一般的数学模型。

这个系列的每篇文章,都是可以分开读的。但是,为了保证所有人都在同一页上,我再说一下,到目前为止,我们用不同方法,企图解决的都是同一个问题:根据用户的投票,决定最近一段时间内的"热文排名"。

你可能会觉得,这是一个全新的课题,伴随着互联网而产生,需要全新的方法来解决。但是,实际上不是。我们可以把"热文排名"想象成一个"自然冷却"的过程:

(1)任一时刻,网站中所有的文章,都有一个"当前温度",温度最高的文章就排在第一位。

(2)如果一个用户对某篇文章投了赞成票,该文章的温度就上升一度。

(3)随着时间流逝,所有文章的温度都逐渐"冷却"。

这样假设的意义,在于我们可以照搬物理学的冷却定律,使用现成的公式,建立"温度"与"时间"之间的函数关系,轻松构建一个"指数式衰减"(Exponential decay)的过程。

伟大的物理学家牛顿,早在17世纪就提出了温度冷却的数学公式,被后人称作"牛顿冷却定律"(Newton"s Law of Cooling)。我们就用这个定律构建排名算法。

URL:http://www.bianceng.cn/Programming/sjjg/201410/46038.htm