1、MMoE背景

MMoE是谷歌在2018年发表在KDD上的一篇基于多任务学习的经典论文,其使用场景是对不相关任务的多任务学习。在推荐系统中,这些不相关的任务可以示例为:视频流推荐中的CTR、时长、点赞、分享、收藏、评论等相关性不强的多个任务。

2、MMoE模型概述

2.1、Shared-Bottom model

MMoE模型的基础结构是“Shared-Bottom multi-task DNN”结构,Shared-Bottom model网络结构如下图。

Shared-Bottom model在输入层后接入几个bottom层作为多任务的共享网络结构,然后每个任务有一个独立的网络“塔”。这个网络结构比较简单,就是多个任务共享底部的Shared-Bottom网络,然后每个子任务在链接一个独立的tower网络。

这种网络结构的优点是浅层参数共享,互相补充学习,任务相关性越高,模型的loss可以降低到更低,但当任务没有好的相关性时,会影响模型的效果。

假设当前有K个任务,Shared-bottom Multi-task Model由一个shared-bottom的网络组成,这个shared-bottom网络可表示为函数f,将K个tower networks表示为h^{k},其中k=1,2,...,K为任务数。Shared-Bottom model的shared-bottom网络接入的是输入层,每个tower networks建立在shared-bottom网络的输出上,每个tower networks的输出就是对每个独立任务的网络输出,可表示为y_{k}。这样,对于子任务k,Shared-Bottom model的网络输出为:

2.2、One-gate MoE model

Shared-Bottom会导致不相关任务联合学习效果不佳,为了解决这个问题,一种实现是One-gate MoE模型。MoE由一组专家系统(Experts)组成的神经网络结构替换原来的Shared-Bottom部分,每一个Expert都是一个前馈神经网络,再加上一个门控网络(Gate)。

与Shared-bottom网络不同的是,One-gate MoE网络结构是将隐藏层划分为三个专家(expert)子网,同时接入一个Gate网络将各个子网的输出和输入信息进行组合,并将得到的结果进行相加。One-gate MoE将Shared-bottom层替换为3个Expert network并增加了一个门控网络。

MoE模型可公式化表示为:

 其中, f_{i}表示第i个专家网络,i=1,2,...,n,g是用来组合所有专家网络的结果的一个门网络。

g(x)_{i}是g(x)的第i个logit输出,表示专家网络f_{i}的概率值。Gate网络输出每个 Expert被选择的概率,然后将三个Expert 的输出加权求和。也就是说,Gate网络产生n个experts上的概率分布,最终的输出是所有experts的带权加和。

 2.3、Multi-gate MoE model

与所有任务共享底层网络不同的是,MMoE模型使用一组底层网络,Bottom网络中的每个网络都是一个Expert专家网络(Expert专家网络采用的是前馈神经网络)。MMoE结构为每一个任务设置一个“门网络Gate”,Gate网络的输入是输入特征,输出是每一个专家网络的权重,也就是说Gate网络用来选择每个Expert网络的权重,即每个Gate网络都可以根据不同任务来选择专家网络的子集。

3、RELATED WORK

多目标模型能够学习不同任务间的共性和差异。对于每个任务来说,多任务模型不仅能够提升效率还能够提升模型质量。当前使用广泛的多任务学习模型采用的是shared-bottom的模型结构,这种结构的底层网络被所有目标共享。这种模型结构虽然能够一定程度上减少过拟合的风险,但是因为所有的任务共享底层网络参数及目标间的差异性会导致网络难于最优化。

4、MMoE

4.1、Mixture-of-Experts

原始的MoE模型结构:

MMoE是MoE的改进,相对于MoE的结构中所有任务共享一个门控网络,MMoE的结构优化为每个任务都单独使用一个门控网络。这样的改进可以针对不同任务得到不同的Experts权重,从而实现对Experts的选择性利用,不同任务对应的门控网络可以学习到不同的Experts组合模式,因此模型更容易捕捉到子任务间的相关性和差异性。

4.2、Multi-gate Mixture-of-Experts 

MMoE模型的核心思想:使用一个MoE层代替shared bottom network。

MMoE模型为每个任务k添加一个独立的门网络g^{k},任务k的输出是:

MMoE模型由使用ReLU激活单元的相同多层感知机组成,门网络是输入经过softmax层的一个线性变换

 其中,w_{gk}是训练矩阵,n是专家网络数,d是特征的维度。

4.3、三种结构对比

图a中的模型是最常用也是最基础的shared-bottom模型,这个模型不同任务共享底层的tower,然后每个任务各自学习一个上层的tower。

由于多个任务共享底层的tower,可以使底层的信息学习的非常充分。同样的,如果不同任务间相关性不强,在学习过程中可能发生参数冲突(即同个特征在不同任务中可能是相反的作用)

为了底层的共享网络对不同任务也能做到个性化,图b中的MoE结构将共享网络由多个专家网络组成,并用了一个gate模型去学习不同专家网络的权重,最后每个任务是不同专家网络的加权和。底层共享网络由多个专家网络组成,增加了底层网络的个性化,可以减少参数参数冲突。

图c中的MMoE网络,和图b中的网络对比,每个任务学习了一个单独的gate。其优点就是对共享的底部网络增加了个性化,对于相关性比较差的任务也能表现的很好;缺点就是增加了模型的复杂度,而且每个任务都学了一个gate网络,最优解非常多,难以学好。

5、MMoE模型效果

论文给出的实验效果对应的模型配置:

  • 8个experts,每个expert是一个单层网络,隐层单元数是16;
  • tower网络也是一个单层网络,隐层单元数是8;
  • Adam optimizerl;
  • learning rate is grid searched from [0.0001, 0.001, 0.01]

6、参考资料

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐