深度学习 - 44.MMOE 与 Gate 之多目标学习

2023-10-14 16:20

本文主要是介绍深度学习 - 44.MMOE 与 Gate 之多目标学习,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一.引言

二.摘要 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 的点击率、点赞率、收藏率等等。

dcf9473118b0497b9bfa03f9e53dc37d.png

现实场景下,多任务模型的预测质量往往对任务之间的关系很敏感。论文提出一种新的多任务学习方法: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

1fe3771f089749abae83a737f9ecdb15.png

1.Shared-bottom Multi-task Model

如图 a 所示,该模型架构在许多多任务学习中广泛采用,论文将模型视为多任务建模中具有代表性的基线方法。给定 K 个任务,该模型由一个共享底部网络 (表示为函数 f) 和 K 个 Tower 塔网络组成,其中 K = 1,2,... 模型共享底层网络,塔式网络建立在共享底层的输出上,然后每个任务 Tower 的淡出输出与 Output K 遵循对应的任务。对于任务 K,模型可表示为:

b7e758b1c36c4243ba17e57bf3dcf8ca.png

其中共享体现在公用一个 f(x),多任务体现在多个 gif.latex?h%5EK 上,以开头的点击率、点赞率的多任务为例:

600eb12931124bcd92964e83f018a7c6.png

2.Mixture-of-Experts

混合专家模型可以采用如下公式表示:

0f2f931eee334661950276eb1926b91f.png

其中 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 用于捕捉不同任务时不同专家的贡献度:

1875e0c8bbba49b6940dfe292cb6b2e7.png

图 c 显示了 MMoE 模型结构,实现由具有 ReLU 激活的相同多层感知器组成。门控网络是输入的简单线性变换,带有softmax层:

31fff55efa414024b2e2950089918b44.png

 其中 gif.latex?y_k 为最终输出,gif.latex?h%5Ek 为 K 个任务,gif.latex?f%5Ek%28x%29 为第 K 个任务的多个 Expert 的混合输出,每个 gif.latex?f_i%28x%29 对应一个 Expert,gif.latex?g%5Ek%28x%29_i 代表门控网络基于第 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 的预测表示为:

380aca146bec42d9a457d01f9e9d8ffb.png

θ 为模型参数,最终目标函数为:

691a32beafa24345b579524f3c19ce20.png

其中 y1、y2 是任务 1 和任务 2 的基本真值标签,α 是超参数。该方法利用 α 的大小对任务关联度进行建模。

- Cross-Stitch "十字绣" 网络

这种方法通过引入 "十字绣" 单元来共享两个任务之间的知识。十字绣单元从任务 1 和任务 2 中获取分离的隐藏层 x1 和 x2 的输入,分别通过以下公式输出:

edd555ee56f441c4841bb1e5f2531953.png

其中,gif.latex?%5Calpha_%7Bj%2Ck%7D  j, k = 1、2 是一个可训练参数,表示任务 k 到任务 j 的交叉传递。任务 1 和任务 2 分别向上级发送任务 x1 和任务 x2。

- Tensor-Factorization 张量因子分解

该方法将多个任务的权重建模为张量,并利用张量分解方法实现任务间参数共享。这里实现了 Tucker 分解来学习多任务模型,例如,给定输入隐藏层大小为 m,输出隐藏层大小为 n,任务数为 k,则 m × n × k 张量的权重 W 由下式导出:

c8278723704f421f805b086bade19507.png

其中大小为 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。

bf23bd2a1efd41ed8796ddf004963b19.png

a06159abc90e4c2686e0077bcf146457.png

考虑到任务相关性 (通过 Pearson 相关性粗略测量) 在两组中都不是很强,Shared-Bottom 模型几乎总是多任务模型中最差的 (除了张量分解)。L2-Constrained 和 Cross-Stitch 对每个任务都有单独的模型参数,并对如何学习这些参数添加了约束,因此比 Shared-Bottom 表现得更好。在第二组中,MMoE 在所有方面都优于其他多任务模型。

4.大规模内容推荐 Large-scale Content Recommendation

模型在 Google 的大型内容推荐系统上进行实验,其中推荐是由数十亿用户的数亿个独特项目生成的。具体来说,给定用户当前消费某种商品的行为,该推荐系统的目标是向用户显示下一步消费的相关商品列表。我们设置的深度排名模型是针对两种类型的排名目标进行优化的:

(1) 优化与用户粘性相关的目标,如点击率和用户粘性时间。

(2) 对满意度相关目标进行优化,如相似率等。

我们的训练数据包括数千亿的用户隐式反馈,比如点击和点赞。如果单独训练,每个任务的模型需要学习数十亿个参数。因此,与单独学习多个目标相比,Shared-Bottom 架构具有较小的模型大小的好处。事实上,这种 Shared-Bottom 模型已经在生产中使用了。

• 模型试验

aa4194b9d7984b5d860c034ba052aca2.png

表中显示了参与度子任务的 AUC 分数和 R-Squared 分数。@2M 代表训练 200万步,其中包含 100 亿个样本、BatchSize = 1024,@4M、@6M 同理。MMoE 在这两个指标上都优于其他模型。

• Gate 理解

为了更好地理解门是如何工作的,下图展示了每个任务的 softmax 门的分布。可以看到,MMoE 学习了这两个任务之间的差异,并自动平衡了共享和非共享参数。由于满意度子任务的标签比参与度子任务的标签更稀疏,因此满意度子任务的大门更关注于单个专家:

1287724cc4d74469be8276f3ca088f2d.png

七.总结 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

多任务学习讲解:多目标模型讲解

更多推荐算法相关深度学习:深度学习导读专栏 

这篇关于深度学习 - 44.MMOE 与 Gate 之多目标学习的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/211687

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

烟火目标检测数据集 7800张 烟火检测 带标注 voc yolo

一个包含7800张带标注图像的数据集,专门用于烟火目标检测,是一个非常有价值的资源,尤其对于那些致力于公共安全、事件管理和烟花表演监控等领域的人士而言。下面是对此数据集的一个详细介绍: 数据集名称:烟火目标检测数据集 数据集规模: 图片数量:7800张类别:主要包含烟火类目标,可能还包括其他相关类别,如烟火发射装置、背景等。格式:图像文件通常为JPEG或PNG格式;标注文件可能为X

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个