豆瓣評分辣么奇葩,它的算法長什么樣?

jopen 8年前發布 | 9K 次閱讀 豆瓣網 算法 設計

在PingWest看到一篇《豆瓣電影打分規則竟如此簡單粗暴…》,作者寫這篇文章是因為豆瓣創始人阿北最近寫了一篇博文《豆瓣電影評分八問》,阿北博文是為了回應一些外界對豆瓣電影評分的質疑,然后作者看到這篇博文后,覺得豆瓣電影的評分算法有點low,就寫了這樣一篇吐槽文章。

那么這個很low的算法究竟是什么樣子的呢?此處引用阿北原文。

豆瓣的注冊用戶看完一部電影,心情好的話會來打個一到五星的分(有時候心情不好也會來)。比方說一部電影有42萬用戶打分。我們的程序把這42萬個一到五星換算成零到十分,加起來除以42萬,就得到了豆瓣評分。這個評分會自動出現在豆瓣各處,中間沒有審核,平時也沒有編輯盯著看。每過若干分鐘,程序會自動重跑一遍,把最新打分的人的意見包括進來。

簡單說就是計算每部電影評論的算數平均值,并按此值來排名。

對這個算法持懷疑態度,因為如果按照這個算法的話,假設一部小眾文藝片有10個用戶給了全五星,和一部經典老片比如《十二怒漢》相比,小眾文藝片排名比《十二怒漢》還要高,不過這在豆瓣電影TOP250里面不太可能。阿北可能只是為了文章寫作方便或是保密起見,把算法故意說簡單了,因為假如豆瓣公布了詳細的算法,那電影發行方的水軍們十分有可能針對這個算法制定出有效的刷分策略的。可憐小編還真信了。

下面是阿北當年在知乎上的 回答

順著PingWest這篇文章給的鏈接,我又去阮一峰博客看了他在2012年寫的《基于用戶投票的排名算法》系列文章,以及這些文章里的參考文章,發現排名算法很好玩很有趣,非常有收獲,推薦閱讀。

看完這些文章,我就想知道知乎的評論排名算法是怎么樣的,于是去知乎找到他們產品經理 @黃濤的回答 ,知乎在2014年底更新的算法使用的正是Reddit在2009年引入的評論排名算法,也就是阮一峰老師在系列文章第5篇中介紹的「威爾遜區間」算法。在用這個算法之前,知乎用的是直接利用好評減去差評的結果來給評論排序,這種算法的缺點我就不介紹了,可以查看參考資料[1]。

「威爾遜區間」算法的數學基礎是數學家Edwin B. Wilson在1927年提出的威爾遜區間修正公式,后來芝加哥工程師Evan Miller在2009年寫了一篇 博客 ,認為該修正公式可以用來做排名。

這個算法的核心思想是這樣的:

  1. 計算每個評論的好評率
  2. 計算每個好評率的置信區間(以 95% 的概率)。
  3. 根據置信區間的下限值,進行排名。這個值越大,排名就越高。

所謂「置信區間」就是說在某個概率下(通常是95%),好評率p會落在的那個區間。比如,某個產品的好評率是 80%,但是這個值不一定可信。根據統計學,我們只能說,有 95% 的把握可以斷定,好評率在 75% 到 85% 之間,即置信區間是[75%, 85%]。

置信區間的實質,就是進行可信度的修正,彌補樣本量過小的影響。如果樣本多,就說明比較可信,不需要很大的修正,所以置信區間會比較窄,下限值會比較大;如果樣本少,就說明不一定可信,必須進行較大的修正,所以置信區間會比較寬,下限值會比較小。

因為常見的置信區間計算公式「正態區間」不能很好的照顧小樣本數量的準確性,而威爾遜提出的修正公式能很好地修正小樣本數量的準確性問題,所以大家采用「威爾遜區間」算法較多,像Reddit、Yelp、Digg,還有知乎。

不過這種算法也有缺點,缺點就是對于那些得票少的新評論很難獲得出頭之日,因為得票少,置信區間就會寬,排名位置就會低,得到的關注也就會更少。

前面阿北的回答里面提到了IMDB,IMDB是亞馬遜旗下的一個類似豆瓣的電影排名網站,他們在處理TOP250電影排名問題時采用了「貝葉斯平均」算法來解決,這個算法的核心思想是既然新興產品的評分數量很少,那我就為你人工補償一定的投票。關于這種算法在阮一峰老師系列文章第6篇中有介紹。

更多參考資料:

  1. How Not To Sort By Average Rating
  2. How Reddit ranking algorithms work
  3. 基于用戶評價的評分模型
  4. 基于用戶投票的打分算法
  5. Reddit評論排名算法
  6. Reddit的排名算法
  7. 數學之美:IMDB.COM排名算法
  8. Hacker News的熱門排名算法

本文首發簡書 http://www.jianshu.com/p/77ac83db802d

來自: http://www.pmcaff.com/article?id=2000000000007996

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!