眾所周知,知乎對單個提問下回答的排序采用的威爾遜算法,但這種算法的原理究竟是怎樣呢以及這種算法對排序有什么樣的影響?本文將會對此進(jìn)行詳細(xì)闡述。
首先分析單個知乎單個回答下投票的特點(diǎn):
1. 只有贊同和反對兩個選項(xiàng)。(設(shè)贊同數(shù)=u,反對數(shù)=v,總票數(shù)n=u+v)
2. 用戶之間投票行為獨(dú)立。
3. 當(dāng)投票量增加的時候,樣本贊同率p(p=u/n)逐漸趨近總體贊同率(n等于無窮大時候的u/n)。
很顯然,用戶的投票是二項(xiàng)分布。 根據(jù)投票,可以計(jì)算出贊同率,并且根據(jù)贊同率排序所有回答。
當(dāng)總投票數(shù)較少時,樣本贊同率可能與總體贊同率差別較大,直接用樣本贊同率排序可能帶來一定的誤差。
為了更好的修正小樣本下的樣本贊同率,引入威爾遜公式。經(jīng)過公式修正后,贊同率將會更加準(zhǔn)確。
威爾遜公式:
威爾遜公式
函數(shù)共有 u,v,z 三個變量。其中 z 為可調(diào)節(jié)的參數(shù),u 為贊同數(shù),v 為反對數(shù)。
不妨設(shè)置 z=1,繪制 score 隨 u,v 的變化情況(z對score也有影響,后文將會分析)。
z = 1 時,score 隨 u,v的變化情況
由威爾遜公式計(jì)算得出的 score,與贊同率(p=u/n)相差多少?

z = 1 時候 score 與 p 的差值,明顯展示了修正效果
由圖可知:
(1)當(dāng)總票數(shù)較小的時候,獲得贊同的答案,得分 score 會迅速增加。總投票數(shù)越多,贊同票對得分score的影響越小。同時,投票數(shù)較多,得分score較高的答案,開始獲得反對票時,得分會快速下降。得分score越低,下降速度越慢。
(2)score 的取值范圍為(0,1),且與投票總數(shù)無關(guān)。(舊算法中,score=加權(quán)贊同-加權(quán)反對,不同問題之間得分差別較大,無法橫向比較)
(3)n 越小,威爾遜算法的修正效果越強(qiáng)。
那么威爾遜區(qū)間有多寬?

威爾遜區(qū)間公式
取z = 10,計(jì)算區(qū)間寬度。(z?取其他值時,繪制出的圖形也類似。)
z = 10?時,威爾遜區(qū)間寬度

由圖得知,樣本數(shù)量越小,置信區(qū)間就越寬。樣本數(shù)量越大,置信區(qū)間則越窄。
z 對 score 有什么影響?請看對比圖。

z = 1 時,u,v 對score的影響

z = 5 時,u,v?對score影響
z=10時,u,v?對score影響。

z=1,5.10時,u,v 對score的影響
z 越大,score 的曲線越平緩,等高線密度越小。對當(dāng)總票數(shù)較小的時候,獲得贊同的答案,得分score增加速度將減緩。同時,投票數(shù)較多,得分 score 較高的答案,開始獲得反對票時,得分下降速度也將減緩。
接下來看 z 不同的情況下,score 與 p 的差值。



總的來說,z 越大,威爾遜算法的修正效果越強(qiáng)。
新算法有什么影響呢?
1. 爭議性較強(qiáng)的回答將被抑制。類似的情況包括:
(1)抖機(jī)靈爆照但沒有幫助
(2)煽動性較強(qiáng)但沒幫助
(3)大v用戶的低質(zhì)量回答和攻擊性回答
(4)爭議性話題下的優(yōu)質(zhì)回答。(雖然回答很精彩,引發(fā)大量討論,但由于問題爭議性較強(qiáng),從而得到的贊同和反對都很多。)
對(1)(2)(3)前三者的抑制,有利于整個社區(qū)的氛圍。?(回答只取決于贊同比,抖機(jī)靈卻無幫助的回答,自帶很多贊同和很多反對。在回答排序上,大v效應(yīng)不再明顯。只要問題沒有幫助,就會被放置在靠后的位置上。)
對于(4)類型的回答,按照贊同比排序就未必合理了。舉例來說,前幾天知乎上很火的一個問題“為什么有的女性討厭生孩子”下面的一條回答得到了大量的討論和點(diǎn)贊:評論 1w+,贊同 4w+;這條回答在微博轉(zhuǎn)發(fā) 8w+,在當(dāng)天轉(zhuǎn)發(fā)量最大??墒歉鶕?jù)知乎的算法,這條引發(fā)大量討論的回答,得到了海量的傳播,但卻被放置在非常不顯眼的位置。而置頂?shù)幕卮?,點(diǎn)贊數(shù)和評論數(shù)都寥寥無幾。
對于這種情況,調(diào)節(jié)參數(shù)z意義似乎不很大:算法排序基于贊同率,就算z再大,這條最火答案也會被放置在不顯眼的位置。那么這類問題下回答該怎么樣排序呢?這或許又是另外一個問題了。
2.?普通用戶也許更愿意答題了。
新算法按照贊同比排序。如果大v的回答沒有幫助,即使出場自帶500贊,反對票也很快會讓答案下沉。這對于認(rèn)真輸出回答的普通用戶是一個正向的激勵。
舊算法下,辛辛苦苦認(rèn)真答題的知乎小透明,即使生產(chǎn)出優(yōu)質(zhì)的答案,也可能被放置在大v抖機(jī)靈答案的后面。而新算法下,贊同率高的答案會隨著贊同快速被置頂。
3.?專業(yè)領(lǐng)域下大v的作用更明顯了。
新算法本就加強(qiáng)了投票對答案排名的影響,高權(quán)重大v的投票則會更關(guān)鍵。大v一票可能相當(dāng)于普通用戶N票。權(quán)重是分領(lǐng)域的而不是全局權(quán)重,而用戶在某個問題下的權(quán)重,是根據(jù)他過去在相關(guān)問題下的回答得到的贊同,反對和沒有幫助票來計(jì)算的。
這增強(qiáng)了專業(yè)性領(lǐng)域下問題中端回答的質(zhì)量,讓專業(yè)領(lǐng)域下大v的作用更明顯。
4.?答案更符合知乎調(diào)性了。
通過用戶投票篩選回答,能夠篩選出更符合符合知乎調(diào)性的回答。這讓知乎用戶更愛看了。
但符合知乎調(diào)性,并不一定代表客觀。特別是對于一些小眾領(lǐng)域、專業(yè)領(lǐng)域。符合知乎政治正確卻不恰當(dāng)?shù)幕卮穑赡軙恢庙?,而正確的回答可能會被放置在不明顯的位置。(之前寫快手產(chǎn)品分析的時候去知乎查資料,很希望看到一些客觀的討論,但發(fā)現(xiàn)符合知乎政治正確,卻傾向性非常強(qiáng)的答案放置在頂端,而較為客觀又干貨滿滿的回答被放置在底端。)一方面來說,這討好了更多的用戶;但從另一方面來說,又傷害了輸出小眾專業(yè)內(nèi)容的用戶。
總的來說,修改后的算法利大于弊。
參考資料:
基于用戶投票的排名算法(五):威爾遜區(qū)間 ? ? ? ? ? ? ? ? ? ? ? 阮一峰
How Not To Sort By Average Rating ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Evan Miller
知乎問題:如何評價知乎的回答排序算法?
知乎問題:知乎如何計(jì)算用戶在某個領(lǐng)域下的權(quán)重?
這次,我給知乎點(diǎn)32個贊同——淺析知乎新的回答排序算法? ? ? ? 曾加
本文轉(zhuǎn)載自 Phhhy 的微信公眾號:巴旦說