source:為什么搜索與推薦場景用AUC評價模型好壞? (qq.com)
1.auc值與模型預測值的大小無關, 只關注排序效果, 所以特別適合排序業務
2.auc值一個通俗易懂的解釋: 例如0.7的AUC可以理解為, 給定一個正樣本和一個負樣本,在70%的情況下,模型對正樣本的打分高於對負樣本的打分。
3.AUC對均勻正負樣本采樣不敏感
比如在點擊率預估中,處於計算資源的考慮,有時候會對負樣本做負采樣,但由於采樣完后並不影響正負樣本的順序分布。
即假設采樣是隨機的,采樣完成后,給定一條正樣本,模型預測為score1,由於采樣隨機,則大於score1的負樣本和小於score1的負樣本的比例不會發生變化。
但如果采樣不是均勻的,比如采用word2vec的negative sample,其負樣本更偏向於從熱門樣本中采樣,則會發現auc值發生劇烈變化。
4.通過CTR模型和轉化率預測模型的對比, 分析AUC值本身有何意義
我們在實際業務中,常常會發現點擊率模型的auc要低於購買轉化率模型的auc。正如前文所提,AUC代表模型預估樣本之間的排序關系,即正負樣本之間預測的gap越大,auc越大。
通常,點擊行為的成本要低於購買行為,從業務上理解,點擊率模型中正負樣本的差別要小於購買力模型,即購買轉化模型的正樣本通常更容易被預測准。
5.歧義樣本的存在導致AUC值有理論上限
歧義樣本的存在(即特征集合完全一致,但label卻不同)導致AUC有上限, 一般不能達到1.
因此,當我們拿到樣本數據時,第一步應該看看有多少樣本是特征重復,但label不同,這部分的比率越大,代表其“必須犯的錯誤”越多。學術上稱它們為Bayes Error Rate,也可以從不可優化的角度去理解。
我們花了大量精力做的特征工程,很大程度上在緩解這個問題。當增加一個特征時,觀察下此時減少樣本中的BER,可作為特征構建的一個參考指標。
6.AUC與線上業務指標的宏觀關系
AUC畢竟是線下離線評估指標,與線上真實業務指標有差別。線下線上數據差別越小, 或線下訓練集數據越充分, 則AUC的參考性越高。
比如上文提到的點擊率模型和購買轉化率模型,雖然購買轉化率模型的AUC會高於點擊率模型,但往往都是點擊率模型更容易做,線上效果更好。
購買決策比點擊決策過程長、成本重,且用戶購買決策受很多場外因素影響,比如預算不夠、在別的平台找到更便宜的了、知乎上看了評測覺得不好等等原因,這部分信息無法收集到,導致最終樣本包含的信息缺少較大,模型的離線AUC與線上業務指標差異變大。
總結起來,樣本數據包含的信息越接近線上,則離線指標與線上指標gap越小。而決策鏈路越長,信息丟失就越多,則更難做到線下線上一致。
7.AUC提升和業務指標不一致
好在實際的工作中,常常是模型迭代的auc比較,即新模型比老模型auc高,代表新模型對正負樣本的排序能力比老模型好。理論上,這個時候上線abtest,應該能看到ctr之類的線上指標增長。
實際上經常會發生不一致,首先,我們得排除一些低級錯誤:
1. 排除bug,線上線下模型predict的結果要符合預期。
2. 謹防樣本穿越。比如樣本中有時間序類的特征,但train、test的數據切分沒有考慮時間因子,則容易造成穿越。
更多細節請看參考[5]和[3]
8.AUC計算邏輯不足與改進
AUC計算是基於模型對全集樣本的的排序能力,而真實線上場景,往往只考慮一個用戶一個session下的排序關系。這里的gap往往導致一些問題。正如參考[3]中的舉例的幾個case,比較典型。主要包括兩點:
- 線上會出現新樣本,在線下沒有見過,造成AUC不足。這部分更多是采用online learning的方式去緩解,AUC本身可改進的不多。
- 線上的排序發生在一個用戶的session下,而線下計算全集AUC,即把user1點擊的正樣本排序高於user2未點擊的負樣本是沒有實際意義的,但線下auc計算的時候考慮了它。
阿里在論文:Deep Interest Network for Click-Through Rate Prediction中提出了group auc來處理上述問題。
即以user為group,再以user的impression為權重, 對AUC做加權平均。私以為,只是對用戶做group還不夠,應該是基於session去做group。
最后,AUC這個問題是在模型優化到一定程度才需要考慮的。大部分情況下,如果模型的auc有大幅提升,線上效果一般是一致的。如果不一致,請先從產品形態去思考有沒有坑。
參考文獻
[1]如何理解機器學習和統計中的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 各自的優缺點是什么?
https://www.zhihu.com/question/30643044
[5] 如何解決離線auc和線上點擊率不一致的問題?
https://www.zhihu.com/question/305823078/answer/552640544