基于用户投票的排名算法(六):贝叶斯平均
日期:?2012年3月28日
(這個(gè)系列實(shí)在拖得太久,今天是最后一篇。)
上一篇介紹了"威爾遜區(qū)間",它解決了投票人數(shù)過(guò)少、導(dǎo)致結(jié)果不可信的問(wèn)題。
舉例來(lái)說(shuō),如果只有2個(gè)人投票,"威爾遜區(qū)間"的下限值會(huì)將贊成票的比例大幅拉低。這樣做固然保證了排名的可信性,但也帶來(lái)了另一個(gè)問(wèn)題:排行榜前列總是那些票數(shù)最多的項(xiàng)目,新項(xiàng)目或者冷門(mén)的項(xiàng)目,很難有出頭機(jī)會(huì),排名可能會(huì)長(zhǎng)期靠后。
以IMDB為例,它是世界最大的電影數(shù)據(jù)庫(kù),觀眾可以對(duì)每部電影投票,最低為1分,最高為10分。
系統(tǒng)根據(jù)投票結(jié)果,計(jì)算出每部電影的平均得分。然后,再根據(jù)平均得分,排出最受歡迎的前250名的電影。
這里就有一個(gè)問(wèn)題:熱門(mén)電影與冷門(mén)電影的平均得分,是否真的可比?舉例來(lái)說(shuō),一部好萊塢大片有10000個(gè)觀眾投票,一部小成本的文藝片只有100個(gè)觀眾投票。這兩者的投票結(jié)果,怎么比較?如果使用"威爾遜區(qū)間",后者的得分將被大幅拉低,這樣處理是否公平,能不能反映它們真正的質(zhì)量?
一個(gè)合理的思路是,如果要比較兩部電影的好壞,至少應(yīng)該請(qǐng)同樣多的觀眾觀看和評(píng)分。既然文藝片的觀眾人數(shù)偏少,那么應(yīng)該設(shè)法為它增加一些觀眾。
在排名頁(yè)面的底部,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張選票,并且這些選票的評(píng)分都為6.9。這樣做的原因是,假設(shè)所有電影都至少有3000張選票,那么就都具備了進(jìn)入前250名的評(píng)選條件;然后假設(shè)這3000張選票的評(píng)分是所有電影的平均得分(即假設(shè)這部電影具有平均水準(zhǔn));最后,用現(xiàn)有的觀眾投票進(jìn)行修正,長(zhǎng)期來(lái)看,v/(v+m)這部分的權(quán)重將越來(lái)越大,得分將慢慢接近真實(shí)情況。
這樣做拉近了不同電影之間投票人數(shù)的差異,使得投票人數(shù)較少的電影也有可能排名前列。
把這個(gè)公式寫(xiě)成更一般的形式:
- 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ù)平均值。
這種算法被稱(chēng)為"貝葉斯平均"(Bayesian average)。因?yàn)槟撤N程度上,它借鑒了"貝葉斯推斷"(Bayesian inference)的思想:既然不知道投票結(jié)果,那就先估計(jì)一個(gè)值,然后不斷用新的信息修正,使得它越來(lái)越接近正確的值。
在這個(gè)公式中,m(總體平均分)是"先驗(yàn)概率",每一次新的投票都是一個(gè)調(diào)整因子,使總體平均分不斷向該項(xiàng)目的真實(shí)投票結(jié)果靠近。投票人數(shù)越多,該項(xiàng)目的"貝葉斯平均"就越接近算術(shù)平均,對(duì)排名的影響就越小。
因此,這種方法可以給一些投票人數(shù)較少的項(xiàng)目,以相對(duì)公平的排名。
=================================================
"貝葉斯平均"也有缺點(diǎn),主要問(wèn)題是它假設(shè)用戶的投票是正態(tài)分布。比如,電影A有10個(gè)觀眾評(píng)分,5個(gè)為五星,5個(gè)為一星;電影B也有10個(gè)觀眾評(píng)分,都給了三星。這兩部電影的平均得分(無(wú)論是算術(shù)平均,還是貝葉斯平均)都是三星,但是電影A可能比電影B更值得看。
解決這個(gè)問(wèn)題的思路是,假定每個(gè)用戶的投票都是獨(dú)立事件,每次投票只有n個(gè)選項(xiàng)可以選擇,那么這就服從"多項(xiàng)分布"(Multinomial distribution),就可以結(jié)合貝葉斯定理,估計(jì)該分布的期望值。由于這涉及復(fù)雜的統(tǒng)計(jì)學(xué)知識(shí),這里就不深入了,感興趣的朋友可以繼續(xù)閱讀William Morgan的How to rank products based on user input。
(完)
文檔信息
- 版權(quán)聲明:自由轉(zhuǎn)載-非商用-非衍生-保持署名(創(chuàng)意共享3.0許可證)
- 發(fā)表日期:?2012年3月28日
- 更多內(nèi)容:?檔案???算法與數(shù)學(xué)
- 購(gòu)買(mǎi)文集:?《如何變得有思想》
- 社交媒體:?twitter,?weibo
- Feed訂閱:?
相關(guān)文章
- 2015.09.01:?理解矩陣乘法 大多數(shù)人在高中,或者大學(xué)低年級(jí),都上過(guò)一門(mén)課《線性代數(shù)》。這門(mén)課其實(shí)是教矩陣。
- 2015.07.27:?蒙特卡羅方法入門(mén) 本文通過(guò)五個(gè)例子,介紹蒙特卡羅方法(Monte Carlo Method)。
- 2015.06.10:?泊松分布和指數(shù)分布:10分鐘教程 大學(xué)時(shí),我一直覺(jué)得統(tǒng)計(jì)學(xué)很難,還差點(diǎn)掛科。
- 2013.12.16:?樸素貝葉斯分類(lèi)器的應(yīng)用 生活中很多場(chǎng)合需要用到分類(lèi),比如新聞分類(lèi)、病人分類(lèi)等等。
留言(24條)
這個(gè)系列實(shí)在是太好了,看完覺(jué)得收獲很大!
2012年3月28日 21:15?|?∞?|?引用
這個(gè)系列不錯(cuò)。reddit以前的和IMDB的以前看過(guò),reddit現(xiàn)在的剛認(rèn)識(shí)。看來(lái)還得好好搞下數(shù)理統(tǒng)計(jì)啊
2012年3月28日 21:47?|?∞?|?引用
這個(gè)系列時(shí)間差不多一個(gè)月吧,不錯(cuò),下學(xué)期的好好復(fù)習(xí)一下概率論咯。
2012年3月28日 22:42?|?∞?|?引用
博主太強(qiáng)了,膜拜一下
2012年3月29日 00:27?|?∞?|?引用
總算完了!
2012年3月30日 14:36?|?∞?|?引用
最近在用貝葉斯統(tǒng)計(jì)做垃圾廣告的過(guò)濾算法,多有互通之處。
感嘆一句貝葉斯的智慧和偉大啊。
2012年3月30日 15:28?|?∞?|?引用
老師~我上過(guò)您的課~~
來(lái)此膜拜下~
2012年3月30日 17:04?|?∞?|?引用
不錯(cuò),這排名還可以應(yīng)用到其他方面,學(xué)習(xí)了!
2012年3月31日 08:28?|?∞?|?引用
可以收集起來(lái)出一本書(shū)了,謝謝你的文章!
2012年3月31日 18:04?|?∞?|?引用
挺好的! IMDB的方法若變換為WR=( v / (v+m)) (R-C) +C 也可能促進(jìn)理解
2012年4月 1日 11:01?|?∞?|?引用
今天怎么上不去你的博客了?我翻墻上來(lái)了...被和諧了???
2012年4月 5日 11:57?|?∞?|?引用
佩服博主能高質(zhì)量的完成這么有價(jià)值的文章
2012年4月 5日 14:29?|?∞?|?引用
正好自己的網(wǎng)站也要用到!!!
2012年4月 6日 23:49?|?∞?|?引用
Dell Zhang, Robert Mao, Haitao Li, and Joanne Mao. How to Count
Thumb-Ups and Thumb-Downs: User-Rating based Ranking of Items from an
Axiomatic Perspective. In Proceedings of the 3rd International
Conference on the Theory of Information Retrieval (ICTIR), Bertinoro,
Italy, Sep 2011.
http://goo.gl/b3QyX
http://goo.gl/2Ama4
2012年4月 8日 20:09?|?∞?|?引用
這個(gè)系列太棒了!感謝分享!
2012年4月28日 12:59?|?∞?|?引用
這樣補(bǔ)一些平均選票,有什么意義?不太懂
這樣小眾電影的分?jǐn)?shù)會(huì)比初始評(píng)分更趨向于平均值,即高分變平庸,低分變中等。
求解
2012年5月18日 21:45?|?∞?|?引用
都看完了,收獲非常大,可悲,這些知識(shí)都還給學(xué)校了,當(dāng)時(shí)要是能結(jié)合這些應(yīng)用實(shí)例來(lái)學(xué)習(xí)多好
2012年7月25日 11:39?|?∞?|?引用
樓上人的回答讓我明白了學(xué)習(xí)其他語(yǔ)言的必要性
2013年12月21日 02:48?|?∞?|?引用
受益匪淺
2014年2月 8日 09:25?|?∞?|?引用
很好奇這些公式是如何被推導(dǎo)出來(lái)的?完全自己想象的么
2014年2月25日 17:45?|?∞?|?引用
我最近正好在弄網(wǎng)站的內(nèi)容排名,能找到您的文章真的太棒了!非常感謝!
2014年4月28日 15:11?|?∞?|?引用
引用隨機(jī)導(dǎo)彈的發(fā)言:
這樣補(bǔ)一些平均選票,有什么意義?不太懂
這樣小眾電影的分?jǐn)?shù)會(huì)比初始評(píng)分更趨向于平均值,即高分變平庸,低分變中等。
求解
個(gè)人覺(jué)得這3000張選票只是在排序的時(shí)候才會(huì)被用到,而不會(huì)影響原有的電影評(píng)分,只是影響排名而已。
2014年10月15日 17:11?|?∞?|?引用
受益匪淺
2015年2月 5日 17:24?|?∞?|?引用
感覺(jué)這個(gè)系列文章沒(méi)有講到權(quán)重排序的本質(zhì)是什么..........
權(quán)重排序的本質(zhì)我認(rèn)為應(yīng)該是:
各個(gè)參數(shù)對(duì)排序權(quán)重的影響,這些參數(shù)對(duì)于權(quán)重分?jǐn)?shù)的影響比例,比如0.2a,0.8a或者a^1.2等等
2015年6月 6日 14:08?|?∞?|?引用
總結(jié)
以上是生活随笔為你收集整理的基于用户投票的排名算法(六):贝叶斯平均的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 基于用户投票的排名算法(五):威尔逊区间
- 下一篇: 图形算法 - 模糊函数比较,Blur F