我是靠谱客的博主 体贴路灯,这篇文章主要介绍多任务学习(Multi-Task Learning),现在分享给大家,希望可以做个参考。

  本节主要聊聊从单任务到多任务 (Multi-Task) 的机器学习。

  那什么是Multi-Task Learning呢?我们又是怎么来做这个Multi-Task Learning的呢?

What is Multi-Task Learning?

  首先我们需要知道什么是一个task呢?在一个task里面我们会有一个量化的指标,有这个task生成出来的数据,以及我们会有一个model去optimize我们要的指标,base on 这些数据上面。

  一个task是一个single的input source,希望learn an output target,也就是输入一个向量,输出一个y,去做一个正常的拟合。

  Multi-task Learning (MTL) 可以表示为:

  • single input source → rightarrow → multiple output targets

  比如输入一段文本,输出这段文本的类别是什么,分类问题 (这段文本属于什么题材、感情色彩怎么样等等这些方面)。

  • multiple input sources → rightarrow → single output target.

  这种多个输入source,单个输出source的情况有:输入各种题材的文章(新闻类别、淘宝评论等等这些) 需要输出文章情感是positive还是negative的。

  • or a mixture of both

  当然也可以是上述两种情况的混合。

Why it Works?

  为么multi-task会work,为什么我们要去做这么一件复杂的事情?原因就是我们希望在多个task上面去找到一些共性,或者说找到一些区别,我们利用这些共性,就相当于我们会多了一些数据。或者说task之间有一些协同,能够获得更好的performance,或者说是对于每一个task我们需要更少的数据就能达到较好的效果。

  • Multi-task learning (MTL) is a subfield of machine learning in which multiple learning tasks are solved at the same time, while exploiting commonalities and differences across tasks.

  在multi-task中,往往是多个task一起学习,而在transfer learning 和learning to learn里面,在是否一起学习这个问题上会有点不一样。

  我们希望在所有task上面的performance得到保证,但是有于整体的performance上升,可能会有小部分的task性能牺牲。

  • This can result in improved learning efficiency and prediction accuracy for the task-specific models, when compared to training the models separately.

  上述multi-task能做成功的假设是希望部分task之间具备相关性。数据之间具备共性,能够相互参考。

  • All the tasks in learning, or at least a subset of them, are associated with each other

  • Implicit data augmentation

  这些数据之间可以做个implicit data augmentation (隐式数据增强),使得我们获得更多的训练数据。那我们如何从其它task上面借鉴数据过来,做数据增强呢?

  • Eavesdropping

  直接从pattern上面做,比如某些feature G G G,它在B task上面能够很容易地去学出来,但在A task上面很难去学出来,所以我们可以通过B task学出来的一些特征去用在A task,能够improve A task上的performance。

  some features G G G are easy for task B but difficult for A,through MTL, we can allow A to learn G G G from B.

  • Representation bias

  prefer more general representations,希望每个model在学习每个task的时候能够把这个数据表征更加general的representation,而不是在某一个task上特殊的表征。希望能够在很多task上面做的很好,这项就能帮助其他的task。

Related Research Fields

  再来比较一下Transfer learning和learning to learn。

  • Transfer learning (TL)

  Multi-task是希望把每个task都做好,而在transfer learning里面会有primary task和secondary task,最后的performance只看在primary task上的performance,其它所有的task都是辅助型的。主要可以分为以下几点:

  1. The primary task and auxiliary tasks; can be seen as a special case of MTL, which treats tasks equally
  2. Assumption: the associated secondary task can provide extra information to the primary task, and improves the generalization of the main task; almost same as MTL
  3. Asymmetric MTL: a new task is arrived when multiple tasks have been learned jointly (当一个新的task来了之后怎么快速去学习?)
  • Learning-to-learn(LTL)

  元学习 (Learning-to-learn)说的是在一次一次地学习过程中积累了很多经验,当碰到一个新的task,如何利用这些已有的经验快速学习。

  LTL aims to perform a new task by exploiting the knowledge acquired when solving previous tasks

Multi-Task Formulation

  这个时候会有一个非常general的formulation,先说一下大概的框架,之后再细化:

  我们现在有 m m m个task,每一个task相应地会有 N m N_{m} Nm​个数据 X m X^{m} Xm,以及 D D D个dimension的feature,input matrix of the m-th task 可以表示为如下形式:

X m = R N m × D mathbf{X}^{m} = mathbb{R}^{N_{m} times D} Xm=RNm​×D

  label y m y^{m} ym是 N m × 1 N_{m} times 1 Nm​×1的这样一个向量 (corresponding output vector ):

y m ∈ R N m × 1 boldsymbol{y}^{m} in mathbb{R}^{N_{m} times 1} ym∈RNm​×1

  考虑回归问题 (for regression problem):

y m ≈ X m w m boldsymbol{y}^{m} approx mathbf{X}^{m} boldsymbol{w}^{m} ym≈Xmwm

  其中 w m w^{m} wm是一个 D D D 维的feature vector所对应的参数vector,我们会在每一个task上面得到一个loss function L L L,以及我们最后会performer一个regularization在整个weight matrix上面,weight matrix就是每一个task上的 D D D 维的feature vector所对应的weight vector w i w^{i} wi,总共会有 [ w 1 , ⋯   , w M ] [w^{1},cdots ,w^{M}] [w1,⋯,wM]这个多个vector,把他排在一起变成一个矩阵。loss function L L L表示为:

min ⁡ W = [ w 1 ⋯ w M ] ∑ m = 1 M L ( X m , y m , w m ) + λ Reg ⁡ ( W ) min _{mathbf{W}=left[boldsymbol{w}^{1} cdots boldsymbol{w}^{M}right]} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda operatorname{Reg}(mathbf{W}) W=[w1⋯wM]min​m=1∑M​L(Xm,ym,wm)+λReg(W)

   N m N_{m} Nm​ 表示 number of samples, D D D 表示number of features, M M M 表示number of tasks。

  为了让上述的multi-task框架更加general,可以应用于不同的场景,假设每一个task都是Homogeneous的 (Feature and parameter spaces of these tasks are the same),每个task的feature都是一样的,因此参数的space也是一样的,取值不同而已。这种情况我们可以去做比较general的case,如果不一样的话,也能做,但是这些方法就没有共通性,去apply到其它的场景上去。

Questions in MTL

  那我们如何perform Multi-task learning?那到底什么时候我们要去做multi-task learning?

  • When to share knowledge?

  也就是什么时候做single-task or multi-task? 就是每个task 独立学习还是做multi-task joint learning?很多时候会依赖与domain expert,这种场景下其他的task会不会帮到你?一起成长?或者perform一些model selection,道理哪些model适合去做multi-task improvement?这看起来好像都是一些experts的knowledge。或者use multi-task models which can degenerate to the single-task model,比如multi-task 发现合起来训练还不如每个task 单独拿出来learn的效果好。

  • What to share?(sharing through which approach)

  那到底可以去share什么呢?比如某些重要的feature (feature-level (feature-based) ) 去share,或者哪些instance非常重要 (instance-level (instance-based) ),以及这个task和另外一个task存在什么样的关系 (task-level (parameter-based))?

An Typical Example of MTL

  The most common multi-task learning objective 举一个具体的例子来说明一下,For two tasks, regularize on the task parameters:

min ⁡ w 1 , w 2 α L ( Y 1 , f w 1 ( X 1 ) ) + ( 1 − α ) L ( Y 2 , f w 2 ( X 2 ) ) + λ 1 ( ∥ w 1 ∥ 2 + ∥ w 2 ∥ 2 ) + λ 2 ∥ w 1 − w 2 ∥ 2 begin{aligned} min _{boldsymbol{w}^{1}, boldsymbol{w}^{2}} & alpha Lleft(mathbf{Y}^{1}, f_{boldsymbol{w}^{1}}left(mathbf{X}^{1}right)right)+(1-alpha) Lleft(mathbf{Y}^{2}, f_{boldsymbol{w}^{2}}left(mathbf{X}^{2}right)right) \ &+lambda_{1}left(left|boldsymbol{w}^{1}right|^{2}+left|boldsymbol{w}^{2}right|^{2}right)+lambda_{2}left|boldsymbol{w}^{1}-boldsymbol{w}^{2}right|^{2} end{aligned} w1,w2min​​αL(Y1,fw1​(X1))+(1−α)L(Y2,fw2​(X2))+λ1​(∥∥​w1∥∥​2+∥∥​w2∥∥​2)+λ2​∥∥​w1−w2∥∥​2​

  如上公式所示,对于两个task,有两套参数,分别在两个task上面做modeling,loss函数可以表示为上公式所示。最后加上两套参数的距离 ∣ ∣ w 1 − w 2 ∣ ∣ ||boldsymbol{w}^{1}-boldsymbol{w}^{2}|| ∣∣w1−w2∣∣做正则化 (Soft parameter sharing),比如说先学task 1再学task 2,那么task 1的参数可以用于辅助task 2的参数进行学习。

Non-Neural Models

  在Neural Methods里面更多的是参数方面的共享,在非参数层面可以做一些难的case,更多时候我们用linear model去做一些尝试。

  • Formulation

min ⁡ W = [ w 1 ⋯ w M ] ∑ m = 1 M L ( X m , y m , w m ) + λ Reg ⁡ ( W ) min _{mathbf{W}=left[boldsymbol{w}^{1} cdots boldsymbol{w}^{M}right]} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda operatorname{Reg}(mathbf{W}) W=[w1⋯wM]min​m=1∑M​L(Xm,ym,wm)+λReg(W)

  上式中的 ∑ m = 1 M L ( X m , y m , w m ) sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right) ∑m=1M​L(Xm,ym,wm)是data fidelity term:computes how well the target predictions match with the ground truth targets. 表示fitdata的精准度。第二项是Regularization term,表示weight matrix在task之家怎么去做正则化,regularizes the weight matrix to garner the relationship among different learning tasks .

  1. Data Fidelity Term

  multi-task有很多种形式,具体可以分为以下几种情况:

在这里插入图片描述

  • SIMO: 这种情况can be reduced to single-task learning (multi-class learning),可以把loss看成是多个single-task相加,在regularization上面需要处理一些参数共享。
  • MISO: 在这种多输入单输出的情形下cannot be simply reduced to single-task learning (other data sources maybe not available while predicting) ,因为它是一个single的output。
  1. Regularization Term

  在Regularization项上面,主要有Feature-level和 Task-level上的regularization。

  在feature-level上面主要包括两种:feature selection和feature transformation。

  • Feature Selection
  1. Lasso:

min ⁡ W = [ w 1 ⋯ w M ] ∑ m = 1 M L ( X m , y m , w m ) + λ ∣ ∣ W ∣ ∣ 1 min _{mathbf{W}=left[boldsymbol{w}^{1} cdots boldsymbol{w}^{M}right]} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda ||boldsymbol{W}||_{1} W=[w1⋯wM]min​m=1∑M​L(Xm,ym,wm)+λ∣∣W∣∣1​

  其参数的图形化表示如下所述:

在这里插入图片描述

  每一列表示一个task的参数,每一行表示每个feature的位置表示的那个参数。当采用 L 1 L_{1} L1​ regularization 时 ∣ ∣ w ∣ ∣ = ∑ i j ∣ w i , j ∣ ||w|| = sum_{ij}|w_{i,j}| ∣∣w∣∣=∑ij​∣wi,j​∣,在图形上表示如下:

在这里插入图片描述

  其参数与目标函数会相切到顶点,使得其 w 1 w_{1} w1​等于0,进而使得某些feature失活,从而达到feature selection的目的。但是这种方法并不会找到feature之间的correspond,有时候一个feature对某个task比较重要,但是从整体上来看,是有可能会把它剔除掉的。

  上述过程并没有显示地去选择action,而是把整个task看成一个整体,然后去选feature。

  1. Group sparsity constraint:

min ⁡ W = [ w 1 ⋯ w M ] ∑ m = 1 M L ( X m , y m , w m ) + λ ∣ ∣ W ∣ ∣ p , q min _{mathbf{W}=left[boldsymbol{w}^{1} cdots boldsymbol{w}^{M}right]} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda ||boldsymbol{W}||_{p,q} W=[w1⋯wM]min​m=1∑M​L(Xm,ym,wm)+λ∣∣W∣∣p,q​

  在这里我们希望找到新的task feature之间的联系。通过定义新的一种regularization项 ∣ ∣ W ∣ ∣ p , q ||boldsymbol{W}||_{p,q} ∣∣W∣∣p,q​:

∣ ∣ [ ∣ ∣ w 1 ∣ ∣ p , ⋯   , ∣ ∣ w D ∣ ∣ p ] ∣ ∣ q ||[||boldsymbol{w}_{1}||_{p},cdots,||boldsymbol{w_{boldsymbol{D}}||_{p}}]||_{q} ∣∣[∣∣w1​∣∣p​,⋯,∣∣wD​∣∣p​]∣∣q​

  对每个参数 w 1 , ⋯ w D boldsymbol{w}_{1}, cdots boldsymbol{w}_{D} w1​,⋯wD​先求 p p p范数,之后再组成一个向量求 q q q范数。

在这里插入图片描述

  注意这里是脚标,表示每一个feature在每一个task上的weight w i w_{i} wi​,之后再做 q q q范数的时候相当于是均衡不同的task之间的关系(比如删掉某一个特征 w i w_{i} wi​,而实现feature selection)。

  enforces row-wise sparsity, i.e., encourages all-zero-value rows

   equivalent to joint feature selection for all the learning tasks

  1. Exclusive lasso [Zhou et al.]:

min ⁡ W = ∑ m = 1 M L ( X m , y m , w m ) + λ ∣ ∣ W ∣ ∣ 1 , 2 2 min_{boldsymbol{W}} = sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, boldsymbol{w}^{m}right)+lambda ||boldsymbol{W}||_{1,2}^{2} Wmin​=m=1∑M​L(Xm,ym,wm)+λ∣∣W∣∣1,22​

   每一个feature 只是在部分task上面发挥作用,不是在所有task上面发挥作用,使得某些feature只是在某些task上面会有作用。

   其中:

W = [ w 1 , ⋯   , w M ] boldsymbol{W} = [w^{1},cdots , w^{M}] W=[w1,⋯,wM]

∣ ∣ W ∣ ∣ p , q = ∣ ∣ [ ∣ ∣ w 1 ∣ ∣ p , ⋯   , ∣ ∣ w D ∣ ∣ p ] ∣ ∣ q ||boldsymbol{W}||_{p,q} = ||[||boldsymbol{w}_{1}||_{p},cdots,||boldsymbol{w_{boldsymbol{D}}||_{p}}]||_{q} ∣∣W∣∣p,q​=∣∣[∣∣w1​∣∣p​,⋯,∣∣wD​∣∣p​]∣∣q​

   squared l 1 , 2 mathcal {l_{1,2}} l1,2​ -norm :可以encourages useful features in different tasks don’t overlap ;assumes #useful features in tasks are close

  1. Robust multi-task feature learning

min ⁡ P , Q ∑ m = 1 M L ( X m , y m , ( p m + q m ) ) + λ 1 ∥ P ∥ 2 , 1 + λ 2 ∥ Q T ∥ 2 , 1 min _{mathbf{P}, mathbf{Q}} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m},left(boldsymbol{p}^{m}+boldsymbol{q}^{m}right)right)+lambda_{1}|mathbf{P}|_{2,1}+lambda_{2}left|mathbf{Q}^{mathrm{T}}right|_{2,1} P,Qmin​m=1∑M​L(Xm,ym,(pm+qm))+λ1​∥P∥2,1​+λ2​∥∥​QT∥∥​2,1​

   把feature weight看成两个两个matrix相加 W = P + Q boldsymbol{W} = boldsymbol{P} +boldsymbol{Q} W=P+Q,在第一个matrix P boldsymbol{P} P 上面perform 2,1这样一个regularization,每一个feature对所有的task做一个selection,要么这个feature都要,要么都不要。

   在第二个matrix Q boldsymbol{Q} Q 上面去做一个转置先,再做2,1的操作,相当于是在列(Colum)上面做selection。
在这里插入图片描述

   这种操作意思是有些task根本就不重要,它对于其它任何的task没有任何帮助,不需要它去帮助其它task。

   P ∈ R D × M P in mathbb{R}^{D times M} P∈RD×M imposes row (feature) sparsity

   Q ∈ R D × M Q in mathbb{R}^{D times M} Q∈RD×M imposes column (task) sparsity, which identifies outlier tasks

   上述方法不仅做了feature selection,还做了task selection,使得整体效果更加robust一些。

参考文献:Gong, Pinghua, JiepingYe, and ChangshuiZhang. "Robust multi-task feature learning."KDD 2012.

  • Feature Transformation

   做feature需要feature比较独立,能够较好地表征data。比如两个feature相关性比较高的话,它其实应该被设计成一个feature。

   In our previous discussion, we mainly assume that tasks are related in the original feature space ,However, it might be better to first transform the original features into another feature space .

min ⁡ A , B ∑ m = 1 M L ( X m , y m , B a m ) + λ ∥ A ∥ 2 , 1  s.t.  B T B = I min _{mathbf{A}, mathbf{B}} sum_{m=1}^{M} Lleft(mathbf{X}^{m}, boldsymbol{y}^{m}, mathbf{B} boldsymbol{a}^{m}right)+lambda|mathbf{A}|_{2,1} text { s.t. } mathbf{B}^{mathrm{T}} mathbf{B}=mathbf{I} A,Bmin​m=1∑M​L(Xm,ym,Bam)+λ∥A∥2,1​ s.t. BTB=I

  所以我们可以先去perform transformation matrix B B B,相当于先做一个线性变换,然后基于这个transform的新的space,再去perform之前的一个操作。 A A A 表示transform之后的空间。

  其中 B ∈ R D × D B in mathbb{R}^{D times D} B∈RD×D the orthogonal transformation matrix; a m ∈ R D × 1 a^{m} in mathbb{R}^{D times 1} am∈RD×1 the model parameters for the m-th task after feature transformation.

Comparison

  • Feature selection

    • a special case of feature transformation
    • better interpretation
  • Feature transformation

    • usually can fit the training data better, more capacity
    • better performance if there is no overfitting

  对于Task-level,就相当于是对一列做操作,feature是对一行做操作。

Deep MTL

  在Deep MTL中我们的每个model都是一个neural network,在深度多任务学习中更多是做一种参数share

在这里插入图片描述

  比如第一种是hard parameter sharing,前几层神经网络参数share在一起,soft parameter sharing,比如建立额外的高斯函数,使得参数之间尽可能靠经一些,不要让他们完全相等,但是让他们之间的距离接近一些;shared-private method中每个task自己在学习,然后与主干网络做一些交互、对比等等。

Hard Parameter Sharing

  • Fully-adaptive feature sharing [Lu et al., 2016]

在这里插入图片描述

  上述图片流程就是学习过程,可以学出来哪些task之间相关。

  1. a bottom-up approach that starts with a thin network ;
  2. dynamically widens it greedily during training using a criterion that promotes grouping of similar tasks
  3. however, the greedy method might not be able to discover a model that is globally optimal
  • A joint many-task model [Hashimoto et al., 2016]
    在这里插入图片描述

Soft Parameter Sharing

  • Dynamic Multi-Level Multi-Task Learning [Guo et al., ACL 2018]

在这里插入图片描述

Shared-Private Method

  • Deep relation networks [Long and Wang et. al., 2015]

在这里插入图片描述

  1. shared-private part: Bayesian models, matrix priors
  2. relies on a pre-defined structure for sharing

Comparison

  • Hard parameter sharing

    • greatly reduces the risk of overfitting
    • but may reduce the multi-task model capacity
  • Soft parameter sharing

    • parameters of models are regularized in order to encourage knowledge sharing
    • Shared-private method

Training Strategies

  那是如何来训练这些task呢?可以分为以下三种:

  1. (Random) round robin

  随机选择一个task来学。

  1. (Anti) curriculum learning

  先学习简单地task,之后再学习难的task。有时候会先学难的task,再学简单地task。

  1. Dynamic allocation

  根据当前task的学习情况再去决定下一个task学什么。

  还有一些其它的方法:

  • Weighting losses with uncertainty [Kendall et al., 2017]

在这里插入图片描述

  dynamically adjust each task’s relative weight in the cost function with task-dependent uncertainty (variance).

  比如有些task学习出来的model variance会特别大,performance经常变,于是将其在最后multi-task上的weight变小,学出来的task没有什么意义,不能够可依赖。

Conclusions

  • Feature-level

    • feature selection
    • feature transformation
  • Task-level

    • task clustering
    • low-rank
    • task relation learning
  • MTL for deep learning

    • hard parameter sharing
    • soft parameter sharing
    • shared-private method
    • neural architecture search, etc.

Future Work

  • Outlier tasks

  • there lacks principled ways and theoretical analyses to study the resulting negative effects

  • asymmetric MTL

  • Non-supervised learning

    • semi-supervised, activate, unsupervised learning
    • multi-view learning
    • reinforcement learning
    • other areas in AI: logic and planning

最后

以上就是体贴路灯最近收集整理的关于多任务学习(Multi-Task Learning)的全部内容,更多相关多任务学习(Multi-Task内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(297)

评论列表共有 0 条评论

立即
投稿
返回
顶部