imdb.com排名算法
IMDB.COM是目前互聯網上最為權威、系統、全面的電影資料網站,里面包括了幾乎所有的電影,以及1982 年以后的電視劇集。 它所特有的電影評分系統深受影迷的歡迎,注冊的用戶可以給任何一部影片打分并加以評述,而網站又會根據影片所得平均分、選票的數目等計算得出影片的加權平均分并以此進行TOP250(最佳250部影片)和Bottom100(最差100部影片)的排行。
評選最佳250部電影時只考慮正式的投票者的投票結果。分值系統采用10分制,最低為awful(令人厭惡)的1分,最高為excellent(出類拔萃)的10分。值得注意的是,雖然很多影片在資料系統中得分很高,但由于未能達到TOP所要求的最低投票數而無法參加排行。
下面就一起來學習下IMDB所使用的排名算法。?imdb top 250用的是貝葉斯統計的算法得出的加權分(Weighted Rank-WR),公式如下:
- ?WR, 加權得分(weighted rating)。
- ?R,該電影的用戶投票的平均得分(Rating)。
- ?v,該電影的投票人數(votes)。
- ?m,排名前 250 名的電影的最低投票數(現在為 3000)。
- ?C, 所有電影的平均得分(現在為6.9)。
仔細研究這個公式,你會發現,IMDB 為每部電影增加了 3000 張選票,并且這些選票的評分都為6.9。這樣做的原因是,假設所有電影都至少有 3000 張選票,那么就都具備了進入前 250 名的評選條件;然后假設這 3000 張選票的評分是所有電影的平均得分(即假設這部電影具有平均水準);最后,用現有的觀眾投票進行修正,長期來看,v/(v+m)這部分的權重將越來越大,得分將慢慢接近真實情況。這樣做拉近了不同電影之間投票人數的差異,使得投票人數較少的電影也有可能排名前列。
把這個公式寫成更一般的形式:
- ?C,投票人數擴展的規模,是一個自行設定的常數,與整個網站的總體用戶人數有關,可以等于每個項目的平均投票數。
- ?n,該項目的現有投票人數。
- ?x,該項目的每張選票的值。
- m,總體平均分,即整個網站所有選票的算術平均值。
這種算法被稱為”貝葉斯平均”(Bayesian average)。因為某種程度上,它借鑒了”貝葉斯推斷”(Bayesian inference)的思想:既然不知道投票結果,那就先估計一個值,然后不斷用新的信息修正,使得它越來越接近正確的值。
在這個公式中,m(總體平均分)是”先驗概率”,每一次新的投票都是一個調整因子,使總體平均分不斷向該項目的真實投票結果靠近。投票人數越多,該項目的”貝葉斯平均”就越接近算術平均,對排名的影響就越小。因此,這種方法可以給一些投票人數較少的項目,以相對公平的排名。
“貝葉斯平均”也有缺點,主要問題是它假設用戶的投票是正態分布。比如,電影A有 10 個觀眾評分,5個為五星,5個為一星;電影B也有 10 個觀眾評分,都給了三星。這兩部電影的平均得分(無論是算術平均,還是貝葉斯平均)都是三星,但是電影A可能比電影B更值得看。
解決這個問題的思路是,假定每個用戶的投票都是獨立事件,每次投票只有n個選項可以選擇,那么這就服從“多項分布”(Multinomial distribution),就可以結合貝葉斯定理,計算該分布的期望值。由于這涉及復雜的統計學知識,這里就不深入了,感興趣的朋友可以繼續閱讀 William Morgan 的How to rank products based on user input。
另外對于無時間參與的評價系統,也可以參考威爾遜得分區,威爾遜得分分區的缺點在于排行榜前列總是那些票數最多的項目,新項目或者冷門的項目,很難有出頭機會,排名可能會長期靠后。
參考地址:http://www.imdb.com/chart/top
總結
以上是生活随笔為你收集整理的imdb.com排名算法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《电动自行车充电领域的液体冷却技术研究》
- 下一篇: 转载 注解@PostConstruct与