眾所周知,知乎對(duì)單個(gè)提問(wèn)下回答的排序采用的威爾遜算法达罗,但這種算法的原理究竟是怎樣呢以及這種算法對(duì)排序有什么樣的影響?本文將會(huì)對(duì)此進(jìn)行詳細(xì)闡述蜂厅。
首先分析單個(gè)知乎單個(gè)回答下投票的特點(diǎn):
1. 只有贊同和反對(duì)兩個(gè)選項(xiàng)。(設(shè)贊同數(shù)=u膊畴,反對(duì)數(shù)=v掘猿,總票數(shù)n=u+v)
2. 用戶之間投票行為獨(dú)立。
3. 當(dāng)投票量增加的時(shí)候唇跨,樣本贊同率p(p=u/n)逐漸趨近總體贊同率(n等于無(wú)窮大時(shí)候的u/n)术奖。
很顯然,用戶的投票是二項(xiàng)分布轻绞。 根據(jù)投票,可以計(jì)算出贊同率佣耐,并且根據(jù)贊同率排序所有回答政勃。
當(dāng)總投票數(shù)較少時(shí),樣本贊同率可能與總體贊同率差別較大兼砖,直接用樣本贊同率排序可能帶來(lái)一定的誤差奸远。
為了更好的修正小樣本下的樣本贊同率,引入威爾遜公式讽挟。經(jīng)過(guò)公式修正后懒叛,贊同率將會(huì)更加準(zhǔn)確。
威爾遜公式:
威爾遜公式
函數(shù)共有 u,v,z 三個(gè)變量耽梅。其中 z 為可調(diào)節(jié)的參數(shù)薛窥,u 為贊同數(shù),v 為反對(duì)數(shù)眼姐。
不妨設(shè)置 z=1诅迷,繪制 score 隨 u,v 的變化情況(z對(duì)score也有影響众旗,后文將會(huì)分析)罢杉。
z = 1 時(shí),score 隨 u贡歧,v的變化情況
由威爾遜公式計(jì)算得出的 score滩租,與贊同率(p=u/n)相差多少?
z = 1 時(shí)候 score 與 p 的差值利朵,明顯展示了修正效果
由圖可知:
(1)當(dāng)總票數(shù)較小的時(shí)候律想,獲得贊同的答案,得分 score 會(huì)迅速增加绍弟≈┯總投票數(shù)越多,贊同票對(duì)得分score的影響越小晌柬。同時(shí)姥份,投票數(shù)較多郭脂,得分score較高的答案,開(kāi)始獲得反對(duì)票時(shí)澈歉,得分會(huì)快速下降展鸡。得分score越低,下降速度越慢埃难。
(2)score 的取值范圍為(0,1)莹弊,且與投票總數(shù)無(wú)關(guān)。(舊算法中涡尘,score=加權(quán)贊同-加權(quán)反對(duì)忍弛,不同問(wèn)題之間得分差別較大,無(wú)法橫向比較)
(3)n 越小考抄,威爾遜算法的修正效果越強(qiáng)细疚。
那么威爾遜區(qū)間有多寬?
威爾遜區(qū)間公式
取z = 10川梅,計(jì)算區(qū)間寬度疯兼。(z?取其他值時(shí),繪制出的圖形也類似贫途。)
z = 10?時(shí)吧彪,威爾遜區(qū)間寬度
由圖得知,樣本數(shù)量越小丢早,置信區(qū)間就越寬姨裸。樣本數(shù)量越大,置信區(qū)間則越窄怨酝。
z 對(duì) score 有什么影響啦扬?請(qǐng)看對(duì)比圖。
z = 1 時(shí)凫碌,u扑毡,v 對(duì)score的影響
z = 5 時(shí),u盛险,v?對(duì)score影響
z=10時(shí)瞄摊,u,v?對(duì)score影響苦掘。
z=1,5.10時(shí)换帜,u,v 對(duì)score的影響
z 越大鹤啡,score 的曲線越平緩惯驼,等高線密度越小。對(duì)當(dāng)總票數(shù)較小的時(shí)候,獲得贊同的答案祟牲,得分score增加速度將減緩隙畜。同時(shí),投票數(shù)較多说贝,得分 score 較高的答案议惰,開(kāi)始獲得反對(duì)票時(shí),得分下降速度也將減緩乡恕。
接下來(lái)看 z 不同的情況下言询,score 與 p 的差值。
總的來(lái)說(shuō)傲宜,z 越大运杭,威爾遜算法的修正效果越強(qiáng)。
新算法有什么影響呢函卒?
1. 爭(zhēng)議性較強(qiáng)的回答將被抑制辆憔。類似的情況包括:
(1)抖機(jī)靈爆照但沒(méi)有幫助
(2)煽動(dòng)性較強(qiáng)但沒(méi)幫助
(3)大v用戶的低質(zhì)量回答和攻擊性回答
(4)爭(zhēng)議性話題下的優(yōu)質(zhì)回答。(雖然回答很精彩谆趾,引發(fā)大量討論,但由于問(wèn)題爭(zhēng)議性較強(qiáng)叛本,從而得到的贊同和反對(duì)都很多沪蓬。)
對(duì)(1)(2)(3)前三者的抑制,有利于整個(gè)社區(qū)的氛圍来候。?(回答只取決于贊同比跷叉,抖機(jī)靈卻無(wú)幫助的回答,自帶很多贊同和很多反對(duì)营搅。在回答排序上云挟,大v效應(yīng)不再明顯。只要問(wèn)題沒(méi)有幫助转质,就會(huì)被放置在靠后的位置上园欣。)
對(duì)于(4)類型的回答,按照贊同比排序就未必合理了休蟹。舉例來(lái)說(shuō)沸枯,前幾天知乎上很火的一個(gè)問(wèn)題“為什么有的女性討厭生孩子”下面的一條回答得到了大量的討論和點(diǎn)贊:評(píng)論 1w+,贊同 4w+赂弓;這條回答在微博轉(zhuǎn)發(fā) 8w+绑榴,在當(dāng)天轉(zhuǎn)發(fā)量最大∮可是根據(jù)知乎的算法翔怎,這條引發(fā)大量討論的回答,得到了海量的傳播,但卻被放置在非常不顯眼的位置赤套。而置頂?shù)幕卮鹌矗c(diǎn)贊數(shù)和評(píng)論數(shù)都寥寥無(wú)幾。
對(duì)于這種情況于毙,調(diào)節(jié)參數(shù)z意義似乎不很大:算法排序基于贊同率敦冬,就算z再大,這條最火答案也會(huì)被放置在不顯眼的位置唯沮。那么這類問(wèn)題下回答該怎么樣排序呢脖旱?這或許又是另外一個(gè)問(wèn)題了。
2.?普通用戶也許更愿意答題了介蛉。
新算法按照贊同比排序萌庆。如果大v的回答沒(méi)有幫助,即使出場(chǎng)自帶500贊币旧,反對(duì)票也很快會(huì)讓答案下沉践险。這對(duì)于認(rèn)真輸出回答的普通用戶是一個(gè)正向的激勵(lì)。
舊算法下吹菱,辛辛苦苦認(rèn)真答題的知乎小透明巍虫,即使生產(chǎn)出優(yōu)質(zhì)的答案,也可能被放置在大v抖機(jī)靈答案的后面鳍刷。而新算法下占遥,贊同率高的答案會(huì)隨著贊同快速被置頂。
3.?專業(yè)領(lǐng)域下大v的作用更明顯了输瓜。
新算法本就加強(qiáng)了投票對(duì)答案排名的影響瓦胎,高權(quán)重大v的投票則會(huì)更關(guān)鍵。大v一票可能相當(dāng)于普通用戶N票尤揣。權(quán)重是分領(lǐng)域的而不是全局權(quán)重搔啊,而用戶在某個(gè)問(wèn)題下的權(quán)重,是根據(jù)他過(guò)去在相關(guān)問(wèn)題下的回答得到的贊同北戏,反對(duì)和沒(méi)有幫助票來(lái)計(jì)算的负芋。
這增強(qiáng)了專業(yè)性領(lǐng)域下問(wèn)題中端回答的質(zhì)量,讓專業(yè)領(lǐng)域下大v的作用更明顯嗜愈。
4.?答案更符合知乎調(diào)性了示罗。
通過(guò)用戶投票篩選回答,能夠篩選出更符合符合知乎調(diào)性的回答芝硬。這讓知乎用戶更愛(ài)看了蚜点。
但符合知乎調(diào)性,并不一定代表客觀拌阴。特別是對(duì)于一些小眾領(lǐng)域绍绘、專業(yè)領(lǐng)域。符合知乎政治正確卻不恰當(dāng)?shù)幕卮穑赡軙?huì)被置頂陪拘,而正確的回答可能會(huì)被放置在不明顯的位置厂镇。(之前寫快手產(chǎn)品分析的時(shí)候去知乎查資料,很希望看到一些客觀的討論左刽,但發(fā)現(xiàn)符合知乎政治正確捺信,卻傾向性非常強(qiáng)的答案放置在頂端,而較為客觀又干貨滿滿的回答被放置在底端欠痴。)一方面來(lái)說(shuō)迄靠,這討好了更多的用戶;但從另一方面來(lái)說(shuō)喇辽,又傷害了輸出小眾專業(yè)內(nèi)容的用戶掌挚。
總的來(lái)說(shuō),修改后的算法利大于弊菩咨。
參考資料:
基于用戶投票的排名算法(五):威爾遜區(qū)間 ? ? ? ? ? ? ? ? ? ? ? 阮一峰
How Not To Sort By Average Rating ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Evan Miller
知乎問(wèn)題:如何評(píng)價(jià)知乎的回答排序算法吠式?
知乎問(wèn)題:知乎如何計(jì)算用戶在某個(gè)領(lǐng)域下的權(quán)重?
這次抽米,我給知乎點(diǎn)32個(gè)贊同——淺析知乎新的回答排序算法? ? ? ? 曾加
本文轉(zhuǎn)載自 Phhhy 的微信公眾號(hào):巴旦說(shuō)