推薦系統(tǒng)論文閱讀(三十三)-百度:談?wù)務(wù)倩厝蝿?wù)中負(fù)樣本的選取優(yōu)化

論文:

論文地址:https://dl.acm.org/doi/pdf/10.1145/3340531.3412162

論文題目:《Sample Optimization For Display Advertising》

這篇論文是百度發(fā)表在CIKM上面的一篇關(guān)于召回模型如何選取訓(xùn)練樣本的佳作,主要圍繞著怎么在召回任務(wù)中構(gòu)建負(fù)樣本展開(kāi),通過(guò)幾種方式來(lái)確定訓(xùn)練的負(fù)樣本。在我看來(lái),如果排序階段是模型的藝術(shù),那么召回階段就是樣本選擇的藝術(shù),這篇論文跟我們前面提到的FB的EBR論文的負(fù)樣本選擇有著異曲同工之妙,對(duì)于做排序算法的人來(lái)看也可以受益匪淺。

一 、背景

一段小故事,之前我問(wèn)過(guò)我們公司做排序算法的一個(gè)員工,我問(wèn)他“排序算法中的負(fù)樣本怎么選取”,他回答的是“曝光未點(diǎn)擊”,我又問(wèn)他“那么召回模型中的負(fù)樣本該怎么選呢”,他思考了下“也是曝光未點(diǎn)擊”。

這是真真切切我身邊發(fā)生的事情,在整個(gè)推薦系統(tǒng)的全鏈路中,每個(gè)人都會(huì)負(fù)責(zé)自己的模塊,有專門做排序算法的,有專門做召回的,雖然都是鏈路中的一環(huán),但是還是大相徑庭的。比如,排序算法中的模型往往更復(fù)雜,特征更多,召回中模型會(huì)更加簡(jiǎn)單,特征用的也比較少。當(dāng)然,除了在模型和特征方面的不同外,兩個(gè)任務(wù)在訓(xùn)練樣本的選擇上也是有很大的不同的。

在排序算法中,負(fù)樣本一般情況是選擇曝光未點(diǎn)擊,雖然曝光未點(diǎn)擊不一定是用戶不喜歡,但是總體上也較為符合負(fù)樣本的特質(zhì)的,而且這部分的樣本也很容易獲取到。

在召回算法中,我們的負(fù)樣本該如何選取呢?可以跟排序模型一樣選擇曝光未點(diǎn)擊嘛?

答案是不可以。

有人這時(shí)候可能就會(huì)問(wèn)為什么排序模型可以選取曝光未點(diǎn)擊,召回就不行呢,未點(diǎn)擊的樣本不就是天生的負(fù)樣本嗎?

這里給出幾個(gè)解釋:

1.排序算法是優(yōu)中選優(yōu),曝光未點(diǎn)擊天生就是負(fù)樣本,召回算法面對(duì)的候選樣本太多,魚(yú)龍混雜,更需要具備在更大的數(shù)據(jù)集中增加自己的“見(jiàn)識(shí)”,也就是更需要見(jiàn)見(jiàn)那些曝光沒(méi)那么高的樣本

2.曝光未點(diǎn)擊的樣本已經(jīng)是經(jīng)過(guò)召回,排序選出來(lái)的系統(tǒng)認(rèn)為的用戶喜歡的物品,也就是說(shuō)這些樣本已經(jīng)是上一個(gè)版本召回模型選出來(lái)正樣本了,如果我們把這些樣本當(dāng)作新召回模型的負(fù)樣本,就有矛盾了

3.如果選擇曝光未點(diǎn)擊的樣本作為負(fù)樣本,那么召回模型就會(huì)陷入“一葉障目,不見(jiàn)泰山”的困境,也就是說(shuō)模型只會(huì)鑒別那些高曝光的樣本了,對(duì)于那些沒(méi)出現(xiàn)過(guò),少出現(xiàn)的樣本,它根本區(qū)分不出來(lái)這是正樣本還是負(fù)樣本

4.最重要的還是因?yàn)閷?shí)驗(yàn)中,這么做的話效果很差

這里給出的四個(gè)原因都是一些經(jīng)驗(yàn)之談和看各個(gè)博客知道的結(jié)論,現(xiàn)在你應(yīng)該有了一點(diǎn)對(duì)于召回模型應(yīng)該如何選取負(fù)樣本的猜想了,沒(méi)錯(cuò),一般我們對(duì)于召回的負(fù)樣本,都是用隨機(jī)負(fù)采樣的方式,這也是大多數(shù)做召回算法的人會(huì)選擇的辦法。在fb的ebr論文中還加入了hard sample作為負(fù)樣本,也就是那些跟正樣本比較相近的樣本作為負(fù)樣本,用以增加模型對(duì)于正負(fù)樣本的區(qū)分能力。

回過(guò)來(lái)說(shuō)一下我們今天要介紹的這篇論文,論文的題目也通過(guò)兩個(gè)單詞來(lái)告知了這篇論文的主要工作就是:樣本的優(yōu)化,所以我們待著剛剛對(duì)于召回樣本選取的理解來(lái)看看百度是如何進(jìn)行樣本優(yōu)化的。

二 、廣告系統(tǒng)中的一些挑戰(zhàn)

首先,我們來(lái)看一下整個(gè)廣告系統(tǒng)的架構(gòu)圖:


總體還是分成召回跟排序兩部分,召回會(huì)使用itemcf,usercf以及神經(jīng)網(wǎng)絡(luò)等多種方式。我們?cè)诘谝徽碌臅r(shí)候已經(jīng)提到了在召回模型是本論文的重點(diǎn),訓(xùn)練好一個(gè)召回模型面臨著一下幾個(gè)挑戰(zhàn):

1.訓(xùn)練數(shù)據(jù)跟線上數(shù)據(jù)的分布不一致,也可以稱為樣本選擇偏差問(wèn)題。由于用戶點(diǎn)擊的廣告只占總廣告的一小部分,也就是我們訓(xùn)練只用到的一小部分?jǐn)?shù)據(jù)集,但是我們?cè)诰€上預(yù)測(cè)的時(shí)候是在整個(gè)數(shù)據(jù)集上預(yù)測(cè),所以就有了樣本選擇偏差問(wèn)題。

2.長(zhǎng)尾分布問(wèn)題。這個(gè)問(wèn)題不管是在推薦系統(tǒng)還是廣告系統(tǒng)中都是存在的,在廣告系統(tǒng)中bid price高的廣告會(huì)占據(jù)很大的曝光,有一些bid price很高的物品也會(huì)被標(biāo)記為負(fù)樣本,這就會(huì)導(dǎo)致這些原本定義上是正樣本的廣告被當(dāng)成了負(fù)樣本,這樣這些廣告的曝光點(diǎn)擊自然就降低了,平臺(tái)賺的錢也就少了。

3.曝光未點(diǎn)擊的廣告不一定是用戶不喜歡的。

4.數(shù)據(jù)稀疏問(wèn)題。正負(fù)樣本比例太大

針對(duì)這些問(wèn)題,百度提出了幾種樣本優(yōu)化的方法。

三、樣本優(yōu)化的方法

3.1?Weighted Random Negative Sampling

一般可以對(duì)一個(gè)正樣本通過(guò)隨機(jī)負(fù)采樣的方法選取k個(gè)負(fù)樣本,但是由于數(shù)據(jù)呈長(zhǎng)尾分布,所以百度采用的是加權(quán)的隨機(jī)負(fù)采樣,也叫做分片加權(quán)負(fù)采樣:a piece-wise weighted negative sampling method,具體而言:

我們根據(jù)廣告的曝光頻率,以\alpha 為分解點(diǎn),把廣告分成兩部分A_{h}和A_{l}  ,然后我們隨機(jī)生成一個(gè)0到1之間的隨機(jī)數(shù)p,如果p <?p_{l} ,我們就從A_{l}  中隨機(jī)選取一個(gè)廣告作為負(fù)樣本,其中p_{l} 為:

如果p >?p_{l} ,從A_{h} 中基于一元模型分布(unigram distribution)采樣一個(gè)負(fù)樣本廣告,具體的采樣概率如下:

跟word2vec中的采樣一樣。

由于Al的數(shù)量遠(yuǎn)大于Ah的數(shù)量,與原始的負(fù)采樣方法相比,我們的策略在保留原始屬性的同時(shí)顯著減少了內(nèi)存使用。

3.2? Real-Negative Subsampling

在百度的鳳巢系統(tǒng)統(tǒng)計(jì)中,總的ctr值大概只有0.03%,少數(shù)的頭部廣告會(huì)占據(jù)很大的曝光,它們可能同時(shí)出現(xiàn)在正樣本(曝光并點(diǎn)擊)和真實(shí)負(fù)樣本(曝光但未點(diǎn)擊)中。 我們不希望這些頭部廣告過(guò)多出現(xiàn)在負(fù)樣本中,因?yàn)樗鼈兺ǔ>哂泻芨叩纳虡I(yè)價(jià)值,所以會(huì)對(duì)這些頭部廣告的負(fù)樣本進(jìn)行降采樣,具有高曝光的廣告的負(fù)樣本,基于以下的概率進(jìn)行拋棄:

f是曝光的頻率,也就是說(shuō)曝光越多的廣告的p就越大,那么它從負(fù)樣本集合中被拋棄的概率就越大。

實(shí)驗(yàn)中也證明了,這種樣本優(yōu)化方法可以顯著改善離線召回率和在線CPM指標(biāo)。

3.3?Sample refinement with PU Learning

對(duì)于曝光為點(diǎn)擊的樣本,我們之前在第一章中已經(jīng)說(shuō)了,是不能直接拿來(lái)作為召回的負(fù)樣本的,那么如果這真的要使用這些樣本,應(yīng)該怎么做呢,來(lái)看看百度的處理方式吧。

由于曝光未點(diǎn)擊的廣告我們并不能直接的定性為真正的負(fù)樣本,所以百度將樣本劃分為了標(biāo)記的樣本 (點(diǎn)擊的廣告,這部分已經(jīng)完全的確定了是正樣本),另一部分為未標(biāo)記樣本,這部分由可靠的負(fù)樣本和有可能是正樣本的廣告組成。百度要做的就是針對(duì)未標(biāo)記的樣本,將真正的負(fù)樣本從中劃分出來(lái)。

使用的方法是"spy technique":

具體而言:

1.從正樣本集合P中選取spy set:S,然后把S加入到為標(biāo)記的集合U中

2.正樣本集合P剔除S后的樣本作為正樣本,U \cup S的樣本作為負(fù)樣本,然后訓(xùn)練一個(gè)SVM分類模型

3.用訓(xùn)練好的SVM分類器給U中的樣本打分,看看這些樣本有多大的概率稱為正樣本

4. 計(jì)算spy set中樣本的平均點(diǎn)擊率

5.將U中點(diǎn)擊率小于spy set平均點(diǎn)擊率的樣本的作為真正的負(fù)樣本RN

最后即用RN和P來(lái)訓(xùn)練召回模型。

可以看到百度針對(duì)我們?cè)谇懊嬲f(shuō)的不能把曝光未點(diǎn)擊的廣告直接作為負(fù)樣本的改進(jìn)方法是:選取那些真正的負(fù)樣本。

3.4??Fuzzy Positive Sample Augmentation

為了緩解數(shù)據(jù)稀缺問(wèn)題,百度引入了模糊邏輯來(lái)增加正樣本。 在最終廣告列表中,僅向用戶顯示前幾個(gè)廣告,而其余的則可能不會(huì)顯示。 盡管這些隱藏的廣告不能直接用作訓(xùn)練樣本,但它們已經(jīng)通過(guò)了候選集生成和排序階段,并且更有可能滿足用戶的興趣。

為了增加正樣本,我們解析未顯示的事件日志,并在最終列表中收集所有三元組(用戶,廣告,CPM),并且CPM高于預(yù)定義的閾值。 我們將這些三元組(用戶,廣告,每千次展示費(fèi)用/出價(jià))稱為“模糊的正樣本”,并將其添加到正樣本的訓(xùn)練集中。 值得注意的是,由于模糊正樣本的標(biāo)簽不是單擊記錄,因此其標(biāo)簽小于1。

這個(gè)做法跟FB在ebr中的做法一樣,通過(guò)把曝光的物品也作為正樣本太擴(kuò)大正樣本集。

3.5?Sampling with Noise Contrastive Estimation (NCE)

NCE論文中詳細(xì)的描述了如何構(gòu)建生成模型來(lái)生成負(fù)樣本,感興趣的可以自己去看看這論文,這里簡(jiǎn)單的說(shuō)一下百度的做法,針對(duì)每個(gè)正樣本,我們生成k=5的負(fù)樣本來(lái)擴(kuò)大訓(xùn)練集。

關(guān)于這種方法,本人覺(jué)得還是不太靠譜,因?yàn)樨?fù)樣本的選取在廣告或者推薦中都有很大的選擇空間,還不至于用到NCE來(lái)人工生成負(fù)樣本。

四、實(shí)驗(yàn)結(jié)果


評(píng)價(jià)標(biāo)準(zhǔn)是:

可以看到如果用上所有的方法后,auc是不斷減少,CPM是增加的,這也說(shuō)明了這些樣本方法的疊加可以帶來(lái)收益上的提升。

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

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

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