译自:http://sebastianruder.com/multi-task/

1. 前言

在机器学习中,我们通常关心优化某一特定指标,不管这个指标是一个标准值,还是企业KPI。为了达到这个目标,我们训练单一模型或多个模型集合来完成指定得任务。然后,我们通过精细调参,来改进模型直至性能不再提升。尽管这样做可以针对一个任务得到一个可接受得性能,但是我们可能忽略了一些信息,这些信息有助于在我们关心的指标上做得更好。具体来说,这些信息就是相关任务的监督数据。通过在相关任务间共享表示信息,我们的模型在原始任务上泛化性能更好。这种方法称为多任务学习(Multi-Task Learning),是本博文的关注点。

多任务学习有很多形式,如联合学习(Joint Learning),自主学习(Learning to Learn),借助辅助任务学习(Learning with Auxiliary Tasks)等,这些只是其中一些别名。概括来讲,一旦发现正在优化多于一个的目标函数,你就可以通过多任务学习来有效求解(Generally, as soon as you find yourself optimizing more than one loss function, you are effectively doing multi-task learning (in contrast to single-task learning))。在那种场景中,这样做有利于想清楚我们真正要做的是什么以及可以从中得到一些启发。

即使对于最特殊的情形下你的优化目标只有一个,辅助任务仍然有可能帮助你改善主任务的学习性能。Rich Caruana 在文献[1]中总结了:“多任务学习通过使用包含在相关任务的监督信号中的领域知识来改善泛化性能”。通过学习本博文,我们将尝试对多任务学习的研究近况做一个简要的回顾,尤其是针对深度神经网络的多任务学习。首先,我们探讨了多任务学习的灵感来源。接下来,介绍多任务学习的两种最常见的方法。接着描述了使得多任务学习在实践中有效的机制。在总结较为高级的基于神经网络的多任务学习方法之前,我们回顾了以往多任务学习文献中的一些背景知识。本文接着介绍了近年来提出的一些给力的基于深度神经网络的多任务学习方法。最后,我们探讨了经常使用的辅助任务的类型以及对于多任务学习讲好的辅助任务所具备的特征。

2. 动机

我们提出多任务学习的出发点是多种多样的:(1)从生物学来看,我们将多任务学习视为对人类学习的一种模拟。为了学习一个新的任务,我们通常会使用学习相关任务中所获得的知识。例如,婴儿先学会识别脸,然后将这种知识用来识别其他物体。(2)从教学法的角度来看,我们首先学习的任务是那些能够帮助我们掌握更复杂技术的技能。这一点对于学习武术和编程来讲都是非常正确的方法。具一个脱离大众认知的例子,电影Karate Kid中Miyagi先生教会学空手道的小孩磨光地板以及为汽车打蜡这些表明上没关系的任务。然而,结果表明正是这些无关紧要的任务使得他具备了学习空手道的相关的技能。(3)从机器学习的角度来看,我们将多任务学习视为一种归约迁移(inductive transfer)。归约迁移(inductive transfer)通过引入归约偏置(inductive bias)来改进模型,使得模型更倾向于某些假设。举例来说,常见的一种归约偏置(Inductive bias)是L1正则化,它使得模型更偏向于那些稀疏的解。在多任务学习场景中,归约偏置(Inductive bias)是由辅助任务来提供的,这会导致模型更倾向于那些可以同时解释多个任务的解。接下来我们会看到这样做会使得模型的泛化性能更好。

3. 深度学习中两种多任务学习模式

前面我们讨论了多任务学习的理论源泉。为了使得多任务学习的思想更加具体,我们展示了在基于深度神经网络的多任务学习中常用两种方法:隐层参数的硬共享与软共享。(1)参数的硬共享机制:参数的硬共享机制是神经网络的多任务学习中最常见的一种方式,这一点可以追溯到文献[2]。一般来讲,它可以应用到所有任务的所有隐层上,而保留任务相关的输出层。硬共享机制降低了过拟合的风险。事实上,文献[3]证明了这些共享参数过拟合风险的阶数是N,其中N为任务的数量,比任务相关参数的过拟合风险要小。直观来将,这一点是非常有意义的。越多任务同时学习,我们的模型就能捕捉到越多任务的同一个表示,从而导致在我们原始任务上的过拟合风险越小。(2)参数的软共享机制:每个任务都由自己的模型,自己的参数。我们对模型参数的距离进行正则化来保障参数的相似。文献[4]使用L2距离正则化,而文献[5]使用迹正则化(trace norm)。用于深度神经网络中的软共享机制的约束很大程度上是受传统多任务学习中正则化技术的影响。我们接下来会讨论。[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

4. 多任务学习为什么会有效?

即使从多任务学习中获得归约偏置的解释很受欢迎,但是为了更好理解多任务学习,我们必须探究其深层的机制。大多数机制早在1998年被Caruana提出。为了便于距离说明,我们假设有两个相关的任务A与B,两者共享隐层表示F。(1)隐世数据增加机制。多任务学习有效的增加了训练实例的数目。由于所有任务都或多或少存在一些噪音,例如,当我们训练任务A上的模型时,我们的目标在于得到任务A的一个好的表示,而忽略了数据相关的噪音以及泛化性能。由于不同的任务有不同的噪音模式,同时学习到两个任务可以得到一个更为泛化的表示(As different tasks have different noise patterns, a model that learns two tasks simultaneously is able to learn a more general representations.)。如果只学习任务A要承担对任务A过拟合的风险,然而同时学习任务A与任务B对噪音模式进行平均,可以使得模型获得更好表示F。(2)注意力集中机制。若任务噪音严重,数据量小,数据维度高,则对于模型来说区分相关与不相关特征变得困难。多任务有助于将模型注意力集中在确实有影响的那些特征上,是因为其他任务可以为特征的相关与不相关性提供额外的证据。(3)窃听机制。对于任务B来说很容易学习到某些特征G,而这些特征对于任务A来说很难学到。这可能是因为任务A与特征G的交互方式更复杂,或者因为其他特征阻碍了特征G的学习。通过多任务学习,我们可以允许模型窃听(eavesdrop),即使用任务B来学习特征G。最简单的实现方式是使用hints[6],即训练模型来直接预测哪些是最重要的特征。(4)表示偏置机制。多任务学习更倾向于学习到一类模型,这类模型更强调与其他任务也强调的那部分表示。由于一个对足够多的训练任务都表现很好的假设空间,对来自于同一环境的新任务也会表现很好,所以这样有助于模型展示出对新任务的泛化能力[7]。(5)正则化机制。多任务学习通过引入归纳偏置(inductive bias)起到与正则化相同的作用。正是如此,它减小了模型过拟合的风险,同时降低了模型的Rademacher复杂度,即拟合随机噪音的能力。

 

5. 非神经网络模型中的多任务学习

为了更好理解深度神经网络中的多任务学习,我们首先回顾了线性模型、核方法、贝叶斯方法中的多任务学习方法。具体的说,我们将讨论多任务学习中两个普遍存在的重要思想:1)对任务间的不同强制加稀疏性约束的正则化项(enforcing sparsity across tasks through norm regularization);(2)建模任务之间的关系。值得注意的是,文献中的多任务方法大多是处理同质的场景,即他们认为所有任务都与单一的输出相关。例如,MNIST数据集上的多分类问题转换为10个二分类问题来求解。近年来的工作更多的是处理异质场景:每个任务都对应不同的输出。

5.1 块稀疏正则化(Block-Sparsity Regularization)

为了更好的将这些方法联系起来,我们首先介绍了一些符号的含义。我们有T个任务,每个任务t,对应的模型记为[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks),模型参数记为[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks),维度为d维。我们用列向量来表示参数[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)。将这些列向量[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)堆起来形成一个矩阵[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)。矩阵A的第i行[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)对应每个模型的第i个特征,第j列对应任务j的模型参数。

现有的许多方法都对模型参数做出稀疏性假设。文献[8]认为所有模型共享参数的一个小集合。从任务参数矩阵A的角度来看,这就意味着除了少数几行外全部是0,与之对应的只有少数特征是可以在不同任务间共享的。为了强制做到这一点,在多任务学习中强制加L1正则化项。我们可以记得的是L1正则化是对参数之和上的约束,强制除少数几个外的其他所有参数为0。L1正则化又被称为LASSO(Least Absolute Shrinkage and Selection Operator)。

对于单一任务场景,L1正则化的计算仅依赖于单个任务t中的模型参数[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)。对于多任务场景,L1正则化的计算是基于任务参数矩阵A,首先对每行[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)(对应每个任务的第i个特征)计算[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)正则化,产生列向量[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks),然后计算这个向量的L1正则化,从而强迫b中大部分项为0。

我们可以使用不同的[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)正则化,取决于我们想要对每行设置什么样的约束。一般来说,我们将之称为混合正则化(mix norm)约束[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)正则化。由于这样做导致A的整行为0,故可称之为块稀疏性正则化(Block-Sparsity Regularization)。文献[9]使用[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)正则化,而Argyriou使用[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)正则化。后者又被称为group lasso,首次提出是在文献[10]中。Argyriou等人于2007年的时候证明了优化非凸的group lasso可以通过对任务参数矩阵A进行迹正则化(trace norm)约束转化为凸优化问题。也就是,强制矩阵A是低秩的,其中的每一个列向量[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)都位于一个低维度的子空间。文献[11]为了进一步在多任务学习中使用group lasso来建立上界约束。

块稀疏正则化在直觉上是非常受欢迎的,它的受欢迎程度与它依赖于任务间参数共享程度是一样的。文献[12]证明了当任务间特征不重叠时,[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)正则化可能会比单纯的元素层面的[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)正则化效果更糟。因此,文献[13]提出了将块稀疏正则化与元素稀疏正则化结合以改进块稀疏模型。他们将任务参数矩阵A分解为矩阵B与S,其中A=B+S。然后,对B使用[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)强制的块稀疏正则化,对S使用lasso来进行元素稀疏正则化。文献[14]提出了一个分布式版本的group lasso正则化。

5.2 学习任务间的关系

group稀疏性约束可以强制模型仅关注一些特征,使得这些特征被所有任务共享。已有的所有方法假设多任务学习中所有任务之间是彼此紧密相关的。然而,事实并非如此,不是每个任务都与其他任务紧密关联。在这些场景中,与不相关的任务共享信息有可能会对性能造成伤害。这种现象称为负迁移(Negative Transfer)。除了稀疏性之外,我们更想要的是使用某种先验知识来表明与一些任务是相关的,而与另一些任务是无关的,在这种情况下,对任务的聚类约束显得更为合适。文献[15]提出了一种聚类约束来同时惩罚列向量及其方差的正则化:

[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

其中[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)是平均参数向量。该惩罚项强制一个任务向量的聚类靠近其均值,用[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)来控制。他们将之用在了核方法中,但是对线性方法同样适用。

文献[16]为SVM方法提出了一个类似的约束。这个约束是受贝叶斯方法启发得到的,它寻求使得所有模型接近均值模型。因此它的损失函数是每个SVM所对应的大间隔损失以及与均值模型的距离。文献[17]假设潜在的聚类正则化可以显式表示为A上的聚类约束(当聚类数C已知时),将该聚类正则化分解为三部分:

全局约束:我们的列向量参数均值有多大:[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

聚类间的方差约束:聚类中心到均值的距离:[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

聚类内的方差约束:[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks),衡量每个聚类的紧致程度。

最后将这三部分线性组合起来得到:[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks).

这种聚类约束中假设聚类或簇是预先知道的,所以他们引入了对上述正则项的约束进行放松。还有一些场景,任务中可能并不存在聚类想象,但是他们确实存在一个结构。文献[18]将group lasso扩展到多个任务呈现树状结构时。文献[19]将group lasso扩展到多个任务呈现图状结构时。尽管以往建模任务之间的关系大都采用加正则项的方法,但是也有以一些并没有。文献[20]是首个用kNN来表示任务聚类的算法。文献[21]试图学习到多个任务之间的一个常见结构,来应用到半监督学习中。多任务学习中很多学习任务间关系的方法采用的是贝叶斯方法。文献[22]提出了一个用于多任务学习的贝叶斯神经网络,通过对模型参数加先验来鼓励不同任务参数相似。文献[23]通过推断一个共享的协方差矩阵,将高斯过程扩展到多任务学习中。由于计算代价高,他们采用以个稀疏近似模式来贪心选择最具信息量的实例。文献[24]也采用高斯过程来做多任务学习,假设多有的模型都来自于同一个先验。文献[25]将正态分布作为先验,对每个任务相关的层进行约束。为了鼓励不同任务间的相似性,他们提出了使得均值是任务相关的,使用混合分布来建模任务间的聚类。重要的是,他们需要任务的特点是预先定义聚类,并指定混合分布的数量。基于此,文献[26]从Dirichlet过程中得到分布并能使得模型学习到任务间的相似性以及聚类的数目(簇数)。同一聚类内的所有任务共享一个模型。文献[27]提出了一个层次贝叶斯模型来学习任务间潜在的层次关系。文献[28]使用高斯过程正则化来做多任务学习,并将高斯过程扩展到大规模场景中。

其他还有一些方法在关注在线多任务学习(online Multi-task Learning)的场景:文献[29]将已有方法扩展到在线的场景。他们也提出了正则化的感知器在多任务问题上的扩展,并将任务间的关系用一个矩阵来表示。他们使用看多种形式的正则化项来对这个任务相关矩阵进行偏置,如任务特征的相关程度,生成子空间维度的相关性等。值得注意的是,以往这些方法都需要任务特点来定义一个这样的矩阵。文献[30]扩展了这些方法,通过学习得到关系矩阵。

文献[31]假设任务形成了多个分割的组,处于同一个组内的任务位于同一个低维空间中。每组内部,任务共享一组特征表示,这些参数可以与组分配矩阵使用交替最小化模式共同学习得到,然而完全分割并非最佳方式。文献[32]允许来自不同组的两个任务之间有重叠,假设存在小部分的基本的隐式任务。将每个真实任务的参数向量建模为:[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)。其中[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)为包含k个隐式任务的矩阵,[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)为包含对k个向量进行线性组合的系数。此外,他们还约束这种线性组合应该是稀疏的。这种任务间的重叠应该是稀疏的,以此来控制共享参数的数量。文献[33]学习到一个共享假设的小集合,并将每个任务对应到一个假设上。

6. 深度神经网络的多任务学习的最新进展

尽管最近的许多深度学习的工作都或显式或隐式使用了多任务学习作为其模型的一部分,但是使用方式仍然没有超出我们前面提到的两种方式:参数的硬共享与软共享。相比之下,仅有少部分的工作专注于提出深度神经网络中好的多任务学习机制。

6.1 深度关系网络(Deep Relationship Networks)

在用于机器视觉的多任务场景中,已有的这些方法通常共享卷积层,将全链接层视为任务相关的。文献[34]提出了深度关系网络。除了共享层与任务相关层的结构,他们对全连接层添加矩阵先验。这将允许模型学习任务间的关系。这一点与我们之前看过的贝叶斯方法是类似的。然而,问题是这个方法依然依赖于事先预定义的共享结构。这一点对于机器视觉问题已经足够,但是对于新任务有错误倾向。

[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

6.2 完全自适应特征共享(Fully-Adaptive Feature Sharing)

从另一个极端说起,文献[35]提出了一个自底向上的方法。从瘦网络(thin network)开始,使用对相似任务自动分组的指标,贪心的动态加宽网络。这个加宽的过程动态创建分支,如图4所示。然而这种贪心的做法并不能得到全局的最优。为每个分支分配精确的一个任务,并不能允许模型学到更复杂的任务间的交互。

[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

6.3 十字绣网络(Cross-Stitch Networks)

文献[36]将两个独立的网络用参数的软共享方式连接起来。接着,他们描述了如何使用所谓的十字绣单元来决定怎么将这些任务相关的网络利用其他任务中学到的知识,并与前面层的输出进行线性组合。这种结构如图5所示,仅在pooling(池化)层与全连接层之后加入十字绣单元。

[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

6.4 低层次监督(Low Supervision)

相形之下,自然语言处理领域中近年来的多任务学习的工作重点在于找到一个好的层次结构:文献[37]展示了一些NLP中的基本工作,如词性标注,命名实体识别等,应该被作为辅助任务,在较低层次时进行有监督学习。

6.5 联合多任务模型(A Joint Many-Task Model)

基于这种发现,文献[38]预先定义了一个包含多个NLP任务的层次结构,如图6所示,并用来做多任务学习的联合模型。

[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

6.6 用不确定性对损失进行加权(Weighting losses with Uncertainty)

除了学习结构的共享,文献[39]采用一种正交的方法来考虑每个任务的不确定性。他们调整每个任务在代价函数中的相对权重,基于最大化任务相关的不确定性似然函数原理,来得到多任务学习的目标。对u每个像素深度回归、语义分割、实例分割等三个任务的框架如图7所示。

[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

6.7 多任务学习中的张量分解

近来许多工作试图将已有的多任务学习模型推广到深度学习中:文献[40]将已有的一些使用张量分解技术推广到模型参数划分来分解出每层的共享参数于任务的相关系数。

6.8 水闸网络

最后我们说一下文献[41]中提到的水闸网络,它是对多种基于深度神经网络的多任务学习方法的泛化。如图8所示,这个模型可以学习到每层中哪些子空间是必须共享的,以及哪些是用来学习到输入序列的一个好的表示的。

[译]深度神经网络的多任务学习概览(An Overview of Multi-task Learning in Deep Neural Networks)

6.9 我的模型中应该共享些什么?

已经回顾了这些相关工作,现在我们来总结一下在深度多任务学习模型中到底应该共享些什么信息。大多数的多任务学习中,任务都是来自于同一个分布的。尽管这种场景对于共享是有益的,但并不总能成立。为了研发更健壮的多任务模型,我们必须处理那些不相关的任务。

早期用于深度学习的多任务模型需要预定义任务间的共享结构。这种策略不适合扩展,严重依赖于多任务的结构。早在1997年就已经提出的参数的硬共享技术在20年后的今天仍旧是主流。尽管参数的硬共享机制在许多场景中有用,但是若任务间的联系不那么紧密,或需要多层次的推理,则硬共享技术很快失效。最近也有一些工作研究学习哪些可以共享,这些工作的性能从一般意义上将优于硬共享机制。此外,若模型已知,学习一个任务层次结构的容量也是有用的,尤其是在有多粒度的场景中。

正如刚开始提到的,一旦我们要做一个多目标的优化问题,那么我们就是在做多任务学习。多任务不应仅仅局限于将所有任务的知识都局限于表示为同一个参数空间,而是更加关注于如何使我们的模型学习到任务间本应该的交互模式(it is thus helpful to draw on the advances in MTL that we have discussed and enable our model to learn how the tasks should interact with each other)。

7. 辅助任务(Auxiliary Tasks)

对于同时获得多个任务的预测结果的场景,多任务学习是天然适合的。这个场景在金融或经济的预测中是常见的,比如,我们可能既想知道相关的影响因子,又想知道预测结果。在生物信息学中,我们可能想同时知道多种疾病的症候。但是在大多数情况下,我们仅关注一个任务。本节中,我们将讨论如何找到一个辅助任务来使得多任务学习受益。

7.1 相关任务(Related Tasks)

使用相关任务作为一个辅助任务,对于多任务学习来说,是一个典型的选择。想要知道什么是“相关任务”,此处我们展示一些直观的例子。Caruana于1997年使用预测不同道路的特征来辅助学习自动驾驶的方向掌控。文献[42]使用头部姿势估计与面部特征属性推断辅助脸部轮廓检测任务。文献[43]同时学习查询分类与网页搜索。文献[44]同时预测图像中物体的类别和位置。文献[45]同时预测文本到语言的过程中音素的持续时间和频率。

7.2 对抗性(Adversarial)任务

通常情况下,对于一个相关任务来说,不存在标注数据。然而,在一些场合,我们可以用的任务与我们想要实现的目标是相反的。这样的数据是可以用来做对抗损失的。这些损失不是用来做最小化的,而是使用Gradient Reversal Layer来做最大化训练误差的。文献[46]中展示了这种场景在领域自适应方面的成功例子。这种场景中的对抗任务用来预测输入的领域。通过对对抗任务的梯度求逆,对抗任务损失最大化。这样对于主任务是有利的,可以促使模型学习到不用区分两个域的表示。

7.3 提示(Hints)性任务

如前所述,多任务学习可以学到单任务学不到的特征。使用Hints就是这样一种有效的机制:在辅助任务中预测特征。最近的一个例子是在自然语言处理中,文献[47]在情感分析中将一个输入句子中是否包含正负面情感词作为辅助任务。文献[48]在错误名字识别中将判断一个句子中是否包含名字作为辅助任务。

7.4 注意力集中

辅助任务可以用来将注意力集中在网络可能忽略的图像的某部分上。例如,对于学习方向掌控的任务中,单一的任务模型通常忽略那些图像的细微之处,如路标等。那么预测路标就可以作为一个辅助任务。迫使模型学会去表示它们,这样的知识可以用于主任务。类似的,对于脸部识别来说,既然这些脸是不同的,我们就可以将预测脸部特征的位置作为辅助任务。

7.5 量化平滑

对于多任务来讲,优化目标是已经被量化的。通常连续型的是受欢迎的,而可用的标注是离散集合。在大多数情况下,需要人工评价来收集数据,例如,预测疾病的风险或情感分析(正面、负面、中立),由于目标函数是光滑的,所以使用较少量的量化辅助任务会使学习变得容易。

7.6 预测输入

在一些情况下使用某些特征作为输入并不会对预测目标输出有益。然而,它们可能能指导监督学习的过程。在这些情形下,特征是作为输出的一部分,而非输入。文献[49]展示了这些问题在实际应用中的场景。

7.7 用未来预测现在

许多场景中一些特征仅在做出预测后才可用。例如,在自动驾驶中,一旦汽车经过障碍物或路标,便可以对它们做出准确的度量。Caruana于1997年举了一个肺炎的例子,只有事发后才能又额外的诊断案例可用。对于这些例子来讲,这些额外的数据由于在输入的时刻并不可用,所以并不能作为特征。然而,可以用作辅助任务来为模型传授额外的知识以辅助训练。

7.8 表示学习

多任务学习中辅助任务的目标在于使得模型学习到共享的表示,以帮助主任务的学习。我们目前所讨论到的辅助任务都是隐式的在做这件事情。由于它们和主任务密切相关,所以在学习的同时可能允许这些模型学到有利于主任务的表示。一个更为显式的做法是利用一个辅助任务专门来学习一个可以迁移的表示。Cheng等人2015年的一个工作以及文献[50]所采用的语言模型目标就起到了这样的作用。类似的,autoencoder也是可以用来做辅助任务的。

8. 为什么辅助任务对主任务是有益的?

虽然在实际当中我们可能仅仅关心一种辅助任务,但是前面我们已经讨论了在多任务学习中可能用的各种辅助任务。尽管我们并不知道在实际中哪种会起作用。寻找辅助任务的一个基本假设是:辅助任务应该是与主任务密切相关的,或者是能够对主任务的学习过程有益的。

然而,我们并不知道什么样的两个任务是相关的或相似的。Caruana在1997年给出的定义是:若两个任务使用相同的特征来做决策,那么两个任务是相似的。Baxer于2000年补充道:理论上讲相关的任务共享同一个最优的假设类,也就是同样的归纳偏置(inductive bias)。文献[50]提出若两个任务中的数据都产生自由同一类变换F得到固定的概率分布,那么两个任务是F相关的。尽管可以使用于同一个分类问题,但是不能用于处理不同问题的任务。Xue等人2007年提出若两个任务的分类边界(参数向量)是闭合的,那么两个任务是相似的。

虽然早期在理解任务相关性的理论定义方面取得了一些进展,但是近期的成果却没有。任务相似性不是二值的,而是一个范围。更相似的两个任务在多任务学习中受益更大,而反之亦然。使得我们的模型能够学习到共享哪些参数可能只是暂时克服了理论上的缺失,以及更好的利用联系不紧密的任务。然而,我们也很需要对任务相似性的理论认知,来帮助我们了解如何选择辅助任务。

文献[52]发现具有完备且统一的标注分布的辅助任务对于序列标注主任务应该更有益,这一点在实验中已经得到验证。此外,文献[53]发现non-plateauing的辅助任务也会为plateauing的主任务带来改善。

然而这些实验都是具有范围局限性的。近期的这些研究成果只是为我们进一步理解神经网络中的多任务学习提供了一些线索。

9. 结论

本文关注了多任务学习的历史以及在深度神经网络中多任务学习的最新进展。尽管多任务学习频繁使用,但是近20年的参数硬共享机制仍旧是神经网络中多任务学习的主要范式。学习共享哪些信息的工作看起来更具前景。同时,我们对于任务的相似性,任务间的关系,任务的层次,以及多任务学习的收益等的理解仍旧是有限的,我们需要学习更多以理解深度神经网络中多任务学习的泛化能力。

 

10. 参考文献:

[0] 共享相关任务表征,一文读懂深度神经网络多任务学习: https://mp.weixin.qq.com/s?__biz=MzA3MzI4MjgzMw==&mid=2650728311&idx=1&sn=62b2dcc82657d1ce3bf91fd6a1197699

[1] Caruana. R. (1998). Multitask Learning. Autonomous Agents and Multi-Agent Systems. 27(1). 95-133.

[2] Caruana. R. Multitask Learning: A Knowledge based Source of Inductive Bias. Proceedings of the Tenth International Conference on Machine Learning. 1993.

[3] Baxter, J. (1997) A Bayesian / Information Theoretic Model of Learning to Learn via Multiple Task Sampling. Machine Learning. 28, 7-39.

[4] Duong, L., Cohn. et.al. 2015. Low Resource Dependency Parsing Cross-Lingual Parameter Sharing in a Neural Network Parser. ACL2015.

[5] Yang, Y. et. al. 2017. Trace Norm Regularized Deep Multi-Task Learning. ICLR2017 workshop.

[6] Abu-Mostafa, et. al. 1990. Learning from Hints in Neural Networks, Journal of Complexity.

[7] Baxter, J. 2000. A Model of Inductive Bias Learning. Journal of Aritificial Intelligence Research.

[8] Argyriou, A. 2007. Multi-Task Feature Learning. NIPS2007.

[9] C. Zhang and J. Huang. 2008. Model Selection Consistency of the Lasso Selection in High Dimensional Linear Regression. Annals of Statistics. 2008.

[10] Yuan, Ming and Yi Lin. 2006. Model Selection and Estimation in Regression with Grouped Variables. Journal of the Royal Statistical Society. 2006.

[11] Lounici. K, et.al. 2009. Taking Advantage of Sparsity in Multi-task Learning. stat.2009.

[12] Negahban, S. et. al. 2008. Joint Support Recovery under High Dimensional Scaling: Benefits and Perils of L1,\inf-regularization. NIPS2008.

[13] Jalali, A. et.al. 2010. A Dirty Model for Multi-Task Learning. NIPS2010.

[14] Liu, S. et.al. 2016. Distributed Multi-Task Relationship Learning. AISTATS2016.

[15] Evgeniou, T. et. al. 2005. Learning Multiple Tasks with Kernel Methods. Journal of Machine Learning Research 2005.

[16] Evgeniou, T. et. al. 2004. Regularized Multi-Task Learning. KDD2004.

[17] Jacob, L. et. al. 2009. Clustered Multi-Task Learning: A Convex Formulation . NIPS2009.

[18] Kim, S. and Xing, Eric P. 2010. Tree-Guided Group Lasso for Multi-Task Regression with Structured Sparsity. ICML2010.

[19] Chen, X. et. al. 2010. Graph Structured Multi-Task Regression and An Efficient Optimization Method for General Fused Lasso.

[20] Thrun, S. et. al.1996. Discovering Structure in Multiple Learning Tasks: The TC Algorithm. ICML1998.

[21] Ando, R, K. et. al. 2005. A Framework for Learning Predictive Structures from Multiple Tasks and Unlabeled Data. JMLR2005.

[22] Heskes, T. 2000. Empirical Bayes for Learning to Learn. ICML2000.

[23] Lawrence, N.D. et. al. 2004. Learning to Learn with the informative vector machine. ICML2004.

[24] Yu, K. et. al. 2005. Learning Gaussian Processes from Multiple Tasks, ICML2005.

[25] Bakker, B. et. al. 2003. Task Clustering and Gating for Bayesian Multi-Task Learning. JMLR2003.

[26] Xue, Y. et. al. 2007. Multi-Task Learning for Classification with Dirichlet Process Priors. JMLR2007.

[27] Daume III, H. et. al. 2009. Bayesian Multitask Learning with Latent Hierarcies.

[28] Zhang, Y. et.al. 2010. A Convex Formulation for Learning Task Relationships in Multi-Task Learning. UAI2010.

[29] Cavallanti, G. et. al. 2010. Linear Algorithms for Online Multitask Classification. JMLR2010.

[30] Saha, A. et. al. 2011. Online Learning of Multiple Tasks and their Relationships. JMLR2011.

[31] Kang, Z. et. al. 2011. Learning with Whom to Share in Multi-task Feature Learning. ICML2011.

[32] Kumar, A. et. al. 2012.  Learning Task Grouping and Overlap in Multi-Task Learning. ICML2012.

[33] Crammer, K. et. al. 2012. Learning Multiple Tasks Using Shared Hypotheses. NIPS2012.

[34] Long, M. et. al. 2015. Learning Multiple Tasks with Deep Relationship Networks.

[35] Lu, Y. et. al. 2016. Fully-Adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attriute Classification.

[36] Misra, I. et. al. Cross-Stitch Networks for Multi-Task Learning, CVPR2016.

[37] Sogaard, A. et. al. Deep Multi-Task Learning with Low Level Tasks Supervised at Lower Layers. ACL2016.

[38] Hashimoto , K. 2016. A Joint Multi-Task Model: Growing A Neural Network for Multiple NLP Tasks.

[39] Kendail, A. et. al. 2017. Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics.

[40] Yang, Y. et. al. 2017. Deep Multi-Task Representation Learning: A Tensor Factorization Approach. ICLR2017.

[41] Ruder, S. 2017. Sluice Networks: Learning What to Share between Loosely Related Tasks.

[42] Zhang, Z. 2014. Facial Landmark Detection by Deep Multi-Task Learning. ECCV2014.

[43] Liu, X. et. al. 2015. Representation Learning Using Multi-Task Deep Neural Networks for Semantic Classification and Information Retrieval.

[44] Girshick, R. 2015. Fast R-CNN. ICCV2015.

[45] Arik, S. O. et. al. 2017. Deep Voice: Real-time Neural Text-to-Speech. ICML2017.

[46] Ganin, T. 2015. Unsupervised Domain Adaptation by Backpropagation. ICML2015.

[47] Yu, J. 2016. Learning Sentence Embeddings with Auxiliary Tasks for Cross Domain Sentiment Classification. EMNLP 2016.

[48] Cheng, H. 2015. Open-Domain Name Error Detection Using a Multi-Task RNN. EMNLP2015.

[49] Caruana, R. et. al. 1997. Promoting Poor Features to Supervisors: Some Inputs work Better as outputs. NIPS1997.

[50] Rei, M. 2017. Semi-supervised Multitask Learning for Sequence Labeling, ACL2017.

[51] Ben-David, S. et. al. 2003. Exploiting Task Relatedness for Multiple Task Learning. Learning Theory and Kernel Machines.

[52] Alonso, H. M. et. al. 2017. When is Multi-Task Learning Effective? Multitask Learning for Semantic Sequence Prediction Under Varying Data Conditions. EACL2017.

[53] Bingel, J. et. al. 2017. Identifying Beneficial Task Relations for Multi-Task Learning in Deep Neural Networks, EACL2017.