做推薦業務,這4種機器效果測評方法你應該知道

2 評論 7452 瀏覽 33 收藏 15 分鐘

在與策略相關的產品功能(搜索、排序、推薦)中,往往都涉及機器學習算法,因此評估推薦效果就轉化為評估機器學習算法模型的好壞。那如何評估最終推薦的效果呢?本文作者梳理分析了4種方法,供大家參考和學習。

我們一般以人工標注為準,即看做真實結果,用各種率去衡量機器預測和真實結果之間的差距。評估方式有很多種,各有各的優點。

R\P\A\F值

用Recall、Precision、Accuracy、F值,評估單個機器學習算法的效果,是最常見、最基礎的方法。

對象分類:

(1)二分類:每一個評估對象有唯一的標簽,YES or NO。如低俗、標題黨文章。

(2)多分類(機器需要識別的標簽數包含3個及3個以上,一般情況下,每一種標簽的識別結果都是我們的關注目標)

  • 單標簽,每一個評估對象有唯一的標簽,選擇大于等于3,如文章分類。
  • 多標簽,每一個評估對象有多個標簽,如文章興趣點、文章關鍵詞。

1. 二分類

人工標注結果為“真”的樣本記做T(True),人工標注結果為“假”的樣本記做F(False);

機器預測結果為“真”的樣本記做P(Positive),機器預測結果為“假”的樣本記做N(Negative)。

將其轉化為矩陣,有四種結果:

  1. TP:預測正確,預測情況是P,因此真實情況也是P。
  2. FP:預測錯誤,預測情況是P,因此實際情況是N。
  3. FN:預測錯誤,預測情況是N,因此實際情況是P。
  4. TN:預測正確,預測情況是N,因此實際情況也是N。

(混淆矩陣示意圖)

召回率(Recall)=TP/(TP+FN),機器正確識別出”真”的樣本數總和/樣本總數

精準率(Precison)=TP/(TP+FP),機器正確識別出”真”的樣本數總和/機器識別樣本總數

準確率(Accuracy)=(TP+TNP)/(TP+FN+FP+TN),機器正確識別的樣本總數/樣本總數(備注:正確識別包含把“True”樣本識別為“Positive”,把“False”樣本識別為“Negative”兩種情況)

雖然準確率可以判斷總的正確率,但如果樣本中T、F樣本分布極度不平衡,準確率結果會含有很大的水分,基本失去參考價值。

如樣本中T占95%,F占5%,我們將模型設置為所有樣本均預測為P的策略,則準確率有95%那么高,但實際上毫無意義。更多經典例子來自疾病試紙和驗孕試紙(有興趣的朋友可以查閱一下),所以統計的時候需要注意統計的對象。

針對R\P\A的計算,舉個栗子:

(以上數據僅做理論說明,不做實際參考)

圖解一:

  • 召回率(R)=140/(140+11)=92.72%
  • 精準率(P)=140/(140+40)=77.78%
  • 準確率(A)=(140+4809)/(140+4809+40+11)=98.98%

圖解二:

  • 召回率(R)=140/151=92.72%
  • 精準率(P)=140/180=77.78%
  • 準確率(A)=(5000-40-11)/5000=98.98%

對于同一策略模型,同一閾值,可以統計出一組確定的精準率和召回率。調整參數,遍歷0-1之間的所有閾值,就可以畫出每個閾值下的關系點,從而得到一條曲線,稱之為P-R曲線。

(召回率也叫查全率,精確率也叫查準率)

通過曲線發現,召回率和精準率相互制約,此起彼伏,所以只能找二者之間的平衡點。這時需要引入F值評估:F-Score(也稱F-Measure),它是Precision和Recall加權調和平均數,[0,1],值越大表示效果越好。

F1 Score:召回率和精確率同等重要

但往往我們對召回率和精準率的權重要求是不同的,這是我們需要用到 Fβ Score。

  • F2:召回率的重要程度是準確率的2倍
  • F0.5:召回率的重要程度是準確率的一半

(β大于0)

2. 多分類單標簽

M_i : 表示機器識別是 i 類別,同時是正確的樣本數

C_i : 表示機器識別是 i 類別的總樣本數

N_i : 表示 i 類別的實際總數(即人工標記為是 i 類別的樣本數)

D :文章總數

K: 類別總數

  • 精確率(A)=(M_0+M_1+……+M_K)/(C_1+C_2 + …… + C_K)
  • 召回率(R)=(M_0+M_1+……+M_K)/(N_1+N_2+……+N_K)=(M_0+M_1+……+M_K)/D
  • 覆蓋率(Coverage)= 所有精確度符合要求的機器預測樣本數/D

對于覆蓋率,舉個栗子:

假設單個類別精度要求90%,沒有滿足要求的類別,覆蓋率C=0;

假設單個類別精度要求85%,則滿足要求的類別有a、c,則覆蓋率C=(90+100)/(100+100+200)*100%=47.5%。

在實際的文本審核工作中,還需要加上“無需審核的文章量”=準確率達標的文章量,用于評估減少人工審核文章量。

3. 多分類多標簽

M_i : 表示 i 標簽識別正確的總樣本數;

C_i : 表示 i 標簽出現的總樣本數;

N_i : 表示 i 標簽實際總樣本數(即人工標記為是 i 標簽的總樣本數)

K:表示標簽集合的大?。床煌瑯撕灥膫€數)

  • 準確率(A)=(M_0+M_1+……+M_K)/(C_0+C_1+……+C_K)
  • 召回率(R)=(M_0+M_1+……+M_K)/(N_1+N_2+……+N_K)

但在實際工作中,考慮到人工標注可行性,評估指標不考慮多標簽結果的先后順序;并且考慮到每一篇文章人工打全所有標簽的成本較大,召回率指標僅作為參考,看情況提供。

ROC、AUC

前文介紹了R\P\A\F值,但它僅能評估單點效果而無法衡量策略的整體效果,于是我們再引入ROC(Receiver Operating Characteristic)、AUC(Area Under Curve),它是一套成熟的整體策略評估方法。

先引入兩個指標,這兩個指標是ROC、AUC可以無視樣本中T、F不平衡的原因。

  • 真正率(TPR)=TP/(TP+FN),在“真”樣本里預測正確的樣本;
  • 假正率(FPR)=FP/(FP+TN),在“假”樣本里預測錯誤的樣本。

設橫坐標是FPR、縱坐標是TPR,每個點都描繪了在某一確定閾值下模型中真正的P和錯誤的P之間的關系,遍歷0-1的所有閾值,繪制一條連續的曲線,這就是ROC曲線。

如果我們遍歷閾值,多次回歸模型繪制出ROC曲線上的點,這種做法非常低效。因此我們可以用另外一種方法來代替ROC,即AUC,計算曲線下的面積。

如上圖虛線,若我們將對角線連接,它的面積正好是0.5,代表模型完全隨機判斷,P/N概率均為50%。若ROC曲線越陡,AUC就越接近正方形,面積越接近1,代表效果越好。所以,AUC的值一般都介于0.5-1之間。

MAP

除了考慮召回結果整體準確率之外,有時候還需要考慮召回結果的排序。于是我們要提起MAP(Mean Average Precision)。

先說說AP的計算,假設這N個樣本中有M個正例,那么我們會得到M個Recall值(1/M, 2/M, …, M/M),如下圖,N個樣本里有6個正例,有6個Recall值:1/6, 2/6, …, 6/6,對于每個Recall值,我們可以計算出對于這個正例最大Precision,然后對這6個Precision取平均即得到最后的AP值。計算方法如下:?

AP衡量的是學出來的模型在給定類別上的好壞,而MAP衡量的是學出的模型在所有類別上的好壞,得到AP后MAP的計算就變得很簡單了,就是取所有AP的平均值。

CG/DCG/NDCG

之前的指標大多是將目標值分為P和N兩種情況,但用CG/DCG/NDCG(Normalized Discounted cumulative gain)算法可以用更多維度的指標來評估。

比如可以將目標值分為Good、Fair、Bad三類,也可以按照評分。CG->DCG->NDCG是一個考慮精度逐步復雜的演變,多用于搜索結果的評估,當規定相關分值越大表示越相關時,CG/DCG/NDCG值越大表示效果越好。

累計增益(CG),只考慮結果的相關性(reli),不考慮位置因素。公式:

舉個栗子:

假設某次搜索返回5個結果,相關度分數分別是4、2、1、1、2

所以CG=4+2+1+1+2=10

折損累計增益(DCG),既考慮結果的相關性,也考慮位置因素:a. 高關聯度的結果比一般關聯度的結果更影響最終的指標得分;b. 有高關聯度的結果出現在更靠前的位置的時候,指標會越高。DCG公式:

再舉個栗子:

假設某次搜索返回5個結果,相關度分數分別是4、2、1、1、2

DCG=1.26+3+0.38+0+1.26=5.9

歸一化折損累計增益(NDCG),由于搜索結果隨著檢索詞的不同,返回的數量是不一致的,沒法針對兩個不同的搜索結果進行比較,因此需要歸一化處理。NDCG公式:

IDCG為理想情況下(相關度降序排列)最大的DCG值:

再再再舉個栗子:

假設某次搜索返回5個結果,相關度分數分別是4、2、1、1、2

假如我們實際召回了7個物品,除了上面的5個,還有兩個結果,假設第6個相關性為3,第7個相關性為0。在理想情況下的相關性分數排序應該是:3、3、2、2、1

所以IDCG=3+3+1.26+1.26+0.38=8.9,NDCG=DCG/IDCG=5.9/8.9*100%=66.29%

參考文獻:

  • Willy_G《搜索:由流程框架到實現方法》,http://www.aharts.cn/pd/2866942.html
  • 胖喵~《搜索評價指標——NDCG》,https://www.cnblogs.com/by-dream/p/9403984.html
  • 殘陽崔雪《性能指標(模型評估)之mAP》,https://blog.csdn.net/u014203453/article/details/77598997

 

本文由 @張小喵Miu 原創發布于人人都是產品經理,未經作者許可,禁止轉載。

題圖來自Unsplash,基于CC0協議。

更多精彩內容,請關注人人都是產品經理微信公眾號或下載App
評論
評論請登錄
  1. 講的太好了!?。?!

    回復
  2. 看不懂,看不懂;看您應該有過一些推薦策略的實戰經驗;想問一下,如果像學習一些策略推薦等,需要怎么入手,或者您是如何成長的 ?? ;

    來自廣東 回復