今天介紹的是騰訊提出的一種新的多任務(wù)學(xué)習(xí)個性化推薦模型,該論文榮獲了RecSys2020最佳長論文獎,一起來學(xué)習(xí)下!
1、背景
多任務(wù)學(xué)習(xí)通過在一個模型中同時學(xué)習(xí)多個不同的目標(biāo),如CTR和CVR,最近被越來越多的應(yīng)用到線上的推薦系統(tǒng)中。
當(dāng)不同的學(xué)習(xí)任務(wù)之間較為相關(guān)時,多任務(wù)學(xué)習(xí)可以通過任務(wù)之間的信息共享,來提升學(xué)習(xí)的效率。但通常情況下,任務(wù)之間的相關(guān)性并不強(qiáng),有時候甚至是有沖突的,此時應(yīng)用多任務(wù)學(xué)習(xí)可能帶來負(fù)遷移(negative transfer)現(xiàn)象,也就是說,相關(guān)性不強(qiáng)的任務(wù)之間的信息共享,會影響網(wǎng)絡(luò)的表現(xiàn)。
此前已經(jīng)有部分研究來減輕負(fù)遷移現(xiàn)象,如谷歌提出的MMoE模型。該模型會在第二節(jié)進(jìn)行一定的回顧。但通過實驗發(fā)現(xiàn),多任務(wù)學(xué)習(xí)中往往還存在seesaw phenomenon(本文中暫且翻譯為蹺蹺板現(xiàn)象,如有不當(dāng),歡迎指正),也就是說,多任務(wù)學(xué)習(xí)相對于多個單任務(wù)學(xué)習(xí)的模型,往往能夠提升一部分任務(wù)的效果,同時犧牲另外部分任務(wù)的效果。即使通過MMoE這種方式減輕負(fù)遷移現(xiàn)象,蹺蹺板現(xiàn)象仍然是廣泛存在的。
論文提出了Progressive Layered Extraction (簡稱PLE),來解決多任務(wù)學(xué)習(xí)的蹺蹺板現(xiàn)象。本文會在后面對PLE進(jìn)行詳細(xì)介紹。
本文的后續(xù)首先將介紹一下多任務(wù)學(xué)習(xí)的一些常見的架構(gòu),然后重點介紹論文提出的PLE,最后簡單介紹一下實驗結(jié)果部分。
2、多任務(wù)學(xué)習(xí)介紹
這一部分主要是根據(jù)論文中給出的總結(jié)圖進(jìn)行介紹。論文中將MTL模型分為了Single-Level MTL Models和Multi-Level MTL Models。因此我們也按照此進(jìn)行介紹。
2.1 Single-Level MTL Models
Single-Level MTL Models主要包含以下幾種形式:
1)Hard Parameter Sharing:這也是最為常見的MTL模型,不同的任務(wù)底層的模塊是共享的,然后共享層的輸出分別輸入到不同任務(wù)的獨有模塊中,得到各自的輸出。當(dāng)兩個任務(wù)相關(guān)性較高時,用這種結(jié)構(gòu)往往可以取得不錯的效果,但任務(wù)相關(guān)性不高時,會存在負(fù)遷移現(xiàn)象,導(dǎo)致效果不理想。
2)Asymmetry Sharing(不對稱共享):可以看到,這種結(jié)構(gòu)的MTL,不同任務(wù)的底層模塊有各自對應(yīng)的輸出,但其中部分任務(wù)的輸出會被其他任務(wù)所使用,而部分任務(wù)則使用自己獨有的輸出。哪部分任務(wù)使用其他任務(wù)的輸出,則需要人為指定。
3)Customized Sharing(自定義共享):可以看到,這種結(jié)構(gòu)的MTL,不同任務(wù)的底層模塊不僅有各自獨立的輸出,還有共享的輸出。2和3這兩種結(jié)構(gòu)同樣是論文提出的,但不會過多的介紹。
4)MMoE:這種結(jié)構(gòu)的MTL之前的文章中也都介紹過了,相信大家也比較熟悉。底層包含多個Expert,然后基于門控機(jī)制,不同任務(wù)會對不同Expert的輸出進(jìn)行過濾。
5)CGC:這是本文提出的結(jié)構(gòu),后文會進(jìn)行詳細(xì)的介紹,此處省略。
2.2 Multi-Level MTL Models
Multi-Level MTL Models主要包含以下幾種形式:
1)Cross-Stitch Network(“十字繡”網(wǎng)絡(luò)):出自論文《Cross-stitch Networks for Multi-task Learning》,上圖中可能表示的不太清楚,可以參考下圖:
從上面的公式中可以看出,當(dāng)aBA或者aAB值為0時,說明兩者沒有共享的特征,相反的,當(dāng)兩者的值越大,說明共享部分越大。
2)Sluice Network(水閘網(wǎng)絡(luò)):名字都比較有意思,哈哈。這個結(jié)構(gòu)出自論文《Sluice networks: Learning what to share between loosely related tasks》,模型結(jié)構(gòu)比較復(fù)雜,本文不做詳述,感興趣的同學(xué)可以閱讀原文
3)ML-MMoE:這是MMoE的多級結(jié)構(gòu),不再贅述
4)PLE:CGC的進(jìn)階版本,同樣是本文提出的結(jié)構(gòu),后文會進(jìn)行詳細(xì)的介紹,此處省略。
好了,簡單回顧了一些多任務(wù)學(xué)習(xí)的網(wǎng)絡(luò)結(jié)構(gòu),接下來進(jìn)入本文的重點了,準(zhǔn)備好了么!
3、PROGRESSIVE LAYERED EXTRACTION介紹
3.1 seesaw phenomenon
我們先來看一下MTL中的seesaw phenomenon(蹺蹺板現(xiàn)象),論文主要基于騰訊視頻推薦中的多任務(wù)學(xué)習(xí)為例進(jìn)行介紹,其視頻推薦架構(gòu)如下圖:
這里主要關(guān)注VCR和VTR兩個任務(wù)。VCR任務(wù)可理解為視頻完成度,假設(shè)10min的視頻,觀看了5min,則VCR=0.5。這是回歸問題,并以MSE作為評估指標(biāo)。VTR表示此次觀看是否是一次有效觀看,即觀看時長是否在給定的閾值之上,這是二分類問題(如果沒有觀看,樣本Label為0),并以AUC為評估指標(biāo)。
兩個任務(wù)之間的關(guān)系比較復(fù)雜。 首先,VTR的標(biāo)簽是播放動作和VCR的耦合結(jié)果,因為只有觀看時間超過閾值的播放動作才被視為有效觀看。 其次,播放動作的分布更加復(fù)雜,在存在WIFI時,部分場景有自動播放機(jī)制,這些樣本就有較高的平均播放概率,而沒有自動播放且需要人為顯式點擊的場景下,視頻的平均播放概率則較低。
論文對比了上述所有結(jié)構(gòu)的MTL在騰訊視頻VCR和VTR兩個任務(wù)上相對單任務(wù)模型的離線訓(xùn)練結(jié)果:
可以看到,幾乎所有的網(wǎng)絡(luò)結(jié)構(gòu)都是在一個任務(wù)上表現(xiàn)優(yōu)于單任務(wù)模型,而在另一個任務(wù)上表現(xiàn)差于單任務(wù)模型,這就是所謂的蹺蹺板現(xiàn)象。MMoE盡管有了一定的改進(jìn),在VTR上取得了不錯的收益,但在VCR上的收益接近于0。MMoE模型存在以下兩方面的缺點,首先,MMoE中所有的Expert是被所有任務(wù)所共享的,這可能無法捕捉到任務(wù)之間更復(fù)雜的關(guān)系,從而給部分任務(wù)帶來一定的噪聲;其次,不同的Expert之間也沒有交互,聯(lián)合優(yōu)化的效果有所折扣。
針對以上兩點,本文提出了PLE結(jié)構(gòu),在兩個任務(wù)上都取得了相對單任務(wù)模型不錯的收益,有效解決了蹺蹺板現(xiàn)象。
3.2 Customized Gate Control
Customized Gate Control(以下簡稱CGC)可以看作是PLE的簡單版本,本文先對其進(jìn)行介紹,其結(jié)構(gòu)如下圖所示:
CGC可以看作是Customized Sharing和MMoE的結(jié)合版本。每個任務(wù)有共享的Expert和獨有的Expert。對任務(wù)A來說,將Experts A里面的多個Expert的輸出以及Experts Shared里面的多個Expert的輸出,通過類似于MMoE的門控機(jī)制之后輸入到任務(wù)A的上層網(wǎng)絡(luò)中,計算公式如下:
其中,gk(x)是下層模塊的輸出,wk(x)是第k個任務(wù)針對不同Expert輸出的權(quán)重,Sk(x)則是第k個任務(wù)所用到的Expert的輸出,例如對于任務(wù)A,使用Experts A和Experts Shared里面的多個Expert的輸出。
3.3 Progressive Layered Extraction
在CGC的基礎(chǔ)上,Progressive Layered Extraction(以下簡稱PLE)考慮了不同的Expert之間的交互,可以看作是Customized Sharing和ML-MMOE的結(jié)合版本,其結(jié)構(gòu)圖如下:
在下層模塊,增加了多層Extraction Network,在每一層,共享Expert不斷吸收各自獨有的Experts之間的信息,而任務(wù)獨有的Expert則從共享Expert中吸收有用的信息。每一層的計算過程與CGC類似,這里就不再贅述。接下來介紹訓(xùn)練時的幾點優(yōu)化。
3.4 MTL訓(xùn)練優(yōu)化
傳統(tǒng)的MTL的損失是各任務(wù)損失的加權(quán)和:
而在騰訊視頻場景下,不同任務(wù)的樣本空間是不一樣的,比如計算視頻的完成度,必須有視頻點擊行為才可以。不同任務(wù)的樣本空間如下圖所示:
解決樣本空間不一致的問題,前面我們介紹過ESMM的方式。而本文則是在Loss上進(jìn)行一定的優(yōu)化,不同的任務(wù)仍使用其各自樣本空間中的樣本:
其中δki取值為0或1,表示第i個樣本是否屬于第k個任務(wù)的樣本空間。
其次是不同任務(wù)之間權(quán)重的優(yōu)化。關(guān)于MTL的權(quán)重設(shè)置,最常見的是人工設(shè)置,這需要不斷的嘗試來探索最優(yōu)的權(quán)重組合,另一種則是阿里提出的通過帕累托最優(yōu)來計算優(yōu)化不同任務(wù)的權(quán)重。本文也是人工設(shè)置權(quán)重的方式,不過在不同的訓(xùn)練輪次,權(quán)重會進(jìn)行改變。在每一輪,權(quán)重的計算如下:
上式中所有的參數(shù)均為人工設(shè)定的超參數(shù)。
4、實驗結(jié)果
最后簡單看一下實驗結(jié)果。首先是離線的訓(xùn)練結(jié)果,表中的收益均是相較于單任務(wù)學(xué)習(xí)模型的:
接下來是線上A/B實驗的結(jié)果:
可以看到,無論是離線訓(xùn)練還是線上A/B,PLE均取得了最佳的效果。
接下來,論文比較了在任務(wù)之間相關(guān)系數(shù)不同的情況下,Hard Parameter Sharing、MMoE和PLE的結(jié)果:
可以看到,無論任務(wù)之間的相關(guān)程度如何,PLE均取得了最優(yōu)的效果。
最后,論文對比了MMoE和PLE不同Expert的輸出均值,來比較不同模型的Expert利用率(expert utilization)。為方便比較,將MMoE的Expert設(shè)置為3個,而PLE&CGC中,每個任務(wù)獨有的Expert為1個,共享的為1個。這樣不同模型都是有三個Expert。結(jié)果如下:
可以看到,無論是MMoE還是ML-MMoE,不同任務(wù)在三個Expert上的權(quán)重都是接近的,這其實更接近于一種Hard Parameter Sharing的方式,但對于CGC&PLE來說,不同任務(wù)在共享Expert上的權(quán)重是有較大差異的,其針對不同的任務(wù),能夠有效利用共享Expert和獨有Expert的信息,這也解釋了為什么其能夠達(dá)到比MMoE更好的訓(xùn)練結(jié)果。
參考文獻(xiàn)
1、https://zhuanlan.zhihu.com/p/52566508
2、《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》
3、http://www.lxweimin.com/p/ab7216e95fa9
好了,本文的介紹就到這里了,可以學(xué)習(xí)的地方還是比較多的,不僅能夠?qū)Σ煌腗TL結(jié)構(gòu)進(jìn)行一個簡單的梳理,同時學(xué)習(xí)到最新的MTL學(xué)習(xí)框架,感興趣的同學(xué)一定要閱讀下原文,吸收其精華!