一石二鸟:推荐系统多目标任务建模方法
「煉丹筆記」傳送門: 這些我全要!推薦系統(tǒng)一石二鳥之道
作者:九羽,公眾號(hào):煉丹筆記在做推薦系統(tǒng)時(shí),在系統(tǒng)剛剛搭建時(shí),針對(duì)業(yè)務(wù)目標(biāo)我們可能只需要去優(yōu)化CTR或者CVR即可,但是不同的推薦場(chǎng)景下的優(yōu)化目標(biāo)不同。同時(shí),隨著系統(tǒng)的不斷迭代,我們希望推薦算法能夠同時(shí)優(yōu)化多個(gè)業(yè)務(wù)目標(biāo)。
比如,在內(nèi)容信息流場(chǎng)景中,希望提高用戶點(diǎn)擊率CTR的基礎(chǔ)上提高用戶關(guān)注、點(diǎn)贊、評(píng)論、停留時(shí)長(zhǎng)等行為,營(yíng)造更好的社區(qū)氛圍從而提高留存;而在電商場(chǎng)景中,則希望能夠在優(yōu)化GMV的基礎(chǔ)上提高點(diǎn)擊率,從而提高用戶的粘性和復(fù)購(gòu)行為等。因此,一個(gè)成熟的推薦系統(tǒng),會(huì)向多目標(biāo)、多任務(wù)方向進(jìn)行演化,從而承擔(dān)起更多的業(yè)務(wù)目標(biāo)!
本文,我來(lái)分享一下在多目標(biāo)優(yōu)化問(wèn)題上一些思路,包括多目標(biāo)任務(wù)的技巧、算法模型MMOE、SNR、ESMM、PLE等。
通過(guò)Sample Weight進(jìn)行多目標(biāo)優(yōu)化,保證一個(gè)主目標(biāo)的同時(shí),通過(guò)將其它目標(biāo)轉(zhuǎn)化為樣本權(quán)重的方式改變數(shù)據(jù)分布,從而達(dá)到優(yōu)化其它目標(biāo)的效果。
這里我們以內(nèi)容信息流場(chǎng)景為例。設(shè)定主目標(biāo)為內(nèi)容點(diǎn)擊率CTR,用戶在內(nèi)容流中的點(diǎn)擊行為定義為正樣本。同時(shí),在信息流點(diǎn)贊、評(píng)論、轉(zhuǎn)發(fā)功能也同樣定義為正樣本,但是點(diǎn)贊、評(píng)論、轉(zhuǎn)發(fā)、完播率大的樣本可以設(shè)置更高的樣本權(quán)重。對(duì)于樣本權(quán)重大的行為,如果預(yù)測(cè)錯(cuò)誤就會(huì)帶來(lái)更大的損失。通過(guò)這種方法能夠在優(yōu)化A目標(biāo)CTR的基礎(chǔ)上,優(yōu)化B目標(biāo)停留時(shí)長(zhǎng)。目標(biāo)A會(huì)受到一定的損失換取目標(biāo)B的增長(zhǎng)。通過(guò)線上AB-Test和Sample Weight調(diào)整的聯(lián)動(dòng),可以保證A目標(biāo)損失較小的前提下,帶來(lái)目標(biāo)B的提升,實(shí)現(xiàn)初級(jí)的多目標(biāo)優(yōu)化。
這種方式模型簡(jiǎn)單,上線容易,僅在訓(xùn)練時(shí)通過(guò)梯度乘以樣本權(quán)重實(shí)現(xiàn)對(duì)其它目標(biāo)的加權(quán)即可。但本質(zhì)上并不是多目標(biāo)建模,而是將不同的目標(biāo)轉(zhuǎn)化為同一個(gè)目標(biāo),樣本的加權(quán)權(quán)重需要根據(jù)線上AB測(cè)試才能確定。
多目標(biāo)模型融合,通過(guò)一個(gè)模型同時(shí)訓(xùn)練多個(gè)目標(biāo)(label的構(gòu)造),線上進(jìn)行融合。該方法的優(yōu)點(diǎn)是各個(gè)任務(wù)之間能夠共享信息,統(tǒng)一迭代方便,節(jié)省資源。但缺點(diǎn)也比較明顯,目標(biāo)越多模型越復(fù)雜,各任務(wù)之間相互影響,迭代速度慢等,尤其是在線上需要模型一定的響應(yīng)時(shí)間時(shí),該方法就變得有些笨重。
例如在視頻信息流場(chǎng)景中,我們用分類模型優(yōu)化點(diǎn)擊率CTR,用回歸模型優(yōu)化停留時(shí)長(zhǎng)。不同的模型得到預(yù)測(cè)的score之后,通過(guò)一個(gè)函數(shù)將多個(gè)目標(biāo)融合在一起,融合的函數(shù)可以有很多,比如連乘或者指數(shù)相關(guān)的函數(shù),這里和業(yè)務(wù)場(chǎng)景和目標(biāo)的含義強(qiáng)相關(guān),可以根據(jù)自己的實(shí)際場(chǎng)景探索。
推薦系統(tǒng)在給用戶推薦一些熱門內(nèi)容的同時(shí),也需要對(duì)這些內(nèi)容的質(zhì)量有一定的把控,比如用戶的停留時(shí)長(zhǎng)、點(diǎn)贊、轉(zhuǎn)發(fā)、評(píng)論等,所以成熟的推薦系統(tǒng)的推薦模型會(huì)同時(shí)對(duì)多個(gè)目標(biāo)進(jìn)行優(yōu)化,而如何對(duì)這多個(gè)目標(biāo)進(jìn)行并行優(yōu)化,正是本篇論文MMOE關(guān)注的重點(diǎn),在以往的一些模型當(dāng)中,通常優(yōu)化一方面的效果就會(huì)損失另一方面的效果,所以這是一個(gè)Trade-off的過(guò)程。除此之外無(wú)論是搜索、推薦還是廣告,都存在一個(gè)的潛在的bias問(wèn)題。
多任務(wù)模型通過(guò)學(xué)習(xí)不同任務(wù)的聯(lián)系和差異,可提高每個(gè)任務(wù)的學(xué)習(xí)效率和質(zhì)量。多任務(wù)學(xué)習(xí)的的框架廣泛采用Shared-bottom的結(jié)構(gòu),不同任務(wù)間共用底部的隱層。這種結(jié)構(gòu)本質(zhì)上可以減少過(guò)擬合的風(fēng)險(xiǎn),但是效果上可能受到任務(wù)差異和數(shù)據(jù)分布帶來(lái)的影響。MMoE模型刻畫了任務(wù)相關(guān)性,基于共享表示來(lái)學(xué)習(xí)特定任務(wù)的函數(shù),避免了明顯增加參數(shù)的缺點(diǎn)。
Shared-Bottom 網(wǎng)絡(luò)通常位于底部,它通過(guò)淺層參數(shù)共享,互相補(bǔ)充學(xué)習(xí)。這種方式下任務(wù)相關(guān)性越高,模型的loss可以降低到更低。但是當(dāng)任務(wù)沒有好的相關(guān)性時(shí),這種Hard parameter sharing會(huì)損害效果。
MOE由一組專家系統(tǒng)(Experts)組成的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)替換原來(lái)的Shared-Bottom部分,每一個(gè)Expert都是一個(gè)前饋神經(jīng)網(wǎng)絡(luò),再加上一個(gè)門控網(wǎng)絡(luò)(Gate)。
MMoE(Multi-gate Mixture-of-Experts)是在MOE的基礎(chǔ)上,使用了多個(gè)門控網(wǎng)絡(luò), k個(gè)任就對(duì)應(yīng)k個(gè)門控網(wǎng)絡(luò)。MMoE包括兩個(gè)部分,左側(cè)的shallow tower部分和右側(cè)的main tower部分,論文中提到的采用類似Wide&Deep模型結(jié)構(gòu)就是指這兩個(gè)tower,其中shallow tower可以對(duì)應(yīng)Wide部分,main tower對(duì)應(yīng)的是Deep部分。
谷歌在MMOE之后又做了什么?經(jīng)典的Shared-Bottom網(wǎng)絡(luò)結(jié)構(gòu)存在一個(gè)明顯的問(wèn)題:當(dāng)共同訓(xùn)練學(xué)習(xí)的多個(gè)任務(wù)之間聯(lián)系不強(qiáng)的時(shí),會(huì)嚴(yán)重?fù)p害各自任務(wù)的效果。因?yàn)橄鄬?duì)于多個(gè)目標(biāo)各自訓(xùn)練獨(dú)立模型而言,Shared-Bottom的網(wǎng)絡(luò)結(jié)構(gòu)會(huì)在共享的網(wǎng)絡(luò)底層引入了Bias,這個(gè)上文中我們已經(jīng)提到了。
上面提到的MMoE模型存在的一個(gè)問(wèn)題,它只能夠針對(duì)共享的experts子網(wǎng)絡(luò)進(jìn)行有限的組合。因此,在MMoE模型結(jié)構(gòu)的基礎(chǔ)上,本文提出了優(yōu)化的SNR模型來(lái)實(shí)現(xiàn)更靈活的網(wǎng)絡(luò)參數(shù)共享。與MMoE類似,SNR模型將共享的底層網(wǎng)絡(luò)模塊化為子網(wǎng)絡(luò)。不同的是,SNR模型使用編碼變量來(lái)控制子網(wǎng)絡(luò)之間的連接,并且設(shè)計(jì)了兩種類型的連接方式:SNR-Trans和SNR-Aver。
基于 Multi-Task Learning 的思路,阿里媽媽團(tuán)隊(duì)在SIGIR2018上提出一種新的CVR預(yù)估模型ESMM,它有效解決了真實(shí)場(chǎng)景中CVR預(yù)估面臨的數(shù)據(jù)稀疏以及樣本選擇偏差這兩個(gè)關(guān)鍵問(wèn)題。CVR預(yù)估和CTR任務(wù)相比,有兩個(gè)不同:
(1)Sample Selection Bias轉(zhuǎn)化是在點(diǎn)擊之后才“有可能”發(fā)生的動(dòng)作,傳統(tǒng)CVR模型通常以點(diǎn)擊數(shù)據(jù)為訓(xùn)練集,其中點(diǎn)擊未轉(zhuǎn)化為負(fù)例,點(diǎn)擊并轉(zhuǎn)化為正例。但是訓(xùn)練好的模型實(shí)際使用時(shí),則是對(duì)整個(gè)空間的樣本進(jìn)行預(yù)估,而非只對(duì)點(diǎn)擊樣本進(jìn)行預(yù)估。
(2)Data Sparsity作為CVR訓(xùn)練數(shù)據(jù)的點(diǎn)擊樣本遠(yuǎn)小于CTR預(yù)估訓(xùn)練使用的曝光樣本。
一些策略可以緩解這兩個(gè)問(wèn)題,但都沒有從實(shí)質(zhì)上解決上面任一個(gè)問(wèn)題。
為了解決這個(gè)問(wèn)題,ESMM提出了轉(zhuǎn)化公式:
在全部樣本空間中,CTR對(duì)應(yīng)的label為click,而CTCVR對(duì)應(yīng)的label為click & conversion,這兩個(gè)任務(wù)是可以使用全部樣本的。而PCTCVR和PCTR都可以在全樣本空間進(jìn)行訓(xùn)練和預(yù)估。但是這種除法在實(shí)際使用中,會(huì)引入新的問(wèn)題。因?yàn)镻CTR其實(shí)是一個(gè)很小的值,預(yù)估時(shí)會(huì)出現(xiàn)PCTCVR大于PCTR的情況,導(dǎo)致PCVR預(yù)估值大于1。ESSM巧妙的通過(guò)將除法改成乘法來(lái)解決上面的問(wèn)題。它引入了PCTR和PCTCVR兩個(gè)輔助任務(wù),訓(xùn)練時(shí)loss為兩者相加。
騰訊PCG在RecSys2020發(fā)表的最佳長(zhǎng)論文PLE(Progressive Layered Extraction),是在視頻推薦場(chǎng)景下多任務(wù)模型。相對(duì)于前面的MMOE、SNR和ESMM模型,PLE模型主要解決兩個(gè)問(wèn)題:(1)MMOE中所有的Expert是被所有任務(wù)所共享的,這可能無(wú)法捕捉到任務(wù)之間更復(fù)雜的關(guān)系,從而給部分任務(wù)帶來(lái)一定的噪聲;(2)不同的Expert之間沒有交互,聯(lián)合優(yōu)化的效果有所折扣。
從圖中的網(wǎng)絡(luò)結(jié)構(gòu)可以看出,CGC的底層網(wǎng)絡(luò)主要包括shared experts和task-specific expert構(gòu)成,每一個(gè)expert module都由多個(gè)子網(wǎng)絡(luò)組成,子網(wǎng)絡(luò)的個(gè)數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)都是超參數(shù)。上層由多任務(wù)網(wǎng)絡(luò)構(gòu)成,每一個(gè)多任務(wù)網(wǎng)絡(luò)(towerA和towerB)的輸入都是由gating網(wǎng)絡(luò)進(jìn)行加權(quán)控制,每一個(gè)子任務(wù)的gating網(wǎng)絡(luò)的輸入包括兩部分,其中一部分是本任務(wù)下的task-specific部分的experts和shared部分的experts組成。
上面看到了CGC網(wǎng)絡(luò)是一種single-level的網(wǎng)絡(luò)結(jié)構(gòu),一個(gè)比較直觀的思路就是疊加多層CGC網(wǎng)絡(luò),從而獲得更加豐富的表征能力,而PLE網(wǎng)絡(luò)結(jié)構(gòu)就是將CGC拓展到了multi-level層中。
作者還將不同experts的平均權(quán)重展示出來(lái),可以看出MOE不同experts權(quán)重基本相差不大,PLE模型共享experts和獨(dú)有experts的權(quán)重相差更大,說(shuō)明針對(duì)不同的任務(wù),能夠有效利用共享Expert和獨(dú)有Expert的信息,這也解釋了為什么其能夠達(dá)到比MMoE更好的訓(xùn)練結(jié)果。
更多干貨,請(qǐng)關(guān)注微信公眾號(hào):煉丹筆記總結(jié)
以上是生活随笔為你收集整理的一石二鸟:推荐系统多目标任务建模方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 搜索推荐炼丹笔记:融合GNN、图谱、多模
- 下一篇: 推荐系统CTR预估学习路线:深度模型