天天看點

推薦系統的評估1. 離線評價方法與基本評價名額2. 直接評估推薦序列的離線名額3. 近線環境的離線評估方法-Replay4. A/B測試與線上評估名額5. 快速線上評估方法-Interleaving6. 推薦系統的評估體系

推薦系統的評估

  • 1. 離線評價方法與基本評價名額
    • 1.1 離線評估的主要方法
    • 1.2 離線評估的名額
  • 2. 直接評估推薦序列的離線名額
    • 2.1 P-R曲線
    • 2.2 ROC曲線
    • 2.3 平均精度均值
    • 2.4 合理選擇評估名額
  • 3. 近線環境的離線評估方法-Replay
    • 3.1 模型評估的邏輯閉環
    • 3.2 動态離線評估方法
    • 3.3 Netflix的Replay評估方法
  • 4. A/B測試與線上評估名額
    • 4.1 何為A/B測試
    • 4.2 A/B測試的"分桶"原則
    • 4.3 線上A/B測試的評估名額
  • 5. 快速線上評估方法-Interleaving
  • 6. 推薦系統的評估體系

1. 離線評價方法與基本評價名額

“離線評估”就是将模型部署于線上環境之前,在離線環境下進行的評估。由于不用部署到生産環境,“離線評估”沒有線上部署的工程風險,也不會浪費寶貴的線上流量資源,而且具有測試時間短,可多組并行,以及能夠利用豐富的線下計算資源等諸多優點。

1.1 離線評估的主要方法

離線評估的基本原理是在離線環境下,将資料集分為“訓練集”和“測試集”兩部分,“訓練集”用來訓練模型,“測試集”用于評估模型。但是如何劃分測試集和訓練集,其實這裡面有很多學問。常用的離線評估方法主要有五種,分别是:

  • Holdout 檢驗

    Holdout 檢驗是最基礎,最常用的離線評估方法,它将原始的樣本集合随機劃分為訓練集和測試集兩部分,是以 Holdout 檢驗的關鍵詞就是“随機”。舉例來說,對于一個推薦模型,可以把樣本按照 70%-30% 的比例随機分成兩部分。其中,70% 的樣本用于模型的訓練,30% 的樣本用于模型的評估。

  • 交叉檢驗

    先将全部樣本劃分成 k 個大小相等的樣本子集,然後依次周遊這 k 個子集,每次把目前周遊到的子集作為驗證集,其餘所有的子集作為訓練集,這樣依次進行 k 次模型的訓練和評估。最後,我們再将所有 k 次評估名額的平均值作為最終的評估名額。在實踐中,k 經常取 10,也就是依次進行 10 次檢驗然後取名額均值。

  • 自助法

    自助法(Bootstrap)是基于自助采樣的檢驗方法,它的主要過程是:對于總數為 n 的樣本集合,我們先進行 n 次有放回地随機抽樣,得到大小為 n 的訓練集。在 n 次采樣過程中,有的樣本會被重複采樣,有的樣本沒有被抽出過,我們再将這些沒有被抽出的樣本作為驗證集進行模型驗證,這就是自助法的驗證過程。

  • 時間切割
  • 離線 Replay

    在離線狀态下對線上更新過程進行仿真,讓整個評估過程“動”起來。

1.2 離線評估的名額

為了比較模型效果的好壞,還得用一些名額進行衡量

  • 準确率

    準确率 (Accuracy) 是指分類正确的樣本占總樣本個數的比例

    A c c u r a c y = n c o r r e c t n t o t a l Accuracy = {n_{correct} \over n_{total}} Accuracy=ntotal​ncorrect​​

準确率是分類任務中非常直覺的評價名額,可解釋性也很強,但也存在明顯的缺陷,就是當不同類别的樣本比例非常不均衡的時候,占比大的類别往往成為影響準确率的最主要因素。比如,負樣本占 99%,那麼分類器把所有樣本都預測為負樣本也可以獲得 99% 的準确率。

  • 精确率與召回率
    • 精确率(Precision)指的是分類正确的正樣本個數占分類器判定為正樣本個數的比例
    • 召回率(Recall)是分類正确的正樣本個數占真正的正樣本個數的比例。

    精确率和召回率其實是沖突統一的一對名額。

    F1-score 的定義是精确率和召回率的調和平均值。F1-score 的值越高,就證明模型在精确率和召回率的整體表現上越好。

    F 1 = 2 ⋅ P r e c i s i o n ⋅ R e c a l l P r e c i s i o n + R e c a l l F1={2 \cdot Precision \cdot Recall \over { Precision+ Recall}} F1=Precision+Recall2⋅Precision⋅Recall​

  • 對數損失

    在一個二分類問題中,對數損失函數的定義:

    L o g l o s s = − 1 N ∑ i = 1 N ( y i l o g P i + ( 1 − y i ) l o g ( 1 − P i ) ) Logloss = -{1 \over N} \sum_{i=1}^N(y_ilogP_i+(1-y_i)log(1-P_i)) Logloss=−N1​i=1∑N​(yi​logPi​+(1−yi​)log(1−Pi​))

    二分類和多分類模型的 Logloss 其實就是邏輯回歸和 Softmax 模型的損失函數,而大量深度學習模型的輸出層正是邏輯回歸或 Softmax,是以,采用 Logloss 作為評估名額能夠非常直覺地反映模型損失函數的變化。是以在訓練模型的過程中,在每一輪訓練中都會輸出 Logloss,來觀察模型的收斂情況。

  • 均方根誤差

    準确率、精确率、召回率、LogLoss 都是針對分類模型指定的名額。分類模型就是指預測某個樣本屬于哪個類别的模型,最典型的就是點選率預估模型。除了分類模型以外,還有回歸模型,是用來預測一個連續值。

    對于回歸模型來說,最常用的評估名額就是均方根誤差(RMSE,Root Mean Square Error)。它的公式是求預測值跟真實值之間內插補點的均方根:

    R M S E = ∑ i = 1 n ( y i − y ^ i ) 2 n RMSE =\sqrt {\sum_{i=1}^n(y_i-\hat{y}_i)^2 \over n} RMSE=n∑i=1n​(yi​−y^​i​)2​

2. 直接評估推薦序列的離線名額

2.1 P-R曲線

為了綜合評價一個推薦模型的好壞,不僅要看模型在一個 Top n 值下的精确率和召回率,還要看到模型在不同 N 取值下的表現,甚至最好能繪制出一條 n 從 1 到 N,準确率和召回率變化的曲線。這條曲線就是 P-R 曲線。

P-R 曲線的橫軸是召回率,縱軸是精确率。對于一個推薦模型來說,它的 P-R 曲線上的一個點代表“在某一門檻值下,模型将大于該門檻值的結果判定為正樣本,将小于該門檻值的結果判定為負樣本時,整體結果對應的召回率和精确率”。整條 P-R 曲線是通過從高到低移動正樣本門檻值生成的。如圖 1 所示,它畫了兩個測試模型,模型 A 和模型 B 的對比曲線。其中,實線代表模型 A 的 P-R 曲線,虛線代表模型 B 的 P-R 曲線。

推薦系統的評估1. 離線評價方法與基本評價名額2. 直接評估推薦序列的離線名額3. 近線環境的離線評估方法-Replay4. A/B測試與線上評估名額5. 快速線上評估方法-Interleaving6. 推薦系統的評估體系

AUC 指的是 P-R 曲線下的面積大小,是以計算 AUC 值隻需要沿着 P-R 曲線橫軸做積分。AUC 越大,就證明推薦模型的性能越好。

2.2 ROC曲線

ROC 曲線是一個非常常用的衡量模型綜合性能的名額。ROC 曲線的全稱是 the Receiver Operating Characteristic 曲線。

ROC 曲線的橫坐标是 False Positive Rate(FPR,假陽性率),縱坐标是 True Positive Rate (TPR,真陽性率)。

F P R = F P N , T P R = T P P FPR = {FP \over N},TPR={TP \over P} FPR=NFP​,TPR=PTP​

P 指的是真實的正樣本數量,N 是真實的負樣本數量;TP 指的是 P 個正樣本中被分類器預測為正樣本的個數,FP 指的是 N 個負樣本中被分類器預測為正樣本的個數。

推薦系統的評估1. 離線評價方法與基本評價名額2. 直接評估推薦序列的離線名額3. 近線環境的離線評估方法-Replay4. A/B測試與線上評估名額5. 快速線上評估方法-Interleaving6. 推薦系統的評估體系

在繪制完 ROC 曲線後,也可以像 P-R 曲線一樣,計算出 ROC 曲線的 AUC,AUC 越高,推薦模型的效果就越好。

2.3 平均精度均值

假設,推薦系統對某一使用者測試集的排序結果是 1, 0, 0, 1, 1, 1。其中,1 代表正樣本,0 代表負樣本。按照之前的方法,計算這個序列中每個位置上的 [email protected]。

推薦系統的評估1. 離線評價方法與基本評價名額2. 直接評估推薦序列的離線名額3. 近線環境的離線評估方法-Replay4. A/B測試與線上評估名額5. 快速線上評估方法-Interleaving6. 推薦系統的評估體系

計算平均精度 AP 的時候,我們隻取正樣本處的 precision 進行平均,根據得到的表格 AP =(1/1 + 2/4 + 3/5 + 4/6)/4 = 0.6917。

如果推薦系統對測試集中的每個使用者都進行樣本排序,那麼每個使用者都會計算出一個 AP 值,再對所有使用者的 AP 值進行平均,就得到了 mAP。也就是說,mAP 是對精确度平均的平均。

需要注意的是,mAP 的計算方法和 P-R 曲線、ROC 曲線的計算方法是完全不同的,因為 mAP 需要對每個使用者的樣本進行分使用者排序,而 P-R 曲線和 ROC 曲線均是對全量測試樣本進行排序。

2.4 合理選擇評估名額

除了這些評估名額,還有很多其他的推薦系統名額,比如歸一化折扣累計收益(Normalized Discounted Cumulative Gain,NDCG)、覆寫率(Coverage)、多樣性(Diversity)等等。

離線評估的目的在于快速定位問題,快速排除不可行的思路,為線上評估找到“靠譜”的候選者。是以,需要根據業務場景選擇 2~4 個有代表性的離線名額,進行高效率的離線實驗才是離線評估正确的“打開方式”。

3. 近線環境的離線評估方法-Replay

離線 Replay 通過動态的改變測試時間點,來模拟模型的線上更新過程,讓測試過程更接近真實線上環境。

推薦系統的評估1. 離線評價方法與基本評價名額2. 直接評估推薦序列的離線名額3. 近線環境的離線評估方法-Replay4. A/B測試與線上評估名額5. 快速線上評估方法-Interleaving6. 推薦系統的評估體系

3.1 模型評估的邏輯閉環

3.2 動态離線評估方法

3.3 Netflix的Replay評估方法

4. A/B測試與線上評估名額

4.1 何為A/B測試

A/B 測試又被稱為“分流測試”或“分桶測試”,它通過把被測對象随機分成 A、B 兩組,分别對它們進行對照測試的方法得出實驗結論。具體到推薦模型測試的場景下,它的流程是這樣的:先将使用者随機分成實驗組和對照組,然後給實驗組的使用者施以新模型,給對照組的使用者施以舊模型,再經過一定時間的測試後,計算出實驗組和對照組各項線上評估名額,來比較新舊模型的效果差異,最後挑選出效果更好的推薦模型。

  • 離線評估無法完全還原線上的工程環境
  • 線上系統的某些商業名額在離線評估中無法計算
  • 離線評估無法完全消除資料有偏(Data Bias)現象的影響

4.2 A/B測試的"分桶"原則

在 A/B 測試分桶的過程中,需要注意的是**樣本的獨立性和分桶過程的無偏性**。這裡的“獨立性”指的是同一個使用者在測試的全程隻能被分到同一個桶中。“無偏性”指的是在分桶過程中使用者被分到哪個實驗桶中應該是一個純随機的過程。

在實際的 A/B 測試場景下,同一個網站或應用往往要同時進行多組不同類型的 A/B 測試。

Google 在一篇關于實驗測試平台的論文《Overlapping Experiment Infrastructure: More, Better, Faster Experimentation》中,詳細介紹了 A/B 測試分層以及層内分桶的原則。一句話概括為 層與層之間的流量“正交”,同層之間的流量“互斥”。

層與層之間的流量“正交”,它指的是層與層之間的獨立實驗的流量是正交的,一批實驗用的流量穿越每層實驗時,都會再次随機打散,然後再用于下一層的實驗。

同層之間的流量“互斥”,具體有 2 層含義:

  • 如果同層之間進行多組 A/B 測試,不同測試之間的流量不可以重疊,這是第一個“互斥”;
  • 一組 A/B 測試中實驗組和對照組的流量是不重疊的,這是第二個“互斥”。

4.3 線上A/B測試的評估名額

A/B 測試是模型上線前的最後一道測試,通過 A/B 測試檢驗的模型會直接服務于線上使用者,來完成公司的商業目标。是以,A/B 測試的名額應該與線上業務的核心名額保持一緻。

下表中列出了電商類推薦模型、新聞類推薦模型、視訊類推薦模型的主要線上 A/B 測試評估名額。

推薦系統的評估1. 離線評價方法與基本評價名額2. 直接評估推薦序列的離線名額3. 近線環境的離線評估方法-Replay4. A/B測試與線上評估名額5. 快速線上評估方法-Interleaving6. 推薦系統的評估體系

線上 A/B 測試的名額和離線評估的名額(諸如 AUC、F1- score 等),它們之間的差異非常大。這主要是因為,離線評估不具備直接計算業務核心名額的條件,是以退而求其次,選擇了偏向于技術評估的模型相關名額,但公司更關心的是能夠驅動業務發展的核心名額,這也是 A/B 測試評估名額的選取原則。

5. 快速線上評估方法-Interleaving

Interleaving 評估方法提出的意義主要有兩方面:首先,和 A/B 測試一樣的線上評估方法,能夠得到線上評估名額;其次,它提出的目的是為了比傳統的 A/B 測試用更少的資源,更快的速度得到線上評估的結果。

在傳統的 A/B 測試中,把使用者随機分成兩組。一組接受目前的推薦模型 A 的推薦結果,這一組被稱為對照組 。另一組接受新的推薦模型 B 的推薦結果,這組被成為實驗組。

而在 Interleaving 方法中,不再需要兩個不同組的使用者,隻需要一組使用者,這些使用者會收到模型 A 和模型 B 的混合結果。也就是說,使用者會在一個推薦清單裡同時看到模型 A 和模型 B 的推薦結果。在評估的過程中,Interleaving 方法通過 分别累加模型 A 和模型 B 推薦物品的效果,來得到模型 A 和 B 最終的評估結果。

推薦系統的評估1. 離線評價方法與基本評價名額2. 直接評估推薦序列的離線名額3. 近線環境的離線評估方法-Replay4. A/B測試與線上評估名額5. 快速線上評估方法-Interleaving6. 推薦系統的評估體系

6. 推薦系統的評估體系

推薦系統的評估1. 離線評價方法與基本評價名額2. 直接評估推薦序列的離線名額3. 近線環境的離線評估方法-Replay4. A/B測試與線上評估名額5. 快速線上評估方法-Interleaving6. 推薦系統的評估體系

參考:深度學習推薦系統,王喆

繼續閱讀