浅谈多任务学习

目录

一、前言及定义

二、多任务学习(MTL)的两种方法 

2.1 参数的硬共享机制(hard parameter sharing)

2.2 参数的软共享机制(soft parameter sharing)

三、多任务学习模型

3.1 MT-DNN

3.2 ERNIE 2.0

四、多任务学习与其他学习算法的关系


一、前言及定义

多任务学习(Multi-task learning)是和单任务学习(single-task learning)相对的一种机器学习方法。在机器学习领域,标准的算法理论是一次学习一个任务,也就是系统的输出为实数的情况。复杂的学习问题先被分解成理论上独立的子问题,然后分别对每个子问题进行学习,最后通过对子问题学习结果的组合建立复杂问题的数学模型。多任务学习是一种联合学习,多个任务并行学习,结果相互影响。

  用大家经常使用的school data做个简单的对比,school data是用来预测学生成绩的回归问题的数据集,总共有139个中学的15362个学生,其中每一个中学都可以看作是一个预测任务。单任务学习就是忽略任务之间可能存在的关系分别学习139个回归函数进行分数的预测,或者直接将139个学校的所有数据放到一起学习一个回归函数进行预测。而多任务学习则看重 任务之间的联系,通过联合学习,同时对139个任务学习不同的回归函数,既考虑到了任务之间的差别,又考虑到任务之间的联系,这也是多任务学习最重要的思想之一。

  

如果用含一个隐含层的神经网络来表示学习一个任务,单任务学习和多任务学习可以表示成下图所示:

二、多任务学习(MTL)的两种方法 

2.1 参数的硬共享机制(hard parameter sharing)

参数的硬共享机制是神经网络的多任务学习中最常见的一种方式,一般来讲,它可以应用到所有任务的所有隐层上,而保留任务相关的输出层。如上图所示,前几层dnn为各个任务共享,后面分离出不同任务的layers。这种方法有效降低了过拟合的风险: 模型同时学习的任务数越多,模型在共享层就要学到一个通用的嵌入式表达使得每个任务都表现较好,从而降低过拟合的风险。 直观来将,这一点是非常有意义的。越多任务同时学习,我们的模型就能捕捉到越多任务的同一个表示,从而导致在我们原始任务上的过拟合风险越小。

2.2 参数的软共享机制(soft parameter sharing)

在这种方法下,每个任务都有自己的模型,有自己的参数,但是对不同模型之间的参数是有限制的,不同模型的参数之间必须相似,由此会有个distance描述参数之间的相似度,会作为额外的任务加入到模型的学习中,类似正则化项。

三、多任务学习模型

3.1 MT-DNN

微软提出的 MT-DNN模型 (Multi-task Deep Neural Network)是一个简单有效的尝试。MT-DNN的模型结构如下图所示,模型主要包含两个部分,分别是多任务的共享编码层(与BERT一致)以及任务相关的输出层。MT-DNN模型考虑了四种不同类型的语言理解类任务,分别是单句文本分类(如CoLA、SST-2)、句对文本分类(如RTE、MNLI、MRPC)、文本相似度(回归问题)以及相关性排序(排序问题)。不同类型的任务对应不同的输出层结构与参数。模型输入的构造方式与BERT基本一致,即“[CLS]文本1 [SEP]文本2 [SEP]”的形式。

模型的训练过程分为两个阶段,首先对多任务共享的编码层进行预训练,方法与BERT模型一致;然后利用各个任务的标注数据以及相应的损失函数进行有监督的多任务学习。与T5模型类似,经过多任务学习的MT-DNN模型可以在特定任务上进一步精调,通常能够取得更好的效果。

3.2 ERNIE 2.0

除了利用相关NLP任务的有限标注数据,还可以从无标注以及弱标注数据中抽象出一系列任务联合学习,以进一步提升预训练模型的能力。百度的研究人员在ERNIE模型的基础之上做了改进,分别从词法、句法及语义层面构造了更加丰富的预训练任务,并通过连续多任务学习(Continual Multi-task Learning)的方式进行增量式预训练,从而得到了 ERNIE 2.0模型 。ERNIE 2.0模型框架如下图所示。
在模型的输入层,除了常用的词向量、块向量和位置向量,ERNIE2.0使用了一个额外的任务向量(Task embedding)。每一个预训练任务对应一个独立的任务编码(1,2,···)并被转化为连续向量表示,在训练过程中更新。使用任务向量是多任务学习中的常用手段,尤其是在任务较多的情况下。这与T5、GPT-3等生成模型中使用的任务提示(Prompt)思想是类似的。模型的输出层分别对应以下预训练任务。
1.词法相关预训练任务
  • ERNIE模型原有的单词、实体、短语掩码模型;
  • 单词的大写(Capitalization)预测;
  • 单词--文档关系预测(预测输入文本块中的词是否出现在同一文档的其他文本块)。
2.语法相关预训练任务
  • 句子重排序:对于随机打乱的文本块,恢复其原始顺序;
  • 句子距离预测:判断输入的两个句子是来自同一文档的两个相邻句子,或是同一文档的两个不相邻句子,或来自不同文档。因此是一个多分类问题。
3.语义相关预训练任务
  • 篇章关系(Discourse relation)预测:对句对间的修辞关系分类。这里用到了由无监督方法构建的篇章关系数据集
  • 信息检索相关性(IR Relevance)。这里需要用到搜索引擎的查询日志:取搜索引擎的查询与文档的标题作为模型的输入句对,如果该文档没有出现在搜索结果中,则认为两者不相关。否则,根据用户是否点击进一步分为强相关与弱相关。
关于模型的训练过程,ERNIE 2.0采用了连续多任务学习的方式,在训练过程中逐渐增加任务数量并进行多任务学习。在维持整体迭代次 数不变的条件下,自动为每个任务分配其在各个阶段多任务学习中的迭代次数。实验结果表明,这种训练方式既可以避免连续学习 (Continual learning)的知识遗忘问题,也能够使各个任务得到更有效的训练。ERNIE 2.0在中、英文各项任务上都取得了出色的表现,同时为预训练任务的设计及多任务学习的机制带来了很多启发。

四、多任务学习与其他学习算法的关系

  1. transfer learning:定义一个源域一个目标域,从源域学习,然后把学习的知识信息迁移到目标域中,从而提升目标域的泛化效果。迁移学习一个非常经典的案例就是图像处理中的风格迁移

  2. multi-task:训练模型的时候目标是多个相关目标共享一个表征,比如人的特征学习,一个人,既可以从年轻人和老人这方面分类,也可以从男人女人这方面分类,这两个目标联合起来学习人的特征模型,可以学习出来一个共同特征,适用于这两种分类结果,这就是多任务学习

  3. multi-label:打多个标签,或者说进行多种分类,还是拿人举例啊,一个人,他可以被打上标签{青年,男性,画家}这些标签。如果还有一个人他也是青年男性,但不是画家,那就只能打上标签{青年,男性}。它和多任务学习不一样,它的目标不是学习出一个共同的表示,而是多标签

  4. multi-class:多分类问题,可选类别有多个但是结果只能分到一类中,比如一个人他是孩子、少年、中年人还是老人

猜你喜欢

转载自blog.csdn.net/weixin_45684362/article/details/128760176