論文:Progressive Layered Extraction (PLE): A Novel Multi-TaskLearning (MTL) Model for Personalized Recommendations 會議:RecSys2020最佳長論文獎 這篇文章其實就是MMOE的改進版。解決了一個問題,做了兩件事情。
一個問題:任務不相關時,多個專家網絡聯結在一起容易導致多個任務此消彼長現象(Seesaw Phenomenon),例如優化CTR和GMV兩個任務,結果GMV漲了,CTR跌了。MMOE對不相關任務的優化效果比ESSM強不少,但還是不夠強,PLE就讓他更強了。多個目標可以同時增長。比帕累托最優化這種方法訓練model方便多了。這個我覺得是得最佳論文獎的主要看點。 兩件事情:一個是提出了一個改進的網絡結構版本,一個是提出了一種多loss融合訓練的方法。后面細講。
一、motivation 我們來看MMOE的網絡結構。
A任務和B任務兩個loss相加,是總的loss。如果A任務的loss是B任務的2倍,則三個專家網絡的參數會往A任務loss梯度下降的方向優化,這樣學會的專家網絡A任務的提升較高(從而總loss降低),但B任務由於在總loss中占比較低,提升有限,甚至會降低B任務的精度。
作者做了實驗,在VTR和CVR兩個任務中,MMOE比單任務模型(single-Task)只在VTR任務上有較大提升,在VCR任務上只提升了0.0001。其他多任務學習模型基本上都是此消彼長類型,而PLE在兩個坐標軸上都有較大幅度提升。 很自然的就會有這樣的想法:一,如果解耦這些專家網絡。二、如何優化loss的融合邏輯。讓每個任務的loss都能下降,每個任務的業務目標都能得到優化。這就是本論文的精髓。 二、網絡結構: 文章中有兩個網絡結構,一個是單層多任務網絡結構(CGC),一個是多層多任務網絡結構(PLE)。
單層的多任務網絡結構中,每個任務有一個獨立的專家網絡,然后每個任務也都從共享專家網絡里面提取特征信號,這樣保證了單任務有兩個特征信號來源:獨有信號和糅合共享信號。這樣做到了專家網絡解耦,同時能利用多任務輔助訓練單任務。
多層多任務網絡結構中,底層特征抽取結構中,給上層A任務提供的獨有專家網絡的信號來自於A專家網絡和共享網絡,但給上層結構提供共享專家網絡的信號來源於A+B+共享網絡。然后最后一層連接多塔的結構跟CGC是一樣的。
三、LOSS函數優化 1、訓練集歸一化。每個任務的樣本空間是不一樣的。如果樣本空間一樣,即: Key:features:label統一的樣本對,key可以是userID+videoId,每個任務有每個任務的label,那么直接把各任務的Loss相加即可。 事實上,這些多個任務的樣本空間是不一樣的,主要是特征features不一樣。例如:視頻的評論CMR任務,視頻可以有被評論次數這個特征,但如果這個特征拿去做CTR任務,那只要這個特征有值就百分之百是有點擊的,因而每個任務的樣本空間是不一樣的。
圖中展示了各個任務的樣本空間的包含關系。那么這些任務的不同樣本空間和不同特征空間的聯合訓練,文章采取的方法是逐個樣本計算loss:
i代表的是每個樣本,k代表的是任務K,δik代表的是第i個樣本屬於第K個任務的關系,屬於則為1,不是則為0,對i進行求和就是整個樣本空間中K任務的樣本數對應的loss值。 2、讓每個任務loss權重動態變化。這個方法其實比較淺邏輯。就是設定一個任務的初始權重值,然后讓這個權重值隨着訓練的epoch數不斷變化,這樣可以嘗試很多組權重,可以找到最優的范式。也算是一種解法,因而每個任務的loss是相差比較大的,例如回歸任務的loss一般比二分類的loss大不少。需要平衡這兩者。 四、總結 文章通過構建一個解耦的MMOE網絡,加上loss權重的動態變化,成功的讓多任務模型可以在每個任務上都有最優表現。非常不錯的做法,比帕累托這種action非常繁瑣的做法好了不少。比較接地氣,容易action。確實是一篇佳作。