MMOE Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts阅读

Posted 一杯敬朝阳一杯敬月光

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MMOE Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts阅读相关的知识,希望对你有一定的参考价值。

论文地址:KDD 2018 | Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

github上大神的开源地址:GitHub - drawbridge/keras-mmoe: A TensorFlow Keras implementation of "Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts" (KDD 2018)

Abstract

基于神经网络的多任务学习已经成功的应用于诸如推荐系统等许多现实世界的大规模场景中。例如电影推荐,不仅要推荐用户倾向于购买或观看的电影,还要推荐他们喜欢的(下文提到是为了提高用户粘性,提高用户下次过来的可能性。也就是要同时预测用户的购买和对电影的评分)。通过多任务学习,期待用一个模型同时学习多个目标和任务。目前在用的多任务模型,通常对任务之间的相关性敏感。研究能权衡特定任务以及任务之间关系的模型是很有必要的。

文中提出的Multi-gate Mixture-of-Experts (MMoE) 方法,可以明确地学习从数据中建模任务间关系。通过在所有任务中共享专家子网络,同时训练门控网络来优化每个任务,从而使混合专家Mixture-ofExperts(MoE)结构适应多任务学习为了验证方法在不同任务相关性的数据集上的表现,首先将模型应用于可以人为控制任务相关性的人工生成的数据集上发现当任务不太相关时,MMOE的表现优于基准还发现MMOE在训练时的另一个优势,这取决于训练数据和模型初始化中不同级别的随机性。此外,展示了 MMoE 在实际任务上的性能提升,包括二分类基准和谷歌的大规模内容推荐系统。

Introduction

有研究说,多任务学习模型可以通过利用正则化和迁移学习来改进对所有任务的预测 。然而现实中,多任务学习模型并不总是在所有任务上都优于单任务模型。很多基于DNN的多任务学习模型对诸如任务之间的关系、数据分布的差异比较敏感任务差异带来的固有冲突实际上可能会影响部分任务的预测,尤其是当模型参数在所有任务之间广泛共享时( The inherent conflicts from task differences can actually harm the predictions of at least some of the tasks, particularly when model parameters are extensively shared among all tasks.)。

先前有研究通过为每个任务假设特定的数据生成过程,根据假设测量任务差异,然后根据任务的差异程度提出建议。但是,实际应用通常具有更复杂的数据模式,因此很难衡量任务差异并利用这些先前工作的建议方法。

最近有研究提出了新的建模技术来处理多任务学习中的任务差异,而不是依赖于明确的任务差异程度的测量。然而,这些技术通常为每个任务添加更多模型参数以适应任务差异。由于大规模推荐系统可能包含数百万或数十亿个参数,我们很难对这些额外的参数进行很好的约束(those additional parameters are often under-constrained),这可能会损害模型精度。由于服务资源有限,这些参数的额外计算成本在实际生产环境中也常常令人望而却步。

MMoE能利用共享信息建模任务之间的关系、以及每个特定任务的函数。在避免加入更多参数的情况下,允许自动分配参数来捕获共享的任务信息或者某个任务自己的信息。(MMoE explicitly models the task relationships and learns task-specific functionalities to leverage shared representations. It allows parameters to be automatically allocated to capture either shared task information or task-specific information, avoiding the need of adding many new parameters per task.)

MMoE 的主干建立在最常用的 Shared-Bottom 多任务 DNN 结构之上。 Shared-Bottom 模型结构如图 1(a) 所示,其中输入层之后的几个bottom layers在所有任务之间共享,然后每个任务在底部表示之上都有一个单独的网络“塔”。MMoE(如图 1(c))用一组bottom networks(每一个bottom network被称之为专家expert)替代了(a)的所有任务共享的一个bottom network。文中,每个专家都是一个前馈网络。然后为每个任务引入一个门控网络。input features同时输入给专家网络和门控网络,其中门控网络采用softmax激活函数,与专家网络的输出相乘,通过门控网络给专家网络的输出赋予不同的权重,使得每个任务可以以不同的方式利用专家网络。专家网络的输出以不同的权重方式组合后的结果,送入到各自任务的塔中通过这种方式,不同任务的门控网络可以学习不同专家的组合模式,从而捕获任务关系(the gating networks for different tasks can learn different mixture patterns of experts assembling, and thus capture the task relationships.)。

MMoE结构:

  1. 输入层
  2. 专家网络、门控网络;门控网络的个数对应于任务的个数,门控网络的输出维度对应于专家网络的数量
  3. 各任务自己的task tower
  4. 各任务的输出

为了了解 MMoE 如何针对不同级别的任务相关性学习其专家和门控网络,在人工生成的数据集上进行了试验,在该数据集上可以通过它们的 Pearson 相关性来测量和控制任务相关性。与[24]类似,使用两个合成回归任务并使用正弦函数作为数据生成机制来引入非线性。在这种设置下,MMOE优于基准,尤其是在任务相关性较低的情况下。在这组实验中,还发现 MMoE 更容易训练并且在多次运行期间收敛到更低的损失。这与最近研究一致,即调制和门控机制可以提高训练非凸深度神经网络的可训练性(This relates to recent discoveries that modulation and gating mechanisms can improve the trainability in training non-convex deep neural networks)。

通过多任务问题设置进一步评估了 MMoE 在 UCI 人口普查收入数据集(UCI Census-income dataset)上的性能。与几种最先进的多任务模型进行比较,这些模型通过软参数共享对任务关系进行建模,并观察我们方法的改进。

最后,在真实的大规模内容推荐系统上测试 MMoE,在向用户推荐items时,同时学习两个分类任务。用数千亿个训练样本训练 MMoE 模型,并将其与shared-bottom生产模型进行比较。离线指标如AUC有明显的提升。此外,MMoE 模型在实时实验中不断改进在线指标。

本文的贡献有三方面:首先,提出了一种新颖的MMoE模型,该模型明确地对任务关系进行建模。通过调制和门控网络,模型自动调整建模共享信息和建模任务特定信息(First, we propose a novel Multi-gate Mixture-of-Experts model which explicitly models task relationships.Through modulation and gating networks, our model automatically adjusts parameterization between modeling shared information and modeling task-specific information.)。其次,对合成数据进行实验。报告了任务相关性如何影响多任务学习中的训练动态以及 MMoE 如何提高模型表达能力和可训练性。最后,在真实的数据、具有数亿用户和iitem的大规模生产推荐系统上进行了实验。实验验证了MMoE在现实环境中的效率和有效性。

以上是关于MMOE Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts阅读的主要内容,如果未能解决你的问题,请参考以下文章

谷歌视频推荐多任务排序模型——MMoE

19推荐系统17MMoE: 多任务学习

多任务学习——KDD 2018MMoE

推荐系统(十五)多任务学习:谷歌MMoE(Multi-gate Mixture-of-Experts )

推荐系统(十五)多任务学习:谷歌MMoE(Multi-gate Mixture-of-Experts )

推荐系统(十五)多任务学习:谷歌MMoE(Multi-gate Mixture-of-Experts )