CTR預估 論文精讀(十四)--MMOE: Multi-gate Mixture-of-Experts

MMOE: Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

0. 論文摘要

Neural-based multi-task learning has been successfully used in many real-world large-scale applications such as recommendation systems. For example, in movie recommendations, beyond providing users movies which they tend to purchase and watch, the system might also optimize for users liking the movies afterwards. With multi-task learning, we aim to build a single model that learns these multiple goals and tasks simultaneously. However, the prediction quality of commonly used multi-task models is often sensitive to the relationships between tasks. It is therefore important to study the modeling tradeoffs between task-specific objectives and inter-task relationships. In this work, we propose a novel multi-task learning approach, Multi-gate Mixture-of-Experts (MMoE), which explicitly learns to model task relationships from data. We adapt the Mixture-of-Experts (MoE) structure to multi-task learning by sharing the expert submodels across all tasks, while also having a gating network trained to optimize each task. To validate our approach on data with different levels of task relatedness, we first apply it to a synthetic dataset where we control the task relatedness. We show that the proposed approach performs better than baseline methods when the tasks are less related. We also show that the MMoE structure results in an additional trainability benefit, depending on different levels of randomness in the training data and model initialization. Furthermore, we demonstrate the performance improvements by MMoE on real tasks including a binary classification benchmark, and a large-scale content recommendation system at Google.

1. 創新點

在 MOE 的基礎上,提出針對單個任務建模的 gating network,通過 gating network 去單獨優化各子任務;

  • 提出MMOE網絡,可以顯式建模任務相關性

  • gating network 可以自動調整參數在建模共享信息和指定任務信息;

  • 通過實驗驗證 MMOE 相較於shared-bottom 多任務模型,更容易訓練,模型也更魯棒 ;

理論創新點主要就是在 MOE 的基礎上,將單 gating net 評估各子任務權重換成通過引入多個 gating net 學習各 Expert net 相關性組合權重,同時後接對應各子任務的 Tower net 學習得到各子任務輸出。

2. 引入重排原因

MMOE引入的原因是現有的多任務模型,其訓練效果主要受兩方面影響:

  1. 任務相關性,如ESMM對ctr,cvr建模,兩者任務的相關性很多,cvr樣本本身也是ctr的樣本自己,這種高相關性任務使用shared-bottom結構,效果是是很好的,但是對於建模如ctr與觀看時長這種相關性較弱的多任務,學習效果往往不能超越單任務模型建模;
  2. 現有的克服相關性多任務建模方式往往採用通過加層等方式實現,時空複雜度較高,模型增加了參數量所以需要更大的數據量來訓練模型,而且模型更復雜並不利於在真實生產環境中實際部署使用。

上述第2中方法是Hard parameter sharing方法,將排序模型的底層的全連接層進行共享,學習共同的模式,上層用一些特定的全連接層學習任務特定的模式。這種方法非常經典,但是效果還是不錯的,美團、知乎在18年分享的文章美團“猜你喜歡”深度學習排序模型實踐知乎推薦頁Ranking經驗分享使用的都是這種方法。

在這裏插入圖片描述

這種方法最大的優勢是Task越多,單任務更加不可能過擬合,劣勢是底層強制shared layers難以學得適用於所有任務的表達。尤其是兩個任務很不相關的時候。

當兩個任務相關性沒有那麼好時(例如,推薦系統排序中的點擊率和互動率,點擊率和停留時長等),Hard parameter sharing 的模式就不是那麼適用了,會損害到一些效果。對應的,Soft parameter sharing的方式可能更加適合。

論文作者指出是MMOE在相關性任務較差的多任務,表現相較於傳統的 shared-bottom 多任務網絡(如ESMM)更好;

3. 現有方案

多任務模型通過學習不同任務的聯繫和差異,可提高每個任務的學習效率和質量。

目前現有方案可主要分爲兩種:

  1. Multi-task learning in DNNs:多任務學習的的框架廣泛採用 shared-bottom 的結構,不同任務間共用底部的隱層。這種結構本質上可以減少過擬合的風險,但是效果上可能受到任務差異和數據分佈帶來的影響。也有一些其他結構,比如兩個任務的參數不共用,但是通過對不同任務的參數增加 L2 範數的限制;也有一些對每個任務分別學習一套隱層然後學習所有隱層的組合。和 shared-bottom 結構相比,這些模型對增加了針對任務的特定參數,在任務差異會影響公共參數的情況下對最終效果有提升。缺點就是模型增加了參數量所以需要更大的數據量來訓練模型,而且模型更復雜並不利於在真實生產環境中實際部署使用。
  2. Ensemble of Subnets & Mixture of Experts:即 MOE 模型,將 mixture-of-experts 引入DNN,MoE layer基於層輸入選擇專家子網絡,相較於 MMOE 差別主要在只使用了一個 Expert net 輸出各 Expert 的輸出權重,同時少了針對各子任務建模的Tower net;

關於共享隱層方面,MMoE和一般多任務學習模型的區別

  • 一般多任務學習模型:接近輸入層的隱層作爲一個整體被共享
  • **MMoE:**將共享的底層表示層分爲多個expert,同時設置了gate,使得不同的任務可以多樣化的使用共享層

4. MMOE

MMoE模型的結構(下圖 c)基於廣泛使用的Shared-Bottom結構(下圖 a)和 MoE 結構,其中圖(b)是圖©的一種特殊情況,下面依次介紹。

在這裏插入圖片描述

如圖,**a)**是最原始的多任務學習模型,也就是base,**b)**是加入單門(one gate)的MoE layer的多任務學習模型,**c)**是文章提出的MMOE模型。

可以看出,c)本質上是將base的shared bottom換成了MoE layer,並對每個任務都加gate

  • Shared-Bottom Multi-task Model

如上圖 a 所示,shared-bottom網絡(表示爲函數 f )位於底部,多個任務共用這一層。往上,K 個子任務分別對應一個 tower network(表示爲 h k \left.h^{k}\right. hk ),每個子任務的輸出爲:
y k = h k ( f ( x ) ) y_{k}=h^{k}(f(x)) yk=hk(f(x))

  • Mixture-of-Experts

MoE模型可以形式化表示爲:
y = ∑ i = 1 n g ( x ) i f i ( x ) , y=\sum_{i=1}^{n} g(x)_{i} f_{i}(x), y=i=1ng(x)ifi(x),
其中 ∑ i = 1 n g ( x ) i = 1 \sum_{i=1}^{n} g(x)_{i}=1 i=1ng(x)i=1 f i , f_{i}, fi, i = 1 , ⋯   , n i=1, \cdots, n i=1,,n 是 n 個 expert network(expert network 可認爲是一個神經網絡)。

g 是組合 experts 結果的 gating network,具體來說 g 產生 n 個 experts 上的概率分佈,最終的輸出是所有experts的帶權加和。顯然,MoE可看做基於多個獨立模型的集成方法。

注:這裏注意 MoE 並不對應上圖中的 b 部分,上圖b 是 One-gate MoE model;

注:MOE 網絡來源於 MOE Layer,而 MOE Laye 最早提出是用來做多模型集成的,通過引入 gating 網絡,將多個模型輸出引入到MOE layer,然後 stack 到 DNN 中;

  • 所提模型 Multi-gate Mixture-of-Experts

文章提出的模型(簡稱MMoE)目的就是相對於 shared-bottom 結構不明顯增加模型參數的要求下捕捉任務的不同。其核心思想是將 shared-bottom 網絡中的函數 f 替換成 MoE 層,如上圖 c 所示,形式化表達爲:
y k = h k ( f k ( x ) ) y_{k}=h^{k}\left(f^{k}(x)\right) yk=hk(fk(x))

f k ( x ) = ∑ i = 1 n g k ( x ) i f i ( x ) f^{k}(x)=\sum_{i=1}^{n} g^{k}(x)_{i} f_{i}(x) fk(x)=i=1ngk(x)ifi(x)

其中 g k ( x ) = softmax ⁡ ( W g k x ) g^{k}(x)=\operatorname{softmax}\left(W_{g k} x\right) gk(x)=softmax(Wgkx),輸入就是 input feature,輸出是所有 experts 上的權重。

注:gating net 輸入爲gating net的原始 feature,而非

  • 一方面,因爲 gating networks 通常是輕量級的,而且 expert networks 是所有任務共用,所以相對於論文中提到的一些 baseline 方法在計算量和參數量上具有優勢。

  • 另一方面,相對於所有任務共用一個門控網絡(One-gate MoE model,如上圖 b),這裏MMoE(上圖 c)中每個任務使用單獨的 gating networks,每個任務的 gating networks 通過最終輸出權重不同實現對 experts 的選擇性利用,不同任務的 gating networks 可以學習到不同的組合 experts 的模式,因此模型考慮到了捕捉到任務的相關性和區別。

注:要注意區分單 gating net 的 OMOE 與 MOE 的區別!!!

  • MOE 是直接使用多個 Expert net 的線性加權和作爲子任務輸出 y k = h k ( f ( x ) ) y_{k}=h^{k}(f(x)) yk=hk(f(x)),權重通過一個 gating net 學習;

  • 而 MMOE 則是通過多個 gating net 學習多組 Expert net 的輸出權重,然後又套接入各子任務的 Tower net,這裏多個 gating net 相當於依據各子任務隨機學習到多組 Expert net 的相關性組合,後接的 Tower net 進一步提升了子任務的建模效果;

5. 總結

該論文結構非常簡單,理論創新點主要就是在 MOE 的基礎上,將單 gating net 評估各子任務權重換成通過引入多個 gating net 學習各 Expert net 相關性組合權重,同時後接對應各子任務的 Tower net 學習得到各子任務輸出:
y k = h k ( f k ( x ) ) y_{k}=h^{k}\left(f^{k}(x)\right) yk=hk(fk(x))

f k ( x ) = ∑ i = 1 n g k ( x ) i f i ( x ) f^{k}(x)=\sum_{i=1}^{n} g^{k}(x)_{i} f_{i}(x) fk(x)=i=1ngk(x)ifi(x)

其中 g k ( x ) = softmax ⁡ ( W g k x ) g^{k}(x)=\operatorname{softmax}\left(W_{g k} x\right) gk(x)=softmax(Wgkx),輸入就是 input feature,輸出是所有 experts 上的權重。

多 gating net 可以學習到多 Expert net 的相關性組合,而 Tower net 進一步提升子任務建模能力;

  • 人工構造數據集

在真實數據集中我們無法改變任務之間的相關性,所以不太方便進行研究任務相關性對多任務模型的影響。輪文中人工構建了兩個迴歸任務的數據集,然後通過兩個任務的標籤的Pearson相關係數來作爲任務相關性的度量。在工業界中通過人工構造的數據集來驗證自己的假設是個有意思的做法。

  • 模型的可訓練性

模型的可訓練性,就是模型對於超參數和初始化是否足夠魯棒。作者在人工合成數據集上進行了實驗,觀察不同隨機種子和模型初始化方法對loss的影響。這裏簡單介紹下兩個現象:第一,Shared-Bottom models的效果方差要明顯大於基於MoE的方法,說明Shared-Bottom模型有很多偏差的局部最小點;第二,如果任務相關度非常高,則OMoE和MMoE的效果近似,但是如果任務相關度很低,則OMoE的效果相對於MMoE明顯下降,說明MMoE中的multi-gate的結構對於任務差異帶來的衝突有一定的緩解作用。

整體來看,這篇文章是對多任務學習的一個擴展,通過門控網絡的機制來平衡多任務的做法在真實業務場景中具有借鑑意義。

6. 參考文獻

[1] Personalized Re-ranking for Recommendation

[2] 詳解谷歌之多任務學習模型MMoE(KDD 2018)

[3] YouTube作者論文簡介

[4] MMOE Keras 實現版本

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章