黃聰:博客園的積分和排名算法探討,積分是怎么計算的?(轉)


我們先來看看現行規則,用公式表示為:
-------------------------------------------------------------------
BlogScore = BeRead + 10 * BeComment + 50 * Comment

BlogScore:博客積分
BeRead:個人博客所有隨筆和文章的閱讀數之和
BeComment:個人博客被評論總數
Comment: 個人所發表的評論總數
-------------------------------------------------------------------
我從這個公式看出了幾個問題:
1.發表隨筆和文章本身不會為博客帶來積分,但不發表文章,BeRead和BeCommented將永遠為0
2.發表一篇評論可以直接加50分
3.被閱讀10次等於被評論一次的積分

首頁問題
這里,首先聯想到是討論已久的“首頁問題”,上首頁對文章有什么直接的好處呢?通常首頁文章的BeRead值會比較大,一般1000左右。值得注意的是不同類型和質量的文章其BeRead值差距並不是太大,根據我的經驗每篇首頁文章的閱讀數大約在500~3000這個區間范圍,最多相差5,6倍。而BeComment值則相差很大,少的有幾乎為0的,普通文章4,5次,多的則達可到300次以上,相差上百倍,如果再乘上系數10,就更為可觀。

文章質量問題
因 此,那些吸引眼球、引起爭議的文章會為博客帶來巨大的積分。我們常常看到首頁上一些非技術文章門庭若市;一些高質量的技術文章,反而只有寥寥幾篇回復。 一個好的技術博客,應該鼓勵產生高質量的原創技術文章,這才是它的核心價值,而並不是僅僅是像門戶網站一樣賺取人氣。那么應如何區分文章的質量呢?當然, 最直接的方式就是讀者反饋。現在博客園已經有了【推薦】和【反對】的反饋功能,不妨利用起來作為積分計算的參考依據。有了這個參數,就能區別對待不同質量 的文章,讓高質量的文章為作者帶來更多的積分。至於具體實現,我還沒有一個很好的模型,只能隨便想個簡單的,比如定義文章質量因子:

QualityFactor = log(max(1, 推薦數 - 反對數))

在計算積分的時候可以考慮把評論數或閱讀數乘上這個質量因子。


PersonRank vs PageRank
在互聯網上,如果一個網頁被很多其它網頁所鏈接,說明它受到普遍的承認和信賴,那么它的排名就高,這就是Google PageRank算法的核心思想。PageRank把鏈接視為源對目標網頁的投票,而這張票的分量是和源網頁自身的PageRank相關的。下面是一個簡單的示意圖:

這在博客園內有類似的情況,博客園有MVP,有排名靠前的著名人物,他們的文章常常會得到大家的追捧,而普通新手的影響力則一時難以與他們相比。這就說明, 博客或者說作者,與互聯網的網頁有類似之處,是有Rank之分的,當然這個Rank是動態變化的。如果把評論看成是對文章的投票,而這張票的分量與投票者自身的影響力相關,這就可以產生類似PageRank的PersonRank。假設園內某MVP評論某篇文章,一般來講他的評論應該比普通評論更有分量。當然,這里還應該考慮正面評價和負面評價因素,如果他持推薦意見,應該加分,如果他持反對意見則不應該加分。

馬太效應
什么是馬太效應?舉個熱門新聞算法的例子,越是熱門新聞大家越是去點,越去點它就越熱門,形成一個惡性循環。如果算法不好,熱門或許就會永遠熱門下去。同樣的道理,在博客園里面,積分高的作者的文章越是熱門,越是熱門他的積分就越來越高。那么應該如何避免馬太效應,鼓勵新人輩出呢?常見的方式有兩種,一是衰減機制,比如,一月前的文章產生的積分應該乘上一個衰減系數(比如0.9),從而使近一個月的文章產生的積分所占權重變大,這樣就避免成名后坐吃山空的現象,真實地反映出作者近段時間的貢獻;二是log函數,對點擊數和評論數取log以后再作為積分,讓積分的增長變得平滑,避免極端大的分值出現。

一時興起,隨便想了這么多,拋磚引玉,大家見仁見智!再次聲明,本文是純學術探討,不構成對博客園的任何改動建議。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM