深入理解推薦系統(tǒng):Position Bias

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的歷史CTRi_CTR_real)的時候,根據(jù)某種假設(shè)進行去除position bias。一個常見的假設(shè)是,把表現(xiàn)CTRi_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)系。需要注意的是位置特征不能與其他特征做交叉(這里的原因是否有讀者知道?)。

補充:

  1. 不與其他特征做交叉的原因:這里實際上指的是不與其他特征的結(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)定。
  2. 當(dāng)加入受position影響的特征,可以先做基于位置的歸一化。比如點擊率,可以統(tǒng)計展示位置的歷史ctr,歸一,再交叉。
  3. 問:關(guān)于在訓(xù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

最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

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