提出問(wèn)題
在上次的文章中,我們簡(jiǎn)單討論了多少人會(huì)喜歡的問(wèn)題。
這當(dāng)然是一個(gè)很大的問(wèn)題的很小的一部分,關(guān)于這個(gè)很大的問(wèn)題,可以看很久以前寫的文章:《點(diǎn)贊動(dòng)力學(xué)》。
今天是在上一次文章的基礎(chǔ)上,來(lái)問(wèn)一個(gè)反過(guò)來(lái)的問(wèn)題:如果我們已經(jīng)知道有多少人、其中多少人為這個(gè)事物點(diǎn)了贊,那么我們?nèi)绾蝸?lái)確定究竟有多少人真正喜歡這個(gè)東西呢?
這似乎很搞哦。。。
解決問(wèn)題
上文主要是計(jì)算了人們給特定事物點(diǎn)贊的概率,有了這個(gè)概率,我們就可以通過(guò)二項(xiàng)式分布來(lái)“猜測(cè)”會(huì)有多少人點(diǎn)贊:
其中p是點(diǎn)贊的概率,我們已經(jīng)計(jì)算了出來(lái)。
這個(gè)東西實(shí)際給出的,就是如果已經(jīng)知道了n和p,那么可以求出點(diǎn)贊數(shù)x的一個(gè)分布。
今天的問(wèn)題其實(shí)反了過(guò)來(lái):如果我們已經(jīng)知道了n和x,那么求p的一個(gè)分布。
x的分布是一個(gè)二項(xiàng)式分布,p的分布則是一個(gè)β分布,而且就是通過(guò)上面的式子再做一個(gè)歸一化得到的:
或者寫為:
從分布曲線上來(lái)看,二項(xiàng)式分布和β分布很接近——其實(shí)前者就是后者的離散化。
因此,如果我們知道了總?cè)藬?shù)n和點(diǎn)贊的人數(shù)x,那么這篇文章被喜歡的概率分布就有了。可問(wèn)題到此還沒(méi)有結(jié)束——難道就簡(jiǎn)單地求一個(gè)平均值么?
事實(shí)上,隨著樣本數(shù)量n的不同,平均值相等的情況也可以與很多不同的分布,比如下面這些分布曲線:
所以,為了可以更好地反映分布,光有一個(gè)平均值是不行的。
不妨考慮這么兩個(gè)值:當(dāng)整個(gè)分布的概率密度等于最大概率密度的1/e時(shí)的兩個(gè)上下邊界值。
如果將這里的1/e換位1/2的話,這個(gè)其實(shí)就是通訊和模擬電路里面的半波寬。
另一方面,1/e的地方也就是分布的Wilson熵最大的地方。
這里,為了解決這個(gè)問(wèn)題,我們引入這么一個(gè)輔助函數(shù):
其中pb=x/n。
下面的問(wèn)題就是求解方程:
這里由于x和n-x都是整數(shù),所以這個(gè)方程是一個(gè)代數(shù)方程而不是超越方程(如果是已知p求解x,那就是超越方程了)。但即便是一個(gè)代數(shù)方程,由于五次開(kāi)始不存在通用的求解公式,而這里x和n-x顯然都遠(yuǎn)大于5,所以這個(gè)方程不可簡(jiǎn)單求解。。。
要解決這個(gè)問(wèn)題,一個(gè)有效的方式是尋找這個(gè)函數(shù)的近似,要求就是兩者足夠相似,同時(shí)又方便求解。
別說(shuō),這樣的函數(shù)還真被找到了:
這倆人有多像呢?看下面的圖:
基本上,從100開(kāi)始,兩者就已經(jīng)幾乎無(wú)法分辨了。
這下,半波寬的問(wèn)題就很容易解決了:
由于n一般很大,所以也可以用Taylor展開(kāi)寫作:
當(dāng)然,由于這個(gè)結(jié)果是基于那個(gè)近似分布曲線的,所以我們需要代回到真正的β分布中,來(lái)看看是不是真的正好到最大概率密度的1/e。
結(jié)果還算不錯(cuò),但依然有誤差,所以通過(guò)調(diào)節(jié),最后可以選擇下面這個(gè)結(jié)果,它在n大于100的時(shí)候足夠接近我們所要的結(jié)果,而在n只有幾十的時(shí)候也可以有不錯(cuò)的近似:
為什么選擇這樣的調(diào)節(jié)?
這個(gè)是通過(guò)看分布曲線和邊值數(shù)據(jù)試出來(lái)的,俗稱瞎猜。
比如在n=100,x=70的情況下,原來(lái)的計(jì)算結(jié)果給出的下邊界結(jié)果為0.356826,上邊界結(jié)果為0.386835,經(jīng)過(guò)調(diào)節(jié)后則上下邊界的結(jié)果分別為0.364572和0.364388,而我們想要的數(shù)值是0.367879。可以接受。
于是,關(guān)于最初的問(wèn)題,我們現(xiàn)在有三個(gè)值可以作為參考:
平均值、下邊界值和上邊界值。
接下來(lái),如果你有一系列的文章,每篇文章都有一定的人閱讀和一定的人喜歡,就可以利用這個(gè)下邊界值來(lái)做排序——嗯,這也就是新聞排序中的Wilson算法(當(dāng)然,由于我懶得去查Wilson的原文,也懶得去鼓搗別的近似函數(shù),所以我這里采用的近似函數(shù)所給出的Wilson熵最大值的位置和對(duì)應(yīng)的Wilson排序系數(shù)就和真正的Wilson算法有點(diǎn)差別了,不過(guò)思路還是一樣的嘛~~~)。
下面的問(wèn)題
上面的所有計(jì)算都是建立在所有的閱讀和點(diǎn)贊都是隨機(jī)事件的情況下。
有兩類事件這里沒(méi)有考慮:
1,由于排序的引入導(dǎo)致的馬太效應(yīng);
2,惡意刷榜。
前者大概還能用算法來(lái)消除一定的影響,后者就免談了,這不是算法能解決的問(wèn)題。
當(dāng)然了,在知道p的分布的情況下,是否可能逆推出上一篇文章中所說(shuō)的群體品味分布和文章格調(diào)值,這就是另一個(gè)問(wèn)題了。
如果你覺(jué)得這篇東西寫得還行,愿意打賞我一口咖啡,請(qǐng)戳打賞頁(yè)~~
本文遵守創(chuàng)作共享CC BY-NC-SA 3.0協(xié)議**