©NLP論文解讀 原創•作者 |小欣
導讀
本文重點對2021年KDD的一篇關於多任務學習的論文(也是美團在多任務學習領域的一個應用)《Modeling the Sequential Dependence among Audience Multi-step Conversions with Multi-task Learning in Targeted Display Advertising》進行解讀。
在該論文的多任務學習部分,作者對前面經典的多任務學習模型做了簡單的回顧,而且,該論文也是在之前的經典多任務學習模型的基礎上進行改進的。
所以,本文第一部分也先帶大家回顧一下經典的多任務學習模型,第二部分再解讀美團的這篇新的論文。
經典的多任務學習模型回顧
(MLP方向)

經典模型一:MMOE模型
(由Basemodel到OMOE到MMOE))
該模型源於論文:
《Recommending What Video to Watch Next: A Multi-task Ranking System》,由谷歌提出。
1、Hard parameter sharing:

共享層+Tower層:
不同任務共用shared層的神經網絡,不同task訓練不同的tower層網絡(和圖中對應的(task-specific layers)。
該模型適用於task之間不沖突的問題(要求task 相似),如果task不相似,那么共享層只會使目標的預測變得糟糕。
2、Soft parameter sharing:

該模型並沒有共享層,每個任務訓練自己的模型,加入不同模型之間參數向量距離的正則化項。
從而使得訓練中不同模型之間參數趨於相似。實際上也是利用了不同task之間的相似性,來對不同模型進行約束,這種模型由於不共享底層,現在實際應用中較少使用。
那么共享底層參數的意義是什么呢?共享底層參數可以減少單獨訓練模型的參數數量,有利於防止過擬合,提高模型訓練速度。
更重要的是,共享底層參數能夠挖掘出不同任務之間的關聯並互相利用這種關聯來對不同的任務訓練提供幫助,這是單任務學習不能做到的。
要注意,模型要求task之間類似,只有當task之間類似(不存在沖突)時,底層共享網絡才有意義,為什么要求多任務(task)之間要有相似性呢,兩張圖的例子清晰易懂:
任務相似的情況下:

當task之間存在沖突或者說相差甚遠時,底層共享網絡將失去它的意義:

下面開始介紹MMOE模型,MMOE模型就是基於hard parameter sharing的基礎模型上改進的。
由base模型到OMOE模型:
(one-gate MoE)
one-gate MoE模型:單門混合專家模型,如下圖所示:

OMOE模型理解:
在共享層中,有k個expert專家,每個expert專家層相當於一個多層神經網絡,多個專家層就是多個多層網絡,這些網絡都屬於共享層,由下游的不同task共同享用;
該模型使用多專家層實際就是使用多個多層網絡來替代之前單一多層網絡共享層,每個專家層經過前向傳播后輸出一個vector。相較於基礎模型,輸出了k個vector。
然后該模型中還添加了門控層:Gate層。Gate層是一個淺層的神經網路,最后經過softmax層,輸出的是k個標量,給每個expert專家層分配一個權重參數,所有權重參數之和等於1;
gate層可以理解為一個簡單的attention model,即給每個專家層分配不同的注意力權重。gate層也屬於共享層。模型的Tower 層部分與basemodel完全一致。
由OMOE模型到MMoE模型
(Multi-gate Mixture-of-Experts)
多門多專家混合模型網絡結構如下圖所示:

MMoE模型跟OMoE模型唯一的不同之處:從不同task共享Gate層到不同task訓練不同的Gate層。此時的Gate不再是共享層,不同task會訓練出不同的Gate層。
Gate在這里的功能形象地說就是:針對不同的任務挑選出擅長此任務的專家來處理該任務,或者說給擅長處理特定任務的專家更多的話語權。
MMoE的實現:
https://github.com/hxyue/hub-recsys/blob/master/Deep/MMOE/mmoe.py

經典模型二:PLE模型
該算法來自[騰訊] RecSys2020最佳長論文-多任務學習模型PLE
《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》
該多任務學習算法的場景是騰訊視頻app中的視頻推薦,下圖表示整個騰訊視頻的推薦算法框架:

每個視頻的最終得分計算
(Final score):

文中特別關注了其中的兩個指標:VTR和VCR
VTR: View Through Rate(binary)是否看完整個視頻,是一個二分類問題
VCR: View Completion Ratio (regression) 看了整個視頻總長的比率,是一個回歸問題
文中指出這兩個指標的關系復雜,而對於關系比較復雜的兩個任務,在傳統的多目標推薦算法會存在的問題:
Seesaw phenomenon(蹺蹺板現象):某些任務表現的提高都要以降低其他任務的表現作為代價。
VCR任務預測准確率的提高,往往會以VTR任務預測准確率的降低為代價,反過來亦然。蹺蹺板現象具體的表現如下圖所示:其中,表現最好的是我們接下來要介紹的PLE模型。

上圖是使用傳統模型的評價結果,
兩個任務分別為VCR,VTR(關系復雜的兩個任務)
使用到的傳統模型如下:


所用的模型中,除了我們即將介紹的PLE模型外,我們前面介紹的MMOE模型在處理兩個存在復雜關系的任務時,表現是最好的。
而PLE模型正是在MMOE模型的基礎上改進而來的。作者先提出MMOE模型所存在的問題:然后再改進着兩個問題,提出了PLE模型。問題如下:
問題1:
MMOE模型中,專家層是所有任務共享的,由於所有專家層是共享的,無法很好地獲取到不同任務之間地復雜關系。
問題2:
不同地專家之間並沒有很好的交互,進一步限制了多任務聯合優化的性能,MMoE只有不同專家輸出向量的簡單疊加。
作者為解決問題1提出的模型:
Customized Gate Control(CGC)


CGC模型的專家中,既有共享的專家,又有每個任務獨有的,能夠更好地處理不同任務之間地關系。
具體的計算過程如上圖所示。
作者為了解決問題二,於是又在CGC的基礎上提出的模型:PLE模型,下圖是PLE模型的完整結構。

PLE模型與上面CGC模型的區別在於:
Multi-Level Extraction Networks,即PLE模型存在不同專家之間的多層交互。
這樣做的好處是:1:使得專家層更好地進行交流2:Extraction Networks除了針對特定任務的專家設置門外,還為共享的專家設置門控網絡,將這一層所有專家的知識進行整合。
因此,PLE中不同任務的參數並沒有像CGC那樣在早期層完全分離,而是在多層中逐步分離。
上面是對多層感知機中經典的多任務學習模型做了介紹,下面開始解讀美團在多任務領域的最新應用論文:《Modeling the Sequential Dependence among Audience Multi-step Conversions with Multi-task Learning in Targeted Display Advertising》,將從一下幾個方面對此論文進行解讀:
1:論文的應用背景。
2:前面多任務學習算法的缺點和該論文嘗試解決的問題。
3:論文提出的新的多任務學習算法。
4:實驗結果。
1、論文的應用背景
該論文是解決美團的信用卡業務中多任務的預測問題,對於信用卡業務而言,有以下任務需要我們去預測:
曝光(Impression):意味着廣告被展示給了特定的用戶,這些用戶是根據一些排序指標選中的,比如CTR、CVR等等。
點擊(Click):用戶如果對這個廣告內容感興趣的話,他會點擊這個廣告,點擊后,就會進入申請表格頁。
申請(Application):進入申請表格頁后用戶可以填寫申請表格,並且點擊申請按鈕來申請一張信用卡。
核卡(Approval):也稱授信,意味着用戶信用良好,通過申請並被授予了一定的信用卡額度。在我們的系統中,這在多數情況下也是一個系統實時判斷的過程。
激活(Activation):用戶在授信並且收到郵寄的信用卡之后,可以激活信用卡並使用。是否激活的標簽通常比較難獲得,因為信用卡郵寄需要一定的時間,而且用戶主動去激活也需要一定的表現期,所以這里類別不平衡更為嚴重。在這里,我們通常看用戶是否會在核卡后14天內激活信用卡。
需要注意的是:以上的轉化步驟有序列依賴,這意味着只有前一個步驟發生了,后一個步驟才可能發生。基於這個約束,用戶只可能有5個不同的轉化階段如下圖所示:

由上圖可以看出,前面的任務跟后面的任務是強關聯的。在我們的信用卡業務中,除了被動的曝光步驟外,我們建模了四個任務。
其中核卡、激活是主要任務,點擊、申請是輔助任務。這是因為如果用戶只完成了點擊和申請步驟,而核卡步驟還沒有完成,那么就不是一次有效轉化,就會造成資源的浪費(例如計算和流量資源)。
因此,我們主要關注最后兩個端到端的轉化任務,即曝光->核卡和曝光->激活。
2、前面多任務學習算法的缺點和該論文嘗試解決的問題
在前面所展示的美團信用卡的應用背景下,若使用前面提過的多任務學習模型,會有一下問題:
A:后兩個任務的正樣本數較少,且激活是延遲反饋的
B:前面的多任務學習模型中,tower部分,每個任務直接是沒有交流的,而恰恰,tower部分的向量包含着更加豐富,更加有價值的信息。
C:前面的多任務學習模型雖然各個任務之間在shared層有交互,但是,並沒有把多任務當成一個動作序列,沒有考慮到前面動作對后面動作的影響。
基於此,該輪文針對序列依賴任務,提出了一種自適應信息遷移多任務(Adaptive Information Transfer Multi-task,AITM)框架,該框架通過自適應信息遷移(AIT)模塊對用戶多步轉化之間的序列依賴進行建模,同時也加強了不同任務tower之間的信息交互。
AIT模塊可以自適應地學習在不同的轉化階段需要遷移什么和遷移多少信息。此外,通過在損失函數中加入行為期望校准器,AITM框架可以更准確地識別端到端轉化。
3、論文提出的新的多任務學習算法:AITM算法
下圖是AITM算法的簡單框架:

首先,輸入特征經過任務共享的Embedding分別輸出到多個Tower網絡中。
通過共享Embedding模塊,一方面可以用前邊任務的豐富的正樣本信息來學習Embedding表示,從而緩解后續任務的類別不平衡問題,另一方面可以減少模型參數。
Tower網絡可以根據自己需要定制,這里我們只使用了簡單的MLP,我們也可以使用其他經典的神經網絡模塊。這里的shared層和tower層其實跟我們前面學習的多任務學習模型並沒有區別:
該模型的改進關鍵是在AIT模塊和Info模塊:
AIT模塊利用當前任務Tower輸出的向量以及前一個任務傳來的信息來學習任務間如何融合信息。其實就是在對序列依賴進行建模,同時也加強了不同任務tower之間的信息交互。
AIT模塊計算如下:

上面公式,第一個公式其實是在利用了特殊設計的注意力機制AIT來自動為遷移信息 和原始信息 來分配權重(注意力機制的設計下面在細究)。
而遷移的信息是通過函數來學習的,這里可以是一個簡單的全連接層,用來學習兩個相鄰的任務間應該遷移什么信息。
這一步對應的是上圖中的info模塊,在上面公式中使用g函數表示。而該函數的輸入是前一個任務的AIT模塊的輸出。
具體地,AIT模塊中的注意力機制如下設計:(AIT來自動為遷移信息 和原始信息 來分配權重):

這里類似於self-attention的注意力機制。這里的、、函數表示的都是簡單的多層神經網絡(當然你也可以重新設計這部分)。
而公式中的 表示的是 或者,有且僅有這兩個輸入值。類似於self-attention機制,向量和 向量經過、、函數之后,分別得到類似於self-attention模型中的Value,Query,Key。然后通過內積和softmax函數計算兩個不同Value(, )的權重。
也就是在自動地給遷移信息和原始信息來分配權重,最后兩個向量的加權之和就是我們AIT模塊最終輸出的向量。
而對於第一個任務來說,由於沒有前一個任務的信息輸入,則。這便是整個AIT模塊的學習過程,其中很大程度上借鑒了self-attention機制的思想。
最后,我們通過在損失函數中施加校准器來約束概率的輸出盡量滿足序列依賴。損失函數是交叉熵+校准器約束,其中定義了校准器約束強度:

后面一項是校准器:

加入該項約束的目的是我們的多任務是連續不可斷的,如果前面的任務預測結果是:不發生,那么后面的所有任務都不能發生,加入該約束使得模型更符合我們的實際業務。
4、實驗結果
論文中使用兩個數據集進行了離線實驗和在線實驗。工業數據集是美團聯名卡廣告曝光的所有樣本,我們取了一段時間的樣本。
該數據集有4個任務,分別是點擊、申請、核卡、激活。在我們的業務中,我們只關注核卡和激活的轉化指標,這兩步轉化才是有效轉化。
公開數據集是使用的阿里的點擊轉化預估數據集,這個數據集有點擊、購買兩個任務。最終的實驗結果都是正向的.
具體可以去閱讀論文:
https://arxiv.org/abs/2105.08489
該論文提出了一種自適應信息遷移多任務(AITM)框架來建模用戶多步轉化之間的序列依賴關系。
本文提出的自適應信息遷移(AIT)模塊配合行為期望校准器,可以學習在不同的轉化階段需要遷移什么和遷移多少信息,以提高序列依賴多任務學習的表現。
離線和在線實驗結果表明,與最新的基線模型相比該框架有顯著的提升。
該框架被部署在美團App中,利用它來為對美團聯名卡有高轉化率的用戶實時展示聯名卡廣告。
多任務學習模型應用廣泛,我們將持續關注它的發展。