目录
一.引言
二.摘要 Abstract
三.介绍 Introduction
四.相关工作 RELATED WORK
1.DNN 中的多任务学习
2.SubNet 集成与 Expert 混合
3.多任务学习应用
五.建模方法 MODELING APPROACHES
1.Shared-bottom Multi-task Model
2.Mixture-of-Experts
3.Multi-gate Mixture-of-Experts
六.数据实验 REAL DATA EXPERIMENTS
1.基线模型 Baseline
2.参数调优 Hyper-Parameter
3.人口收入数据 Census-income Data
4.大规模内容推荐 Large-scale Content Recommendation
七.总结 CONCLUSION
一.引言
MMOE 是 Google 在 2018 年提出的一篇基于多任务学习的论文,全名为:Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts,其介绍了通过引入 Gate 实现不相关任务的多任务学习问题,下面对论文做简要回顾。
二.摘要 Abstract
基于神经网络的多任务学习已经成功地应用于许多现实世界的大规模应用,例如如推荐系统中我们可以建立深度模型,同时学习用户对 Item 的点击率、点赞率、收藏率等等。
现实场景下,多任务模型的预测质量往往对任务之间的关系很敏感。论文提出一种新的多任务学习方法:Multi-gate Mixture-of-Experts (MMoE) 模型,明确地学习从数据中建模任务关系。我们将 Mixture-of-Experts (MoE) 混合专家结构用于多任务学习,通过在所有任务中共享专家子模型,同时还拥有一个经过训练的 Gate 门控网络来优化每个 MoE 的输出占比。
三.介绍 Introduction
• 多任务学习问题
许多大型推荐系统已经使用 DNN模型进行多任务学习,多任务学习模型可以通过使用正则化和迁移学习来提高对所有任务的模型预测。然而许多基于 DNN 的多任务学习模型对数据分布差异和任务间关系等因素都很敏感。且任务差异带来的内在冲突实际上会损害至少部分任务的预测,特别是在所有任务之间广泛共享模型参数时。
• 原有解决方式
最早的研究通过假设每个任务的特定数据生成过程来研究多任务学习中的任务差异,根据假设测量任务差异,然后根据任务差异的大小提出建议。最近的一些研究提出了新的建模技术来处理多任务学习中的任务差异,而不依赖于明确的任务差异测量。然而,这些技术通常涉及到为每个任务添加更多的模型参数,以适应任务差异,由此新增的额外参数量级很大,额外的计算成本在生产环境中很难接受。
• 多门-混合专家模型
Multi-gate Mixture-of-Experts (MMoE) 结构的多任务学习方法,受到 Mixture-of-Experts (MoE)模型和最近的MoE层的启发。MMoE显式地对任务关系建模,并学习特定于任务的功能,以利用共享表示。它允许自动分配参数以捕获共享任务信息或特定于任务的信息,从而避免了为每个任务添加许多新参数的需要。
四.相关工作 RELATED WORK
1.DNN 中的多任务学习
多任务模型可以学习不同任务之间的共性和差异,这样做可以提高每个任务的效率和模型质量。
- 共享底层模型结构
模型具有共享底层模型结构,底层隐藏层在任务之间共享。这种结构极大地降低了过度调试的风险,但由于所有任务共享参数可能由于任务间的差异对优化条件造成影响。
- 合成数据生成
为了了解任务相关性对模型质量的影响,已有研究采用合成数据生成的方法,对不同类型的任务相关性进行操作,以评估多任务模型的有效性。
- 增加对应任务参数
最近的一些方法在特定于任务的参数上添加不同类型的约束。例如在两组参数之间添加 L2 约束、为每个任务学习特定的隐藏层嵌入组合、使用张量分解模型为每个任务生成隐层参数等等。相比于共享参数,该模式下的不同任务拥有更多特定参数,可以获得更好的性能。然而,大量的任务特定参数需要更多的训练数据以及工程师对业务任务的深刻理解,对大规模推荐模型不太友好。
2.SubNet 集成与 Expert 混合
在 DNN 中,将混合专家模型转化为基本的构建模块 (MoE层),并将它们堆叠在DNN中已被证明能够提高模型性能。MoE 层根据该层在训练时间和服务时间的输入选择 Expert 即 SubNet。通过引入门控网络的稀疏性,该模型不仅建模能力更强,而且降低了计算成本。通过使用 SubNet (专家)集成来实现迁移学习,同时节省计算量。
3.多任务学习应用
由于分布式机器学习系统的发展,许多大规模的现实应用已经采用了基于 DNN 的多任务学习算法,并观察到质量的显著提高。在多语言机器翻译任务中,由于模型参数共享,训练数据有限的翻译任务可以通过与训练数据量大的任务联合学习来改进。在构建推荐系统时,多任务学习被发现有助于提供上下文感知的推荐。与这些先前的工作类似,我们在现实世界的大规模推荐系统上评估了MMoE,该模型方法确实是可伸缩的,并且与其他最先进的建模方法相比具有良好的性能。
五.建模方法 MODELING APPROACHES
1.Shared-bottom Multi-task Model
如图 a 所示,该模型架构在许多多任务学习中广泛采用,论文将模型视为多任务建模中具有代表性的基线方法。给定 K 个任务,该模型由一个共享底部网络 (表示为函数 f) 和 K 个 Tower 塔网络组成,其中 K = 1,2,... 模型共享底层网络,塔式网络建立在共享底层的输出上,然后每个任务 Tower 的淡出输出与 Output K 遵循对应的任务。对于任务 K,模型可表示为:
其中共享体现在公用一个 f(x),多任务体现在多个 上,以开头的点击率、点赞率的多任务为例:
2.Mixture-of-Experts
混合专家模型可以采用如下公式表示:
其中 g(x)i 表示 g(x) 输出的第 i 个 logit,表示对应专家 fi 的概率。这里 f 是 n 个专家网络,可以理解为集成学习的多个基学习器,g 表示集合所有专家结果的门控网络。更具体地说,门控网络 g 根据输入产生了专家的概率分布,而最终输出是所有专家输出的加权和。MoE Layer 具有与 MoE 模型相同的结构,但接受前一层的输出作为输入和输出到后续层。然后以端到端的方式训练整个模型。
3.Multi-gate Mixture-of-Experts
多门专家混合 (MMoE) 模型,其关键思想史将共享底层网络替换为 MoE 层,同时为每个任务添加一个单独的门控网络 Gate K 用于捕捉不同任务时不同专家的贡献度:
图 c 显示了 MMoE 模型结构,实现由具有 ReLU 激活的相同多层感知器组成。门控网络是输入的简单线性变换,带有softmax层:
其中 为最终输出, 为 K 个任务, 为第 K 个任务的多个 Expert 的混合输出,每个 对应一个 Expert, 代表门控网络基于第 K 个任务生成的 Expert 专家概率分布。
Tips:
• 相比于 Shared-bottom Multi-task Model
与 Shared-bottom Model 相比,MMoE 的 N 个 Expert 网络也是 K 个任务共享的,而门控网络通常是轻量级的所以 MMoE 与一些多任务 Baseline 在计算量和参数量上并无太多差异,适用于工业场景。
• 相比于 Mixture-of-Experts
相比于 MoE K 个任务共享一个 Gate 门控网络外,MMoE 为每个任务准备一个单独的 Gate 门控网络,比较符合 Expert 对不同任务的权重存在差异的假设,通过不同的 Gate 可以学习到不同的 Expert 组合方式,从而捕捉到任务之间的相关性与差异。
六.数据实验 REAL DATA EXPERIMENTS
1.基线模型 Baseline
除了Shared-Bottom 多任务模型,我们还将我们的方法与几个最先进的多任务深度神经网络模型进行了比较,这些模型试图从数据中学习任务关系。
- L2-Constrained 正则
这种方法是为具有两个任务的跨语言问题而设计的。在这种方法中,用于不同任务的参数 θ 由 L2 约束软共享。设 yk 为任务 k 的真值标记,k∈1、2,则任务 k 的预测表示为:
θ 为模型参数,最终目标函数为:
其中 y1、y2 是任务 1 和任务 2 的基本真值标签,α 是超参数。该方法利用 α 的大小对任务关联度进行建模。
- Cross-Stitch "十字绣" 网络
这种方法通过引入 "十字绣" 单元来共享两个任务之间的知识。十字绣单元从任务 1 和任务 2 中获取分离的隐藏层 x1 和 x2 的输入,分别通过以下公式输出:
其中, j, k = 1、2 是一个可训练参数,表示任务 k 到任务 j 的交叉传递。任务 1 和任务 2 分别向上级发送任务 x1 和任务 x2。
- Tensor-Factorization 张量因子分解
该方法将多个任务的权重建模为张量,并利用张量分解方法实现任务间参数共享。这里实现了 Tucker 分解来学习多任务模型,例如,给定输入隐藏层大小为 m,输出隐藏层大小为 n,任务数为 k,则 m × n × k 张量的权重 W 由下式导出:
其中大小为 r1 × r2 × r3 的张量S,大小为 m × r1的矩阵 U1,大小为 n × r2 的 U2,大小为 k × r3 的 U3 是可训练参数。所有这些都是通过标准反向传播一起训练的。r1、r2 和 r3 是超参数。
2.参数调优 Hyper-Parameter
为了使比较公平,我们通过为每层隐藏单元的数量设置相同的上界 (2048) 来约束所有方法的最大模型大小。对于MMoE,它是 "专家数量" × "每个专家的 Hidden"。我们的方法和所有基线方法都是使用 TensorFlow 实现的。我们调整了所有方法的学习率和训练步骤数。我们还调优了一些特定于方法的超参数:
• MMOE: 专家数量,每个专家隐藏单位的数量。
• L2-Constrained: 隐层的大小。L2约束的权值 α。
• Cross-Stitch: 隐层的大小。L2约束的权值 α。
• Tensor-Factorization: r1, r2, r3 表示 Tuck 分解,隐藏层大小。
3.人口收入数据 Census-income Data
UCI 人口普查收入数据集提取自 1994 年人口普查数据库。它包含 299285 个美国成年人的人口统计信息实例,总共有40个特性。通过设置一些特征作为预测目标,我们从这个数据集中构建了两个多任务学习问题,并计算了 10,000 个随机样本上任务标签的 Pearson 相关性绝对值:
- Multi-Task-A
Output1:预测收入是否超过$50K;
Output2:预测此人的婚姻状况是否从未结过婚。
绝对 Pearson 相关性:0.1768。
- Multi-Task-B
Output1:预测学历是否为大学以上;
Output2:预测此人的婚姻状况是否从未结过婚。
绝对 Pearson 相关性:0.2373。
考虑到任务相关性 (通过 Pearson 相关性粗略测量) 在两组中都不是很强,Shared-Bottom 模型几乎总是多任务模型中最差的 (除了张量分解)。L2-Constrained 和 Cross-Stitch 对每个任务都有单独的模型参数,并对如何学习这些参数添加了约束,因此比 Shared-Bottom 表现得更好。在第二组中,MMoE 在所有方面都优于其他多任务模型。
4.大规模内容推荐 Large-scale Content Recommendation
模型在 Google 的大型内容推荐系统上进行实验,其中推荐是由数十亿用户的数亿个独特项目生成的。具体来说,给定用户当前消费某种商品的行为,该推荐系统的目标是向用户显示下一步消费的相关商品列表。我们设置的深度排名模型是针对两种类型的排名目标进行优化的:
(1) 优化与用户粘性相关的目标,如点击率和用户粘性时间。
(2) 对满意度相关目标进行优化,如相似率等。
我们的训练数据包括数千亿的用户隐式反馈,比如点击和点赞。如果单独训练,每个任务的模型需要学习数十亿个参数。因此,与单独学习多个目标相比,Shared-Bottom 架构具有较小的模型大小的好处。事实上,这种 Shared-Bottom 模型已经在生产中使用了。
• 模型试验
表中显示了参与度子任务的 AUC 分数和 R-Squared 分数。@2M 代表训练 200万步,其中包含 100 亿个样本、BatchSize = 1024,@4M、@6M 同理。MMoE 在这两个指标上都优于其他模型。
• Gate 理解
为了更好地理解门是如何工作的,下图展示了每个任务的 softmax 门的分布。可以看到,MMoE 学习了这两个任务之间的差异,并自动平衡了共享和非共享参数。由于满意度子任务的标签比参与度子任务的标签更稀疏,因此满意度子任务的大门更关注于单个专家:
七.总结 CONCLUSION
多门专家混合模型 Multi-gate MoE, MMoE 明确地从数据中建模学习任务关系,该方法可以更好地处理任务相关性较低的情况。且 MMoE 的训练更容易,效果也优于常见的 BaseLine 多任务学习模型。
• Expert 模型
常规情况下每一个 Expert 是一个小规模的全连接神经网络,不同 Expert 都有着不同的预测方向与相同的输出维度,当然放在广义的集成学习上看,Expert 可以是任何模型,只要输出维度相同即可。
• Gate Layer
Gate Layer 生成 Expert 概率分布并进行加权求和,这里引入了集成的思想,类似于多个 Expert 贡献力量。极端情况下可以修改为只激活一个 Expert 的意见,此时退化为常规模型。我们可以 Gate 输出分析不同 Expert 对不同任务的偏向。
• 任务相关性
文中多次提高多任务之间的相关性,对于相关性类似的任务,共享参数可以优化效率并且可复用性高,此时 MoE 与 MMoE 效果近似,而当任务相关性较低时,MMoE 的多 Gate 机制优与单 Gate 的 MoE,说明 Multi-Gate 的模式对于任务相关性不同造成的参数冲突有一定效果。
• Softmax 权重
Gate 门输出的权重是通过端到端训练得到的,其学习了数据中蕴含的任务逻辑,如果我们有先验信息认为某个 Expert 的意见比较可靠,则可以手动修正 Softmax 处得到的多个 Expert 的权重。
论文参考:https://dl.acm.org/doi/10.1145/3219819.3220007
多任务学习讲解:多目标模型讲解