迄今為止,這個系列都在討論,如何給出"某個時段"的排名,比如"過去24小時最熱門的文章"。
但是,很多場合需要的是"所有時段"的排名,比如"最受用戶好評的產(chǎn)品"。
這時,時間因素就不需要考慮了。這個系列的最后兩篇,就研究不考慮時間因素的情況下,如何給出排名。
一種常見的錯誤算法是:
得分 = 贊成票 - 反對票
假定有兩個項目,項目A是60張贊成票,40張反對票,項目B是550張贊成票,450張反對票。請問,誰應(yīng)該排在前面?按照上面的公式,B會排在前面,因為它的得分(550 - 450 = 100)高于A(60 - 40 = 20)。但是實際上,B的好評率只有55%(550 / 1000),而A為60%(60 / 100),所以正確的結(jié)果應(yīng)該是A排在前面。
Urban Dictionary就是這種錯誤算法的實例。

另一種常見的錯誤算法是
得分 = 贊成票 / 總票數(shù)
如果"總票數(shù)"很大,這種算法其實是對的。問題出在如果"總票數(shù)"很少,這時就會出錯。假定A有2張贊成票、0張反對票,B有100張贊成票、1張反對票。這種算法會使得A排在B前面。這顯然錯誤。
Amazon就是這種錯誤算法的實例。

那么,正確的算法是什么呢?
我們先做如下設(shè)定:
(1)每個用戶的投票都是獨立事件。
(2)用戶只有兩個選擇,要么投贊成票,要么投反對票。
(3)如果投票總?cè)藬?shù)為n,其中贊成票為k,那么贊成票的比例p就等于k/n。
如果你熟悉統(tǒng)計學(xué),可能已經(jīng)看出來了,這是一種統(tǒng)計分布,叫做"二項分布"(binomial distribution)。這很重要,下面馬上要用到。
我們的思路是,p越大,就代表這個項目的好評比例越高,越應(yīng)該排在前面。但是,p的可信性,取決于有多少人投票,如果樣本太小,p就不可信。好在我們已經(jīng)知道,p是"二項分布"中某個事件的發(fā)生概率,因此我們可以計算出p的置信區(qū)間。所謂"置信區(qū)間",就是說,以某個概率而言,p會落在的那個區(qū)間。比如,某個產(chǎn)品的好評率是80%,但是這個值不一定可信。根據(jù)統(tǒng)計學(xué),我們只能說,有95%的把握可以斷定,好評率在75%到85%之間,即置信區(qū)間是[75%, 85%]。
這樣一來,排名算法就比較清晰了:
第一步,計算每個項目的"好評率"(即贊成票的比例)。
第二步,計算每個"好評率"的置信區(qū)間(以95%的概率)。
第三步,根據(jù)置信區(qū)間的下限值,進(jìn)行排名。這個值越大,排名就越高。
這樣做的原理是,置信區(qū)間的寬窄與樣本的數(shù)量有關(guān)。比如,A有8張贊成票,2張反對票;B有80張贊成票,20張反對票。這兩個項目的贊成票比例都是80%,但是B的置信區(qū)間(假定[75%, 85%])會比A的置信區(qū)間(假定[70%, 90%])窄得多,因此B的置信區(qū)間的下限值(75%)會比A(70%)大,所以B應(yīng)該排在A前面。
置信區(qū)間的實質(zhì),就是進(jìn)行可信度的修正,彌補(bǔ)樣本量過小的影響。如果樣本多,就說明比較可信,不需要很大的修正,所以置信區(qū)間會比較窄,下限值會比較大;如果樣本少,就說明不一定可信,必須進(jìn)行較大的修正,所以置信區(qū)間會比較寬,下限值會比較小。
二項分布的置信區(qū)間有多種計算公式,最常見的是"正態(tài)區(qū)間"(Normal approximation interval),教科書里幾乎都是這種方法。但是,它只適用于樣本較多的情況(np > 5 且 n(1 − p) > 5),對于小樣本,它的準(zhǔn)確性很差。
1927年,美國數(shù)學(xué)家 Edwin Bidwell Wilson提出了一個修正公式,被稱為"威爾遜區(qū)間",很好地解決了小樣本的準(zhǔn)確性問題。

在上面的公式中,
表示樣本的"贊成票比例",n表示樣本的大小,
表示對應(yīng)某個置信水平的z統(tǒng)計量,這是一個常數(shù),可以通過查表或統(tǒng)計軟件包得到。一般情況下,在95%的置信水平下,z統(tǒng)計量的值為1.96。
威爾遜置信區(qū)間的均值為

它的下限值為

可以看到,當(dāng)n的值足夠大時,這個下限值會趨向
。如果n非常小(投票人很少),這個下限值會大大小于
。實際上,起到了降低"贊成票比例"的作用,使得該項目的得分變小、排名下降。
Reddit的評論排名,目前就使用這個算法。

[參考文獻(xiàn)]
* How Not To Sort By Average Rating
(完)
相關(guān)閱讀:
