背景:只專注于單個模型可能會忽略一些相關任務中可能提升目標任務的潛在信息,通過進行一定程度的共享不同任務之間的參數(shù),可能會使原任務泛化更好。廣義的講,只要loss有多個就算MTL,一些別名(joint learning,learning to learn,learning with auxiliary task)
目標:通過權衡主任務與輔助的相關任務中的訓練信息來提升模型的泛化性與表現(xiàn)。從機器學習的視角來看,MTL可以看作一種inductive transfer(先驗知識),通過提供inductive bias(某種對模型的先驗假設)來提升模型效果。比如,使用L1正則,我們對模型的假設模型偏向于sparse solution(參數(shù)要少)。在MTL中,這種先驗是通過auxiliary task來提供,更靈活,告訴模型偏向一些其他任務,最終導致模型會泛化得更好。
MTL Methods for DNN
- hard parameter sharing (此方法已經(jīng)有26歲了<1993>)
在所有任務中共享一些參數(shù)(一般底層),在特定任務層(頂層)使用自己獨有參數(shù)。這種情況,共享參數(shù)得過擬合幾率比較低(相對非共享參數(shù)),過擬合的幾率是O(#tasks). [1]

- soft parameter sharing
每個任務有自己的參數(shù),最后通過對不同任務的參數(shù)之間的差異加約束,表達相似性。比如可以使用L2, trace norm等。

優(yōu)點及使用場景
- implicit data augmentation: 每個任務多少都有樣本噪聲,不同的任務可能噪聲不同,最終多個任務學習會抵消一部分噪聲(類似bagging的思想,不同任務噪聲存在于各個方向,最終平均就會趨于零)
- 一些噪聲很大的任務,或者訓練樣本不足,維度高,模型可能無法有效學習,甚至無法無法學習到相關特征
- 某些特征可能在主任務不好學習(比如只存在很高階的相關性,或被其他因素抑制),但在輔助任務上好學習??梢酝ㄟ^輔助任務來學習這些特征,方法比如hints(預測重要特征)[2]
- 通過學習足夠大的假設空間,在未來某些新任務中可以有較好的表現(xiàn)(解決冷啟動),前提是這些任務都是同源的。
- 作為一種正則方式,約束模型。所謂的inductive bias。緩解過擬合,降低模型的Rademacher complexity(擬合噪聲的能力,用于衡量模型的能力)
傳統(tǒng)方法中的MTL (linear model, kernel methods, Bayesian algo),其主要關注兩點:
- 通過norm regularization使模型在任務之間具有稀疏性
- 對多任務之間關系進行建模
1.1 Block-sparse regularization (mixed l1/lq norm)
目標:強制模型只考慮部分特征,前提為不同任務之間必須相關。
假設K個任務有相同的特征,和相同數(shù)量的模型參數(shù)。形成一個矩陣A(DxK),D為參數(shù)維度,K為任務數(shù),目標為這些任務只使用一些特征,也就是A的某些行也0。(最簡單的想法就是使其變?yōu)橐粋€low rank的矩陣;或者使用L1正則,因為L1可以約束某些特征到0,如果我們想使某些行為0,則只要先對行聚合操作,再對聚合后的結果使用L1即可,具體可以參考文章 [3]。通常,使用lq norm 先對行(每個特征)進行約束,之后使用L1 norm再約束,就是mixer l1/lq norm。
發(fā)展:
- **group lasso [4] **: l1/l2 norm,通過trace norm 解決l1/l2 norm非凸; 之后有人對此提出了upper bound for using group lasso in MTL [5]
- 當多個任務公共特征不多時,l1/lq norm可能沒有elment-wise norm效果好。有人提出了結合這兩種方法,分解參數(shù)矩陣為A = S + B,對S使用lassso,對B使用l1/l_infinite。[6]
- distributed version of group-sparse reguarization [7]
2.1 regularization way for learning task relationship
當任務之間相關性較弱,使用上述方法可能導致negative transfer(也就是負向效果)。在此情景下,我們希望增加的先驗知識是,某些任務之間是相關的,但是某些任務之間是相關性較差。可以通過引入任務clustering來約束模型??梢酝ㄟ^penalize 不同任務的parameter vectors 和他們的方差。限制不同模型趨向于不同的各自 cluster mean vector。

類似的,比如SVM中引入bayesian方法,事先指定一些cluster,目標在最大化margin的同時使不同任務趨向于各自的cluster中心;[8]
指定了cluster,可以通過聚類方法(類內(nèi),類間,自己的復雜度)對模型進行約束

有些場景下,任務可能不會出現(xiàn)在同一個cluster,但存在潛在的相似結構,比如group-lasso在樹結構和圖結構的任務。
2.2 other methods for learning task relationship
- KNN methods for task clustering. [9]
- semi-supervised learning for learning common structures of some related tasks. [10]
- 多任務BNN,通過先驗控制多任務的相似,模型復雜度大,可以使用sparse approximation貪心選擇樣本 [11];高斯過程中通過不同任務之間使用相同的covariance matrix和相同的先驗(進而也降低復雜度)[12]
- 對每個task-specific layers 使用高斯先驗,可以使用一個cluster的混合分布(事先定好)來促使不同任務的相似 [13]
- 進而,通過一個dirichlet process采樣分布,使模型任務之間的相似性和cluster的數(shù)目。相同cluster的任務使用同一個模型 [14]
- hierarchical Bayesian model,學習一個潛在的任務結構 [15]
- MTL extension of the regularized Perceptron,encodes task relatedness in a matrix. 之后可以通過不同正則對其限制(比如rank)[16]
- 不同tasks屬于不同的獨立cluster,每個cluster存在于一個低維空間,每個cluster的任務共用同一個模型。通過交替迭代學習不同cluster的分配權重和每個cluster的模型權重。假定任務之間的絕對獨立可能不太好 [17]
- 假設兩個不同cluster的兩個任務之間存在重疊,存在一部分的latent basis tasks。令每個任務的模型參數(shù)是latent basis tasks的線性組合,對latent basis tasks限制為稀疏的。重疊部分控制共享程度 [18]
- 學習一小撮shared hypotheses,之后map each task to a single hypothesis [19]
DNN中的MTL
Deep Relation Network [20]
計算機視覺中,一般共享卷積層,之后是任務特定的DNN層。通過對任務層設定先驗,使模型學習任務之間的關系。

Fully-Adaptive Feature Sharing [21]
從一個簡單結構開始,貪心地動態(tài)地加寬模型,使相似的模型聚簇。貪心方法可能無法學到全局最優(yōu)結構;每個分支一個任務無法學習任務之間的復雜關系。

Cross-stitch Networks [22]
soft parameter sharing,通過線性組合學習前一層的輸出,允許模型決定不同任務之間的分享程度

Low supervision [23]
尋找更好的多任務結構,復雜任務的底層應該被低級任務目標來監(jiān)督(比如NLP前幾層學習一個NER或POS輔助任務)
A Joint Many-task Model [24]
對多個NLP任務預先設定層級結構,之后joint learning

Weighting losses with uncertainty [25]
不考慮學習共享的結構,考慮每個任務的不確定性。通過優(yōu)化loss(Gaussian likelihood with task-dependant uncertainty),調(diào)節(jié)不同tasks之間的相似性。

Tensor factorisation for MTL [26]
對每層參數(shù)進行分解,為shared和task-specific
Sluice Networks [27]
大雜燴(hard parameter sharing + cross stitch networks + block-sparse regularization + task hierarchy(NLP) ),使得模型自己學習哪些層,哪些子空間來共享,在哪層模型找到了inputs的最優(yōu)表達。

當不同的任務相關性大,近似服從相同的分布,共享參數(shù)是有益的,如果相關性不大或者不相關的任務呢?
早期工作是預先為每對任務指定哪些層來分享,這種方法擴展性差且模型結構嚴重有偏;當任務相關性下降或需要不同level推理時,hard parameter sharing就不行了。
目前比較火的是learning what to share(outperform hard parameter sharing);還有就是對任務層級進行學習在任務具有多粒度因素時也是有用的。
Auxiliary task
我們只關注主任務目標,但是希望從其他有效的輔助任務中獲利!
目前選擇一些輔助任務方法
- Related task:常規(guī)思路(自動駕駛+路標識別; query classification+web search;坐標預測+物體識別;duration+frequency)
- Adversarial:在domain adaption,相關的任務可能無法獲取,可以使用對抗任務作為negative task(最大化training error),比如輔助任務為預測輸入的domain,則導致主任務模型學習的表征不能區(qū)分不同的domain。
- Hints:前面提到的某些特征在某些任務不好學,選擇輔助任務為predicting features(NLP中主任務為情感預測,輔助任務為inputs是否包含積極或消極的詞;主任務name error detection,輔助任務為句子中是否有name)
- Focusing attention:使模型注意到那些在任務中可能不容易被注意到的部分(自動駕駛+路標檢測; 面部識別+頭部位置識別)
- Quantization smoothing:某些任務中,訓練目標是高度離散化的(人為打分,情感打分,疾病風險等級),使用離散程度較小的輔助任務可能是有幫助的,因為目標更平滑使任務更好學
- prediting inputs:有些場景下,可能不會選擇某些特征,由于其不利于預估目標,但是這可能這些特征對模型的訓練有一定的幫助,這種場景下,這些特征可以作為outputs而不是inputs
- Using the future to predict the presnet:有些特征只有在決策之后才會有,比如自動駕駛時,當車路過一些物體才得到這些物體的數(shù)據(jù);醫(yī)療中只有使用過藥物才知此藥物的效果。這些特征不能作為inputs,但是可以用作輔助任務,來給主任務在訓練過程中透露信息。
- representation learning:auxiliary task大多都是潛在地學習一些特征表達,且一定程度上都利于主任務。也可以顯示地對此學習(使用一個學習遷移特征表達的輔助任務,比如AE)
那么,哪些auxiliary task是有用的呢?
auxiliary task背后的假設是輔助任務應該在一定程度上與主任務相關,利于主任務的學習。
那么如何衡量兩個任務是否相關呢?
一些理論研究:
- 使用相同的特征做決策
- 相關的任務共享同一個最優(yōu)假設空間(having the same inductive bias)
- F-related: 如果兩個任務的數(shù)據(jù)是通過一個固定分布經(jīng)過一些變換得到 [28]
- 分類邊界(parameter vectors)接近
任務是否相似不是非0即1的,越相似的任務,收益越大。learning what to share允許我們暫時忽略理論上的不足,即使相關性不好的任務之間也能有所收益。但是發(fā)展任務之間的相似性對我們在選擇輔助任務上也是有絕對的幫助的。
MTL learning Tips
- 緊湊分布均勻的label的輔助任務更好(from POS in NLP)[29]
- 主任務訓練曲線更快平穩(wěn),輔助任務平穩(wěn)慢(還未平穩(wěn))[30]
- 不同任務尺度不一樣,任務最優(yōu)學習率可能不同
- 某個任務的輸出可以作為某些任務的輸入
- 某些任務的迭代周期不同,可能需要異步訓練(后驗信息;特征選擇,特征衍生任務等)
- 整體loss可能被某些任務主導,需要整個周期對參數(shù)進行動態(tài)調(diào)整(通過引入一些不確定性,每個任務學習一個噪聲參數(shù),統(tǒng)一所有損失 [31]
- 某些估計作為特征(交替訓練)
總結
20多歲的hard parameter shareing還是很流行,目前熱點learning what to learn也很有價值,我們對tasks的理解(similarity, relationship, hierrarchy, benefit for MTL) 還是很有限的,希望以后有重大發(fā)展吧。
可研究方向
- learning what to share
- measurement for similarity of tasks
- using task uncertainty
- 引入異步任務(特征學習任務),采用交替迭代訓練
- 學習抽象子任務;學習任務結構(類似強化里面的hierarchy learning)
- 參數(shù)學習輔助任務
- More...
備注:本文學習資料主要來自 An Overview of Multi-Task Learning in Deep Neural Networkshttps://arxiv.org/abs/1706.05098**
Reference
[1] A Bayesian/information theoretic model of learning to learn via multiple task sampling. http://link.springer.com/article/10.1023/A:1007327622663
[2] Learning from hints in neural networks. Journal of Complexity https://doi.org/10.1016/0885-064X(90)90006-Y
[3] Multi-Task Feature Learning http://doi.org/10.1007/s10994-007-5040-8
[4] Model selection and estimation in regression with grouped variables
[5] Taking Advantage of Sparsity in Multi-Task Learninghttp://arxiv.org/pdf/0903.1468
[6] A Dirty Model for Multi-task Learning. Advances in Neural Information Processing Systems https://papers.nips.cc/paper/4125-a-dirty-model-for-multi-task-learning.pdf
[7] Distributed Multi-task Relationship Learning http://arxiv.org/abs/1612.04022
[8] Regularized multi-task learning https://doi.org/10.1145/1014052.1014067
[9] Discovering Structure in Multiple Learning Tasks: The TC Algorithm http://scholar.google.com/scholar?cluster=956054018507723832&hl=en
[10] A Framework for Learning Predictive Structures from Multiple Tasks and Unlabeled Data
[11] Empirical Bayes for Learning to Learn
[12] Learning to learn with the informative vector machine https://doi.org/10.1145/1015330.1015382
[13] Task Clustering and Gating for Bayesian Multitask Learning https://doi.org/10.1162/153244304322765658
[14] Multi-Task Learning for Classification with Dirichlet Process Priors
[15] Bayesian multitask learning with latent hierarchies http://dl.acm.org.sci-hub.io/citation.cfm?id=1795131
[16] Linear Algorithms for Online Multitask Classification
[17] Learning with whom to share in multi-task feature learning
[18] Learning Task Grouping and Overlap in Multi-task Learning
[19] Learning Multiple Tasks Using Shared Hypotheses
[20] Learning Multiple Tasks with Deep Relationship Networks http://arxiv.org/abs/1506.02117
[21] Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Classification http://arxiv.org/abs/1611.05377
[22] Cross-stitch Networks for Multi-task Learning https://doi.org/10.1109/CVPR.2016.433
[23] Deep multi-task learning with low level tasks supervised at lower layers
[24] A Joint Many-Task Model: Growing a Neural Network for Multiple NLP Tasks http://arxiv.org/abs/1611.01587
[25] Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics http://arxiv.org/abs/1705.07115
[26] Deep Multi-task Representation Learning: A Tensor Factorisation Approach https://doi.org/10.1002/joe.20070
[27] Sluice networks: Learning what to share between loosely related tasks http://arxiv.org/abs/1705.08142
[28] Exploiting task relatedness for multiple task learning. Learning Theory and Kernel Machines https://doi.org/10.1007/978-3-540-45167-9_41
[29] When is multitask learning effective? Multitask learning for semantic sequence prediction under varying data conditions http://arxiv.org/abs/1612.02251
[30] Identifying beneficial task relations for multi-task learning in deep neural networks http://arxiv.org/abs/1702.08303
[31] Multitask learning using uncertainty to weigh losses for scene geometry and senantics