如何评价一个推荐系统的好坏?
文 | Nemo@知乎
本文已獲作者授權,禁止二次轉載
現如今,推薦系統幾乎無處不在。
電商購物,有猜你喜歡。
資訊閱讀,有個性推薦。
聽歌看電影,都能識別你的興趣。
就連工作社交,也會提示你可能認識的人...
推薦系統火爆的背后,是信息過載的現狀下,人們需要通過算法,來幫助自己找到恰當的內容。
每個人的興趣和需求不同,每個內容的特點也各不相同。如何在內容和用戶之間,根據不同的場景環境做出恰當的匹配,也就是推薦系統的核心任務。
舉個簡單的例子,你平時用美團點餐,它推薦的可能都是你常吃的附近美食,而如果你去了一個新的旅游地,它會給你推薦當地的熱門特色餐飲。
精準識別并滿足用戶不同需求的能力,構成了推薦系統的能力壁壘。
那么,我們該如何量化評估這種差異呢?
單一的衡量標準不存在
推薦得好不好,大家最容易想到的指標,就是點擊率。
如果我推薦的內容,就是你滿意的,你肯定會點擊使用。理論上來說,完美的推薦系統,似乎應該做到100%的點擊率。
以資訊產品舉例,你每次刷新,刷出來的10條內容你都很喜歡,全都點開看了,這說明我們的推薦非常準。
但這樣會帶來明顯的問題,因為我們追求高點擊率,所以會減少冒險嘗試,任何不確定的內容,我們都不敢推給用戶。結果就是我們只能把用戶曾經點過的品類,反復推給他,形成信息繭房,造成用戶審美疲勞,然后離開。
這樣,盡管我們的點擊率上去了,用戶留存率卻下降了,商業收入也自然而然下降了。
此外,如果我們只關注點擊率,就很容易忽略點擊質量。舉個例子,推薦系統追求點擊率的結果,自然就是推薦更多的標題黨內容,造成用戶點擊率很高,閱讀時長卻非常短。用戶被忽悠了兩三次以后,很可能憤而離開。
同樣的,如果我們只追求閱讀時長,可能會推出來大量的長時視頻內容,減少短內容的曝光機會。
甚至在產品商業化階段,我們有時候為了提升廣告收益,還愿意犧牲一點點擊率、閱讀時長等用戶指標...
顯然,單一的衡量標準,無法確保推薦系統滿足我們的需要。
多元的評估方式
推薦系統通常服務于某個具體業務,業務在不同的時間階段、場景、用戶群體下,都有不同的目標,需要靈活考慮。
下面以資訊類APP舉例說明:
不同的階段:產品發展初期,我們更關注用戶的粘性和留存,因此重點會放在用戶的點擊率、PV、閱讀時長上。等到追求商業變現的階段,更多考慮的就是付費率、廣告點擊量等商業指標。對應的,推薦系統在不同的階段也要做相應調整。
不同的場景:搜索場景考慮的是用戶的搜索結果點擊排序,追求用完即走。但是feeds流考慮的是用戶的CTR、閱讀時長、內容多樣性。兩者完全不同,不可混在一起。因此,對于不同場景,我們可以使用完全不同的推薦模型,將場景隔離開。
不同的用戶:新用戶考慮的是快速留存,積攢PV。老用戶考慮的是探索興趣,誘導分享。此外,不同偏好的用戶需求各不相同,財經的用戶希望內容權威、及時、高效,情感的讀者希望內容貼近生活,足夠有趣。二者追求的指標顯然不需要一致。
考慮到各種不同的訴求,我們的評估方式也要靈活變化。
對不同的場景和用戶模型,設定單獨的衡量標準。對不同的業務指標,拆解出推薦系統的上線與評估標準。
所謂拆解,其實就是用高頻變化的指標,去近似代表我們追求的長期業務指標。
舉個例子,在資訊類APP發展早期,我們希望提升日活用戶數,提升用戶的使用時長。但是只看這些結果指標,并不能指導我們改進業務。
因此,我們可以把這些指標拆解成一些日常容易衡量評估的指標。比如日活用戶數等于新增*留存,新增不是推薦系統直接影響的,這里暫不考慮。而留存取決于用戶對我們產品的滿意度,而滿意度又近似等于人均PV(點擊)、CTR(點擊率)、閱讀時長、播放完成率、評論、分享、收藏、點贊等等指標。
由此,我們把推薦系統的評價指標,就拆成了以下這些:
PV:閱讀數量,通常我們用人均值代替。對于資訊類APP來說,PV通常意味著用戶的使用深度,同時更多的PV也會帶來更多的廣告曝光和點擊,因此PV是對商業模式的一種近似簡化,通過靈敏的PV,來間接提升我們的商業收益。用于推薦算法模型訓練的素材,其實最關鍵就是用戶對各篇推薦內容點擊與否的數據
CTR:點擊率,越高代表用戶對你的推薦結果越滿意。
閱讀時長、播放完成率:閱讀時長、播放完成率配合PV,可以規避掉一些無效點擊,提升指標的有效性
評論、分享、收藏、點贊數:這些行為比一般的閱讀更重,更能代表用戶的偏好,這些指標的加入(權重計分形式),可以讓推薦系統更準確把握用戶興趣
主觀評估滿意度、新穎性、驚喜度:這三項其實是偏主觀的評價,之所以加入,是因為很多用戶體驗并不能用數據衡量,往往需要用戶憑主觀感受打分來反映。具體做法有很多種,比如1)給出兩篇內容,讓用戶進行點對點的對比。(2)給單篇內容提供打分選項,建議用戶從內容與自身偏好的相關性、內容的信息量等角度給予1~5分的評分。(3)以提出開放性問題的方式來收集用戶對自己信息流的反饋
內容多樣性:對用戶來說,產品需要經常有新意,不能陷入信息繭房,因此要評估內容多樣性指標。比如可以統計用戶的展示歷史中各種題材、類目、話題的豐富程度如何,豐富度越高代表個體體驗的多樣性越好。從內容生產的角度,還可以計算基尼系數、推薦覆蓋率,來判斷各個內容是否都被推出去了。
具體在日常工作中,我們每次迭代推薦系統,通常都會進行AB實驗,考慮對以上指標的影響,如果實驗整體正向并且效果顯著,那么我們會考慮把實驗策略推全到全部用戶上。
算法側的評估標準
當然,除了業務指標外,我們還需要考慮算法本身的評估方式。畢竟推薦系統的主體是算法模型,在日常的系統迭代中,有大量的離線場景,需要評估算法效果好壞。
一般而言,算法是用模型去擬合訓練數據,然后去預測新數據。它的評估方式也很直接,即預測的準確性。具體來說有召回率、精準率、準確率、F1值、AUC、RMSE...
分類預測類
召回率:也叫做查全率,全部正樣本里,有多少被命中了
精準率:也叫做查準率,即預測為正的樣本里,有多少是真的為正
準確率:一個綜合評價指標,計算的是全部預測項里,有多少是正確的
F1值:綜合考慮了召回率和精準率,既考慮是否把全部正樣本找出來,也考慮找的這些正樣本精準率如何,對不平衡類別非常有效
AUC:綜合考慮假正例率和真正例率,得到ROC曲線后,計算曲線下的面積。簡單理解,就是0~1之間的值,值越大模型分類效果越好,對不平衡類別非常有效
回歸預測類
SSE(和方差)、均方誤差(MSE)、MAE(平均絕對誤差)、均方根誤差(RMSE):這幾個都很相似,都是衡量預測值和真實值之間的差別
R Squared:基于方差計算出來的一個比值,取值0~1之間,值越大,模型擬合效果越好
從日常的工作流程上來說,我們會先考核算法模型的AUC,AUC比以往模型有所增長時,我們再做線上AB實驗,判斷業務指標的增減。
通過靈敏的業務拆解指標,來反映我們對業務目標的迫近。
寫在最后
隨著業務的發展,推薦系統越大,它的評估復雜度也會跟著提升。
許多新的目標、特殊的場景都需要納入考慮范圍。
比如推薦系統的健壯性(是否容易被攻擊)、推薦時效性、推薦地域性、推薦內容質量高低、推薦重復度、用戶投訴率等等...
因此,推薦系統的評估方式也需要動態調整。
靈活調整評價體系,讓推薦系統更好的服務業務發展,才能讓推薦系統永葆生機。
后臺回復關鍵詞【入群】
加入賣萌屋NLP/IR/Rec與求職討論群
后臺回復關鍵詞【頂會】
獲取ACL、CIKM等各大頂會論文集!
總結
以上是生活随笔為你收集整理的如何评价一个推荐系统的好坏?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 周志华教授专著《集成学习:基础与算法》上
- 下一篇: 数据有偏差,照样能学对!20年前就有这么