大家在做模型的時(shí)候,往往關(guān)注一個(gè)特定指標(biāo)的優(yōu)化,如做點(diǎn)擊率模型,就優(yōu)化AUC,做二分類(lèi)模型,就優(yōu)化f-score。然而,這樣忽視了模型通過(guò)學(xué)習(xí)其他任務(wù)所能帶來(lái)的信息增益和效果上的提升。通過(guò)在不同的任務(wù)中共享向量表達(dá),我們能夠讓模型在各個(gè)任務(wù)上的泛化效果大大提升。這個(gè)方法就是我們今天要談?wù)摰闹黝}-多任務(wù)學(xué)習(xí)(MTL)。
所以如何判定是不是多任務(wù)學(xué)習(xí)呢?不需要看模型結(jié)構(gòu)全貌,只需要看下loss函數(shù)即可,如果loss包含很多項(xiàng),每一項(xiàng)都是不同目標(biāo),這個(gè)模型就是在多任務(wù)學(xué)習(xí)了。有時(shí),雖然你的模型僅僅是優(yōu)化一個(gè)目標(biāo),同樣可以通過(guò)多任務(wù)學(xué)習(xí),提升該模型的泛化效果。比如點(diǎn)擊率模型,我們可以通過(guò)添加轉(zhuǎn)化樣本,構(gòu)建輔助loss(預(yù)估轉(zhuǎn)化率),從而提升點(diǎn)擊率模型的泛化性。
為什么多任務(wù)學(xué)習(xí)會(huì)有效?舉個(gè)例子,一個(gè)模型已經(jīng)學(xué)會(huì)了區(qū)分顏色,如果直接把這個(gè)模型用于蔬菜和肉類(lèi)的分類(lèi)任務(wù)呢?模型很容易學(xué)到綠色的是蔬菜,其他更大概率是肉。正則化算不算多任務(wù)?正則化的優(yōu)化的loss不僅有本身的回歸/分類(lèi)產(chǎn)生的loss,還有l(wèi)1/l2產(chǎn)生的loss,因?yàn)槲覀冋J(rèn)為“正確且不過(guò)擬合”的模型的參數(shù)應(yīng)該稀疏,且不易過(guò)大,要把這種假設(shè)注入到模型中去學(xué)習(xí),就產(chǎn)生了正則化項(xiàng),本質(zhì)也是一個(gè)額外的任務(wù)。
MTL兩個(gè)方法
第一種是hard parameter sharing,如下圖所示:
比較簡(jiǎn)單,前幾層dnn為各個(gè)任務(wù)共享,后面分離出不同任務(wù)的layers。這種方法有效降低了過(guò)擬合的風(fēng)險(xiǎn): 模型同時(shí)學(xué)習(xí)的任務(wù)數(shù)越多,模型在共享層就要學(xué)到一個(gè)通用的嵌入式表達(dá)使得每個(gè)任務(wù)都表現(xiàn)較好,從而降低過(guò)擬合的風(fēng)險(xiǎn)。
第二種是soft parameter sharing,如下圖所示:
在這種方法下,每個(gè)任務(wù)都有自己的模型,有自己的參數(shù),但是對(duì)不同模型之間的參數(shù)是有限制的,不同模型的參數(shù)之間必須相似,由此會(huì)有個(gè)distance描述參數(shù)之間的相似度,會(huì)作為額外的任務(wù)加入到模型的學(xué)習(xí)中,類(lèi)似正則化項(xiàng)。
多任務(wù)學(xué)習(xí)能提效,主要是由于以下幾點(diǎn)原因:
隱式數(shù)據(jù)增強(qiáng):每個(gè)任務(wù)都有自己的樣本,使用多任務(wù)學(xué)習(xí)的話(huà),模型的樣本量會(huì)提升很多。而且數(shù)據(jù)都會(huì)有噪聲,如果單學(xué)A任務(wù),模型會(huì)把A數(shù)據(jù)的噪聲也學(xué)進(jìn)去,如果是多任務(wù)學(xué)習(xí),模型因?yàn)橐驜任務(wù)也要學(xué)習(xí)好,就會(huì)忽視掉A任務(wù)的噪聲,同理,模型學(xué)A的時(shí)候也會(huì)忽視掉B任務(wù)的噪聲,因此多任務(wù)學(xué)習(xí)可以學(xué)到一個(gè)更精確的嵌入表達(dá)。
注意力聚焦:如果任務(wù)的數(shù)據(jù)噪聲非常多,數(shù)據(jù)很少且非常高維,模型對(duì)相關(guān)特征和非相關(guān)特征就無(wú)法區(qū)分。多任務(wù)學(xué)習(xí)可以幫助模型聚焦到有用的特征上,因?yàn)椴煌蝿?wù)都會(huì)反應(yīng)特征與任務(wù)的相關(guān)性。
特征信息竊?。河行┨卣髟谌蝿?wù)B中容易學(xué)習(xí),在任務(wù)A中較難學(xué)習(xí),主要原因是任務(wù)A與這些特征的交互更為復(fù)雜,且對(duì)于任務(wù)A來(lái)說(shuō)其他特征可能會(huì)阻礙部分特征的學(xué)習(xí),因此通過(guò)多任務(wù)學(xué)習(xí),模型可以高效的學(xué)習(xí)每一個(gè)重要的特征。
表達(dá)偏差:MTL使模型學(xué)到所有任務(wù)都偏好的向量表示。這也將有助于該模型推廣到未來(lái)的新任務(wù),因?yàn)榧僭O(shè)空間對(duì)于足夠多的訓(xùn)練任務(wù)表現(xiàn)良好,對(duì)于學(xué)習(xí)新任務(wù)也表現(xiàn)良好。
正則化:對(duì)于一個(gè)任務(wù)而言,其他任務(wù)的學(xué)習(xí)都會(huì)對(duì)該任務(wù)有正則化效果。
多任務(wù)深度學(xué)習(xí)模型
Deep Relationship Networks:從下圖,我們可以看到卷積層前幾層是預(yù)訓(xùn)練好的,后幾層是共享參數(shù)的,用于學(xué)習(xí)不同任務(wù)之間的聯(lián)系,最后獨(dú)立的dnn模塊用于學(xué)習(xí)各個(gè)任務(wù)。
Fully-Adaptive Feature Sharing:從另一個(gè)極端開(kāi)始,下圖是一種自底向上的方法,從一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)開(kāi)始,并在訓(xùn)練過(guò)程中利用相似任務(wù)的分組準(zhǔn)則貪婪地動(dòng)態(tài)擴(kuò)展網(wǎng)絡(luò)。貪婪方法可能無(wú)法發(fā)現(xiàn)一個(gè)全局最優(yōu)的模型,而且只將每個(gè)分支分配給一個(gè)任務(wù)使得模型無(wú)法學(xué)習(xí)任務(wù)之間復(fù)雜的交互。
cross-stitch Networks: 如上文中所談到的soft parameter sharing,該模型是兩個(gè)完全分離的模型結(jié)構(gòu),該結(jié)構(gòu)用了cross-stitch單元去讓分離的模型學(xué)到不同任務(wù)之間的關(guān)系,如下圖所示,通過(guò)在pooling層和全連接層后分別增加cross-stitch對(duì)前面學(xué)到的特征表達(dá)進(jìn)行線性融合,再輸出到后面的卷積/全連接模塊。
A Joint Many-Task Model:如下圖所示,預(yù)定義的層級(jí)結(jié)構(gòu)由各個(gè)NLP任務(wù)組成,低層級(jí)的結(jié)構(gòu)通過(guò)詞級(jí)別的任務(wù)學(xué)習(xí),如此行分析,組塊標(biāo)注等。中間層級(jí)的結(jié)構(gòu)通過(guò)句法分析級(jí)別的任務(wù)學(xué)習(xí),如句法依存。高層級(jí)的結(jié)構(gòu)通過(guò)語(yǔ)義級(jí)別的任務(wù)學(xué)習(xí)。
weighting losses with uncertainty:考慮到不同任務(wù)之間相關(guān)度的不確定性,基于高斯似然最大化的多任務(wù)損失函數(shù),調(diào)整每個(gè)任務(wù)在成本函數(shù)中的相對(duì)權(quán)重。結(jié)構(gòu)如下圖所示,對(duì)像素深度回歸、語(yǔ)義和實(shí)例分割。
sluice networks: 下圖模型概括了基于深度學(xué)習(xí)的MTL方法,如硬參數(shù)共享和cross-stitch網(wǎng)絡(luò)、塊稀疏正則化方法,以及最近創(chuàng)建任務(wù)層次結(jié)構(gòu)的NLP方法。該模型能夠?qū)W習(xí)到哪些層和子空間應(yīng)該被共享,以及網(wǎng)絡(luò)在哪些層學(xué)習(xí)了輸入序列的最佳表示。
ESSM: 在電商場(chǎng)景下,轉(zhuǎn)化是指從點(diǎn)擊到購(gòu)買(mǎi)。在CVR預(yù)估時(shí)候,我們往往會(huì)遇到兩個(gè)問(wèn)題:樣本偏差和數(shù)據(jù)系數(shù)問(wèn)題。樣本偏差是指訓(xùn)練和測(cè)試集樣本不同,拿電商舉例,模型用點(diǎn)擊的數(shù)據(jù)來(lái)訓(xùn)練,而預(yù)估的卻是整個(gè)樣本空間。數(shù)據(jù)稀疏問(wèn)題就更嚴(yán)重了,本身點(diǎn)擊樣本就很少,轉(zhuǎn)化就更少了,所以可以借鑒多任務(wù)學(xué)習(xí)的思路,引入輔助學(xué)習(xí)任務(wù),擬合pCTR和pCTCVR(pCTCVR = pCTR * pCVR),如下圖所示:
對(duì)于pCTR來(lái)說(shuō),可將有點(diǎn)擊行為的曝光事件作為正樣本,沒(méi)有點(diǎn)擊行為的曝光事件作為負(fù)樣本
對(duì)于pCTCVR來(lái)說(shuō),可將同時(shí)有點(diǎn)擊行為和購(gòu)買(mǎi)行為的曝光事件作為正樣本,其他作為負(fù)樣本
對(duì)于pCVR來(lái)說(shuō),只有曝光沒(méi)有點(diǎn)擊的樣本中的梯度也能回傳到main task的網(wǎng)絡(luò)中
另外這兩個(gè)子網(wǎng)絡(luò)的embedding層是共享的,由于CTR任務(wù)的訓(xùn)練樣本量要遠(yuǎn)超過(guò)CVR任務(wù)的訓(xùn)練樣本量,從而能夠緩解訓(xùn)練數(shù)據(jù)稀疏性問(wèn)題。
DUPN:模型分為行為序列層、Embedding層、LSTM層、Attention層、下游多任務(wù)層(CTR、LTR、時(shí)尚達(dá)人關(guān)注預(yù)估、用戶(hù)購(gòu)買(mǎi)力度量)。如下圖所示
MMOE: 如下圖所示,模型(a)最常見(jiàn),共享了底層網(wǎng)絡(luò),上面分別接不同任務(wù)的全連接層。模型(b)認(rèn)為不同的專(zhuān)家可以從相同的輸入中提取出不同的特征,由一個(gè)Gate(類(lèi)似) attention結(jié)構(gòu),把專(zhuān)家提取出的特征篩選出各個(gè)task最相關(guān)的特征,最后分別接不同任務(wù)的全連接層。MMOE的思想就是對(duì)于不同任務(wù),需要不同專(zhuān)家提取出的信息,因此每個(gè)任務(wù)都需要一個(gè)獨(dú)立的gate。
PLE:即使通過(guò)MMoE這種方式減輕負(fù)遷移現(xiàn)象,蹺蹺板現(xiàn)象仍然是廣泛存在的(蹺蹺板現(xiàn)象指多任務(wù)之間相關(guān)性不強(qiáng)時(shí),信息共享就會(huì)影響模型效果,會(huì)出現(xiàn)一個(gè)任務(wù)泛化性變強(qiáng),另一個(gè)變?nèi)醯默F(xiàn)象)。PLE的本質(zhì)是MMOE的改進(jìn)版本,有些expert是任務(wù)專(zhuān)屬,有些expert是共享的,如下圖CGC架構(gòu),對(duì)于任務(wù)A而言,通過(guò)A的gate把A的expert和共享的expert進(jìn)行融合,去學(xué)習(xí)A。
最終PLE結(jié)構(gòu)如下,融合了定制的expert和MMOE,堆疊多層CGC架構(gòu),如下所示:
參考文獻(xiàn)
1. An overview of multi-task learning in deep neural networks. Retireved from https://arxiv.org/pdf/1706.05098.pdf
2. Long, M., & Wang, J. (2015)。 Learning Multiple Tasks with Deep Relationship Networks. arXiv Preprint arXiv:1506.02117. Retrieved from http://arxiv.org/abs/1506.02117
3. Lu, Y., Kumar, A., Zhai, S., Cheng, Y., Javidi, T., & Feris, R. (2016)。 Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Classification. Retrieved from http://arxiv.org/abs/1611.05377
4. Misra, I., Shrivastava, A., Gupta, A., & Hebert, M. (2016)。 Cross-stitch Networks for Multi-task Learning. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. https://doi.org/10.1109/CVPR.2016.433
5. Hashimoto, K., Xiong, C., Tsuruoka, Y., & Socher, R. (2016)。 A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks. arXiv Preprint arXiv:1611.01587. Retrieved from http://arxiv.org/abs/1611.01587
6. Yang, Y., & Hospedales, T. (2017)。 Deep Multi-task Representation Learning: A Tensor Factorisation Approach. In ICLR 2017. https://doi.org/10.1002/joe.20070
7. Ruder, S., Bingel, J., Augenstein, I., & S?gaard, A. (2017)。 Sluice networks: Learning what to share between loosely related tasks. Retrieved from http://arxiv.org/abs/1705.08142
8. Entire Space Multi-Task Model: An Effective Approach forEstimating Post-Click Conversion Rate. Retrieved from: https://arxiv.org/pdf/1804.07931.pdf
9. Perceive Your Users in Depth: Learning Universal User Representations from Multiple E-commerce Tasks. Retrieved from: https://arxiv.org/pdf/1805.10727.pdf
編輯:lyn
-
多任務(wù)
+關(guān)注
關(guān)注
0文章
18瀏覽量
9081 -
AUC
+關(guān)注
關(guān)注
0文章
9瀏覽量
6663 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5511瀏覽量
121372
原文標(biāo)題:一文"看透"多任務(wù)學(xué)習(xí)
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論