Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts/paper/zh

    From Marovi AI
    Other languages:
    SummarySource
    Research Paper
    Authors Jiaqi Ma; Zhe Zhao; Xinyang Yi; Jilin Chen; Lichan Hong; Ed H. Chi
    Year 2018
    Venue Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD '18)
    Topic area Machine Learning
    Difficulty Research
    Source View paper
    PDF Download PDF

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

    Jiaqi Ma(School of Information, University of Michigan, Ann Arbor)
    Zhe Zhao, Xinyang Yi, Jilin Chen, Lichan Hong, Ed H. Chi(Google Inc.)

    此项工作由第一作者在 Google Inc. 实习期间完成。

    刊于 Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining(KDD '18),2018 年 8 月 19–23 日,英国伦敦。ACM,美国纽约州纽约市,共 10 页。

    摘要

    基于神经网络的多任务学习已成功应用于诸多大规模真实场景,例如推荐系统。比如在电影推荐中,除了向用户提供他们倾向于购买和观看的电影,系统可能还要进一步优化让用户在观看后产生喜爱。多任务学习的目标是构建一个单一模型,同时学习这些多重目标和任务。然而,常用的多任务模型其预测质量往往对任务之间的关系十分敏感。因此,研究任务特定目标与任务间关系之间的建模取舍至关重要。

    本文提出一种新的多任务学习方法——Multi-gate Mixture-of-Experts(MMoE),其能够显式地从数据中学习任务之间的关系。我们将 Mixture-of-Experts(MoE)结构改造用于多任务学习:在所有任务间共享一组专家子模型,同时为每个任务训练一个门控网络以优化该任务。为了在不同任务相关程度的数据上验证该方法,我们首先在一个可控制任务相关性的合成数据集上进行实验,结果表明,在任务相关性较低时,所提方法优于基线方法。我们还表明,MMoE 结构在不同的训练数据随机性和模型初始化条件下能带来额外的可训练性收益。此外,我们在一个二分类基准以及 Google 的大规模内容推荐系统上证明了 MMoE 的性能提升。

    CCS Concepts: Computing methodologies → Multi-task learning;Neural networks;Information systems → Recommender systems。

    关键词: multi-task learning;mixture of experts;neural network;recommendation system

    1. 引言

    近年来,深度神经网络模型已成功应用于许多大规模真实场景,例如推荐系统 [11]。这些推荐系统往往需要同时优化多个目标。例如在向用户推荐电影时,我们不仅希望用户购买并观看电影,还希望他们在观看后产生喜爱,以便后续继续回来观看更多电影。也就是说,我们可以构建模型同时预测用户的购买行为和他们的评分。事实上,许多大规模推荐系统已采用基于深度神经网络(DNN)的多任务学习 [3]。

    已有研究者报告,多任务学习模型可借助正则化和迁移学习提升所有任务的预测效果 [8]。然而在实践中,多任务学习模型并不总能在所有任务上优于对应的单任务模型 [23, 26]。事实上,许多基于 DNN 的多任务学习模型对数据分布差异以及任务之间的关系等因素都很敏感 [15, 34]。任务差异引发的内在冲突可能实际上损害至少部分任务的预测效果,尤其在模型参数在所有任务间被大量共享时更为明显。

    已有工作 [4, 6, 8] 对多任务学习中的任务差异进行了研究,做法是为每个任务假设特定的数据生成过程、按该假设度量任务差异,然后根据任务差异程度提出建议。然而,由于真实应用的数据模式通常复杂得多,这些任务差异往往难以度量,前述工作所建议的方法也难以直接利用。

    近期一些工作提出了新的建模技术,用以处理多任务学习中的任务差异,而无需显式度量任务差异 [15, 27, 34]。然而这些方法通常需要为每个任务增加大量额外参数以容纳任务差异。由于大规模推荐系统的参数量可达数百万乃至数十亿,这些额外参数往往约束不足,可能损害模型质量。在真实生产环境中,这些额外参数带来的额外计算开销也常因服务资源有限而难以承受。

    本文提出一种基于新颖的 Multi-gate Mixture-of-Experts(MMoE)结构的多任务学习方法,其灵感来自于 Mixture-of-Experts(MoE)模型 [21] 以及近期的 MoE 层 [16, 31]。MMoE 显式地建模任务关系,并学习任务特定的功能,以利用共享表示。它使参数可以自动地被分配用于捕捉共享的任务信息或任务特定的信息,从而无需为每个任务新增大量参数。

    MMoE 的主干基于最常用的 Shared-Bottom 多任务 DNN 结构 [8] 构建。Shared-Bottom 模型结构如图 1 (a) 所示:输入层之后的若干底层在所有任务间共享,然后每个任务各有一个独立的“塔”(tower)网络,搭建在底层表示之上。与所有任务共享一个底层网络不同,我们的模型(图 1 (c))拥有一组底层网络,其中每个被称为一个专家。在本文中,每个专家是一个 feed-forward 网络。我们随后为每个任务引入一个门控网络。门控网络以输入特征为输入,输出 softmax 门控,将专家以不同权重组合起来,使不同任务可以以不同方式使用专家。组合后的专家结果再被送入任务特定的塔网络。这样,不同任务的门控网络可学到不同的专家组合模式,从而捕捉任务之间的关系。

    为了解 MMoE 如何在不同任务相关程度下学习其专家和任务级门控网络,我们设计了一个合成实验,通过 Pearson 相关性来度量并控制任务相关性。与 [24] 类似,我们使用两个合成回归任务,并使用正弦函数作为数据生成机制以引入非线性。在该设置下,我们的方法优于基线方法,尤其是在任务相关性较低时。在这组实验中,我们还发现 MMoE 更易于训练,并在多次运行中收敛到更好的损失。这与近期关于调制和门控机制可改善非凸深度神经网络可训练性的发现相一致 [10, 19]。

    我们还在基准数据集 UCI Census-income 上以多任务问题设置评估 MMoE 的性能。我们与若干通过软参数共享建模任务关系的最新多任务模型进行了比较,并观察到我们的方法有所提升。

    最后,我们在一个真实的大规模内容推荐系统上测试 MMoE,在向用户推荐内容时同时学习两个分类任务。我们用数千亿条训练样本训练 MMoE 模型,并与一个生产中的 shared-bottom 模型进行比较。我们观察到离线指标(例如 AUC)有显著提升。此外,在线上实验中,MMoE 模型也持续提升在线指标。

    本文的贡献有三:其一,我们提出了一种新的 Multi-gate Mixture-of-Experts 模型,显式地建模任务关系。通过调制与门控网络,我们的模型可在共享信息建模与任务特定信息建模之间自动调整参数化。其二,我们在合成数据上进行了受控实验,报告了任务相关性如何影响多任务学习的训练动态,以及 MMoE 如何同时改善模型表达能力与可训练性。其三,我们在真实基准数据以及一个拥有数亿用户和物品的大规模生产推荐系统上进行了实验,验证了所提方法在真实场景中的效率与有效性。

    图 1:(a) Shared-Bottom 模型。(b) One-gate MoE 模型。(c) Multi-gate MoE 模型。

    2. 相关工作

    2.1. DNN 中的多任务学习

    多任务模型可以学习不同任务之间的共性与差异。这样既可提升效率,也可提高每个任务的模型质量 [4, 8, 30]。最广泛使用的多任务学习模型之一是 Caruana [8, 9] 提出的 shared-bottom 结构,其底层隐藏层在所有任务间共享。该结构显著降低了过拟合的风险,但由于所有任务在 shared-bottom 层共用同一组参数,可能因任务差异而产生优化冲突。

    为了解任务相关性如何影响模型质量,已有工作通过合成数据生成,并操控不同类型的任务相关性,以评估多任务模型的有效性 [4–6, 8]。

    与在任务间共享隐藏层和相同模型参数不同,一些最近的方法在任务特定参数上施加不同类型的约束 [15, 27, 34]。例如对于两个任务,Duong 等人 [15] 在两组参数之间引入 L-2 约束。cross-stitch 网络 [27] 为每个任务学习一种独特的任务特定隐藏层 embedding 组合。Yang 等人 [34] 用张量分解模型为每个任务生成隐藏层参数。与 shared-bottom 模型相比,这些方法拥有更多任务特定参数,在任务差异导致更新共享参数时出现冲突的情况下可获得更好的性能。然而,大量的任务特定参数需要更多训练数据来拟合,在大规模模型中可能效率不高。

    2.2. 子网络集成与 mixture of experts

    本文将深度学习的一些最新发现——如参数调制与集成方法——用于多任务学习中的任务关系建模。在 DNN 中,集成模型与子网络集成已被证明能够提升模型性能 [9, 20]。

    Eigen 等人 [16] 与 Shazeer 等人 [31] 将 mixture-of-experts 模型变成基本构建块(MoE 层),并在 DNN 中堆叠使用。MoE 层在训练时和服务时都根据该层的输入来选择子网络(专家)。因此,该模型不仅在建模上更强,还通过在门控网络中引入稀疏性而降低了计算成本。类似地,PathNet [17] 面向通用人工智能、用于处理不同任务,是一个含多层、每层有多个子模块的大型神经网络。在训练某一个任务时,会随机选择多条路径并由不同的 worker 并行训练。最佳路径的参数被固定下来,然后为新任务选择新的路径。我们从这些工作中获得启发,通过子网络(专家)的集成在节省计算的同时实现迁移学习。

    2.3. 多任务学习的应用

    得益于分布式机器学习系统的发展 [13],许多大规模真实应用已采用基于 DNN 的多任务学习算法,并观察到显著的质量提升。在多语言机器翻译任务中,通过共享模型参数,训练数据有限的翻译任务可以通过与拥有大量训练数据的任务联合学习而获得改进 [22]。在构建推荐系统方面,多任务学习被发现对提供上下文感知的推荐很有帮助 [28, 35]。在 [3] 中,一个文本推荐任务通过共享特征表示与较低层次的隐藏层而获得改进。在 [11] 中,使用一个 shared-bottom 模型学习视频推荐的排序算法。与这些前人工作类似,我们在一个真实的大规模推荐系统上评估我们的建模方法。我们证明该方法确实可扩展,并相较其他最新建模方法具有更好的性能。

    3. 预备知识

    3.1. Shared-bottom 多任务模型

    我们首先介绍图 1 (a) 中的 shared-bottom 多任务模型,该框架由 Rich Caruana [8] 提出,并被广泛应用于许多多任务学习场景 [18, 29]。因此,我们将其视为多任务建模中具有代表性的基线方法。

    给定 $ K $ 个任务,模型由一个 shared-bottom 网络(以函数 $ f $ 表示)和 $ K $ 个塔网络 $ h_k $ 组成,其中 $ k = 1, 2, \ldots, K $ 分别对应各任务。shared-bottom 网络位于输入层之后,塔网络则建立在 shared-bottom 的输出之上。每个任务的独立输出 $ y_k $ 继而由相应任务特定的塔产生。对任务 $ k $,模型可表示为:

    $ y_k = h_k(f(x)). \qquad (1) $

    3.2. 合成数据生成

    已有工作 [15, 27] 表明,多任务学习模型的性能高度依赖于数据中任务之间的内在相关性。然而,直接研究任务相关性如何影响真实应用中的多任务模型并不容易,因为在真实应用中我们无法轻易改变任务之间的相关性并观察其效应。因此,为对该关系进行实证研究,我们首先使用合成数据,以便能够方便地度量和控制任务相关性。

    受 Kang 等人 [24] 启发,我们生成两个回归任务,并使用这两个任务标签的 Pearson 相关系数作为任务关系的定量指标。由于我们聚焦于 DNN 模型,与 [24] 中使用线性函数不同,我们按 [33] 的方式将回归模型设为正弦函数的组合。具体地,合成数据按如下方式生成。

    1. 给定输入特征维度 $ d $,我们生成两个正交单位向量 $ u_1, u_2 \in \mathbb{R}^d $,即 $ u_1^T u_2 = 0 $,$ \|u_1\|_2 = 1 $,$ \|u_2\|_2 = 1 $
    2. 给定一个尺度常数 $ c $ 与相关性分数 $ -1 \leq p \leq 1 $,生成两个权重向量 $ w_1, w_2 $ 使得:
    $ w_1 = c\, u_1, \qquad w_2 = c\left(p\, u_1 + \sqrt{1 - p^2}\, u_2\right). \qquad (2) $
    1. 随机采样一个输入数据点 $ x \in \mathbb{R}^d $,其每个元素均来自 $ \mathcal{N}(0, 1) $
    2. 按如下方式为两个回归任务生成两个标签 $ y_1, y_2 $:
    $ y_1 = w_1^T x + \sum_{i=1}^{m} \sin\!\left(\alpha_i w_1^T x + \beta_i\right) + \epsilon_1, \qquad (3) $
    $ y_2 = w_2^T x + \sum_{i=1}^{m} \sin\!\left(\alpha_i w_2^T x + \beta_i\right) + \epsilon_2, \qquad (4) $

    其中 $ \alpha_i, \beta_i, i = 1, 2, \ldots, m $ 是控制正弦函数形状的给定参数,$ \epsilon_1, \epsilon_2 \overset{i.i.d.}{\sim} \mathcal{N}(0, 0.01) $

    1. 重复 (3) 和 (4) 直到生成足够的数据。

    由于数据生成过程是非线性的,直接生成具有给定标签 Pearson 相关性的任务并不容易。我们改为操控式 (2) 中权重向量的余弦相似度 $ \cos(w_1, w_2) = p $,并随后测量得到的标签 Pearson 相关性。注意,在 $ y_1 = w_1^T x + \epsilon_1 $$ y_2 = w_2^T x + \epsilon_2 $ 的线性情形下,$ y_1, y_2 $ 的标签 Pearson 相关性恰为 $ p $。在非线性情形下,式 (3) 与式 (4) 中的 $ y_1 $$ y_2 $ 也呈正相关,如图 2 所示。

    为简化叙述,本文其余部分将权重向量的余弦相似度称为“任务相关性”。

    图 2:标签 Pearson 相关性 vs. 权重余弦相似度(任务相关性)。X 轴为权重向量的余弦相似度,Y 轴为标签之间得到的 Pearson 相关性。对每个权重余弦相似度,我们生成 10k 个含两标签的数据点,并计算这两个标签之间的 Pearson 相关性。重复此过程,绘制其均值,误差棒代表 100 次试验中的 2 倍标准差。

    图 3:Shared-Bottom 模型在不同任务相关性下、合成数据上的性能。任务相关性为 1 意味着两个任务共享相同的权重向量,但具有独立的噪声。X 轴为训练步数,Y 轴为 200 次独立运行的平均损失。

    3.3. 任务相关性的影响

    为了验证在基线多任务模型设置下,任务相关性较低会损害模型质量,我们在合成数据上进行如下受控实验。

    1. 给定一组任务相关性分数,为每个分数生成一个合成数据集;
    2. 在每个数据集上分别训练一个 Shared-Bottom 多任务模型,保持所有模型和训练超参数相同;
    3. 在独立生成的数据集上重复步骤 (1) 和 (2) 数百次,但保持任务相关性分数列表与超参数相同;
    4. 计算每个任务相关性分数下模型的平均表现。

    图 3 给出了不同任务相关性下的损失曲线。正如预期,随着任务相关性下降,模型的性能呈下降趋势。该趋势在许多不同的超参数设置下都是普遍存在的,这里我们仅在图 3 中展示一个受控实验结果作为示例。在该示例中,每个塔网络是一个单层、含 8 个隐藏单元的神经网络,shared-bottom 网络是一个 size = 16 的单层网络。模型基于 TensorFlow [1] 实现,使用默认设置的 Adam 优化器 [25] 进行训练。注意两个回归任务是对称的,因此只需报告其中一个任务的结果即可。这一现象验证了我们的假设——传统多任务模型对任务关系十分敏感。

    4. 建模方法

    4.1. Mixture-of-Experts

    原始的 Mixture-of-Experts(MoE)模型 [21] 可表示为:

    $ y = \sum_{i=1}^{n} g(x)_i\, f_i(x), \qquad (5) $

    其中 $ \sum_{i=1}^{n} g(x)_i = 1 $,而 $ g(x)_i $(即 $ g(x) $ 输出的第 $ i $ 个 logit)表示专家 $ f_i $ 的概率。

    这里 $ f_i, i = 1, \ldots, n $$ n $ 个专家网络,$ g $ 表示用于综合所有专家结果的门控网络。更具体地,门控网络 $ g $ 基于输入产生一个在 $ n $ 个专家上的分布,最终输出是所有专家输出的加权和。

    MoE 层: MoE 最初是作为一种对多个独立模型进行集成的方法,而 Eigen 等人 [16] 与 Shazeer 等人 [31] 将其转化为基本构建块(MoE 层),并在 DNN 中堆叠使用。MoE 层与 MoE 模型结构相同,但以前一层的输出为输入,并将输出传递给下一层。整个模型随后以 end-to-end 的方式训练。

    Eigen 等人 [16] 与 Shazeer 等人 [31] 所提 MoE 层结构的主要目标是实现条件计算 [7, 12],即网络中仅有部分组件在每个样本上被激活。对每个输入样本,模型能够基于输入,通过门控网络仅选择一个专家子集。

    4.2. Multi-gate Mixture-of-Experts

    我们提出一种新的 MoE 模型,旨在捕捉任务差异,而无需相对于 shared-bottom 多任务模型显著增加模型参数。该新模型称为 Multi-gate Mixture-of-Experts(MMoE),其核心思想是将式 (1) 中的 shared-bottom 网络 $ f $ 替换为式 (5) 中的 MoE 层。更重要的是,我们为每个任务 $ k $ 增加一个独立的门控网络 $ g^k $。更精确地,任务 $ k $ 的输出为:

    $ y_k = h_k(f^k(x)), \qquad (6) $
    $ \text{where } f^k(x) = \sum_{i=1}^{n} g^k(x)_i\, f_i(x). \qquad (7) $

    模型结构示意见图 1 (c)。

    我们的实现由具有 ReLU 激活的相同多层感知机构成。门控网络只是输入的线性变换加上一个 softmax 层:

    $ g^k(x) = \mathrm{softmax}(W_{g_k} x), \qquad (8) $

    其中 $ W_{g_k} \in \mathbb{R}^{n \times d} $ 是可训练矩阵。$ n $ 是专家数量,$ d $ 是特征维度。

    每个门控网络可学习到根据输入样本“选择”一个专家子集来使用,这对多任务学习中的灵活参数共享是有利的。作为特例,如果仅选择门控分数最高的一个专家,那么每个门控网络实际上将输入空间线性划分为 $ n $ 个区域,每个区域对应一个专家。MMoE 通过决定不同门控所产生的划分如何相互重叠,可以以复杂的方式建模任务关系。当任务相关性较低时,共享专家会受到惩罚,这些任务的门控网络会转而学习使用不同的专家。与 Shared-Bottom 模型相比,MMoE 仅多出若干门控网络,而门控网络中的模型参数量微乎其微。因此整个模型仍尽可能享受多任务学习中知识迁移的好处。

    为了解为每个任务引入独立门控网络如何帮助模型学习任务特定信息,我们与一种所有任务共享单一门控的模型结构进行比较。我们将其称为 One-gate Mixture-of-Experts(OMoE)模型。这相当于将 MoE 层直接套用于 Shared-Bottom 多任务模型上。模型结构示意见图 1 (b)。

    5. MMoE 在合成数据上的实验

    在本节中,我们希望了解 MMoE 模型是否真的能更好地处理任务相关性较低的情形。与第 3.3 节类似,我们在合成数据上进行受控实验来研究该问题。我们改变合成数据的任务相关性,并观察不同模型的行为变化。我们还进行可训练性分析,表明基于 MoE 的模型相对于 Shared-Bottom 模型更易训练。

    5.1. 在不同任务相关性数据上的性能

    我们对所提 MMoE 模型以及两个基线模型——Shared-Bottom 模型和 OMoE 模型——重复第 3.3 节的实验。

    模型结构。 输入维度为 100。两种基于 MoE 的模型均拥有 8 个专家,每个专家由一个单层网络实现。专家网络中隐藏层的大小为 16。塔网络仍为大小 = 8 的单层网络。我们注意到共享专家与塔中模型参数总数为 $ 100 \times 16 \times 8 + 16 \times 8 \times 2 = 13056 $。对于基线 Shared-Bottom 模型,我们仍将塔网络设为大小 = 8 的单层网络,并将单层 shared-bottom 网络的大小设为 $ 13056 / (100 + 8 \times 2) \approx 113 $

    结果。 所有模型均使用 Adam 优化器训练,学习率从 $ [0.0001, 0.001, 0.01] $ 中网格搜索。对每一对模型-相关性设置,我们进行 200 次独立随机数据生成与模型初始化的运行。平均结果如图 4 所示,主要观察如下:

    1. 对所有模型而言,在相关性较高的数据上的性能优于在相关性较低的数据上的性能。
    2. MMoE 模型在不同相关性数据上的性能差距远小于 OMoE 模型和 Shared-Bottom 模型。这一趋势在 MMoE 与 OMoE 之间尤为明显:在极端情形下,即两个任务完全相同时,MMoE 与 OMoE 的性能几乎没有差别;但当任务之间的相关性下降时,OMoE 模型的性能出现明显下降,而 MMoE 模型几乎不受影响。因此,在低相关性场景下,使用任务特定的门控来建模任务差异至关重要。
    3. 在所有场景下,两种 MoE 模型在平均性能上均优于 Shared-Bottom 模型。这表明 MoE 结构本身就带来了额外收益。基于这一观察,我们在下一小节中将进一步说明,MoE 模型相比 Shared-Bottom 模型具有更好的可训练性。

    图 4:MMoE、OMoE 与 Shared-Bottom 在不同相关性合成数据上的平均性能。(a) 相关性为 0.5 时的性能。(b) 相关性为 0.9 时的性能。(c) 两个完全相同任务下的性能。

    5.2. 可训练性

    对于大型神经网络模型,我们非常关心其可训练性,即模型在一系列超参数设置和模型初始化条件下的鲁棒性。

    最近,Collins 等人 [10] 发现,我们认为优于普通 RNN 的一些带门控的 RNN 模型(如 LSTM 和 GRU)其实只是更易训练,而不是拥有更高的模型容量。虽然我们已表明 MMoE 在任务相关性较低时能更好地应对该情形,但我们也希望从可训练性的角度对其行为有更深入的理解。

    借助合成数据,我们可以自然地考察模型对数据随机性和模型初始化随机性的鲁棒性。我们在每种设置下多次重复实验,每次数据均来自同一分布但使用不同随机种子,模型初始化也各不相同。我们在图 5 中绘制了多次运行的最终损失值直方图。

    直方图中有三点有趣观察。首先,在所有任务相关性设置下,Shared-Bottom 模型的性能方差都远大于基于 MoE 的模型。这意味着 Shared-Bottom 模型通常存在比基于 MoE 的模型多得多的劣质局部极小。其次,当任务相关性为 1 时,OMoE 模型的性能方差与 MMoE 模型同样稳健,但当任务相关性降至 0.5 时,OMoE 的稳健性出现明显下降。注意,MMoE 与 OMoE 的唯一区别就在于是否具有多门控结构,这验证了多门控结构在解决任务差异冲突所致劣质局部极小方面的作用。最后,值得指出的是,三种模型所能达到的最小损失相近。这并不意外,因为神经网络在理论上是通用逼近器,只要模型容量足够,就应当存在一个能很好学到两个任务的“正确”Shared-Bottom 模型。然而,这是 200 次独立实验运行的分布,我们怀疑对于更大、更复杂的模型(例如当 shared-bottom 网络是一个循环神经网络时),得到“正确”任务关系模型的机会会更小。因此,显式建模任务关系仍然是值得的。

    图 5:MMoE、OMoE 与 Shared-Bottom 多任务模型在不同相关性合成数据上的性能直方图。

    6. 真实数据实验

    在本节中,我们在真实数据集上进行实验,以验证所提方法的有效性。

    6.1. 基线方法

    除了 Shared-Bottom 多任务模型之外,我们还将所提方法与若干尝试从数据中学习任务关系的最新多任务深度神经网络模型进行比较。

    L2-Constrained [15]: 该方法面向跨语言两任务问题。在该方法中,不同任务所用的参数通过 L2 约束实现软共享。

    $ y_k $ 为任务 $ k $ 的真实标签,$ k \in \{1, 2\} $,任务 $ k $ 的预测表示为 $ \hat{y}_k = f(x; \theta_k) $,其中 $ \theta_k $ 为模型参数。

    该方法的目标函数为:

    $ \mathcal{L}(y_1, f(x; \theta_1)) + \mathcal{L}(y_2, f(x; \theta_2)) + \alpha \|\theta_1 - \theta_2\|_2^2, $

    其中 $ y_1, y_2 $ 为任务 1 和任务 2 的真实标签,$ \alpha $ 为超参数。该方法以 $ \alpha $ 的大小来建模任务相关性。

    Cross-Stitch [27]: 该方法通过引入“Cross-Stitch”单元在两个任务之间共享知识。Cross-Stitch 单元以来自任务 1 与任务 2 的相互独立的隐藏层 $ x_1 $$ x_2 $ 为输入,根据以下方程分别输出 $ \tilde{x}_1^i $$ \tilde{x}_2^i $:

    $ \begin{bmatrix} \tilde{x}_1^i \\ \tilde{x}_2^i \end{bmatrix} = \begin{bmatrix} \alpha_{11} & \alpha_{12} \\ \alpha_{21} & \alpha_{22} \end{bmatrix} \begin{bmatrix} x_1^i \\ x_2^i \end{bmatrix}, $

    其中 $ \alpha_{jk}, j, k = 1, 2 $ 为可训练参数,表示从任务 $ k $ 到任务 $ j $ 的交叉迁移。$ \tilde{x}_1 $$ \tilde{x}_2 $ 分别被送入任务 1 与任务 2 的更高层。

    Tensor-Factorization [34]: 在该方法中,多任务的权重被建模为张量,并采用张量分解方法在任务间共享参数。在比较中,我们采用 Tucker 分解来学习多任务模型,文献 [34] 报告称该分解给出最可靠的结果。例如,给定输入隐藏层大小 $ m $、输出隐藏层大小 $ n $ 和任务数 $ k $,权重 $ W $ 是一个 $ m \times n \times k $ 张量,并由如下方程导出:

    $ W = \sum_{i_1}^{r_1} \sum_{i_2}^{r_2} \sum_{i_3}^{r_3} S(i_1, i_2, i_3) \cdot U_1(:, i_1) \circ U_2(:, i_2) \circ U_3(:, i_3), $

    其中大小为 $ r_1 \times r_2 \times r_3 $ 的张量 $ S $、大小为 $ m \times r_1 $ 的矩阵 $ U_1 $、大小为 $ n \times r_2 $$ U_2 $ 以及大小为 $ k \times r_3 $$ U_3 $ 都是可训练参数。它们均通过标准反向传播联合训练。$ r_1, r_2 $$ r_3 $ 是超参数。

    6.2. 超参数调优

    我们采用一种最新深度学习框架中使用的超参数调优器 [10],为真实数据集上的所有模型实验搜索最佳超参数。调优算法是类似 Spearmint 的高斯过程模型,见 [14, 32]。

    为公平比较,我们对所有方法施加相同的模型规模上限,即每层隐藏单元数最多为 2048。对 MMoE 而言,该上限是“专家数”ד每个专家的隐藏单元数”。我们的方法和所有基线方法均使用 TensorFlow [1] 实现。

    我们对所有方法的学习率和训练步数进行调优,同时还调优了一些方法特定的超参数:

    • MMoE: 专家数量,每个专家的隐藏单元数。
    • L2-Constrained: 隐藏层大小,L2 约束的权重 $ \alpha $
    • Cross-Stitch: 隐藏层大小,Cross-Stitch 层大小。
    • Tensor-Factorization: Tucker 分解的 $ r_1, r_2, r_3 $,以及隐藏层大小。

    6.3. Census-income 数据

    6.3.1. 数据集描述

    UCI census-income 数据集 [2] 提取自 1994 年人口普查数据库,包含 299,285 条美国成年人的人口统计信息,总共 40 个特征。我们将其中部分特征作为预测目标,从该数据集构造两个多任务学习问题,并在 10,000 条随机样本上计算任务标签的 Pearson 相关性绝对值:

    1. 任务 1:预测收入是否超过 50K 美元;任务 2:预测此人婚姻状况是否为从未结婚。Pearson 相关性绝对值:0.1768。
    2. 任务 1:预测受教育程度是否至少为大学;任务 2:预测此人婚姻状况是否为从未结婚。Pearson 相关性绝对值:0.2373。

    数据集中有 199,523 条训练样本和 99,762 条测试样本。我们再将测试样本按 1:1 比例随机划分为验证集和测试集。

    注意,我们将受教育程度和婚姻状况从输入特征中移除,因为它们在此设定下被作为标签。我们将 MMoE 与上述基线方法进行比较。由于两组任务都是二分类问题,我们使用 AUC 作为评估指标。在两组中,我们都将婚姻状况任务作为辅助任务,将第一组中的收入任务和第二组中的受教育程度任务作为主任务。在超参数调优时,我们以主任务在验证集上的 AUC 作为目标。对每种方法,我们使用超参数调优器进行数千次实验以找到最佳超参数配置。在为每种方法找到最佳超参数后,我们用随机参数初始化在训练集上训练 400 次,并在测试集上报告结果。

    6.3.2. 结果

    对两组任务,我们报告 400 次运行的平均 AUC,以及主任务取得最佳表现的那次运行的 AUC。表 1 与表 2 给出了两组任务的结果。我们还为每个任务分别训练单任务模型并报告其结果。

    表 1:UCI Census-income 数据集第一组任务的性能。

    Group 1 AUC/Income (best) AUC/Income (mean) AUC/Marital Stat (w/ best income) AUC/Marital Stat (mean)
    Single-Task 0.9398 0.9337 0.9933 0.9922
    Shared-Bottom 0.9361 0.9295 0.9915 0.9921
    L2-Constrained 0.9389 0.9359 0.9922 0.9918
    Cross-Stitch 0.9406 0.9361 0.9917 0.9922
    Tensor-Factorization 0.7460 0.6765 0.8175 0.8412
    OMoE 0.9387 0.9319 0.9928 0.9923
    MMoE 0.9410 0.9359 0.9926 0.9927

    表 2:UCI Census-income 数据集第二组任务的性能。

    Group 2 AUC/Education (best) AUC/Education (mean) AUC/Marital Stat (w/ best education) AUC/Marital Stat (mean)
    Single-Task 0.8843 0.8792 0.9933 0.9922
    Shared-Bottom 0.8836 0.8813 0.9927 0.9917
    L2-Constrained 0.8855 0.8823 0.9923 0.9918
    Cross-Stitch 0.8855 0.8819 0.9919 0.9921
    Tensor-Factorization 0.7367 0.7256 0.7453 0.7497
    OMoE 0.8852 0.8813 0.9915 0.9912
    MMoE 0.8860 0.8826 0.9932 0.9924

    由于两组中任务相关性(以 Pearson 相关性粗略度量)都不是很强,在多任务模型中 Shared-Bottom 模型几乎总是表现最差(Tensor-Factorization 除外)。L2-Constrained 与 Cross-Stitch 都为每个任务保留了独立的模型参数,并在参数学习上加以约束,因此优于 Shared-Bottom。然而,这种基于模型参数学习的约束强烈依赖于对任务关系的假设,灵活性不如 MMoE 所使用的参数调制机制。因此,在第 2 组(任务相关性比第 1 组更弱)上,MMoE 在所有均值指标上都优于其他多任务模型。

    Tensor-Factorization 方法在两组中均表现最差。这是因为该方法倾向于将所有任务的隐藏层权重一并泛化到低秩张量和矩阵中。该方法对任务相关性非常敏感:任务相关性较低时容易过度泛化,且需要更多数据和更长训练时间。

    多任务模型并未在验证集上针对辅助的婚姻状况任务进行调优,而单任务模型则有调优。因此,单任务模型在辅助任务上取得最佳表现是合理的。

    6.4. 大规模内容推荐

    在本小节中,我们在 Google Inc. 的一个大规模内容推荐系统上进行实验,其推荐对象是数十亿用户、来自数亿个独特物品的池子。具体来说,给定用户对某个物品的当前消费行为,该推荐系统的目标是向用户展示一组相关物品供其下一步消费。

    我们的推荐系统采用类似于已有内容推荐框架 [11] 的结构,即先有候选生成器,再接深度排序模型。在我们的设置中,深度排序模型被训练用于优化两类排序目标:(1) 与互动相关的目标,如点击率和互动时长;(2) 与满意度相关的目标,如点赞率。训练数据包括数千亿条用户隐式反馈(如点击和点赞)。若分别训练,每个任务的模型都需要学习数十亿参数。因此,与分别学习多个目标相比,Shared-Bottom 架构具有更小的模型规模。事实上,这种 Shared-Bottom 模型已经在生产环境中使用。

    6.4.1. 实验设置

    我们通过为深度排序模型创建两个二分类任务来评估多任务模型:(1) 预测与用户互动相关的行为;(2) 预测与用户满意度相关的行为。我们将这两个任务称为互动子任务(engagement subtask)与满意度子任务(satisfaction subtask)。

    推荐系统对稀疏特征使用 embeddings,对所有稠密特征归一化到 $ [0, 1] $ 区间。对于 Shared-Bottom 模型,我们将 shared bottom 网络实现为带若干 ReLU 激活全连接层的 feed-forward 神经网络;在 shared bottom 网络之上为每个任务构建一个全连接层,作为塔网络。对于 MMoE,我们仅将 shared bottom 网络的最顶层替换为一个 MMoE 层,并保持输出隐藏单元的维度不变;因此模型训练与服务上不会显著增加计算成本。我们也实现了 L2-Constrained 和 Cross-Stitch 等基线方法,由于其模型结构,它们的参数量大约是 Shared-Bottom 模型的两倍。由于 Tucker 乘积的计算在不进行大量效率工程的前提下无法扩展到数十亿规模,我们未与 Tensor-Factorization 比较。所有模型均使用批大小为 1024 的小批量随机梯度下降(SGD)优化。

    6.4.2. 离线评估结果

    在离线评估中,我们在 300 亿条用户隐式反馈的固定数据上训练模型,并在 100 万条 hold-out 数据上评估。由于满意度子任务的标签远比互动子任务稀疏,离线结果的噪声水平很高。我们仅在表 3 中展示互动子任务的 AUC 和 R-Squared 分数。

    我们展示训练 200 万步(批大小 1024 时为 100 亿样本)、400 万步和 600 万步后的结果。MMoE 在两个指标上都优于其他模型。L2-Constrained 和 Cross-Stitch 均不如 Shared-Bottom 模型,这很可能是因为这两个模型基于两个独立的单任务模型构建,参数过多以致难以被良好约束。

    表 3:在真实大规模推荐系统上的互动指标性能。

    Metric AUC@2M AUC@4M AUC@6M R²@2M R²@4M R²@6M
    Shared-Bottom 0.6879 0.6888 0.6900 0.08812 0.09159 0.09287
    L2-Constrained 0.6866 0.6881 0.6895 0.08668 0.09030 0.09213
    Cross-Stitch 0.6880 0.6885 0.6899 0.08949 0.09112 0.09332
    OMoE 0.6876 0.6891 0.6893 0.08749 0.09085 0.09230
    MMoE 0.6894 0.6897 0.6908 0.08978 0.09263 0.09362

    为更好地理解门控的工作方式,我们在图 6 中展示每个任务的 softmax 门控分布。可以看到,MMoE 学到了这两个任务之间的差异,并自动地在共享与非共享参数之间取得平衡。由于满意度子任务的标签比互动子任务更稀疏,满意度子任务的门控更集中在单一专家上。

    图 6:互动与满意度子任务的 softmax 门控分布。

    6.4.3. 线上实验结果

    最后,我们在内容推荐系统上对我们的 MMoE 模型进行线上实验。由于 L2-Constrained 和 Cross-Stitch 方法因引入更多参数而使服务时间翻倍,我们未对这两种方法进行线上实验。

    我们进行两组实验。第一组实验比较 Shared-Bottom 模型与 Single-Task 模型:Shared-Bottom 模型同时在互动子任务与满意度子任务上训练,Single-Task 模型仅在互动子任务上训练。注意,即使未在满意度子任务上训练,Single-Task 模型在测试时仍作为排序模型,因此我们也可在其上计算满意度指标。第二组实验比较我们的 MMoE 模型与第一组实验中的 Shared-Bottom 模型。两组实验使用相同规模的线上流量。

    表 4 给出了这些线上实验的结果。首先,使用 Shared-Bottom 模型时,我们在线上满意度指标上看到 19.72% 的大幅提升,而在线上互动指标上有 -0.22% 的小幅下降。其次,使用 MMoE 时,我们在两个指标上都相对 Shared-Bottom 模型有所提升。在该推荐系统中,互动指标的原始数值远大于满意度指标,因此在提升满意度指标的同时,互动指标无损失甚至有所提升是值得期待的。

    表 4:线上实验结果。

    Live experiment Engagement Metric Satisfaction Metric
    Shared-Bottom Improvement over Single-Task -0.22% * 19.72% **
    MMoE Improvement over Shared-Bottom 0.25% ** 2.65% **

    * 表示 90% 置信区间
    ** 表示 95% 置信区间

    7. 结论

    我们提出一种新的多任务学习方法——Multi-gate MoE(MMoE),它能够显式地从数据中学习任务关系。通过在合成数据上的受控实验,我们表明所提方法能更好地应对任务相关性较低的情形。我们还表明,相较于基线方法,MMoE 更易训练。借助在基准数据集与真实大规模推荐系统上的实验,我们证明了所提方法相对若干最先进的多任务学习基线模型的成功。

    除上述好处外,真实机器学习生产系统中另一重要的设计考虑是计算效率。这也是 Shared-Bottom 多任务模型被广泛使用的最重要原因之一:模型共享部分在服务时节省了大量计算 [18, 29]。第 6.1 节中三种最先进基线模型在学习任务关系的同时都牺牲了这一计算优势。然而,MMoE 模型在很大程度上保留了计算优势,因为门控网络通常很轻量,而专家网络在所有任务间共享。此外,通过将门控网络做成稀疏的 top-k 门控 [31],该模型还有进一步提升计算效率的潜力。我们希望本工作能启发其他研究者使用这些方法进一步研究多任务建模。

    参考文献

    1. Martín Abadi, Ashish Agarwal, Paul Barham, Eugene Brevdo, Zhifeng Chen, Craig Citro, Greg S Corrado, Andy Davis, Jeffrey Dean, Matthieu Devin, et al. 2016. Tensorflow: Large-scale machine learning on heterogeneous distributed systems. arXiv preprint arXiv:1603.04467 (2016).
    2. Arthur Asuncion and David Newman. 2007. UCI machine learning repository. (2007).
    3. Trapit Bansal, David Belanger, and Andrew McCallum. 2016. Ask the GRU: Multi-task learning for deep text recommendations. 见 Proceedings of the 10th ACM Conference on Recommender Systems. ACM, 107–114.
    4. Jonathan Baxter et al. 2000. A model of inductive bias learning. J. Artif. Intell. Res. (JAIR) 12, 149–198 (2000), 3.
    5. Shai Ben-David, Johannes Gehrke, and Reba Schuller. 2002. A theoretical framework for learning from a pool of disparate data sources. 见 Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 443–449.
    6. Shai Ben-David, Reba Schuller, et al. 2003. Exploiting task relatedness for multiple task learning. Lecture notes in computer science (2003), 567–580.
    7. Yoshua Bengio, Nicholas Léonard, and Aaron Courville. 2013. Estimating or propagating gradients through stochastic neurons for conditional computation. arXiv preprint arXiv:1308.3432 (2013).
    8. Rich Caruana. 1998. Multitask learning. 见 Learning to learn. Springer, 95–133.
    9. R Caruna. 1993. Multitask learning: A knowledge-based source of inductive bias. 见 Machine Learning: Proceedings of the Tenth International Conference. 41–48.
    10. Jasmine Collins, Jascha Sohl-Dickstein, and David Sussillo. 2016. Capacity and Trainability in Recurrent Neural Networks. arXiv preprint arXiv:1611.09913 (2016).
    11. Paul Covington, Jay Adams, and Emre Sargin. 2016. Deep neural networks for YouTube recommendations. 见 Proceedings of the 10th ACM Conference on Recommender Systems. ACM, 191–198.
    12. Andrew Davis and Itamar Arel. 2013. Low-rank approximations for conditional feedforward computation in deep neural networks. arXiv preprint arXiv:1312.4461 (2013).
    13. Jeffrey Dean, Greg Corrado, Rajat Monga, Kai Chen, Matthieu Devin, Mark Mao, Andrew Senior, Paul Tucker, Ke Yang, Quoc V Le, et al. 2012. Large scale distributed deep networks. 见 Advances in neural information processing systems. 1223–1231.
    14. Thomas Desautels, Andreas Krause, and Joel W Burdick. 2014. Parallelizing exploration-exploitation tradeoffs in gaussian process bandit optimization. The Journal of Machine Learning Research 15, 1 (2014), 3873–3923.
    15. Long Duong, Trevor Cohn, Steven Bird, and Paul Cook. 2015. Low Resource Dependency Parsing: Cross-lingual Parameter Sharing in a Neural Network Parser. 见 ACL (2). 845–850.
    16. David Eigen, Marc'Aurelio Ranzato, and Ilya Sutskever. 2013. Learning factored representations in a deep mixture of experts. arXiv preprint arXiv:1312.4314 (2013).
    17. Chrisantha Fernando, Dylan Banarse, Charles Blundell, Yori Zwols, David Ha, Andrei A Rusu, Alexander Pritzel, and Daan Wierstra. 2017. PathNet: Evolution channels gradient descent in super neural networks. arXiv preprint arXiv:1701.08734 (2017).
    18. Ross Girshick. 2015. Fast R-CNN. 见 Proceedings of the IEEE international conference on computer vision. 1440–1448.
    19. Xavier Glorot and Yoshua Bengio. 2010. Understanding the difficulty of training deep feedforward neural networks. 见 Proceedings of the Thirteenth International Conference on Artificial Intelligence and Statistics. 249–256.
    20. Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. 2015. Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531 (2015).
    21. Robert A Jacobs, Michael I Jordan, Steven J Nowlan, and Geoffrey E Hinton. 1991. Adaptive mixtures of local experts. Neural computation 3, 1 (1991), 79–87.
    22. Melvin Johnson, Mike Schuster, Quoc V Le, Maxim Krikun, Yonghui Wu, Zhifeng Chen, Nikhil Thorat, Fernanda Viégas, Martin Wattenberg, Greg Corrado, et al. 2016. Google's multilingual neural machine translation system: enabling zero-shot translation. arXiv preprint arXiv:1611.04558 (2016).
    23. Lukasz Kaiser, Aidan N Gomez, Noam Shazeer, Ashish Vaswani, Niki Parmar, Llion Jones, and Jakob Uszkoreit. 2017. One Model To Learn Them All. arXiv preprint arXiv:1706.05137 (2017).
    24. Zhuoliang Kang, Kristen Grauman, and Fei Sha. 2011. Learning with whom to share in multi-task feature learning. 见 Proceedings of the 28th International Conference on Machine Learning (ICML-11). 521–528.
    25. Diederik Kingma and Jimmy Ba. 2014. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980 (2014).
    26. Minh-Thang Luong, Quoc V Le, Ilya Sutskever, Oriol Vinyals, and Lukasz Kaiser. 2015. Multi-task sequence to sequence learning. arXiv preprint arXiv:1511.06114 (2015).
    27. Ishan Misra, Abhinav Shrivastava, Abhinav Gupta, and Martial Hebert. 2016. Cross-stitch networks for multi-task learning. 见 Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 3994–4003.
    28. Xia Ning and George Karypis. 2010. Multi-task learning for recommender system. 见 Proceedings of 2nd Asian Conference on Machine Learning. 269–284.
    29. Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun. 2015. Faster R-CNN: Towards real-time object detection with region proposal networks. 见 Advances in neural information processing systems. 91–99.
    30. Sebastian Ruder. 2017. An overview of multi-task learning in deep neural networks. arXiv preprint arXiv:1706.05098 (2017).
    31. Noam Shazeer, Azalia Mirhoseini, Krzysztof Maziarz, Andy Davis, Quoc Le, Geoffrey Hinton, and Jeff Dean. 2017. Outrageously large neural networks: The sparsely-gated mixture-of-experts layer. arXiv preprint arXiv:1701.06538 (2017).
    32. Jasper Snoek, Hugo Larochelle, and Ryan P Adams. 2012. Practical bayesian optimization of machine learning algorithms. 见 Advances in neural information processing systems. 2951–2959.
    33. Shengyang Sun, Changyou Chen, and Lawrence Carin. 2017. Learning Structured Weight Uncertainty in Bayesian Neural Networks. 见 Artificial Intelligence and Statistics. 1283–1292.
    34. Yongxin Yang and Timothy Hospedales. 2016. Deep multi-task representation learning: A tensor factorisation approach. arXiv preprint arXiv:1605.06391 (2016).
    35. Zhe Zhao, Zhiyuan Cheng, Lichan Hong, and Ed H Chi. 2015. Improving user topic interest profiles by behavior factorization. 见 Proceedings of the 24th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 1406–1416.