評分算法(1):用戶評分
從《社交網絡》到豆瓣評分,這些都是用戶評分的表現。文章介紹了用戶評分算法的體系,并以豆瓣評分為例,展開了詳細說明,包含貝葉斯公式和威爾遜區間法,與大家分享。
開一個新的系列:評分算法,先講用戶評分。
從下圖的電影《社交網絡》開始講起,玻璃上的公式是ELO排名算法,可以將比較打分的結果量化為分數,為女生打分,這種算法目前主要應用在對戰類游戲的排序中。這個算法我們不展開講,感興趣的朋友可以去網絡搜相關資料。
我先給評分算法一個簡單的定義:評分算法就是通過對已有數據進行計算,量化評估某一類主體,從而實現對這一類主體的評價、考核和管理。在前面提到的例子中,被打分的主題就是大學女生的相貌,數據就是用戶的打分。
在當前互聯網中,產品連接著用戶、商品、內容、服務、服務者,每一類主體都有著大量數據,評分方便其他角色對這些主體進行統一評估。與此同時,配送員、司機、教師、客服、銷售這樣的角色已經實現了自動化的分配,利用評分將這些角色的表現量化和可視化,也有利于對這些角色進行有效管理。
早上打車上班,如果你給司機一個評價,這個評價會被計入司機的服務分,影響司機師傅的派單和收入。中午打算點個外賣,你翻開了美團,看著商家評分,最終選擇了你的外賣。晚上打算看個電影,翻看豆瓣電影評分,選擇了一款評分不錯的電影。作為消費者,評分無時不刻不在影響我們的消費選擇,而我們的評分也成為了商業公司內部評分體系的一個數據源。
消費的評分體系相對比較簡單,只涉及用戶評價這一單一數據源,而內部評分體系需要考慮更多因素。本期先聊消費者評分,以豆瓣評分為例。
基于用戶評價的排序策略,會面臨不同內容的評分人數差距過大的問題。比如圖書A有100個人打分,平均分是4.5分,圖書B有5個人打分,平均分是4.6分,而同時全站平均分是3.0分,那么我們應該怎么給用戶推薦呢?第一種思路是可以針對數據量少的打分,做一定程度的降權,如用下面較為簡單的置信度降權函數:
rank=N/(N+X)·score
其中N為評分的數量,score為原始的評分值,X為可調節的參數。將X設為5時,函數為
rank=N/(N+5)·score
經過降權后,圖書A的得分是4.29,圖書B的得分是2.3,圖書A的得分相對比較合理,但圖書B遠低于原始評分4.6,也低于全站平均分,可見這種方法對數據量小的內容有很大的抑制。用貝葉斯平均法便可避免這一問題,也就是第二種思路。
貝葉斯公式是統計學中的一個基本工具,可以作為很多策略設計的依據。還是用這個例子介紹其原理,即當一個內容還沒有或者只有少量評分的時候,可以先認為這個內容的評分和大部分內容的平均評分差不多,只有當對這個內容的評分越來越多的時候,才能得到這個內容的評分。通用的貝葉斯平均公式如下,其中average表示全站平均分。
rank=X/(N+X)·average+N/(N+X)·score
依然假設X為5,全站平均分為3.0,那么圖書A的得分是4.42,圖書B的得分就是3.8。圖書B的得分比置信度降權法高,且高于全站平均分,相對更加合理。
在有些場景下,如果希望評價少的內容出現在后面,則置信度降權法比貝葉斯平均法更適用;而希望給評分少的內容足夠曝光時,貝葉斯平均法就比置信度降權法更適用。
當然,以上的調整方法看起來缺乏一些數學上的嚴謹性,那么有沒有更嚴謹的算法呢?答案是肯定的。我個人覺得比較可靠的情況下是使用威爾遜區間法。
威爾遜區間可以在給定置信度的情況下,給出打分概率的置信區間。一般使用情況下,威爾遜區間適用于零一變量。比如用戶是否點擊視頻、圖片、廣告,p就是用戶點擊概率,n是統計的數據量,z是給定置信度參數,常用的幾個值,90%置信度下z=1.64,95%置信度下z=1.96,99%置信度下z=2.58,其他的都可以查表。在打分場景下,需要做的事情是將打分均值歸一化為p值,比如平均分時3.5,滿分5分,那么就是3.5/5=0.7。同時n取打分人數,z已經是置信度參數。
威爾遜區間法的好處是多樣的。首先是統計上的合理性,無論數據量大小,都有一致的數學表達式。其次是在區間的上下界都有其業務意義。
在數據量較小的情況下,數據均值一定是不準的,對于業務而言,某些場景他們需要的是數據的上界,某些場景他們需要的是數據的下界。
比如,在排序策略中,當我們希望給長尾內容更多流量的時候,可以使用上界,當我們希望突出熱門內容時,可以使用下界。
比如,在廣告策略中,當我們希望關閉CPA過高的廣告時,我們應該用下界,當我們希望關閉點擊率更低的廣告時,應該用點擊率的上界。因為我們需要給新的廣告更多的試探空間。
當然威爾遜區間算法的本質是提供了一個將大數據量內容和小數據量內容一起對照的方法,應用范圍也不止于此,而“小數據下不置信”是大量策略系統的共同問題。
本期內容到此結束,下一期我們聊評分算法的另一個場景,服務分。
#專欄作家#
潘一鳴,公眾號:產品邏輯之美,人人都是產品經理專欄作家。畢業于清華大學,暢銷書《產品邏輯之美》作者;先后在多家互聯網公司從事產品經理工作,有很多復雜系統的構建實踐經驗。
本文原創發布于人人都是產品經理。未經許可,禁止轉載。
題圖來自 Unsplash,基于 CC0 協議
有個疑問,初始無數據的情況下,是手動設定打分還是依照算法?
公式沒有看懂
您好,請教一下如何給填報情況評分
KPI1:填報數量大于150為達標,大于200為優秀;
KPI2:填報數量大于60為達標,大于80為優秀;
KPI3:填報數量大于20%為達標,大于25%為優秀;
最后統計填報情況并對填報機構評分排序
作為一個統計學專業的畢業生,11年過去了,全忘了 ?