做推薦業(yè)務(wù),這4種機(jī)器效果測(cè)評(píng)方法你應(yīng)該知道

2 評(píng)論 7767 瀏覽 33 收藏 15 分鐘

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

我們一般以人工標(biāo)注為準(zhǔn),即看做真實(shí)結(jié)果,用各種率去衡量機(jī)器預(yù)測(cè)和真實(shí)結(jié)果之間的差距。評(píng)估方式有很多種,各有各的優(yōu)點(diǎn)。

R\P\A\F值

用Recall、Precision、Accuracy、F值,評(píng)估單個(gè)機(jī)器學(xué)習(xí)算法的效果,是最常見、最基礎(chǔ)的方法。

對(duì)象分類:

(1)二分類:每一個(gè)評(píng)估對(duì)象有唯一的標(biāo)簽,YES or NO。如低俗、標(biāo)題黨文章。

(2)多分類(機(jī)器需要識(shí)別的標(biāo)簽數(shù)包含3個(gè)及3個(gè)以上,一般情況下,每一種標(biāo)簽的識(shí)別結(jié)果都是我們的關(guān)注目標(biāo))

  • 單標(biāo)簽,每一個(gè)評(píng)估對(duì)象有唯一的標(biāo)簽,選擇大于等于3,如文章分類。
  • 多標(biāo)簽,每一個(gè)評(píng)估對(duì)象有多個(gè)標(biāo)簽,如文章興趣點(diǎn)、文章關(guān)鍵詞。

1. 二分類

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

機(jī)器預(yù)測(cè)結(jié)果為“真”的樣本記做P(Positive),機(jī)器預(yù)測(cè)結(jié)果為“假”的樣本記做N(Negative)。

將其轉(zhuǎn)化為矩陣,有四種結(jié)果:

  1. TP:預(yù)測(cè)正確,預(yù)測(cè)情況是P,因此真實(shí)情況也是P。
  2. FP:預(yù)測(cè)錯(cuò)誤,預(yù)測(cè)情況是P,因此實(shí)際情況是N。
  3. FN:預(yù)測(cè)錯(cuò)誤,預(yù)測(cè)情況是N,因此實(shí)際情況是P。
  4. TN:預(yù)測(cè)正確,預(yù)測(cè)情況是N,因此實(shí)際情況也是N。

(混淆矩陣示意圖)

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

精準(zhǔn)率(Precison)=TP/(TP+FP),機(jī)器正確識(shí)別出”真”的樣本數(shù)總和/機(jī)器識(shí)別樣本總數(shù)

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

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

如樣本中T占95%,F(xiàn)占5%,我們將模型設(shè)置為所有樣本均預(yù)測(cè)為P的策略,則準(zhǔn)確率有95%那么高,但實(shí)際上毫無(wú)意義。更多經(jīng)典例子來(lái)自疾病試紙和驗(yàn)孕試紙(有興趣的朋友可以查閱一下),所以統(tǒng)計(jì)的時(shí)候需要注意統(tǒng)計(jì)的對(duì)象。

針對(duì)R\P\A的計(jì)算,舉個(gè)栗子:

(以上數(shù)據(jù)僅做理論說(shuō)明,不做實(shí)際參考)

圖解一:

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

圖解二:

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

對(duì)于同一策略模型,同一閾值,可以統(tǒng)計(jì)出一組確定的精準(zhǔn)率和召回率。調(diào)整參數(shù),遍歷0-1之間的所有閾值,就可以畫出每個(gè)閾值下的關(guān)系點(diǎn),從而得到一條曲線,稱之為P-R曲線。

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

通過(guò)曲線發(fā)現(xiàn),召回率和精準(zhǔn)率相互制約,此起彼伏,所以只能找二者之間的平衡點(diǎn)。這時(shí)需要引入F值評(píng)估:F-Score(也稱F-Measure),它是Precision和Recall加權(quán)調(diào)和平均數(shù),[0,1],值越大表示效果越好。

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

但往往我們對(duì)召回率和精準(zhǔn)率的權(quán)重要求是不同的,這是我們需要用到 Fβ Score。

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

(β大于0)

2. 多分類單標(biāo)簽

M_i : 表示機(jī)器識(shí)別是 i 類別,同時(shí)是正確的樣本數(shù)

C_i : 表示機(jī)器識(shí)別是 i 類別的總樣本數(shù)

N_i : 表示 i 類別的實(shí)際總數(shù)(即人工標(biāo)記為是 i 類別的樣本數(shù))

D :文章總數(shù)

K: 類別總數(shù)

  • 精確率(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)= 所有精確度符合要求的機(jī)器預(yù)測(cè)樣本數(shù)/D

對(duì)于覆蓋率,舉個(gè)栗子:

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

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

在實(shí)際的文本審核工作中,還需要加上“無(wú)需審核的文章量”=準(zhǔn)確率達(dá)標(biāo)的文章量,用于評(píng)估減少人工審核文章量。

3. 多分類多標(biāo)簽

M_i : 表示 i 標(biāo)簽識(shí)別正確的總樣本數(shù);

C_i : 表示 i 標(biāo)簽出現(xiàn)的總樣本數(shù);

N_i : 表示 i 標(biāo)簽實(shí)際總樣本數(shù)(即人工標(biāo)記為是 i 標(biāo)簽的總樣本數(shù))

K:表示標(biāo)簽集合的大?。床煌瑯?biāo)簽的個(gè)數(shù))

  • 準(zhǔn)確率(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)

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

ROC、AUC

前文介紹了R\P\A\F值,但它僅能評(píng)估單點(diǎn)效果而無(wú)法衡量策略的整體效果,于是我們?cè)僖隦OC(Receiver Operating Characteristic)、AUC(Area Under Curve),它是一套成熟的整體策略評(píng)估方法。

先引入兩個(gè)指標(biāo),這兩個(gè)指標(biāo)是ROC、AUC可以無(wú)視樣本中T、F不平衡的原因。

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

設(shè)橫坐標(biāo)是FPR、縱坐標(biāo)是TPR,每個(gè)點(diǎn)都描繪了在某一確定閾值下模型中真正的P和錯(cuò)誤的P之間的關(guān)系,遍歷0-1的所有閾值,繪制一條連續(xù)的曲線,這就是ROC曲線。

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

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

MAP

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

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

AP衡量的是學(xué)出來(lái)的模型在給定類別上的好壞,而MAP衡量的是學(xué)出的模型在所有類別上的好壞,得到AP后MAP的計(jì)算就變得很簡(jiǎn)單了,就是取所有AP的平均值。

CG/DCG/NDCG

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

比如可以將目標(biāo)值分為Good、Fair、Bad三類,也可以按照評(píng)分。CG->DCG->NDCG是一個(gè)考慮精度逐步復(fù)雜的演變,多用于搜索結(jié)果的評(píng)估,當(dāng)規(guī)定相關(guān)分值越大表示越相關(guān)時(shí),CG/DCG/NDCG值越大表示效果越好。

累計(jì)增益(CG),只考慮結(jié)果的相關(guān)性(reli),不考慮位置因素。公式:

舉個(gè)栗子:

假設(shè)某次搜索返回5個(gè)結(jié)果,相關(guān)度分?jǐn)?shù)分別是4、2、1、1、2

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

折損累計(jì)增益(DCG),既考慮結(jié)果的相關(guān)性,也考慮位置因素:a. 高關(guān)聯(lián)度的結(jié)果比一般關(guān)聯(lián)度的結(jié)果更影響最終的指標(biāo)得分;b. 有高關(guān)聯(lián)度的結(jié)果出現(xiàn)在更靠前的位置的時(shí)候,指標(biāo)會(huì)越高。DCG公式:

再舉個(gè)栗子:

假設(shè)某次搜索返回5個(gè)結(jié)果,相關(guān)度分?jǐn)?shù)分別是4、2、1、1、2

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

歸一化折損累計(jì)增益(NDCG),由于搜索結(jié)果隨著檢索詞的不同,返回的數(shù)量是不一致的,沒法針對(duì)兩個(gè)不同的搜索結(jié)果進(jìn)行比較,因此需要?dú)w一化處理。NDCG公式:

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

再再再舉個(gè)栗子:

假設(shè)某次搜索返回5個(gè)結(jié)果,相關(guān)度分?jǐn)?shù)分別是4、2、1、1、2

假如我們實(shí)際召回了7個(gè)物品,除了上面的5個(gè),還有兩個(gè)結(jié)果,假設(shè)第6個(gè)相關(guān)性為3,第7個(gè)相關(guān)性為0。在理想情況下的相關(guān)性分?jǐn)?shù)排序應(yīng)該是: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%

參考文獻(xiàn):

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

 

本文由 @張小喵Miu 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來(lái)自Unsplash,基于CC0協(xié)議。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 講的太好了?。。?!

    回復(fù)
  2. 看不懂,看不懂;看您應(yīng)該有過(guò)一些推薦策略的實(shí)戰(zhàn)經(jīng)驗(yàn);想問(wèn)一下,如果像學(xué)習(xí)一些策略推薦等,需要怎么入手,或者您是如何成長(zhǎng)的 ?? ;

    來(lái)自廣東 回復(fù)