Hacker News的热门排名算法

标签: 技术荟萃 | 发表时间:2014-03-20 15:54 | 作者:互联网实践
出处:http://blog.sina.com.cn/netreview

Hacker News 是一家关于计算机黑客和创业公司的社会化新闻网站,由 Paul Graham 的创业孵化器 Y Combinator 创建。与其它社会化新闻网站不同的是 Hacker News 没有踩或反对一条提交新闻的选项(不过评论还是可以被有足够 Karma 的用户投反对票,或是投支持票);只可以赞或是完全不投票。简而言之,Hacker News 允许提交任何可以被理解为“任何满足人们求知欲”的新闻。

image

每个新闻标题前面有一个向上的三角形,如果你觉得这个内容很好,就点击一下,投上一票。根据得票数,系统自动统计出热门文章排行榜。但是,并非得票最多的文章排在第一位,还要考虑时间因素,新文章应该比旧文章更容易得到好的排名。

Hacker News 采用公式 (p – 1) / (t + 2)^1.5 做为排行依据(Hacker News使用Paul Graham开发的Arc语言编写,源码可以从 arclanguage.org下载),其中P是投票数量,t是发表以来的时间,小时计。后来 AMIX.DK 给出公式 Score = (P-1) / (T+2)^G 推广了上面的公式,Hacker News的公式变成了一个特例,其在G=1.5时的应用。历史上Hacker News有用G=1.8。

第一个因素是得票数P

在其他条件不变的情况下,得票越多,排名越高。从下图可以看到,有三个同时发表的帖子,得票分别为200票、60票和30票(减1后为199、59和29),分别以黄色、紫色和蓝色表示。在任一个时间点上,都是黄色曲线在最上方,蓝色曲线在最下方。

image

为什么是P-1?网络上的一种解释是,很多文章作者在提交的时候会给自己投上一票。其实更重要的原因是文章发布初期的投票数对排名影响非常的,仅仅是自己给自己投的一票,也占非常大的作用。

假设P不去减去1,那公式为: p / (t + 2)^1.5

如果一个作者发布完就给自己投票,那么文章的得分为1/(0+2)^1.5=0.3535 。假设另外一篇文章发布了8小时,那么需要多少的投票呢?x/(8+2)^1.5>0.3535 X>11.17~ 即一天前的帖子要有12票才能超过新提交的文章,这显然不合理。

这个具体减多少还要视网络环境而定,要是换在国内,估计P-100还不够。另外如果你不期望“高投票文章”与“低投票文章差距过大,可以在得票数上加一个小于1的指数,比如(P-1)^0.8。

第二个因素是距离发帖时间T

在其他条件不变的情况下,越是新发表的帖子,排名越高。或者说,一个帖子的排名,会随着时间不断下降。

从前一张图可以看到,经过24小时之后,所有帖子的得分基本上都小于1,这意味着它们都将跌到排行榜的末尾,保证了排名前列的都将是较新的内容。

如果,用户的第一个投票是在当前,1小时,2小时获得时,这个曲线的变化是什么呢?如下图,曲线斜率从大到小分别是当前、1小时、2小时。可以看到第一个投票的作用不断弱化,其权重不断降低。

image

第三个因素是重力因子G

它的数值大小决定了排名随时间下降的速度。从下图可以看到,三根曲线的其他参数都一样,G的值分别为1.5、1.8和2.0。G值越大,曲线越陡峭,排名下降得越快。

image

为什么G=1.5,首先,G是干嘛的。毫无疑问,G这个数字既非时间,也非评价,其实它的主要目的是控制更新频率。G的值越大,score的衰减速度越快,排行的更新越频繁。所以,确定G值需要观察系统内部投票数在时间上的分布,然后根据需要的更新频次确定G的合理取值。越火爆、用户互动越频繁的社区,为了保证排行的稳定性(不要频繁大量的刷新),G值趋向于比较低。这就是为什么Hacker News从一开始的1.8修改成1.5,过段时间可能就变成1.2了。

拓展阅读: 基于贝叶斯算法的IMDB排名

参考文章: http://amix.dk/blog/post/19574


  青春就应该这样绽放   游戏测试:三国时期谁是你最好的兄弟!!   你不得不信的星座秘密

相关 [hacker news 排名] 推荐:

Hacker News的热门排名算法

- - 互联网实践
Hacker News 是一家关于计算机黑客和创业公司的社会化新闻网站,由 Paul Graham 的创业孵化器 Y Combinator 创建. 与其它社会化新闻网站不同的是 Hacker News 没有踩或反对一条提交新闻的选项(不过评论还是可以被有足够 Karma 的用户投反对票,或是投支持票);只可以赞或是完全不投票.

Hacker News 排名算法工作原理

- - python.cn(jobs, news)
这篇文章我要向大家介绍 Hacker News网站的文章排名算法工作原理,以及如何在自己的应用里使用这种算法. 这个算法非常的简单,但却在突出热门文章和遴选新文章上表现的异常优秀. 深入 news.arc 程序代码. Hacker News是用Arc语言开发的,这是一种Lisp方言,由Y Combinator投资公司创始人 Paul Graham创造.

基于用户投票的排名算法(一):Delicious和Hacker News

- - 阮一峰的网络日志
互联网的出现,意味着"信息大爆炸". 用户担心的,不再是信息太少,而是信息太多. 如何从大量信息之中,快速有效地找出最重要的内容,成了互联网的一大核心问题. 各种各样的排名算法,是目前过滤信息的主要手段之一. 对信息进行排名,意味着将信息按照重要性依次排列,并且及时进行更新. 排列的依据,可以基于信息本身的特征,也可以基于用户的投票,即让用户决定,什么样的信息可以排在第一位.

【Hacker News】不,我才不会去下载你的狗屁软件

- - CSDN博客推荐文章
/*------------------------------------------- 程序猿的进化论------------------------------------------------*/. Hacker News上收集了很多IT界牛人的博客,有的文章读后感觉醍醐灌顶,有的文章幽默诙谐,有的文章完全颠覆你的价值观.

单独的 Google News Archive 搜索下线

- 猫 - 谷奥——探寻谷歌的奥秘
Google已经在今年5月宣布关闭老报纸扫描计划,但当时他们说的好好的,只是不再继续扫描老报纸了,之前已经扫描的报纸还会在,且可通过Google News Archive Search搜索并阅读(如上图). 但是今天大家却发现,Google News Archive Search已经进不去了,Google会直接给你重定向到Google News的高级搜索页面里.

◇News特報『我們的白衣天使~♥』

- MDJ - 模物語
腐貓:唉呀…就別計較這麼多了嘛~. 少女A:雪集愛穿的款式也在裡面唷. 答對者可以獲得少女A的OO唷♥. 本篇文章歡迎轉貼,但請備註來源連結為模物語. 若喜愛本文內容就按個讚或推Or留個意見嘿.

Hacker Typer – 逼真黑客范儿 | 小众软件 > 在线应用

- leplay - 小众软件
Hacker Typer 是不折不扣的装逼应用. 你可以一行程序都不会写,只需要一点黑客范儿,就可以让妹子们刮目相看了. 按钮,然后自然熟练地把键盘按地劈里啪啦,不要激动,不要劲舞范儿. 只见代码喷薄而出,就像飞速拉开的裤子拉链. 当妹子们邀请你去修电脑时,你懂的. 注:在 iOS/Android 上都有同名同种的应用可以下载哦,跨平台装逼.

QR Hacker:个性化QR码制作工具

- huangct - 雷锋网
QR码已经在我们的生活中大行其道,但大多数QR码还是保持着一贯的黑白两色方块风格. 我们介绍的在线自定义QR码制作工具QR Hacker则完全颠覆了QR码的传统印象,用户可以为QR码设置不同的颜色、形状、以及Logo、照片等,让你的QR码更具有个性. 用QR Hacker生成QR码共分5步:. 输入信息(文字、地址、电话等);.

★News速報 『K-ON!劇場版目的地為倫敦!』

- qugougou - 模物語
(穿這樣還是堅持要吃冰淇淋的唯超可愛呀~~). 在第二期動畫第27回中為了辦理出國護照而搞的焦頭爛額的五人,這次在官網最新公佈的訊息中透露了真正的目的地. 的粉絲們現在就可以開始上網看看倫敦的相關旅遊情報囉,這樣劇場板上映的時候會看起來更有感覺唷~. 而公佈消息的來源跟聖誕之吻二期製作決定一樣來自於今天舉辦的TBS動畫祭2011,而訊息中也透露了去的成員只有HTT,所以小憂及小和出場的戲份應該會激減...

Google Squared 和 Google News Timeline 等实验室项目确定下课

- applelen - 谷奥——探寻谷歌的奥秘
Google还在忍痛割爱地挑选哪个Google Labs项目可以留下,而谁会下课. 今天又确定有4个实验项目下课:. Google Squared于2009年6月发布,以表格形式提供系统而规矩的搜索结果. 后来其技术也直接集成进Google搜索,比如你如果问Lady Gaga的生日的话,不必看问答网站或维基百科,Google直接就告诉你了(上图).