天天看点

多任务学习——【KDD 2018】MMoE

多任务模型通过学习不同任务的联系和差异,可提高每个任务的学习效率和质量。

多任务学习——【KDD 2018】MMoE

多任务学习的的框架广泛采用 shared-bottom 的结构,不同任务间共用底部的隐层。这种结构本质上可以减少过拟合的风险,但是效果上可能受到任务差异和数据分布带来的影响。也有一些其他结构,比如两个任务的参数不共用,但是通过对不同任务的参数增加 L2 范数的限制;也有一些对每个任务分别学习一套隐层然后学习所有隐层的组合。和 shared-bottom 结构相比,这些模型对增加了针对任务的特定参数,在任务差异会影响公共参数的情况下对最终效果有提升。缺点就是模型增加了参数量所以需要更大的数据量来训练模型,而且模型更复杂并不利于在真实生产环境中实际部署使用。

多任务学习——【KDD 2018】MMoE

如图,a) 是最原始的多任务学习模型

多任务学习——【KDD 2018】MMoE

b) 是加入单门(one gate)的MoE layer的多任务学习模型,

多任务学习——【KDD 2018】MMoE

其中:

k 表示k个任务;

n 表示n个expert network

c) 是文章提出的MMOE模型,将base的shared bottom换成了MoE layer,并对每个任务都加gate:

多任务学习——【KDD 2018】MMoE
多任务学习——【KDD 2018】MMoE