廣義的Bias

  • Q1:什么是bias
    bias可能來自于很多地方。
    在這里bias是個廣義的概念:這里bias的含義既可以是統(tǒng)計學(xué)意義上的bias(如CTR校準(zhǔn)中便有一部分是校準(zhǔn)其統(tǒng)計學(xué)意義上的bias),也可以是直覺(邏輯)意義上的bias,偏差,差異,天然偏差等等(CTR校準(zhǔn)中對位置信息帶來天然偏差的校準(zhǔn))?!具@里其實也很好理解,在統(tǒng)計學(xué)意義上,我們對數(shù)據(jù)的估計可以是unbiased,但是實際中,很多分布是變化的,我們要詳細(xì)地分析這些可能帶來數(shù)據(jù)本身就“bias”掉的問題?!?br> 前者是statistically defined,后者是logically defined。

  • Q1.1:Bias的根源是什么
    在我們信息不完全(比如沒有population,或者缺失一些特征)的時候,或者使用有誤差的估計方法時。得到的結(jié)果。

  • Q2:為什么要消除bias
    其實這個問題也可以換個方式來問:什么時候需要消除bias?
    1、需要消除bias的例子:
    舉個例子,我們希望通過廣告歷史的曝光點擊數(shù)據(jù)來表征一個廣告是否吸引人(ctr),那么歷史的廣告點擊是否能直接表征呢?其實不能,因為在廣告行業(yè)中,廣告的展現(xiàn)位置對廣告是否會被spotted到有很大的影響。所以真實的ctr是廣告位帶來的ctr bias和廣告本身的ctr疊加的結(jié)果。如果我們希望評估廣告本身的ctr時,就需要消除廣告位帶來的bias
    2、不需要消除bias的例子:
    同樣在上面那個例子中,當(dāng)我們需要評估廣告本身的ctr時,需要消除廣告位帶來的偏差,但是當(dāng)我們需要評估某個廣告位a投出b廣告時期望的ctr時,我們就不需要消除“廣告位帶來的bias”,因為在這個任務(wù)中,廣告位只是其中的因素之一,并不是bias

  • Q3:何時,如何消除bias
    而如何消除這些bias是機器學(xué)習(xí)中非常重要的課題,一些場景以及手段如下:

1、特征去偏:【反饋特征為了表征對象(商品,內(nèi)容,廣告)本身的差異,可能會由上層的差異(如曝光位置等)帶來bias】
比如廣告中的coec:click over excepted click便是一個用廣告位或者其他固有屬性的expected click做為分母,以此來作為normalizer對click進行去偏的手段。
還有特征上的去偏比如y2b論文中對召回的建模用到了網(wǎng)站各個場景的樣本和數(shù)據(jù)。那么如果將即時的搜索的數(shù)據(jù)和搜索頁的點擊樣本一起輸入,那么模型就很容易學(xué)到當(dāng)前搜索詞與用戶后續(xù)點擊的關(guān)聯(lián)性,而以此來作為首頁推薦直覺上也是很有問題的(我剛剛搜索完car,那么回到主頁就全是car相關(guān)的視頻?),會導(dǎo)致模型overfitting。所以在其論文中,google去掉了時序信息,并且將用戶的所有搜索詞作為無序詞袋,防止模型直接學(xué)習(xí)搜索詞與用戶在搜索頁的后續(xù)點擊的關(guān)聯(lián)關(guān)系。(凡事都有對應(yīng)的場景,當(dāng)我們在做搜索推薦的排序建模時,搜索詞與后續(xù)點擊的item是有較強關(guān)聯(lián)關(guān)系的,這個關(guān)系也是需要模型去學(xué)習(xí)的,而不是一個bias)
其實ctr平滑也是特征去偏的一個體現(xiàn)。因為ctr評估其被點擊的概率,但是當(dāng)后驗數(shù)據(jù)較少時,其計算的ctr置信度較低,即其ctr值偏差的范圍較大,那么CTR平滑便是一種降低偏差的方法,也可以被理解去消減bias。

2、用模型感知性輸入去偏:【由于模型在預(yù)估和訓(xùn)練中的差異,可能會帶來bias,比如下面的位置的bias,以及樣本偏差的bias:ssb[1],這些需要在模型中有特別的設(shè)計來解決】
比如樣本中商品展現(xiàn)的位置(順序)可能直接影響到其點擊率。那么在dnn模型的最后一層,將位置信息作為特征與hidden layer拼接后輸入模型進行訓(xùn)練(注意其與最后的label最好只有直接的線性關(guān)系,不與其他特征交叉)。在預(yù)估的時候,再去掉位置信息這個輸入,以此來讓模型訓(xùn)練時感知位置本身帶來的偏差,并且在排序的時候去掉此偏差帶來的影響(point wise模型排序打分的時候無法預(yù)知其位置,否則預(yù)估空間需要放大很多倍=candidate num * impression num)?!咀屇P蛯W(xué)習(xí)到這個bias,再在預(yù)估的時候去除這個bias】,當(dāng)然,這個去偏也是要分場景的,例如,位置信息在底層point-wise模型中是一個bias,但是在上層的list-wise模型中,它就是一個特性,并不是bias。討論bias消除的必要性
在y2b的論文中,同樣有類似的方法:為了消除模型對老視頻的傾向性(因為訓(xùn)練樣本可能都是多天以前的,固然會對之前樣本中出現(xiàn)的視頻有天然的bias),在訓(xùn)練的時候加入了example age,而在預(yù)估的時候去除了example age,或者賦予了一個很小的負(fù)值。

3、樣本去偏:【這里主要是整體feedback loop形成的偏差,馬太效應(yīng)。這里解決方式是通過我們的認(rèn)知修改樣本,來修正這種bias】
有時候這也不能算作是“偏”,因為有時候樣本的分布就是長尾或者“有偏重”的,導(dǎo)致很有可能少數(shù)的用戶的樣本dominate了整個模型。所以我們需要對樣本進行reweight,給特別高頻的用戶降低權(quán)重?;蛘呦駁oogle在y2b的論文中那樣,直接對每個用戶產(chǎn)生相同(相近)的樣本數(shù)量。同時論文中用上全站的數(shù)據(jù)做樣本(包括搜索,等其他渠道,不僅僅只有推薦),也是為了防止模型overly biased towards exploitation。(只有推薦流反饋的話,會讓新內(nèi)容難以曝光,過度exploitation)

4、metric去偏:【metric本身其實也受到當(dāng)前數(shù)據(jù)分布的影響,當(dāng)我們評估的條件,和真實的條件不一致的時候,對評估的metric也需要去偏】
類似高頻用戶dominate模型訓(xùn)練的問題,metric也可能被dominate,例如AUC做為ctr預(yù)估模型的metric時,很可能模型僅僅對“用戶是否點擊”這個問題進行了判別,并非我們想要的“用戶對某個商品是否點擊”。那么這個指標(biāo)與我們實際的預(yù)期相比,是有偏的。類似地,其實每個用戶都可以計算其單獨的AUC,用這個思想,用點擊數(shù)量對每個用戶的AUC加權(quán),得到GAUC即是在此場景下對AUC的去偏

5、訓(xùn)練過程去偏:【訓(xùn)練模型的過程本身,會由算法本身產(chǎn)生bias,為了讓特征數(shù)據(jù)能夠充分訓(xùn)練,則需要修正】
由于訓(xùn)練過程中,不同特征出現(xiàn)的概率不同(onehot的每一位,embedding的每一個id)那么訓(xùn)練中,其被更新的次數(shù)也不同,高頻的特征被更新的次數(shù)較多,低頻的特征可能訓(xùn)練不充分。高頻特征打壓中闡述了這種做法。同時,過于低頻的特征,也可能泛化能力較弱,影響模型的泛化能力,可以將過低頻的特征過濾掉。類似地,在阿里的DIN文章中提出了mini batch aware regularization,其對embedding layer的進行的l2 reg(weight decay)僅對一個batch中出現(xiàn)過的emebdding進行weight decay。雖然原本的intention是優(yōu)化計算量,提升計算速度。但這樣也變相降低了低頻embedding被decay的次數(shù),防止其在訓(xùn)練過程中被過度的decay(本身被更新的次數(shù)很少),可能也變相提升了效果。

6、對預(yù)估值去偏:【這里其一消除了算法本身在數(shù)學(xué)上的bias,其二的ctr校準(zhǔn)也可以當(dāng)作是去除模型預(yù)估的bias】
簡述一下就是,當(dāng)我們對樣本采樣時,會導(dǎo)致模型預(yù)估值有偏,見:非均衡數(shù)據(jù)分類,以及采樣對其的影響,以及不均衡正負(fù)樣本的訓(xùn)練本身會導(dǎo)致pCtr被低估,見:有偏估計在CTR預(yù)估中引入的問題,在CTR校準(zhǔn)中有詳細(xì)的討論,這里CTR校準(zhǔn)即是用一定的手段來消除此偏差,使得預(yù)估值更準(zhǔn)確,當(dāng)預(yù)估絕對值有意義的時候(例如廣告競價),則這樣的去偏是非常必要的。

7、模型選擇的去偏:【這是個CV的例子,解釋了如何正確地評估“泛化誤差”,而不能引入?yún)?shù)selection帶來的bias】
當(dāng)我們使用validation set來選擇參數(shù)的時候,此參數(shù)在validation set上的表現(xiàn)不能作為評估標(biāo)準(zhǔn),是因為這個選擇過程對特定的validation set是aware的(是以此作為標(biāo)準(zhǔn)來選擇的),所以在validation set上的評估指標(biāo)是有偏的。要評估這個模型本身的泛化能力,需要test set來評估。(當(dāng)然,由于大規(guī)模機器學(xué)習(xí)會消耗太多的資源,一般不會有這么復(fù)雜的模型參數(shù)評估選擇過程)。類似地,我們?nèi)绻卯?dāng)前的多個模型預(yù)估值進行了公式的組合grid search 出一些超參數(shù),例如我們搜索rankscore= ctr ^ a * cvr ^ b中的a,b參數(shù),用grid search在當(dāng)前的數(shù)據(jù)集上搜索出一系列參數(shù),其實這些參數(shù)對當(dāng)前的數(shù)據(jù)集是aware的,不能作為評估的標(biāo)準(zhǔn)。需要用另一份數(shù)據(jù)集做評估。

8、數(shù)據(jù)認(rèn)知不足帶來bias:【這里其實是數(shù)據(jù)本身不完整準(zhǔn)確,或者我們對數(shù)據(jù)的認(rèn)知不足造成的偏差,需要我們更深入并嚴(yán)謹(jǐn)?shù)貙Υ⒎治鰯?shù)據(jù),避免導(dǎo)致錯誤的認(rèn)知(其實這個很常見,也很容易被忽略,結(jié)果可能帶來錯誤的特征,結(jié)論,與決策)】
有時候,統(tǒng)計數(shù)據(jù)本身攜帶了過多的偏差,可能導(dǎo)致我門錯誤的認(rèn)知。例如某頁面下方有個推薦feed流,feed流前5個數(shù)據(jù)為興趣推薦,最后兩個為探索推薦。直接統(tǒng)計結(jié)果發(fā)現(xiàn)興趣推薦點擊率甚至小于探索推薦。追查下去發(fā)現(xiàn)很多用戶點擊此頁面并非想看下面feed流推薦,而是點擊頁面上方別的tab,而點擊進來就會記錄曝光,而默認(rèn)曝光的數(shù)量<5,所以前面的興趣推薦有很多無效的曝光,固被拉低了點擊率。去除無效曝光(例如用是否下拉進行過濾)后再統(tǒng)計則恢復(fù)正常認(rèn)知。

[1] ssb:sample selection bias :傳統(tǒng)cvr模型在點擊樣本上訓(xùn)練,但是預(yù)估的時候會在全量數(shù)據(jù)上inference
refer : Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容