日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

为什么搜索与推荐场景用AUC评价模型好坏?

發(fā)布時間:2024/7/5 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 为什么搜索与推荐场景用AUC评价模型好坏? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

星標(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)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。