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