
非官方代碼:https://github.com/drawbridge/keras-mmoe
一 為什么讀這篇
動(dòng)機(jī)是做粗排模型看能不能參考精排的MMoE模型,也經(jīng)常聽到同組的同學(xué)在討論這個(gè)模型,算是解決多目標(biāo)問題比較經(jīng)典的一篇,屬于必看的一篇論文,其實(shí)也不算很新了,畢竟在18年就出來了的。
二 截止閱讀時(shí)這篇論文的引用次數(shù)
2020.2.15 26次。在推薦領(lǐng)域里,對(duì)于新出的一篇文章算是不少了。
三 相關(guān)背景介紹
沒往arXiv上掛,中了18年7月的KDD。G家出品,幾個(gè)作者都是華人。本文是一作馬家祺在google實(shí)習(xí)時(shí)的工作,同時(shí)也是密歇根大學(xué)的PHD,本科是T大的,本科導(dǎo)師唐杰是微博上機(jī)器學(xué)習(xí)領(lǐng)域里比較活躍的博主之一。
四 關(guān)鍵詞
multi-task
mixture-of-experts
multi-gate
五 論文的主要貢獻(xiàn)
1 提出MMoE模型來解決多任務(wù)模型
2 該模型有易訓(xùn)練,額外增加的計(jì)算成本不高的優(yōu)點(diǎn)
六 詳細(xì)解讀
0 摘要
通過多任務(wù)學(xué)習(xí),我們的目標(biāo)是構(gòu)建單一的模型來同時(shí)學(xué)習(xí)多個(gè)目標(biāo)和任務(wù),然而使用多任務(wù)模型預(yù)測(cè)的質(zhì)量通常對(duì)任務(wù)之間的關(guān)系很敏感,因此,研究特定任務(wù)的目標(biāo)與任務(wù)關(guān)系之間的建模權(quán)衡是至關(guān)重要的。本文提出的Multi-gate Mixture-of-Experts(MMoE)可以顯式的學(xué)習(xí)從數(shù)據(jù)中建模任務(wù)關(guān)系。該方法采用在所有任務(wù)中共享專家子模型的Mixture-of-Experts(MoE)結(jié)構(gòu)來進(jìn)行多任務(wù)學(xué)習(xí),同時(shí)還通過訓(xùn)練過的門網(wǎng)絡(luò)來優(yōu)化每個(gè)任務(wù)。
1 介紹
推薦系統(tǒng)通常需要同時(shí)優(yōu)化多個(gè)目標(biāo),例如,構(gòu)建的模型可以同時(shí)預(yù)測(cè)用戶對(duì)電影是否購買以及打分是多少。雖然有研究報(bào)告稱通過使用正則化和遷移學(xué)習(xí)的多任務(wù)學(xué)習(xí)模型能提升模型在所有任務(wù)上的預(yù)測(cè)能力,但實(shí)際上,許多多任務(wù)學(xué)習(xí)的模型表現(xiàn)還不如單任務(wù)模型,特別是許多基于DNN的多任務(wù)模型都對(duì)數(shù)據(jù)分布的差異和任務(wù)之間的關(guān)系非常敏感。來自于任務(wù)差異的固有沖突會(huì)損害至少某些任務(wù)上的預(yù)測(cè),尤其是當(dāng)所有任務(wù)極大的共享模型參數(shù)時(shí)更是如此。
相比合成數(shù)據(jù),現(xiàn)實(shí)中的應(yīng)用通常具有更復(fù)雜的數(shù)據(jù)模式,因此很難去衡量任務(wù)之間的差異。近來已經(jīng)有一些工作無需依賴明確的任務(wù)差異度量來解決多任務(wù)學(xué)習(xí)中的任務(wù)差異,然后這些技術(shù)通常是給每個(gè)任務(wù)增加更多的模型參數(shù)來容納任務(wù)的差異,對(duì)于大規(guī)模推薦系統(tǒng)來說,這些額外的參數(shù)通常是約束不足的,因此有可能傷害模型質(zhì)量。這些參數(shù)帶來的額外的計(jì)算量也是線上服務(wù)所不允許的。
本文提出的創(chuàng)新的MMoE結(jié)構(gòu),受Mixtuer-of-Experts(MoE)模型和MoE層的啟發(fā)。MMoE顯式的建模任務(wù)之間的關(guān)系,并通過學(xué)習(xí)特定任務(wù)的功能來平衡共享表示。它可以自動(dòng)地分配參數(shù)以捕獲是共享任務(wù)的信息還是特定于任務(wù)的信息,從而無需為每個(gè)任務(wù)都增加許多參數(shù)。
MMoE的骨架基于最常用的共享底層多任務(wù)DNN結(jié)構(gòu),如圖1-a所示。而本文模型不是只有一個(gè)底層網(wǎng)絡(luò)被所有任務(wù)都共享,而是有一組底層網(wǎng)絡(luò),每一個(gè)都稱之為一個(gè)專家,如圖1-c所示。

在本文中,每個(gè)專家都是一個(gè)前向網(wǎng)絡(luò),之后為每個(gè)任務(wù)引入一個(gè)門網(wǎng)絡(luò)。門網(wǎng)絡(luò)使用輸入特征和輸出softmax門,將不同權(quán)重的專家的聚合在一起,從而使得不同的任務(wù)使用不同的專家。之后聚合在一起的專家的結(jié)果輸入特定于任務(wù)的塔網(wǎng)絡(luò)。通過這種方式,不同任務(wù)的門網(wǎng)絡(luò)能夠?qū)W習(xí)不同的專家組合模式,從而捕獲任務(wù)間的關(guān)系。
本文的貢獻(xiàn)主要有三點(diǎn):
1 本文提出的MMoE模型可以用于顯式的對(duì)任務(wù)關(guān)系建模。通過調(diào)制和門網(wǎng)絡(luò),本文模型可以自動(dòng)地調(diào)整參數(shù)用于共享信息還是特定于任務(wù)的信息
2 對(duì)合成數(shù)據(jù)進(jìn)行控制實(shí)驗(yàn),報(bào)告了任務(wù)相關(guān)性如何影響多任務(wù)學(xué)習(xí)的動(dòng)態(tài)訓(xùn)練,以及MMoE如何提升模型的可表達(dá)性和可訓(xùn)練性
3 本文在有億萬user和item的生產(chǎn)推薦系統(tǒng)上驗(yàn)證了模型的有效性
2 相關(guān)工作
2.1 基于DNN的多任務(wù)學(xué)習(xí)
最廣為使用的多任務(wù)學(xué)習(xí)模型是共享底層的模型結(jié)構(gòu),這種結(jié)構(gòu)極大的降低了過擬合的風(fēng)險(xiǎn),但是由于所有的任務(wù)都需在底層共享參數(shù),因此可能會(huì)因?yàn)槿蝿?wù)差異而導(dǎo)致優(yōu)化沖突。
2.2 融合子網(wǎng)絡(luò) & 專家組合
在DNN中,融合模型和融合子網(wǎng)絡(luò)已經(jīng)被證明可以提升模型性能(Hinton,Distilling the knowledge in
a neural network)。Eigen和Shazeer等人已經(jīng)將專家組合(mixture-of-experts)模型構(gòu)建為基本的塊(MoE層)。MoE層基于訓(xùn)練或預(yù)測(cè)時(shí)的輸入的層來選擇子網(wǎng)絡(luò)(專家),因此該模型不僅具有較強(qiáng)的建模能力,而且通過在門網(wǎng)絡(luò)中引入稀疏性來降低計(jì)算成本。相似的,PathNet,在訓(xùn)練一項(xiàng)任務(wù)時(shí),會(huì)隨機(jī)選擇多個(gè)pathway,并由多個(gè)worker并行同時(shí)訓(xùn)練,最佳pathway的參數(shù)是固定的,選擇新的pathway來訓(xùn)練新任務(wù)。
2.3 多任務(wù)學(xué)習(xí)應(yīng)用
例如,多語言機(jī)器翻譯,context-aware推薦系統(tǒng),文本推薦,YouTube DNN。
3 前置依賴
3.1 共享底層多任務(wù)模型
如圖1-a所示,同時(shí)將其作為多任務(wù)模型的baseline。給定K個(gè)任務(wù),將定義為底層共享網(wǎng)絡(luò),
定義為K個(gè)塔網(wǎng)絡(luò),
定義為每個(gè)任務(wù)獨(dú)立的輸出,則對(duì)于任務(wù)k,模型可以作如下定義(公式1):
3.2 生成合成數(shù)據(jù)
生成兩個(gè)回歸任務(wù),用這兩個(gè)任務(wù)標(biāo)簽的皮爾遜相關(guān)系數(shù)來作為任務(wù)關(guān)系的定量指標(biāo)。具體生成方法略。。在本文剩余部分,為了簡化,用權(quán)重向量的余弦相似度來作為任務(wù)相關(guān)性。

3.3 任務(wù)相關(guān)性影響
如圖3所示,與預(yù)期一樣,模型性能隨著任務(wù)相關(guān)性的降低而下降。這個(gè)現(xiàn)象也驗(yàn)證了本文的假設(shè),即傳統(tǒng)多任務(wù)模型對(duì)任務(wù)相關(guān)性是敏感的。

4 建模方法
4.1 專家組合(Mixture-of-Experts)
原始的專家組合(MoE)模型(Hilton,Adaptive mixtures of local experts)
公式5定義如下:
其中,
表示輸出
的第i個(gè)logit,用于表示專家
的概率。
表示n個(gè)專家網(wǎng)絡(luò),
表示用于融合所有專家的門網(wǎng)絡(luò)。更具體地說,門網(wǎng)絡(luò)
基于輸入在n個(gè)專家上生成分布,最終輸出是所有專家輸出的權(quán)重和。
MoE層
MoE層和MoE模型有相同的結(jié)構(gòu),但是可以接收上一層的輸出作為輸入,并將輸出作為后續(xù)的層。MoE層的主要目標(biāo)是實(shí)現(xiàn)條件計(jì)算,即每個(gè)樣本僅有網(wǎng)絡(luò)的一部分是激活的。對(duì)于每個(gè)輸入樣本,模型能夠通過門網(wǎng)絡(luò)對(duì)于輸入的條件只選擇專家集合的一部分子集。
4.2 Multi-gate Mixture-of-Experts
MMoE模型的核心理念是用公式5的MoE層替代公式1中的底層共享網(wǎng)絡(luò)。更重要的是,本文對(duì)于每個(gè)任務(wù)
增加了分隔開的門網(wǎng)絡(luò)
。更確切地說,任務(wù)
的輸出是
其中,,圖1-c展示了模型結(jié)構(gòu)。
門網(wǎng)絡(luò)只是簡單的帶有softmax層的輸入的線性變換:
其中是待訓(xùn)練矩陣,
是專家個(gè)數(shù),
是特征維度。
每個(gè)門網(wǎng)絡(luò)可以根據(jù)輸入樣本來學(xué)習(xí)”選擇“一部分專家。舉個(gè)特例,如果只選擇一個(gè)門得分最高的專家,那么每個(gè)門網(wǎng)絡(luò)實(shí)際上是將輸入空間線性分為n個(gè)區(qū)域,每個(gè)區(qū)域?qū)?yīng)一個(gè)專家。MMoE能夠以一種復(fù)雜的方法對(duì)任務(wù)關(guān)系進(jìn)行建模,方法是通過確定不同門之間的分隔如何相互重疊。如果任務(wù)的相關(guān)性較低,則共享專家將受到懲罰,而這些任務(wù)的門網(wǎng)絡(luò)將學(xué)會(huì)使用不同的專家來替代。
為了了解為每個(gè)任務(wù)引入單獨(dú)的門網(wǎng)絡(luò)如何幫助模型學(xué)習(xí)特定于任務(wù)的信息,本文與所有任務(wù)共享一個(gè)門的模型結(jié)構(gòu)進(jìn)行了比較。稱其為One-gate Mixture-of-Experts(OMoE)模型,它也是直接將MoE層用于共享底層的多任務(wù)模型,如圖1-b所示。
5 合成數(shù)據(jù)的實(shí)驗(yàn)
5.1 基于不同任務(wù)相關(guān)性數(shù)據(jù)的表現(xiàn)
重復(fù)了3.3節(jié)的實(shí)驗(yàn),以共享底層模型和OMoE模型作為baseline
模型結(jié)構(gòu)
輸入維度100,8個(gè)單層專家網(wǎng)絡(luò),每層16個(gè)單元。兩個(gè)塔網(wǎng)絡(luò)也是單層網(wǎng)絡(luò),單元個(gè)數(shù)為8。模型的參數(shù)總共有。
結(jié)果

如圖4所示。有3個(gè)結(jié)論:
1 對(duì)于所有模型來說,相關(guān)性越高表現(xiàn)越好
2 在不同相關(guān)系數(shù)的數(shù)據(jù)上,模型表現(xiàn)的gap,MMoE明顯比OMoE和共享底層模型低
3 兩個(gè)MoE在所有場景下都優(yōu)于共享底層模型
5.2 可訓(xùn)練性

從圖5可以得出幾個(gè)結(jié)論:
1 共享底層的模型方差比基于MoE模型的要大,說明共享底層的模型更多的陷入局部優(yōu)化點(diǎn)
2 在相關(guān)系數(shù)為1時(shí),OMoE和MMoE一樣健壯,但是當(dāng)相關(guān)系數(shù)降為0.5時(shí),OMoE的健壯性明顯下降
3 三個(gè)模型的最小損失都是近似的,因?yàn)橛猩窠?jīng)網(wǎng)絡(luò)的萬能極限理論,所以這沒有什么好意外的,但當(dāng)模型足夠復(fù)雜時(shí),找到”正確“的模型將會(huì)更難,因此顯式的對(duì)任務(wù)的關(guān)系進(jìn)行建模仍然是有必要的
6 真實(shí)數(shù)據(jù)的實(shí)驗(yàn)
6.1 Baseline方法
L2-Constrained
Cross-Stitch
Tensor-Factorization
6.2 超參數(shù)調(diào)優(yōu)
用《Capacity and Trainability in Recurrent Neural Networks》中使用的超參數(shù)調(diào)優(yōu)器進(jìn)行調(diào)優(yōu)。為了比較公平,隱層單元的上限為2048,對(duì)于MMoE來說就是”專家個(gè)數(shù) X 每個(gè)專家的隱層單元個(gè)數(shù)“。對(duì)學(xué)習(xí)率和訓(xùn)練步驟都進(jìn)行了調(diào)優(yōu),對(duì)MMoE的專家個(gè)數(shù)和每個(gè)專家的隱層單元個(gè)數(shù)進(jìn)行了調(diào)優(yōu)。
6.3 Census-income Data
6.3.1 數(shù)據(jù)描述
將一些特征設(shè)置為標(biāo)簽,得到2組實(shí)驗(yàn)數(shù)據(jù)。
第一組:主任務(wù)是預(yù)測(cè)收入是非超過$50K,輔助任務(wù)是預(yù)測(cè)是否已婚
第二組:主任務(wù)是預(yù)測(cè)是否至少有大學(xué)學(xué)歷,輔助任務(wù)是預(yù)測(cè)是否已婚
6.3.2 結(jié)果


6.4 大規(guī)模內(nèi)容推薦
該實(shí)驗(yàn)基于google的推薦系統(tǒng),有億萬的item,十億的user。本文的排序模型有兩個(gè)優(yōu)化目標(biāo):
1 優(yōu)化與互動(dòng)有關(guān)的目標(biāo),如點(diǎn)擊率和互動(dòng)時(shí)間
2 優(yōu)化與滿意度相關(guān)的目標(biāo),如喜歡率
訓(xùn)練數(shù)據(jù)有千億條。。如果分開訓(xùn)練,每個(gè)任務(wù)的模型需要學(xué)習(xí)十億個(gè)參數(shù)。
6.4.1 實(shí)驗(yàn)設(shè)置
兩個(gè)二分類任務(wù):
1 互動(dòng)子任務(wù):預(yù)測(cè)用戶互動(dòng)相關(guān)的行為
2 滿意度子任務(wù):預(yù)測(cè)用戶滿意度相關(guān)的行為
sparse特征使用embedding,dense特征歸一化到[0, 1]。batch size為1024,用SGD。MMoE的結(jié)構(gòu)與共享底層的模型類似,只是簡單的將共享底層模型的頂層替換為MMoE層,同時(shí)保持輸出的隱層單元個(gè)數(shù)維度一致。
6.4.2 離線評(píng)估結(jié)果
300億的訓(xùn)練集,100萬的評(píng)估集
因?yàn)闈M意度任務(wù)的標(biāo)簽太稀疏了,因此只用互動(dòng)子任務(wù)的AUC和R-Squared來評(píng)估
展示訓(xùn)練200萬步,400萬步,600萬步后的結(jié)果

為了更好的理解門的作用,如圖6所示,展示了每個(gè)任務(wù)門的softmax分布。因?yàn)闈M意度的標(biāo)簽遠(yuǎn)比互動(dòng)的稀疏,滿意度子任務(wù)的門更聚焦在一個(gè)專家上。

6.4.3 線上實(shí)驗(yàn)結(jié)果

七 小結(jié)
多任務(wù)學(xué)習(xí)一個(gè)很好的范本,超越了傳統(tǒng)的共享底層模型。名字雖然叫多門,其實(shí)對(duì)于只有兩個(gè)目標(biāo)的模型來說,叫雙門更合適。本文寫的還是非常清楚的,很順暢的就讀下來了,沒有之前想象的那么復(fù)雜。順著作者的思路捋下來,感覺創(chuàng)新的地方其實(shí)也不是特別大,實(shí)質(zhì)就是MoE的進(jìn)一步衍生。另外有個(gè)感覺就是Hilton真是功德無量,挖了多少大坑,養(yǎng)活了多少人。。。
素質(zhì)四連
要解決什么問題
多任務(wù)學(xué)習(xí)
用了什么方法解決
基于MoE,引入多個(gè)門,提出MMoE模型來解決
效果如何
在合成數(shù)據(jù),真實(shí)數(shù)據(jù)都有提升,同時(shí)并未顯著加大計(jì)算量,對(duì)不同任務(wù)之間的相關(guān)性的依賴也很健壯
還存在什么問題
沒發(fā)現(xiàn),不要硬找
算法背后的模式和原理
基于MoE的擴(kuò)展