为什么搜索与推荐场景用AUC评价模型好坏?
星標(biāo)/置頂小屋,帶你解鎖
最萌最前沿的NLP、搜索與推薦技術(shù)
文 |?吳海波
在互聯(lián)網(wǎng)的排序業(yè)務(wù)中,比如搜索、推薦、廣告等,AUC(Area under the Curve of ROC)是一個非常常見的評估指標(biāo)。網(wǎng)上關(guān)于AUC的資料很多,知乎上也有不少精彩的討論,本文嘗試基于自身對AUC的理解做個綜述,水平有限,歡迎指出錯誤。
俗話說,提出正確的問題就成功了一半,本文先提出以下幾個問題,希望大家讀完能夠加深對下列問題的理解。
AUC有幾種理解?
AUC的什么特性讓它如此受歡迎?
AUC的值和什么有關(guān),多高是高?
AUC提高了是否代表線上指標(biāo)會提高?
有沒有更好的指標(biāo)替代AUC?
幾種AUC的理解
一般有兩大類解釋,一種是基于ROC線下面積,需要理解混淆矩陣,包括精確率、召回率、F1 值、ROC等指標(biāo)的含義。另外一種是基于概率的解釋,模型的排序能力。
在參考[1]和[4]中,關(guān)于AUC定義本身的討論非常詳細(xì),上述兩大類都有不同形式的解釋。還包括如何用AUC做目標(biāo)去優(yōu)化,AUC的各種計(jì)算方法,本文不再贅述,有興趣的同學(xué)自己去看下。
AUC的排序特性
對比accuracy、precision等指標(biāo),AUC指標(biāo)本身和模型預(yù)測score絕對值無關(guān),只關(guān)注排序效果,因此特別適合排序業(yè)務(wù)。
為何與模型預(yù)測score值無關(guān)為何是很好的特性呢?假設(shè)你采用precision、F1等指標(biāo),而模型預(yù)測的score是個概率值,就必須選擇一個閾值來決定哪些樣本預(yù)測是1哪些是0,不同的閾值選擇,precision的值會不同,而AUC可以直接使用score本身,參考的是相對順序,更加好用。
相對于ROC線下面積的解釋,個人更喜歡排序能力的解釋。參考[2]的解釋通俗易懂:
例如0.7的AUC,其含義可以大概理解為:給定一個正樣本和一個負(fù)樣本,在70%的情況下,模型對正樣本的打分高于對負(fù)樣本的打分??梢钥闯鲈谶@個解釋下,我們關(guān)心的只有正負(fù)樣本之間的分?jǐn)?shù)高低,而具體的分值則無關(guān)緊要。
AUC對均勻正負(fù)樣本采樣不敏感
正由于AUC對分值本身不敏感,故常見的正負(fù)樣本采樣,并不會導(dǎo)致auc的變化。比如在點(diǎn)擊率預(yù)估中,處于計(jì)算資源的考慮,有時候會對負(fù)樣本做負(fù)采樣,但由于采樣完后并不影響正負(fù)樣本的順序分布。
即假設(shè)采樣是隨機(jī)的,采樣完成后,給定一條正樣本,模型預(yù)測為score1,由于采樣隨機(jī),則大于score1的負(fù)樣本和小于score1的負(fù)樣本的比例不會發(fā)生變化。
但如果采樣不是均勻的,比如采用word2vec的negative sample,其負(fù)樣本更偏向于從熱門樣本中采樣,則會發(fā)現(xiàn)auc值發(fā)生劇烈變化。
AUC值本身有何意義
我們在實(shí)際業(yè)務(wù)中,常常會發(fā)現(xiàn)點(diǎn)擊率模型的auc要低于購買轉(zhuǎn)化率模型的auc。正如前文所提,AUC代表模型預(yù)估樣本之間的排序關(guān)系,即正負(fù)樣本之間預(yù)測的gap越大,auc越大。
通常,點(diǎn)擊行為的成本要低于購買行為,從業(yè)務(wù)上理解,點(diǎn)擊率模型中正負(fù)樣本的差別要小于購買力模型,即購買轉(zhuǎn)化模型的正樣本通常更容易被預(yù)測準(zhǔn)。
細(xì)心的童鞋會想,既然AUC的值和業(yè)務(wù)數(shù)據(jù)本身有關(guān),那么它的值為多少的時候算好呢?
AUC值本身的理論上限
假設(shè)我們擁有一個無比強(qiáng)大的模型,可以準(zhǔn)確預(yù)測每一條樣本的概率,那么該模型的AUC是否為1呢?現(xiàn)實(shí)常常很殘酷,樣本數(shù)據(jù)中本身就會存在大量的歧義樣本,即特征集合完全一致,但label卻不同。因此就算擁有如此強(qiáng)大的模型,也不能讓AUC為1.
因此,當(dāng)我們拿到樣本數(shù)據(jù)時,第一步應(yīng)該看看有多少樣本是特征重復(fù),但label不同,這部分的比率越大,代表其“必須犯的錯誤”越多。學(xué)術(shù)上稱它們?yōu)锽ayes Error Rate,也可以從不可優(yōu)化的角度去理解。
我們花了大量精力做的特征工程,很大程度上在緩解這個問題。當(dāng)增加一個特征時,觀察下時候減少樣本中的BER,可作為特征構(gòu)建的一個參考指標(biāo)。
AUC與線上業(yè)務(wù)指標(biāo)的宏觀關(guān)系
AUC畢竟是線下離線評估指標(biāo),與線上真實(shí)業(yè)務(wù)指標(biāo)有差別。差別越小則AUC的參考性越高。比如上文提到的點(diǎn)擊率模型和購買轉(zhuǎn)化率模型,雖然購買轉(zhuǎn)化率模型的AUC會高于點(diǎn)擊率模型,但往往都是點(diǎn)擊率模型更容易做,線上效果更好。
購買決策比點(diǎn)擊決策過程長、成本重,且用戶購買決策受很多場外因素影響,比如預(yù)算不夠、在別的平臺找到更便宜的了、知乎上看了評測覺得不好等等原因,這部分信息無法收集到,導(dǎo)致最終樣本包含的信息缺少較大,模型的離線AUC與線上業(yè)務(wù)指標(biāo)差異變大。
總結(jié)起來,樣本數(shù)據(jù)包含的信息越接近線上,則離線指標(biāo)與線上指標(biāo)gap越小。而決策鏈路越長,信息丟失就越多,則更難做到線下線上一致。
AUC提升和業(yè)務(wù)指標(biāo)不一致
好在實(shí)際的工作中,常常是模型迭代的auc比較,即新模型比老模型auc高,代表新模型對正負(fù)樣本的排序能力比老模型好。理論上,這個時候上線abtest,應(yīng)該能看到ctr之類的線上指標(biāo)增長。
實(shí)際上經(jīng)常會發(fā)生不一致,首先,我們得排除一些低級錯誤:
1. 排除bug,線上線下模型predict的結(jié)果要符合預(yù)期。
2. 謹(jǐn)防樣本穿越。比如樣本中有時間序類的特征,但train、test的數(shù)據(jù)切分沒有考慮時間因子,則容易造成穿越。
更多細(xì)節(jié)請看參考[5]和[3]
AUC計(jì)算邏輯不足與改進(jìn)
AUC計(jì)算是基于模型對全集樣本的的排序能力,而真實(shí)線上場景,往往只考慮一個用戶一個session下的排序關(guān)系。這里的gap往往導(dǎo)致一些問題。正如參考[3]中的舉例的幾個case,比較典型。主要包括兩點(diǎn):
線上會出現(xiàn)新樣本,在線下沒有見過,造成AUC不足。這部分更多是采用online learning的方式去緩解,AUC本身可改進(jìn)的不多。
線上的排序發(fā)生在一個用戶的session下,而線下計(jì)算全集AUC,即把user1點(diǎn)擊的正樣本排序高于user2未點(diǎn)擊的負(fù)樣本是沒有實(shí)際意義的,但線下auc計(jì)算的時候考慮了它。
阿里在論文:Deep Interest Network for Click-Through Rate Prediction中提出了group auc來處理上述問題。公式如下:
即以user為group,在對user的impression做加權(quán)平均。私以為,只是對用戶做group還不夠,應(yīng)該是基于session去做group。
最后,AUC這個問題是在模型優(yōu)化到一定程度才需要考慮的。大部分情況下,如果模型的auc有大幅提升,線上效果一般是一致的。如果不一致,請先從產(chǎn)品形態(tài)去思考有沒有坑。
文末福利
后臺回復(fù)關(guān)鍵詞【入群】
即刻加入NLP、算法崗求職等討論群
這里有頂會審稿人、大廠研究員、知乎大V
等你來撩哦~
關(guān)注星標(biāo)
帶你解鎖最前沿的NLP、搜索與推薦技術(shù)
參考文獻(xiàn)
[1]如何理解機(jī)器學(xué)習(xí)和統(tǒng)計(jì)中的AUC?
https://www.zhihu.com/question/39840928?
[2] 多高的AUC才算高:
https://zhuanlan.zhihu.com/p/24217322?
[3] 線下AUC提升為什么不能帶來線上效果提升?--測試和評估的一些真相:?
https://zhuanlan.zhihu.com/p/35459467?
[4] 精確率、召回率、F1 值、ROC、AUC 各自的優(yōu)缺點(diǎn)是什么??
https://www.zhihu.com/question/30643044?
[5] 如何解決離線auc和線上點(diǎn)擊率不一致的問題??
https://www.zhihu.com/question/305823078/answer/552640544
總結(jié)
以上是生活随笔為你收集整理的为什么搜索与推荐场景用AUC评价模型好坏?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: NYU Google: 知识蒸馏无处不
- 下一篇: 权威赛事来了!千言-文本生成评测启动,聚