排名公式
Hacker News(帖子投票)
\(其中P = 文章獲得的票數( -1 是去掉文章提交人的票)\)
\(T = 從文章提交至今的時間(小時)\)
\(G = 比重,news.arc里缺省值是1.8\)
Reddit(帖子贊踩)
\(其中t_{s}是發帖時間據網站成立的時間\)
\(y 是一個符號變量,表示對文章的總體看法。如果贊成票居多,y就是 +1;如果反對票居多,y就是-1;如果贊成票和反對票相等,y就是0。\)
\(z 表示贊成票超過反對票的數量。如果贊成票少於或等於反對票,那么z就等於1。\)
這種算法的一個問題是,對於那些有爭議的文章(贊成票和反對票非常接近),它們不可能排到前列。假定同一時間有兩個帖子發表,文章A有 1 張贊成票(發帖人投的)、0張反對票,文章B有 1000 張贊成票、1000張反對票,那么A的排名會高於B,這顯然不合理。
結論就是,Reddit 的排名,基本上由發帖時間決定,超級受歡迎的文章會排在最前面,一般性受歡迎的文章、有爭議的文章都不會很靠前。這決定了 Reddit 是一個符合大眾口味的社區,不是一個很激進、可以展示少數派想法的地方。
Stack Overflow(問題的得分、回答的數目和該問題的瀏覽次數)
1)Qviews(問題的瀏覽次數)
某個問題的瀏覽次數越多,就代表越受關注,得分也就越高。這里使用了以 10 為底的對數,用意是當訪問量越來越大,它對得分的影響將不斷變小。
2)Qscore(問題得分)和 Qanswers(回答的數量)
首先,Qscore(問題得分)= 贊成票-反對票。如果某個問題越受到好評,排名自然應該越靠前。
Qanswers 表示回答的數量,代表有多少人參與這個問題。這個值越大,得分將成倍放大。這里需要注意的是,如果無人回答,Qanswers 就等於0,這時 Qscore 再高也沒用,意味着再好的問題,也必須有人回答,否則進不了熱點問題排行榜。
3)Ascores(回答得分)
一般來說,"回答"比"問題"更有意義。這一項的得分越高,就代表回答的質量越高。
但是我感覺,簡單加總的設計還不夠全面。這里有兩個問題。首先,一個正確的回答勝過一百個無用的回答,但是,簡單加總會導致,1個得分為 100 的回答與 100 個得分為 1 的回答,總得分相同。其次,由於得分會出現負值,因此那些特別差的回答,會拉低正確回答的得分。
4)Qage(距離問題發表的時間)和 Qupdated(距離最后一個回答的時間)
改寫一下,可以看得更清楚:
Qage 和 Qupdated 的單位都是秒。如果一個問題的存在時間越久,或者距離上一次回答的時間越久,Qage 和 Qupdated 的值就相應增大。
也就是說,隨着時間流逝,這兩個值都會越變越大,導致分母增大,因此總得分會越來越小。
5)總結
Stack Overflow 熱點問題的排名,與參與度(Qviews 和 Qanswers)和質量(Qscore 和 Ascores)成正比,與時間(Qage 和 Qupdated)成反比。
備注(tzg):分母中的Qupdated是相比上面HN,Reddit的創新點,對好久不更新的回答懲罰
牛頓冷卻定律
- T(t)是溫度T的關於時間t的函數。微積分知識告訴我們,溫度變化(冷卻)的速率就是溫度函數的導數T'(t)。
- \(T_{0}\)是文章的初始溫度,比如100
- \(t-t_{0}為距離創建時間的小時數\)
- 常數α(α>0)表示冷卻系數;如果你想放慢"熱文排名"的更新率,"冷卻系數"就取一個較小的值,否則就取一個較大的值。
威爾遜區間
置信區間的實質,就是進行可信度的修正,彌補樣本量過小的影響。如果樣本多,就說明比較可信,不需要很大的修正,所以置信區間會比較窄,下限值會比較大;如果樣本少,就說明不一定可信,必須進行較大的修正,所以置信區間會比較寬,下限值會比較小。威爾遜區間很好地解決了小樣本的准確性問題。
- \(p表示樣本的"贊成票比例"\)
- n表示樣本的大小
- \(z_{1-\alpha / 2}\)表示對應某個置信水平的z統計量,這是一個常數,可以通過查表或統計軟件包得到。一般情況下,在95%的置信水平下,z統計量的值為1.96。
結論:可以看到,當n的值足夠大時,這個下限值會趨向p。如果n非常小(投票人很少),這個下限值會大大小於p。實際上,起到了降低"贊成票比例"的作用,使得該項目的得分變小、排名下降。
備注(tzg) 威爾遜區間的優勢就是它的缺點,導致總體偏向頭部,而尾部的新內容因為樣本量較少所以很難排上去
IMDB算法(貝葉斯算法,電影評分)
- WR, 加權得分(weighted rating)
- R, 該電影的用戶投票的平均得分(Rating)
- v, 該電影的投票人數(votes)
- m, 排名前 250 名的電影的最低投票數
- C, 所有電影的平均得分
梅西法(BCS體育賽事)
- \(X^TX構造為如下矩陣,對角元素就是隊伍i完成的比賽場數;i,j每有一個比賽/評價,非對角元素ij和ji位置的值減一。\)
- \(針對X^Ty的第i個元素就是隊伍i所有比賽獲得的分差之和。\)
這里簡單分析下\(X^TX\)是一個n階對稱方陣,也是一個對角陣,並且每一列線性相關。
為了讓r有唯一解,往往需要給\(X^TX\)和\(X^Ty\)增加一行0,表示每個隊伍所有評分總和為0.
總結:梅西法看中的是評分的分差,利用它給出不同項目的打分,進而排名。
科利法(Netflix電影評分)
- 𝐶的主對角線上為隊伍i完成的比賽場數+2,i,j每有一個比賽/評價,非對角元素ij和ji位置的值減一。
- \(b_{i}=1+0.5(w_{i}-l_{i})\),其中\(𝑤_𝑖\),\(l_𝑖\) 為獲勝場數和落敗場數。
總結:科利法以傳統的勝率模型為基礎,考慮了對手的強弱來修正補償。
馬爾可夫法(PageRank網頁排名)
雜記
1.熱榜涉及需要考慮的幾點因素
榜單的更新頻率,推新內容為主,還是推熱內容,還是兩者的折中;時間和熱度的換算
2.熱榜的幾種分類
按用戶細分,比如性別,年齡,地域,機型渠道,活躍度等等
按內容細分,比如新舊內容,長短時效,圖文視頻,內容分類等等
按行為細分,比如一段時間的評點贊轉藏關注等等
附錄
https://www.oschina.net/news/26960/ranking-base-on-vote
https://www.cnblogs.com/tbqjxjkwg/p/10836746.html
https://blog.csdn.net/feitongxunke/article/details/52077812