论文笔记 | KDD2018 | Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Ex...

mmoe-title.jpg

论文地址:https://www.kdd.org/kdd2018/accepted-papers/view/modeling-task-relationships-in-multi-task-learning-with-multi-gate-mixture-

非官方代码:https://github.com/drawbridge/keras-mmoe

一 为什么读这篇

动机是做粗排模型看能不能参考精排的MMoE模型,也经常听到同组的同学在讨论这个模型,算是解决多目标问题比较经典的一篇,属于必看的一篇论文,其实也不算很新了,毕竟在18年就出来了的。

二 截止阅读时这篇论文的引用次数

2020.2.15 26次。在推荐领域里,对于新出的一篇文章算是不少了。

三 相关背景介绍

没往arXiv上挂,中了18年7月的KDD。G家出品,几个作者都是华人。本文是一作马家祺在google实习时的工作,同时也是密歇根大学的PHD,本科是T大的,本科导师唐杰是微博上机器学习领域里比较活跃的博主之一。

四 关键词

multi-task

mixture-of-experts

multi-gate

五 论文的主要贡献

1 提出MMoE模型来解决多任务模型

2 该模型有易训练,额外增加的计算成本不高的优点

六 详细解读

0 摘要

通过多任务学习,我们的目标是构建单一的模型来同时学习多个目标和任务,然而使用多任务模型预测的质量通常对任务之间的关系很敏感,因此,研究特定任务的目标与任务关系之间的建模权衡是至关重要的。本文提出的Multi-gate Mixture-of-Experts(MMoE)可以显式的学习从数据中建模任务关系。该方法采用在所有任务中共享专家子模型的Mixture-of-Experts(MoE)结构来进行多任务学习,同时还通过训练过的门网络来优化每个任务。

1 介绍

推荐系统通常需要同时优化多个目标,例如,构建的模型可以同时预测用户对电影是否购买以及打分是多少。虽然有研究报告称通过使用正则化和迁移学习的多任务学习模型能提升模型在所有任务上的预测能力,但实际上,许多多任务学习的模型表现还不如单任务模型,特别是许多基于DNN的多任务模型都对数据分布的差异和任务之间的关系非常敏感。来自于任务差异的固有冲突会损害至少某些任务上的预测,尤其是当所有任务极大的共享模型参数时更是如此。

相比合成数据,现实中的应用通常具有更复杂的数据模式,因此很难去衡量任务之间的差异。近来已经有一些工作无需依赖明确的任务差异度量来解决多任务学习中的任务差异,然后这些技术通常是给每个任务增加更多的模型参数来容纳任务的差异,对于大规模推荐系统来说,这些额外的参数通常是约束不足的,因此有可能伤害模型质量。这些参数带来的额外的计算量也是线上服务所不允许的。

本文提出的创新的MMoE结构,受Mixtuer-of-Experts(MoE)模型和MoE层的启发。MMoE显式的建模任务之间的关系,并通过学习特定任务的功能来平衡共享表示。它可以自动地分配参数以捕获是共享任务的信息还是特定于任务的信息,从而无需为每个任务都增加许多参数。

MMoE的骨架基于最常用的共享底层多任务DNN结构,如图1-a所示。而本文模型不是只有一个底层网络被所有任务都共享,而是有一组底层网络,每一个都称之为一个专家,如图1-c所示。

mmoe-fig1.jpg

在本文中,每个专家都是一个前向网络,之后为每个任务引入一个门网络。门网络使用输入特征和输出softmax门,将不同权重的专家的聚合在一起,从而使得不同的任务使用不同的专家。之后聚合在一起的专家的结果输入特定于任务的塔网络。通过这种方式,不同任务的门网络能够学习不同的专家组合模式,从而捕获任务间的关系。

本文的贡献主要有三点:

1 本文提出的MMoE模型可以用于显式的对任务关系建模。通过调制和门网络,本文模型可以自动地调整参数用于共享信息还是特定于任务的信息

2 对合成数据进行控制实验,报告了任务相关性如何影响多任务学习的动态训练,以及MMoE如何提升模型的可表达性和可训练性

3 本文在有亿万user和item的生产推荐系统上验证了模型的有效性

2 相关工作

2.1 基于DNN的多任务学习

最广为使用的多任务学习模型是共享底层的模型结构,这种结构极大的降低了过拟合的风险,但是由于所有的任务都需在底层共享参数,因此可能会因为任务差异而导致优化冲突。

2.2 融合子网络 & 专家组合

在DNN中,融合模型和融合子网络已经被证明可以提升模型性能(Hinton,Distilling the knowledge in
a neural network)。Eigen和Shazeer等人已经将专家组合(mixture-of-experts)模型构建为基本的块(MoE层)。MoE层基于训练或预测时的输入的层来选择子网络(专家),因此该模型不仅具有较强的建模能力,而且通过在门网络中引入稀疏性来降低计算成本。相似的,PathNet,在训练一项任务时,会随机选择多个pathway,并由多个worker并行同时训练,最佳pathway的参数是固定的,选择新的pathway来训练新任务。

2.3 多任务学习应用

例如,多语言机器翻译,context-aware推荐系统,文本推荐,YouTube DNN。

3 前置依赖

3.1 共享底层多任务模型

如图1-a所示,同时将其作为多任务模型的baseline。给定K个任务,将定义为底层共享网络,定义为K个塔网络,定义为每个任务独立的输出,则对于任务k,模型可以作如下定义(公式1):

3.2 生成合成数据

生成两个回归任务,用这两个任务标签的皮尔逊相关系数来作为任务关系的定量指标。具体生成方法略。。在本文剩余部分,为了简化,用权重向量的余弦相似度来作为任务相关性。

mmoe-fig2.jpg

3.3 任务相关性影响

如图3所示,与预期一样,模型性能随着任务相关性的降低而下降。这个现象也验证了本文的假设,即传统多任务模型对任务相关性是敏感的。

mmoe-fig3.jpg

4 建模方法

4.1 专家组合(Mixture-of-Experts)

原始的专家组合(MoE)模型(Hilton,Adaptive mixtures of local experts)

公式5定义如下:

其中,表示输出的第i个logit,用于表示专家的概率。表示n个专家网络,表示用于融合所有专家的门网络。更具体地说,门网络基于输入在n个专家上生成分布,最终输出是所有专家输出的权重和。

MoE层

MoE层和MoE模型有相同的结构,但是可以接收上一层的输出作为输入,并将输出作为后续的层。MoE层的主要目标是实现条件计算,即每个样本仅有网络的一部分是激活的。对于每个输入样本,模型能够通过门网络对于输入的条件只选择专家集合的一部分子集。

4.2 Multi-gate Mixture-of-Experts

MMoE模型的核心理念是用公式5的MoE层替代公式1中的底层共享网络。更重要的是,本文对于每个任务增加了分隔开的门网络。更确切地说,任务的输出是

其中,,图1-c展示了模型结构。

门网络只是简单的带有softmax层的输入的线性变换:

其中是待训练矩阵,是专家个数,是特征维度。

每个门网络可以根据输入样本来学习”选择“一部分专家。举个特例,如果只选择一个门得分最高的专家,那么每个门网络实际上是将输入空间线性分为n个区域,每个区域对应一个专家。MMoE能够以一种复杂的方法对任务关系进行建模,方法是通过确定不同门之间的分隔如何相互重叠。如果任务的相关性较低,则共享专家将受到惩罚,而这些任务的门网络将学会使用不同的专家来替代。

为了了解为每个任务引入单独的门网络如何帮助模型学习特定于任务的信息,本文与所有任务共享一个门的模型结构进行了比较。称其为One-gate Mixture-of-Experts(OMoE)模型,它也是直接将MoE层用于共享底层的多任务模型,如图1-b所示。

5 合成数据的实验

5.1 基于不同任务相关性数据的表现

重复了3.3节的实验,以共享底层模型和OMoE模型作为baseline

模型结构

输入维度100,8个单层专家网络,每层16个单元。两个塔网络也是单层网络,单元个数为8。模型的参数总共有。

结果
mmoe-fig4.jpg

如图4所示。有3个结论:

1 对于所有模型来说,相关性越高表现越好

2 在不同相关系数的数据上,模型表现的gap,MMoE明显比OMoE和共享底层模型低

3 两个MoE在所有场景下都优于共享底层模型

5.2 可训练性

mmoe-fig5.jpg

从图5可以得出几个结论:

1 共享底层的模型方差比基于MoE模型的要大,说明共享底层的模型更多的陷入局部优化点

2 在相关系数为1时,OMoE和MMoE一样健壮,但是当相关系数降为0.5时,OMoE的健壮性明显下降

3 三个模型的最小损失都是近似的,因为有神经网络的万能极限理论,所以这没有什么好意外的,但当模型足够复杂时,找到”正确“的模型将会更难,因此显式的对任务的关系进行建模仍然是有必要的

6 真实数据的实验

6.1 Baseline方法

L2-Constrained
Cross-Stitch
Tensor-Factorization

6.2 超参数调优

用《Capacity and Trainability in Recurrent Neural Networks》中使用的超参数调优器进行调优。为了比较公平,隐层单元的上限为2048,对于MMoE来说就是”专家个数 X 每个专家的隐层单元个数“。对学习率和训练步骤都进行了调优,对MMoE的专家个数和每个专家的隐层单元个数进行了调优。

6.3 Census-income Data

6.3.1 数据描述

将一些特征设置为标签,得到2组实验数据。

第一组:主任务是预测收入是非超过$50K,辅助任务是预测是否已婚

第二组:主任务是预测是否至少有大学学历,辅助任务是预测是否已婚

6.3.2 结果
mmoe-table1.jpg
mmoe-table2.jpg

6.4 大规模内容推荐

该实验基于google的推荐系统,有亿万的item,十亿的user。本文的排序模型有两个优化目标:

1 优化与互动有关的目标,如点击率和互动时间

2 优化与满意度相关的目标,如喜欢率

训练数据有千亿条。。如果分开训练,每个任务的模型需要学习十亿个参数。

6.4.1 实验设置

两个二分类任务:

1 互动子任务:预测用户互动相关的行为

2 满意度子任务:预测用户满意度相关的行为

sparse特征使用embedding,dense特征归一化到[0, 1]。batch size为1024,用SGD。MMoE的结构与共享底层的模型类似,只是简单的将共享底层模型的顶层替换为MMoE层,同时保持输出的隐层单元个数维度一致。

6.4.2 离线评估结果

300亿的训练集,100万的评估集

因为满意度任务的标签太稀疏了,因此只用互动子任务的AUC和R-Squared来评估

展示训练200万步,400万步,600万步后的结果

mmoe-table3.jpg

为了更好的理解门的作用,如图6所示,展示了每个任务门的softmax分布。因为满意度的标签远比互动的稀疏,满意度子任务的门更聚焦在一个专家上。

mmoe-fig6.jpg
6.4.3 线上实验结果
mmoe-table4.jpg

七 小结

多任务学习一个很好的范本,超越了传统的共享底层模型。名字虽然叫多门,其实对于只有两个目标的模型来说,叫双门更合适。本文写的还是非常清楚的,很顺畅的就读下来了,没有之前想象的那么复杂。顺着作者的思路捋下来,感觉创新的地方其实也不是特别大,实质就是MoE的进一步衍生。另外有个感觉就是Hilton真是功德无量,挖了多少大坑,养活了多少人。。。

素质四连

要解决什么问题

多任务学习

用了什么方法解决

基于MoE,引入多个门,提出MMoE模型来解决

效果如何

在合成数据,真实数据都有提升,同时并未显著加大计算量,对不同任务之间的相关性的依赖也很健壮

还存在什么问题

没发现,不要硬找

算法背后的模式和原理

基于MoE的扩展

你可能感兴趣的:(论文笔记 | KDD2018 | Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Ex...)