关注小程序 找一找教程网-随时随地学编程

人工智能学习

PaperNotes: MTL系列(0)-前言

1. 背景

近年来,multi-task learning(MTL)的研究有挺多的进展,尤其是阿里和谷歌都在推荐领域用了多任务相关的模型。这个系列主要是梳理一下多任务的现状和若干模型。

2. papers

Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate 2018.4

Conversion Rate Prediction via Post-Click Behaviour Modeling 2018.4

Perceive Your Users in Depth- Learning Universal User Representations from Multiple E-commerce Tasks 2018.5

Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts 2018.6

Recommending What Video to Watch Next A Multitask Ranking System 2019

3. 简介

3.1 什么是多任务学习

多任务学习有很多形式:联合学习(joint learning)、自主学习(learning to learn)、辅助学习(learning with auxiliary task)、 meta-learning(元学习)。

当前有很多模型都是单任务学习,object 只有一个。但是商业的目标往往是很复杂的,比如在视频推荐领域,人均时长和用户的视频点击个数、视频的平均观看时长两部分相关;再比如除了时长等因素之外,通常还要考虑点赞、评论、收藏等指标。如果对每个目标都单独训练模型,就会产生以下问题:

  • 有一些子任务数据稀疏或样本量很少,难以训练。
  • 工程需要适配更多的模型,灵活性差。
  • 没有考虑到模型之间通用的信息和某个任务对当前任务的辅助。
  • 且由于彼此之间没有任何联系,就有可能在目标融合阶段产生冲突。常用的方法是引入参数,而人工调参难度大,从而很难达到最优解。

多任务学习不仅可以整合多个单任务,还可以在整体上做的更好!为什么多任务如此有效? 那就要来看下多任务的特点。

3.2 多任务的特点

  1. 正则化。 多任务学习通过2种方式加强了模型的正则:
    • MTL实际上增加了用于训练的数据。
    • 模型之间的影响。由于任务之间都存在不同的噪声,当任务A单独训练时,容易学习到任务A的噪声从而导致过拟合。但是同时学习任务A,B时,这两个任务都依赖bottom L。当学习B时,模型更容易忽略掉对A影响更多的那些噪声。由于AB受不同噪声的影响,同时学习两个任务就能学到更一般的特征,从而获得更好的表达。
  2. 注意力机制。
  3. eavesdroping和hint。某个特征可能很容易被任务A学到,但是难以被任务B学到,可能是因为任务B对该特征的交互更复杂。但是多任务可以通过A学到该特征并给B使用。
  4. 易于扩展。 尤其是share-bottom的方式,只需要在模型最上层新增子任务。不仅可以快速收敛,拟合新任务,还减轻了模型的总体大小。

3.3 什么时候使用多任务学习

  • 需要训练一个更通用的模型
  • 数据长尾, 尾部的数据很难训练好
  • 新的任务能用的训练样本很少 (多任务能共享其他任务学习到的信息)
  • 需要快速学习新模型
  • 整体效果提升。

3.4 多任务结构

常用的结构就是2种, hard参数共享和soft参数共享。 MTL网络的设计也就在hard和soft之间取舍,使得网络轻巧,且以最大的幅度共享信息。

3.4.1 hard共享

如图一,所有任务共享一个bottom,最上层为特定任务的输出层。共享bottom能有效的降低单个任务的过拟合。

3.4.2 soft共享

如图二,每个任务都有之间的参数和模型,通过加强任务之间的参数约束来表达相似。例如l1, l2范数约束。

接下来就是阿里和谷歌是如何设计并使用MTL的。