上一篇《基于用戶投票的排名算法(五)》介紹了"威爾遜區(qū)間",它解決了投票人數(shù)過少、導(dǎo)致結(jié)果不可信的問題。
舉例來說,如果只有2個(gè)人投票,"威爾遜區(qū)間"的下限值會(huì)將贊成票的比例大幅拉低。這樣做固然保證了排名的可信性,但也帶來了另一個(gè)問題:排行榜前列總是那些票數(shù)最多的項(xiàng)目,新項(xiàng)目或者冷門的項(xiàng)目,很難有出頭機(jī)會(huì),排名可能會(huì)長期靠后。
以IMDB為例,它是世界最大的電影數(shù)據(jù)庫,觀眾可以對每部電影投票,最低為1分,最高為10分。

系統(tǒng)根據(jù)投票結(jié)果,計(jì)算出每部電影的平均得分。然后,再根據(jù)平均得分,排出最受歡迎的前250名的電影。

這里就有一個(gè)問題:熱門電影與冷門電影的平均得分,是否真的可比?舉例來說,一部好萊塢大片有10000個(gè)觀眾投票,一部小成本的文藝片只有100個(gè)觀眾投票。這兩者的投票結(jié)果,怎么比較?如果使用"威爾遜區(qū)間",后者的得分將被大幅拉低,這樣處理是否公平,能不能反映它們真正的質(zhì)量?
一個(gè)合理的思路是,如果要比較兩部電影的好壞,至少應(yīng)該請同樣多的觀眾觀看和評分。既然文藝片的觀眾人數(shù)偏少,那么應(yīng)該設(shè)法為它增加一些觀眾。
在排名頁面的底部,IMDB給出了它的計(jì)算方法。

- WR, 加權(quán)得分(weighted rating)。
- R,該電影的用戶投票的平均得分(Rating)。
- v,該電影的投票人數(shù)(votes)。
- m,排名前250名的電影的最低投票數(shù)(現(xiàn)在為3000)。
- C, 所有電影的平均得分(現(xiàn)在為6.9)。
仔細(xì)研究這個(gè)公式,你會(huì)發(fā)現(xiàn),IMDB為每部電影增加了3000張選票,并且這些選票的評分都為6.9。這樣做的原因是,假設(shè)所有電影都至少有3000張選票,那么就都具備了進(jìn)入前250名的評選條件;然后假設(shè)這3000張選票的評分是所有電影的平均得分(即假設(shè)這部電影具有平均水準(zhǔn));最后,用現(xiàn)有的觀眾投票進(jìn)行修正,長期來看,v/(v+m)這部分的權(quán)重將越來越大,得分將慢慢接近真實(shí)情況。
這樣做拉近了不同電影之間投票人數(shù)的差異,使得投票人數(shù)較少的電影也有可能排名前列。
把這個(gè)公式寫成更一般的形式:

- C,投票人數(shù)擴(kuò)展的規(guī)模,是一個(gè)自行設(shè)定的常數(shù),與整個(gè)網(wǎng)站的總體用戶人數(shù)有關(guān),可以等于每個(gè)項(xiàng)目的平均投票數(shù)。
- n,該項(xiàng)目的現(xiàn)有投票人數(shù)。
- x,該項(xiàng)目的每張選票的值。
- m,總體平均分,即整個(gè)網(wǎng)站所有選票的算術(shù)平均值。
這種算法被稱為"貝葉斯平均"(Bayesian average)。因?yàn)槟撤N程度上,它借鑒了"貝葉斯推斷"(Bayesian inference)的思想:既然不知道投票結(jié)果,那就先估計(jì)一個(gè)值,然后不斷用新的信息修正,使得它越來越接近正確的值。
在這個(gè)公式中,m(總體平均分)是"先驗(yàn)概率",每一次新的投票都是一個(gè)調(diào)整因子,使總體平均分不斷向該項(xiàng)目的真實(shí)投票結(jié)果靠近。投票人數(shù)越多,該項(xiàng)目的"貝葉斯平均"就越接近算術(shù)平均,對排名的影響就越小。
因此,這種方法可以給一些投票人數(shù)較少的項(xiàng)目,以相對公平的排名。
=================================================
"貝葉斯平均"也有缺點(diǎn),主要問題是它假設(shè)用戶的投票是正態(tài)分布。比如,電影A有10個(gè)觀眾評分,5個(gè)為五星,5個(gè)為一星;電影B也有10個(gè)觀眾評分,都給了三星。這兩部電影的平均得分(無論是算術(shù)平均,還是貝葉斯平均)都是三星,但是電影A可能比電影B更值得看。
解決這個(gè)問題的思路是,假定每個(gè)用戶的投票都是獨(dú)立事件,每次投票只有n個(gè)選項(xiàng)可以選擇,那么這就服從"多項(xiàng)分布"(Multinomial distribution),就可以結(jié)合貝葉斯定理,估計(jì)該分布的期望值。由于這涉及復(fù)雜的統(tǒng)計(jì)學(xué)知識,這里就不深入了,感興趣的朋友可以繼續(xù)閱讀William Morgan的How to rank products based on user input。
(完)
相關(guān)閱讀:
