返回介绍

数学基础

统计学习

深度学习

工具

Scala

一、MMOE [2018]

发布于 2023-07-17 23:38:23 字数 7503 浏览 0 评论 0 收藏 0

  1. 近年来,深度神经网络模型已成功应用于很多现实世界的大规模应用程序application 中,例如推荐系统。这些推荐系统通常需要同时优化多个目标。例如,当给用户推荐电影时,我们希望用户不仅“购买”和“观看”电影,还希望用户能够喜欢这些电影,从而吸引用户回头观看更多的电影。即,我们可以创建模型来同时预测用户的购买情况和他们的评分情况。

    事实上,很多大规模推荐系统已经采用了基于深度神经网络模型的多任务学习。研究人员表示:多任务学习模型可以利用正则化和迁移学习来改善所有任务的模型预测。

    但是在实践中,多任务学习模型并不总是在所有任务上都超越相应的单任务模型。实际上很多基于 DNN 的多任务学习模型对诸如数据分布差异和任务之间关系之类的因素很敏感。来自任务差异的固有冲突inherent conflict 实际上会损害至少一部分任务的预测,尤其是当模型参数在所有任务之间广泛共享时。因此,重要的是研究特定任务目标task-specific objective 和任务间关系 inter-task relationship 之间建模的权衡 tradeoff

    早期的工作研究了多任务学习中的任务差异task difference,方法是为每个任务假设特定的数据生成过程,并根据假设来度量measuring 任务差异,然后根据任务的差异来提出建议。然而,由于实际应用程序通常具有更复杂的数据模式,因此很难度量任务差异并利用这些工作中建议的方法。

    最近的一些工作提出了新的建模技术来处理多任务中的任务差异,而不依赖于显式的任务差异度量。但是,这些技术通常涉及为每个任务添加更多的模型参数,从而适应任务差异。由于大规模推荐系统可能包含数百万或数十亿个参数,这些额外的参数可能是欠约束的under-constrained (即无法得到充分学习),这可能会损害模型质量。另外,由于serving 资源有限,这些参数的额外计算成本在实际生产环境中通常也是不可实现的。

    在论文 《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》 中,我们提出了一种新颖的、基于 Multi-gate Mixture-of-Expert: MMoE 结构的多任务学习方法,该方法受到Mixture-of-Expert: MoE 模型和最近的 MoE layer 的启发。

    MMoE 显式地对任务关系task relationship 建模,并学习task-specific函数以利用共享的 representation 。它允许自动分配参数来捕获共享的任务信息shared task information 或特定于任务的信息task-specific information ,而无需为每个任务添加许多新参数。

    MMoE 的骨干基于最常用的共享底部Shared-Bottom 多任务DNN 架构。Shared-Bottom 模型架构如图 (a) 所示,其中输入层之后的几个底层 bottom layer 在所有任务之间共享,然后每个任务在bottom representation 的顶部都有一个独立的 tower 网络。

    • MMoE 模型不是所有任务共享一个底部网络bottom network ,而是有一组bottom network,如图(c) 所示。每个bottom network称作一个专家子模型 expert submodel 。论文中每个专家都是前馈神经网络。
    • 然后我们为每个任务引入一个门控网络gating network 。门控网络馈入输入特征input feature,并输出 softmax 的门控权重,并以这些权重来集成assembling 所有的专家。
    • 集成专家的结果被传递到任务特定task-specifictower 网络中。通过这种方式,不同任务的门控网络可以学习专家集成的不同混合模式,从而捕获任务关系。

    以这种方式,我们允许不同的任务以不同的方式利用专家。

    为了理解 MMoE 是如何为不同级别level 任务相关性来学习它的专家和任务门控网络task gating network 的,我们进行了一项人工合成实验synthetic experiment 。在该实验中,我们可以通过任务之间的皮尔逊相关系数Pearson correlation 来度量和控制任务相关性。我们使用两个人工合成回归任务,并使用正弦函数作为数据生成机制来引入非线性。

    • 实验表明:MMoE 优于 baseline 方法,尤其是当任务相关性较低的情况下。
    • 在这组实验的多次运行中,我们还发现 MMoE 更容易训练(即可训练性 trainability),并且收敛到一个更低的 loss 。这与最近的发现有关,即调制modulation 和门控机制可以提高训练非凸深度神经网络的可训练性trainability

    我们进一步评估了 MMoEbenchmark 数据集(UCI Census-income 数据集)上的性能,该数据集具有多任务的配置。我们比较了几种 state-of-the-art 的多任务模型,这些模型通过软参数共享soft parameter sharing 来建模任务关系,并观察到MMOE 方法的提升。

    最后,我们在一个真实的大规模内容推荐系统上测试 MMoE。在这个系统中,当向用户推荐 item 时,我们同时学习两个分类任务。我们用数千亿个训练样本来训练 MMoE 模型,并将其与Shared-Bottom的生产模型production model 进行比较。我们观察到离线指标(如 AUC)有显著提升。此外,我们的 MMoE 模型在在线实验中不断提升在线指标。

    通过在benchmark 数据集和真实的大型推荐系统上进行的实验,我们证明了 MMoE 方法在几种 state-of-the-art 多任务学习模型上的成功。

    除了上述效果上的优点之外,实际机器学习生产系统的另一个主要设计因素是计算效率,这也是Shared-Bottom 多任务模型被广泛使用的最重要原因之一。该模型的共享部分在serving 时节省了大量的计算。MMoE 模型在很大程度上保留了计算优势,因为门控网络通常都是轻量级的,而专家网络在所有任务中共享。此外,通过将门控网络设计为稀疏的 top-k 门,MMoE 模型有可能实现更好的计算效率。

    论文贡献:

    • 首先,我们提出了一种新颖的 Multi-gate Mixture-of-Expert: MMOE 模型,该模型显式地对任务关系进行建模。通过调制 modulation 和门控 gating 网络,我们的模型在建模共享信息 shared information 和建模任务特定信息 task-specific information 之间自动地调整。
    • 其次,我们对人工合成数据进行控制实验。我们报告了任务相关性task relatedness 如何影响多任务学习中的训练动态training dynamics ,以及 MMoE 如何提高模型表达能力和可训练性trainability
    • 最后,我们对真实的 benchmark 数据集、以及具有数亿用户和 item 的大型生产推荐系统进行了实验。我们的实验验证了我们提出的方法在现实环境中的效率efficiency和效果effectiveness
  2. 相关工作:

    • DNN 中的多任务学习:多任务模型可以学习不同任务的共性commonalities 和差异differences 。这样做可以提高每个任务的效率和模型质量。

      • 《Multitask learning》《Multitask learning: A knowledge-based source of inductive bias》 提出了一种广泛使用的多任务学习模型,它具有共享底部shared-bottom 模型结构,其中底部隐层在任务之间共享。这种结构大大降低了过拟合的风险,但是可能会因为任务差异导致优化冲突optimization conflicts ,因为所有任务都需要在共享底层上使用相同的parameters

      • 为了了解任务相关性如何影响模型质量,早期的工作生成不同的任务相关性的人工合成数据,从而评估多任务模型的有效性。

      • 最近的一些方法不是在任务之间共享隐层和相同的模型参数,而是对特定任务的参数task-specific parameters 添加了不同类型的约束。

        例如,对于两个任务,《Low Resource Dependency Parsing: Cross-lingual Parameter Sharing in a Neural Network Parser》 在两组参数之间添加了 L2 约束。

        《Cross-stitch networks for multi-task learning》 为每个任务学习 task-specific 隐层 embeddingunique combination

        《Deep multi-task representation learning: A tensor factorisation approach》 使用张量分解模型为每个任务生成隐层参数。

        shared-bottom 模型相比,这些方法具有更多的 task-specific 参数,并且在任务差异导致共享参数更新的冲突时,可以获得更好的性能。但是,大量 task-specific 参数需要更多的训练数据来拟合,并且在大模型中可能效率不高。

    • 子网集成 subnetwork ensemble & 专家混合expert mixture:在本文中,我们应用了深度学习中的一些最新发现,例如参数调制parameter modulation 和集成方法ensemble method 来为多任务学习的任务关系建模。在 DNN 中,集成模型ensemble model 和子网络集成 subnetwork ensemble 已被证明能够提高模型性能。

      • 《Learning factored representations in a deep mixture of experts》《Outrageously large neural networks: The sparsely-gated mixture-of-experts layer》mixture-of-experts: MOE 模型转换为基础构建块(MoE layer),并将它们堆叠在 DNN 中。MoE layer 在训练训练期间和推断期间,根据 layer input 来选择子网(即 expert )。因此,该模型不仅在建模方面更强大,而且通过将稀疏性引入门控网络来降低计算成本。
      • 类似地,PathNet 是为通用人工智能处理不同任务而设计的,是一个巨大的神经网络,具有多层、以及每层内多个子模块。在为每个任务训练时,多条路径随机选择并由不同的 workers 并行训练。最佳路径的parameters 是固定的,并选择新的路径来训练新任务。

      我们从这些工作中获取灵感,通过使用子网(即 expert)的集成来实现迁移学习,同时节省计算成本。

    • 多任务 Application:由于分布式机器学习系统的发展,许多大规模的现实世界 application 都采用了 DNN-based 多任务学习算法,并观察到了实质性的质量提升。

      • 在多语言机器翻译任务上,通过参数共享,训练数据有限的翻译任务(例如小语种翻译任务)可以通过与拥有大量训练数据的其它翻译任务联合学习来改进。
      • 在推荐任务上,多任务学习有助于提升上下文感知推荐。
      • 《Ask the gru: Multitask learning for deep text recommendations》 中,通过共享 feature representationslower level hidden layers 可以改进文本推荐任务。
      • 《Deep neural networks for youtube recommendations》 中,shared-bottom 模型用于学习视频推荐的 ranking 算法。

      与这些早先的工作类似,我们在现实世界的大规模推荐系统上评估了我们的建模方法。我们证明了我们的方法具有可扩展性,并且与其它 state-of-the-art 建模方法相比具有良好的性能。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文