Position Bias現(xiàn)象:
在排序結(jié)果中码泛,排在前面的結(jié)果通常能獲取更高點擊率烹笔,如圖1(a);對于同一個結(jié)果抛丽,排在不同的位置谤职,點擊率也有差異,排在靠前的位置時亿鲜,它的點擊率也越高允蜈,另外排在尾部是點擊率也較高,如圖1(b)蒿柳。在一個信息流中饶套,我們可能更容易記住頭部和尾部的內(nèi)容,對中間的內(nèi)容容易忽視垒探。從而使模型對用戶偏好的感知出現(xiàn)偏差妓蛮,預(yù)估CTR不準(zhǔn),并進一步通過feedback loop造成馬太效應(yīng)圾叼。
解決方法
bias
主要有兩大來源:輸入數(shù)據(jù)與推薦機制蛤克。所以要進行debias捺癞,我們可以采取干預(yù)數(shù)據(jù)與改進推薦機制兩種方式。
干預(yù)數(shù)據(jù)的目的是為了獲取無偏或者接近無偏的數(shù)據(jù)构挤,但是髓介,在很多場景下,我們無法獲得無偏的數(shù)據(jù)筋现,那么就只能從改進推薦機制入手唐础,顯式建模相應(yīng)的bias或者對推薦結(jié)果施加debias約束。
這里介紹一些實踐工作中的解決方案:
1. 通過某位置的歷史平均CTR計算位置效應(yīng)
比如在計算item的歷史CTR
(i_CTR_real
)的時候矾飞,根據(jù)某種假設(shè)進行去除position bias
一膨。一個常見的假設(shè)是,把表現(xiàn)CTR
(i_CTR
)看成是真實CTR
(i_CTR_real
)和位置效應(yīng)
的乘積凰慈,而位置效應(yīng)
用所有item在某個位置p的CTR的平均值進行表示汞幢。
2. 位置信息作為特征
最常見的做法是在構(gòu)建訓(xùn)練樣本時,把展示位置信息作為特征微谓,在線推斷時森篷,因為無法獲取位置特征這一點,把展示的位置特征設(shè)置一個統(tǒng)一置的值豺型,比如0仲智。
離線訓(xùn)練時加入位置特征,在線不獲取姻氨,能夠使模型更好地學(xué)習(xí)其余特征和點擊率之間的關(guān)系钓辆。需要注意的是位置特征不能與其他特征做交叉(這里的原因是否有讀者知道?)肴焊。
補充:
- 不與其他特征做交叉的原因:這里實際上指的是不與其他特征的結(jié)果做運算前联。一般是在做sigmoid前,與其他特征經(jīng)過一系列運算后的embedding concat到一起娶眷, sigmoid前的logit相當(dāng)于是f(position) 和 f(non-position)的加權(quán)和似嗤。讓non-position的部分學(xué)得更準(zhǔn)。與其他特征做交叉届宠,線上實驗效果有時候是好的烁落,之前遇到過。但是與user和item側(cè)特征發(fā)生過多關(guān)系豌注,可能會不穩(wěn)定伤塌。
- 當(dāng)加入受position影響的特征,可以先做基于位置的歸一化轧铁。比如點擊率每聪,可以統(tǒng)計展示位置的歷史ctr,歸一,再交叉熊痴。
-
問:關(guān)于在訓(xùn)練時候加入位置信息他爸,線上使用默認(rèn)值。線下訓(xùn)練既然使用了位置果善,那說明最后的得分是受到位置特征影響的诊笤,線上拿不到這個特征,不就意味著巾陕,線上線下是有偏的么讨跟?實際效果是否有用?
答:對鄙煤,是有偏的晾匠。可以這么理解梯刚,理想情況下凉馆,離線建模時把位置偏差都建模到了position相關(guān)的部分,其余部分學(xué)習(xí)到的就是沒有偏差的參數(shù)了亡资。把它當(dāng)做第二澜共、三兩種方法的簡化版本就容易理解了。效果得看具體場景锥腻,我們有的場景拿到效果嗦董,有的沒有。
3. 位置信息作為子網(wǎng)絡(luò)
單獨用一個子網(wǎng)絡(luò)建模position bias
瘦黑,線上serving時關(guān)閉該部分
通過一個shallow tower
(可理解為比較輕量的模型或者子網(wǎng)絡(luò))來預(yù)測位置偏置信息京革,輸入的特征主要是一些和位置偏置相關(guān)的特征。在最后的sigmoid
前幸斥,將shallow tower
的輸出結(jié)果加入進去匹摇。而在預(yù)測階段,則不考慮shallow tower
的結(jié)果甲葬。(相當(dāng)于考慮了一些和position相關(guān)的特征以及交叉特征的整體影響)
4. 完全展示隨機化的結(jié)果:
最簡單的干預(yù)數(shù)據(jù)的方法廊勃,就是在推薦時展示完全隨機化的結(jié)果,使得用戶點擊行為排除結(jié)果相關(guān)性的影響演顾,僅僅與position有關(guān)供搀,以此獲取需要的訓(xùn)練數(shù)據(jù)隅居。
原理也可以理解為隨機呈現(xiàn)推薦結(jié)果钠至,獲得的數(shù)據(jù)即為position bias的預(yù)測結(jié)果,計算出position bias胎源,作為修正項參與Training和Serving棉钧。
缺點:實際工作場景往往是對已有推薦算法的場景進行優(yōu)化,所以比較少會采用這種方法涕蚤,(大場景可考慮單獨一路的ABTest來專門生成該類訓(xùn)練數(shù)據(jù))宪卿;
5. 對訓(xùn)練數(shù)據(jù)進行各種加權(quán)處理
直接對rank排名較高的樣本在迭代時進行降權(quán)處理
QA:
問:感覺前面三種方法沒有本質(zhì)區(qū)別呀的诵,都是把pos當(dāng)做一個特征,不管是不是有單獨的pos小網(wǎng)絡(luò)
答:對佑钾,從大的方向上是這樣西疤,經(jīng)典的方式是隱式建模position,另外兩種是利用子模塊顯式建模position
問:離線感覺如何評價休溶?
答:我們離線測的時候position是置空的代赁,和線上保持一致;如果測試的時候也用了position,auc是提升的
參考地址:https://zhuanlan.zhihu.com/p/145448160?from_voters_page=true