推薦系統(tǒng)論文閱讀(三十二)-多任務(wù)多場景下的MMoE模型

論文:

地址:https://dl.acm.org/doi/pdf/10.1145/3219819.3220007

論文題目:《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》

我們在之前的多任務(wù)模型esmm中已經(jīng)知道了怎么通過多任務(wù)學習的方式來學習到cvr的預(yù)估,esmm中是通過share bottom的方式來學習,有效的緩解了樣本選擇偏差和數(shù)據(jù)稀疏的問題。

然而 ,多任務(wù)學習的效果受任務(wù)之間的相關(guān)性程度的影響,MMoE模型的提出就是為了學習這種特殊任務(wù)以及任務(wù)之間又有相關(guān)性的多任務(wù)學習。

一 、背景

現(xiàn)在的推薦系統(tǒng)里面往往都存在著很多的目標需要優(yōu)化,比如在短視頻領(lǐng)域,我們可能需要優(yōu)化的目標就有,觀看時長,點擊率等目標,為了能用一個模型建模出對所有目標的優(yōu)化,多任務(wù)學習模型經(jīng)常被我們使用。

可是呢,任務(wù)之間是有相關(guān)性的,假如說兩個任務(wù)的相關(guān)性很高,那么多任務(wù)模型學習出來的效果就會很好;假如兩個任務(wù)的相關(guān)性是負數(shù),也就是這兩個任務(wù)是互相矛盾的,那么在模型訓練的時候也就比較難以同時兼顧兩個任務(wù)。

這個假設(shè)是對的嗎?你可能會認為是對的。

事實上呢?MMoE這篇論文做了實驗來驗證這個假設(shè)是否正確。

二 、多任務(wù)學習中相關(guān)性的影響實驗?

2.1? Shared-bottom Multi-task Model

一般的多任務(wù)模型學習框架如上圖所示,共享底層的參數(shù),比如說是embedding layer,然后用不同的DNN層去優(yōu)化自己的目標:

2.2? Synthetic Data Generation

由于現(xiàn)實中我們不能簡單的通過實際的多任務(wù)來進行這個實驗,所以我們通過自己來生成數(shù)據(jù)的方式來做這個實驗。

假設(shè)實驗中的模型中包含兩個回歸任務(wù),數(shù)據(jù)通過采樣生成,輸入相同是相同的,但是輸出label不同。那么任務(wù)的相關(guān)性就使用label之間的皮爾遜相關(guān)系數(shù)來表示,相關(guān)系數(shù)越大,表示任務(wù)之間越相關(guān),數(shù)據(jù)生成的過程如下:

解釋一下這個過程吧:

1.首先生成兩個正交的單位向量

2.利用這兩個單位向量生成兩個權(quán)值向量w1和w2

3.根據(jù)正態(tài)分布隨機生成向量x作為輸入

4.根據(jù)我們的輸入x還有sin函數(shù),以及兩個回歸模型,生成label y1和y2

由于我們不是使用的線性函數(shù),所以采用先根據(jù)權(quán)值w1和w2的cos值,然后再計算label的皮爾遜系數(shù)。在非線性模型中l(wèi)abel的皮爾遜系數(shù)跟cos的值并不相等,而是呈正相關(guān)的關(guān)系。而在線性模型中,label的皮爾遜系數(shù)就是cos的值。


雖然在非線性模型中l(wèi)abel的皮爾遜系數(shù)不等于cos值,但是只要是正相關(guān),我們就把cos值當成任務(wù)之間的相關(guān)性系數(shù)。

2.3 實驗結(jié)果


其中,縱軸是loss,我們可以看到相關(guān)性系數(shù)越高,loss越低。

三 、MMoE模型


expert0,1,2都是DNN模型,這里跟share bottom的方式不一樣,每一個expert都有著自己的embedding,這里我也很奇怪,為什么模型結(jié)構(gòu)完全一樣的情況下,每一個expert可以對不同的任務(wù)帶來不同的影響。

還有一點就是,每一個expert都有著自己的embedding,那這樣參數(shù)量也太大了吧?實際上,后面的續(xù)文《Recommending What Video to Watch Next: A Multitask Ranking System》說到了共享embedding和不共享對于實驗結(jié)果的影響是差不多的。

3.1 MoE模型(Mixture-of-Experts)

如圖b所示,只有一個門的模型叫MoE模型,Gate部分的輸出是一個softmax分布,模型的輸出為:

g(x)是一個softmax的概率輸出,f是每個expert的輸出,y共享層的輸出。

3.2 MMoE模型(Multi-gate Mixture-of-Experts)



其中,

gk(x)是第k個門的輸出,是一個softmax概率分布

fk(x)是第k個任務(wù)的輸出

yk是任務(wù)k的輸出

MMoE相比于MoE就是把門的數(shù)量增加了,其他的一樣,由于不同任務(wù)的gating networks可以學習到不同的組合experts的模式,因此模型考慮到了捕捉到任務(wù)的相關(guān)性和區(qū)別。

假如訓練樣本的label是這樣:

clicklabel? buylabel

0? ? ? ? ? ? ? ? ? 0

1? ? ? ? ? ? ? ? ? 0

1? ? ? ? ? ? ? ? ? 1

這里我還是說一下每個tower的正負樣本怎么選取,比如總共有兩個任務(wù)一個是ctr,一個是cvr

那么在ctr任務(wù)中的正負樣本是這樣:

正樣本:clicklabel為1, 負樣本clicklabel為0

在cvr任務(wù)中的正負樣本是這樣:

正樣本:clicklabel為1,buylabel也為1,負樣本:clicklabel為1,buylabel為0

其中click跟buy均為0的樣本只作為ctr任務(wù)的負樣本,這樣可以緩解曝光到購買的任務(wù)中正負樣本及其不平衡的問題。

四、實驗結(jié)果


總結(jié)下,第一,Shared-Bottom models的效果方差要明顯大于基于MoE的方法,說明Shared-Bottom模型有很多偏差的局部最小點;第二,如果任務(wù)相關(guān)度非常高,則MoE和MMoE的效果近似,但是如果任務(wù)相關(guān)度很低,則MoE的效果相對于MMoE明顯下降,說明MMoE中的multi-gate的結(jié)構(gòu)對于任務(wù)差異帶來的沖突有一定的緩解作用。

整體來看,這篇文章是對多任務(wù)學習的一個擴展,通過門控網(wǎng)絡(luò)的機制來平衡多任務(wù)的做法在真實業(yè)務(wù)場景中具有借鑒意義。在Datafuntalk的年終推薦算法大會中,很多公司都在多任務(wù)多場景下把MMoE推全量了,這也證明了MMoE在多任務(wù)學習任務(wù)中可以發(fā)揮的真正作用是有效的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容