热度排序算法

实现一个内容系统的问答排名,了解一下几个经典的算法

hacker news的排名算法

hacker news上面的热度排名多年以来能够很好的反映绝大多数用户的喜好,热度比较高的的文章也不会一直出现在前列,从而导致没有新的内容被关注,

他们会按照文章的票数多少和发布时间对文章进行一些逻辑处理得到对应的热度排序。

Score=(P1)(T+2)G S c o r e = ( P − 1 ) ( T + 2 ) G

  • P:投票数,-1是把自己投的过滤掉
  • T:发布到现在的时间间隔,单位小时,+2防止除数太小
  • G:重力加速度,它的数值大小决定了排名随时间下降的速度快慢

hacker news的排名算法

通俗点的例子

  • 热度=(浏览量-1)/(发布到现在的时间间隔+2)乖以G的平方

列表排序由热度决定,热度是由浏览量、作品发布的时间间隔、G值共同决定

为什么这样好呢?

能够根据浏览量过滤出同时发布的一批作品集中的热度作品,因为他们的分母相同,而分子大的热度肯定大。

能够过滤出不同时间段热度高的作品,避免误差

举例

    a在1号发表了作品aa,aa被点击了101次,
    b在2号发表了作品bb,bb被点击了51次,在3号比较他们的热度,此处G取2
    aa的热度=(101-1)/(48+2^2 = 0.04
    bb的热度=(51-1)/(24+2)^2=0.07

这里bb热度>aa热度 ,但是我们会感觉2个其实热度应该一样

当然,不同情况需要根据实际数据调整好G值,达到最优效果

Reddit的排名算法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值