详解谷歌之多任务学习模型MMoE(KDD 2018)

文章发表在KDD 2018 Research Track上,链接为Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

在工业界基于神经网络的多任务学习在推荐等场景业务应用广泛,比如在推荐系统中对用户推荐物品时,不仅要推荐用户感兴趣的物品,还要尽可能地促进转化和购买,因此要对用户评分和购买两种目标同时建模。阿里之前提出的ESSM模型属于同时对点击率和转换率进行建模,提出的模型是典型的shared-bottom结构。多任务学习中有个问题就是如果子任务差异很大,往往导致多任务模型效果不佳。今天要介绍的这篇文章是谷歌的一个内容推荐团队考虑了多任务之间的区别提出了MMoE模型,并取得了不错的效果。

一、Motivation

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

因此,论文中提出了一个Multi-gate Mixture-of-Experts(MMoE)的多任务学习结构。MMoE模型刻画了任务相关性,基于共享表示来学习特定任务的函数,避免了明显增加参数的缺点。

二、模型介绍

MMoE模型的结构(下图c)基于广泛使用的Shared-Bottom结构(下图a)和MoE结构,其中图(b)是图(c)的一种特殊情况,下面依次介绍。

  • Shared-Bottom Multi-task Model

如上图a所示,shared-bottom网络(表示为函数f)位于底部,多个任务共用这一层。往上,K个子任务分别对应一个tower network(表示为h^k ),每个子任务的输出 y_k=h^k(f(x))

  • Mixture-of-Experts

MoE模型可以形式化表示为 y=\sum_{i=1}^{n}{g(x)_if_i(x)} ,其中 \sum_{i=1}^{n}{g(x)_i}=1 。其中 f_i,i=1,\cdots,n 是n个expert network(expert network可认为是一个神经网络)。g是组合experts结果的gating network,具体来说g产生n个experts上的概率分布,最终的输出是所有experts的带权加和。显然,MoE可看做基于多个独立模型的集成方法。这里注意MoE并不对应上图中的b部分。

后面有些文章将MoE作为一个基本的组成单元,将多个MoE结构堆叠在一个大网络中。比如一个MoE层可以接受上一层MoE层的输出作为输入,其输出作为下一层的输入使用。

  • 所提模型Multi-gate Mixture-of-Experts

文章提出的模型(简称MMoE)目的就是相对于shared-bottom结构不明显增加模型参数的要求下捕捉任务的不同。其核心思想是将shared-bottom网络中的函数f替换成MoE层,如上图c所示,形式化表达为:

y_k=h^k(f^k(x)),f^k(x)=\sum_{i=1}^{n}{g^k(x)_if_i(x)}

其中 g^k(x)=softmax(W_{gk}x) ,输入就是input feature,输出是所有experts上的权重。

一方面,因为gating networks通常是轻量级的,而且expert networks是所有任务共用,所以相对于论文中提到的一些baseline方法在计算量和参数量上具有优势。

另一方面,相对于所有任务公共一个门控网络(One-gate MoE model,如上图b),这里MMoE(上图c)中每个任务使用单独的gating networks。每个任务的gating networks通过最终输出权重不同实现对experts的选择性利用。不同任务的gating networks可以学习到不同的组合experts的模式,因此模型考虑到了捕捉到任务的相关性和区别。

三、总结

整体来看,这篇文章是对多任务学习的一个扩展,通过门控网络的机制来平衡多任务的做法在真实业务场景中具有借鉴意义。下面补充介绍文中的一个数据集设置的做法和实验结果中对不同模型的相互对比分析。

  • 人工构造数据集

在真实数据集中我们无法改变任务之间的相关性,所以不太方便进行研究任务相关性对多任务模型的影响。轮文中人工构建了两个回归任务的数据集,然后通过两个任务的标签的Pearson相关系数来作为任务相关性的度量。在工业界中通过人工构造的数据集来验证自己的假设是个有意思的做法。

  • 模型的可训练性

模型的可训练性,就是模型对于超参数和初始化是否足够鲁棒。作者在人工合成数据集上进行了实验,观察不同随机种子和模型初始化方法对loss的影响。这里简单介绍下两个现象:第一,Shared-Bottom models的效果方差要明显大于基于MoE的方法,说明Shared-Bottom模型有很多偏差的局部最小点;第二,如果任务相关度非常高,则OMoE和MMoE的效果近似,但是如果任务相关度很低,则OMoE的效果相对于MMoE明显下降,说明MMoE中的multi-gate的结构对于任务差异带来的冲突有一定的缓解作用。

编辑于 2019-01-28

文章被以下专栏收录