推薦系統“體檢”:如何評估推薦系統的“健康”狀況?

2 評論 14972 瀏覽 124 收藏 15 分鐘

為了自己的健康去體檢,推薦系統也有自己的健康指標,不同的業務、不同的場景、不同的階段都有不同的指標,所以選擇好的評估指標以及合適的評估方式,才能讓推薦系統更加“健康”。那么,如何評估推薦系統的“健康”狀況?

推薦系統從海量數據中挖掘用戶喜歡的內容,滿足用戶的需求。要想做到“千人千面”的同時,又能做到“精準推薦”,一個健康的推薦系統是必不可少的。

就像為了自己的健康去體檢,推薦系統也有自己的健康指標,不同的業務、不同的場景、不同的階段都有不同的指標,所以選擇好的評估指標以及合適的評估方式,才能讓推薦系統更加“健康”。

推薦系統的常見指標

推薦系統的評價指標,要從解決實際問題的角度來思考,好的推薦系統,不僅要保證自身的“健康”,還要滿足服務平臺、用戶等多方面的需求。

圖1:推薦系統基礎流程

1. 用戶角度

用戶最重要的需求是更方便、更快速的發現自己喜歡的產品,為了滿足用戶的需求,推薦系統可以從以下幾個方面評估。

  • 準確度:準確度更多的是用戶主觀感受,評估的是推薦的物品是不是用戶喜歡的,比如推薦的視頻,用戶觀看了,推薦的商品,用戶加入購物車或者購買了,都可以用來衡量用戶的喜好程度。
  • 驚喜度:推薦的物品讓用戶有耳目一下的感覺,可以給用戶帶來驚喜。比如推薦用戶想不起來名字的音樂、電影,或者用戶知道功能不知道名字的商品等等,這種推薦和用戶的歷史興趣不一定相似,但是用戶很滿意,超出了用戶的預期。
  • 新穎性:給用戶推薦沒有接觸過的東西,推薦出的商品不一定是用戶喜歡的,但是可以提升用戶的探索欲望,從而獲取更完整的用戶興趣。
  • 多樣性:人的興趣往往是多種多樣的,給用戶推薦多種類目的物品,可以挖掘用戶新的興趣點,拓寬用戶的興趣范圍來提升用戶的推薦體驗。

2. 平臺角度

平臺方給用戶提供物品或者信息,不同平臺獲取利潤的方式不同,有的通過會員盈利,有的通過商品盈利,大部分的平臺都會通過廣告賺錢。

所以對于平臺方來說商業目標是最重要的目標之一,通常來說有兩類值得關注,一個是內容滿意度,一個是場景轉化率。

1)內容滿意度

業務場景不同,內容滿意度的指標也隨之變化,主要是通過用戶對產品的不同行為了來衡量,下圖的例子分別說明了不同領域的內容滿意度的一些衡量指標。

圖2:內容滿意度評價指標

2)場景轉化率

轉化率是比較直觀的指標,給用戶進行推薦,是希望用戶對推薦的內容有所行動,比如常見的點擊行為、點贊行為等。

  • pv點擊率(點擊量/pv):比較經典的指標,能粗略的衡量轉化效果,但是少數用戶貢獻大量的點擊會掩蓋這個指標的真實性。
  • uv點擊率(點擊率/uv):與pv點擊率相比,該指標不會因為重復瀏覽某個產品而受影響,能記錄用戶在一個完整周期的點擊效果。
  • 曝光點擊率(點擊量/曝光次數):比較適合信息流這種支持上拉/下拉翻頁的產品,曝光次數隨著用戶刷屏次數增加而變大,能更真實的記錄每一屏的轉化情況。
  • uv轉化率(轉化次數/點擊量):衡量用戶的轉化情況,能把多大比例的用戶從一個場景轉化到另一個場景去。比如視頻App首頁,一般用戶在點擊某個視頻后,會進入詳情頁繼續操作,而不是返回首頁,用uv轉化率更加合理。
  • 人均點擊次數(點擊量/點擊uv數):每個用戶點擊的次數,與uv轉換率相輔相承,可以評價用戶的深度,uv轉化率評價用戶的寬度。

*注:pv:訪問頁面的次數;uv:訪問頁面的人數。

推薦系統的離線評估

推薦系統的評價指標除了上面提到的用戶角度和平臺角度之外,還有推薦系統自身的評估。

推薦系統從接收數據到產生推薦結果,再根絕推薦結果的影響重新修正自身。所以本質上是一個閉環系統,在這個閉環中,離線部分的工作主要是通過學習訓練以及其他策略規則進行召回,主要的以下的評估指標。

圖3:推薦系統評價階段

1.?準確度

準確度的評估主要是評估推薦算法模型的好壞,為選擇合適的模型提供決策支持。

推薦系統也像其他機器學習一樣,把數據劃分為訓練集和測試集,使用訓練集學習訓練模型,通過測試集來衡量誤差以及評估準確度。根據推薦系統的目的不同,準確度的衡量也有不同的指標。

分類問題:比如點擊、不點擊或者喜歡、不喜歡就可以看成分類問題,分類問題的指標主要是精確度(Precision)和召回率(Recall),精確度描述的是推薦結果有多少是用戶喜歡的。

而召回率描述的是用戶喜歡的產品,有多少是推薦系統推薦的。當然,我們希望這兩個指標都越大越好。但是實際情況,都需要平衡這兩個指標的關系,所以常用的F-指標就是一種常用的平衡二者關系的計算方式。

評分預測:對產品進行評分,比如電影評分,常用的準確度指標主要有均方根誤差(RMSE)、MAE(平均絕對誤差),二者之間主要是計算方式的差別,都是描述算法的預測評分和產品真實評分之間的差距。

排序問題:分類和評分預測問題,只是把可以推薦的產品篩選出來,但是并不包含展示給用戶的順序,我們當然希望把用戶最可能“消費”的產品放在前面,這就需要排序指標。

其中最常見的離線指標是AUC,簡單的說,AUC代表的是隨機挑選一個正樣本和一個負樣本,正樣本排在負樣本前邊的概率。所以當算法能更好的把正樣本排在前邊的時候,就是一個好的算法模型。

其他常見的算法指標,比如MAP,描述的是推薦列表中,和用戶相關的產品在推薦列表中的位置得分,越靠前得分越大,MRR是按照相關產品的排名的倒數作為準確度,NDGG描述的是推薦列表中每一個產品的評分值的累加。同時考慮每個產品的位置,最后進行歸一化,在同一標準上評價不同的推薦列表。

2. 覆蓋率

覆蓋率描述的是推薦出的產品占總產品的比例,除了產品之外,類目、標簽也可以用覆蓋率來評價。

3. 多樣性

用戶的興趣不是一成不變的,而且有些產品的用戶不止一個,同一用戶的興趣也會受到時間段、心情、節日等多種音速的影響。所以推薦時要盡量推薦多樣的產品。在具體的多樣性評價上,可以通過對產品聚類,在推薦列表中插入不同類別的產品來提高多樣性。

4.?時效性

不同產品的時效性是不同的,比如電商類需要的時效性不是很高,但是新聞、資訊、短視頻這類產品,就需要很高的時效性。所以針對不同產品甚至產品下不同的類目,設置不同的時效性,也是提高推薦質量的途徑之一。

推薦系統的在線評估

在線評估大致可以分為兩個階段:一個是用戶觸發推薦服務;另一個是用戶產生行為這兩個階段。

1. 觸發推薦服務

  • 穩定性:系統的穩定性對于用戶的體驗至關重要,怎樣能針對不同的場景持續穩定的提供推薦服務,是推薦系統最重要的指標之一,提高推薦效果,也要在保證系統穩定性的前提下去進行優化。
  • 高并發:當某個時間點有大量用戶訪問,或者用戶規模很大時,推薦系統能否扛住高并發的壓力也是一個很大的挑戰。所以設計一個高并發的系統,了解不同接口的高并發能力,做好充分的壓力測試,也是推薦系統能否穩定提供服務的重要內容。
  • 響應時間:響應時間衡量用戶是否能夠及時得到推薦反饋,響應時間會受到多種因素的影響,比如網絡情況、服務器、數據庫等,可以通過監控請求的時長,做好超時報警。同時在生產推薦結果時優化計算方式、簡化生產過程,盡可能的規避響應時間帶來的影響。

2.?產生行為

這一階段主要是用過用戶產生行為,通過收據分析用戶的行為日志進行相關指標的評價。這一階段更多的是考慮平臺角度,從商業化指標以及用戶行為指標等方面進行評價。

比如轉化率、購買率、點擊率等都是常見的行為指標,一般用戶行為符合漏斗模型(例如,推薦曝光-點擊-閱讀-分享),通過漏斗模型可以直觀的描述不同階段之間的轉化,提升用戶在不同階段之間的轉化。

圖4:用戶行為漏斗模型

AB測試

在線評估通常會結合AB測試,當有新的算法或者策略上線時,通過AB測試,在同一指標下,對比新舊算法的差異,只有當新算法有明顯優勢時,才會取代舊的算法。

圖5:AB測試流程

1. 什么是AB測試

AB測試的本質是對照試驗,其來源于生物醫學的雙盲測試,通過給兩組病人不同的藥物,來確定藥物是否有效。

在推薦系統中,AB測試也采用了類似的概念:將不同的算或者策略,在同一時間維度,分別在兩組或者多組組成成分相同的用戶群體內進行線上測試,分析各組的用戶行為指標,得到可以真正全流量上線的算法或者策略。

2. AB測試的常見做法

AB測試應該怎樣進行呢?其中最重要的是“控制變量”、“分流測試”和“規則統一”。

控制變量:AB測試必須是單變量的,變量太多,變量之間會產生干擾,很難找出各個變量對結果的影響程度。在推薦系統中,AB測試的唯一變量就是推薦算法或者策略。

分流測試:AB測試作為對照試驗,自然有實驗組和對照組。通常狀況下會對用戶進行分流,很多用戶都會訪問同一個app或者web多次。所以根據用戶進行分流是一個很好的方案,在對用戶進行分流時,可以通過用戶ID,設備號或者瀏覽器cookie。

對于未登錄用戶來說,跨設備訪問app或者web,就會產生不同的標識。所以對于未登錄用戶,最好能保持實驗組和對照組有相同的比例。

不同的用戶在一次瀏覽過程中,體驗的應該是一個方案,同時需要注意不同流量之間的人數,大多數情況希望所有用戶平均分配。

規則統一:在控制變量和分流測試的前提下,針對不同的流量,應該制定相同的評價指標,才能得到準確的對比效果。

 

本文由 @達觀數據 原創發布于人人都是產品經理。未經許可,禁止轉載

題圖來自Unsplash,基于CC0協議

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 發現個錯別字…

    來自廣東 回復
    1. 審核編輯的雞腿沒了

      回復