類似基于投票的熱門計(jì)數(shù)算法普遍應(yīng)用在熱門文章,熱門評(píng)論等場(chǎng)景中,
典型的比如網(wǎng)易和今日頭條的評(píng)論區(qū),國(guó)外比如Hacker News和Reddit的主題排序。
一.Hacker News的排序算法
Hacker News是一個(gè)主題社區(qū),用戶可以為主題投票,根據(jù)得票數(shù),系統(tǒng)自動(dòng)統(tǒng)計(jì)出熱門文章排行榜。
同時(shí)主題發(fā)表時(shí)間也會(huì)對(duì)排名產(chǎn)生影響,新發(fā)表的主題比舊的主題更容易得到好的排名。
Hacker News的排名算法是這樣實(shí)現(xiàn)的:
(p – 1) / (t + 2)^G
其中,
P表示帖子的得票數(shù),減去1是為了忽略發(fā)帖人的投票。
T表示距離發(fā)帖的時(shí)間(單位為小時(shí)),加上2是為了防止最新的帖子導(dǎo)致分母過(guò)?。ㄖ赃x擇2,可能是因?yàn)閺脑嘉恼鲁霈F(xiàn)在其他網(wǎng)站,到轉(zhuǎn)貼至Hacker News,平均需要兩個(gè)小時(shí))。
G表示"重力因子"(gravityth power),即將帖子排名往下拉的力量,默認(rèn)值為1.8。
從這個(gè)公式來(lái)看,決定帖子排名有三個(gè)因素:
第一個(gè)因素是得票數(shù)P。
在其他條件不變的情況下,得票越多,排名越高。
第二個(gè)因素是距離發(fā)帖的時(shí)間T。
在其他條件不變的情況下,越是新發(fā)表的帖子,排名越高?;蛘哒f(shuō),一個(gè)帖子的排名,會(huì)隨著時(shí)間不斷下降。
第三個(gè)因素是因子G。
它的數(shù)值大小決定了排名隨時(shí)間下降的速度。
G值越大,排名下降得越快,意味著排行榜的更新速度越快。
二.Reddit的排序算法
Reddit 是Digg類型網(wǎng)站,國(guó)內(nèi)類似的社區(qū)有花瓣網(wǎng)等。
和Hacker News不同,和Reddit允許用戶投反對(duì)票,
算法如下圖:
1.文章提交時(shí)間對(duì)排名的影響
文章提交時(shí)間對(duì)排名的影響可以總結(jié)為以下幾點(diǎn):
提交時(shí)間對(duì)排名影響巨大,越新的文章排名會(huì)越高
文