「自然语言处理」多任务学习综述

翻译一下一篇多任务学习的综述

https://arxiv.org/abs/1706.05098

大家好,我是老周,欢迎阅读我的文章。


上一篇文章说了微软的MT-DNN,里面用到了多任务学习。这篇文章主要想说清楚多任务学习,多任务学习是机器学习中的一个子领域,而学习一个领域的最好办法是阅读它的综述。于是我翻译了一下由Sebastian Ruder小哥写的一篇综述,里面很好的讲述了多任务学习的发展过程。


「自然语言处理」多任务学习综述

论文链接:https://arxiv.org/abs/1706.05098


1、引言

在机器学习(ML)中,我们通常关心针对特定指标的优化,无论这是某个基准的分数还是业务关键绩效指标。为了做到这一点,我们通常训练一个模型或一组模型来执行我们所期望的任务。然后我们对这些模型进行微调,直到它们的性能不再提高。虽然我们通常可以通过这种方式获得可接受的性能,但通过专注于我们的单一任务,我们忽略了可能帮助我们在我们关心的指标上做得更好的信息。具体来说,这些信息来自于相关任务的训练信号。通过在相关任务之间共享表示,我们可以使我们的模型能够更好地对原始任务进行泛化。这种方法被称为多任务学习(MTL),并将成为本文的主题。


多任务学习已经成功地应用于机器学习的所有应用,从自然语言处理[1]和

语音识别[2]到计算机视觉[3]和药物发现[4]。MTL有很多猜想:联合学习、学习学习辅助任务学习只是一些用来引用它的名字。一般来说,一旦你发现自己优化了不止一个损失函数,你就可以有效地进行多任务学习(与单任务学习相比)。在这些场景中,它有助于思考你试图明确地用MTL来做什么,并从中获得灵感。


即使你只是优化一个损失,这是典型的情况下,有可能是一个辅助任务,将有助于您改进您的主要任务。Rich Caruana[5]简洁地总结了MTL的目标:“MTL通过利用相关任务的训练信号中包含的**领域特定信息**来改进泛化”。


在这篇博文的过程中,我将试图对多任务学习的现状做一个概述,特别是当涉及到使用深度神经网络的MTL时。我将首先从不同的角度解释多任务学习。然后,我将介绍两个最常用的方法,在深入学习的MTL。随后,我将描述共同说明MTL在实践中工作的机制。在研究更先进的基于神经网络的MTL方法之前,我将通过讨论MTL中的文献提供一些背景。然后,我将介绍一些更强大的最近提出的方法。最后,我将讨论常用类型的辅助任务,并讨论MTL如何做一个好的辅助任务。


2、动机解释

我们可以用不同的方式解释多任务学习的动机:从生物学上讲,我们可以看到多任务学习是由人类学习所激发的。为了学习新的任务,我们经常运用我们从学习相关任务中获得的知识。例如,婴儿首先学会识别面部,然后可以应用这些知识来识别其他物体。


从教育学的角度来看,我们通常想学习一些任务,这些任务为我们掌握更复杂的技术提供了必要的技能。这对于学习正确的武术摔倒方式是正确的,例如柔道和学习编程。

以流行文化为例,我们还可以考虑空手道小子(1984年)(感谢玛格丽特·米切尔和阿德里安·本顿的启发)。在电影中,Miyagi先生教空手道小孩看似无关的任务,如打磨地板和打蜡汽车。然而,事后看来,这些技能使他具备了学习空手道的宝贵技能。


最后,我们可以从机器学习的角度来看多任务学习:我们可以将多任务学习视为

归纳迁移(inductive transfer)的一种形式。归纳转移可以通过引入一个归纳偏差(inductive bias)来帮助改进模型,这使得模型更喜欢一些假设。例如,一种常见的归纳偏差是L1正则化,导致偏好稀疏解。在MTL的情况下,归纳偏差辅助任务提供,这使得模型更倾向于解释多个任务的假设。正如我们将很快看到的,这通常会导致更好概括的解决方案。


3、深度学习下两种MTL

到目前为止,我们关注的是MTL的理论动机。为了使MTL的思想更加具体,我们现在来看两种在深层神经网络中执行多任务学习最常用的方法。在深度学习的背景下,多任务学习通常是通过共享隐藏层的硬参数或软参数来完成的。


  • 3.1 硬参数共享

硬参数共享是神经网络中最常用的MTL方法,可以追溯到[6]。它通常通过在所有任务之间共享隐藏层来应用,同时保留几个特定于任务的输出层。

「自然语言处理」多任务学习综述

硬参数共享大大降低了过度拟合的风险。实际上,[7]表明,过度拟合共享参数的风险是N阶(其中N是任务数),小于过度拟合特定任务参数(即输出层)。这在直觉上是有道理的:我们同时学习的任务越多,我们的模型就越需要找到一个能够捕获所有任务的表示,而我们在原始任务上过度拟合的机会就越小。


  • 3.2 软参数共享

另一方面,在软参数共享中,每个任务都有自己的模型和参数。然后对模型参数之间的距离进行正则化,以鼓励参数相似。[8] 例如,使用L2正则化,而[9]使用trace norm


「自然语言处理」多任务学习综述

深度神经网络中用于软参数共享的约束很大程度上受到了MTL正则化技术的启发,我们将很快讨论这些技术。


4、为什么多任务学习work?

尽管通过多任务学习获得的归纳偏差在直觉上似乎是合理的,但为了更好地理解MTL,我们需要研究其背后的机制。其中大多数是由Caruana(1998)首先提出的。对于所有的例子,我们假设我们有两个相关的任务A和B,他们共同依赖一个公共的隐藏层表示F。


  • 4.1 隐式数据增强

MTL有效地增加了我们用来训练模型的样本量。因为所有的任务至少都有点嘈杂,所以在训练一个模型执行某项任务时,我们的目标是学习一个好的任务表示法,一种理想的忽略数据相关噪声的方法。由于不同任务具有不同的噪声模式,同时学习两个任务的模型能够学习更一般的表示。


  • 4.2 Attention focusing

如果一个任务是非常嘈杂的,或者数据是有限的和高维的,那么模型很难区分相关和不相关的特征。MTL可以帮助模型将注意力集中在那些实际重要的特性上,因为其他任务将为这些特性的相关性或不相关性提供额外的证据。


  • 4.3 窃听机制(Eavesdropping)

如果一个任务是非常嘈杂的,或者数据是有限的和高维的,那么模型很难区分相关和不相关的特征。MTL可以帮助模型将注意力集中在那些实际重要的特性上,因为其他任务将为这些特性的相关性或不相关性提供额外的证据。


  • 4.3 表示偏差(Representation bias)

MTL将模型偏向于其他任务也喜欢的表征。这也将有助于该模型推广到未来的新任务,因为假设空间在足够多的训练任务中表现良好,只要它们来自相同的环境,也将在学习新任务中表现良好


  • 4.4 正则化

最后,MTL通过引入感应偏置来充当正则化器。因此,它降低了过度拟合的风险以及模型的Rademacher复杂性,即它拟合随机噪声的能力。


分享到:


相關文章: