MMOE(Multi-gate Mixture-of-Experts)

这篇具有很好参考价值的文章主要介绍了MMOE(Multi-gate Mixture-of-Experts)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.前提和动机

随着推荐技术的发展,目前越来越多的推荐场景,往往并不是单独的优化一个指标,比如:

视频推荐领域:推荐排序任务不仅需要考虑到用户点击率、完播率,也需要考虑到一些满意度指标,例如:对视频是否喜欢,用户观看后对视频的评分;

文章推荐领域:不仅希望用户点击阅读文章,还希望用户有更多的停留时长,互动,关注。

电商推荐领域:不仅希望用户更多对商品点击浏览,还希望用户看完商品后进行付费,点击率和转化率

所以,推荐系统做到后期,往往会朝着多目标学习进行演化,承担更多的业务目标,提高用户粘性。而多目标排序大致上有4种解决方案:

1.改变样本权重进行多目标优化:这是一种比较初始化的方式。比如主目标是点击率,分享功能是我们希望提高的功能。那么点击和分享都是正样本,分享的样本可以设置更高的样本权重。模型训练在计算梯度更新参数时,梯度乘以权重,对样本权重大的样本给予更大权重。通过这种方法,使得原始目标A会受到一定的损失以换取新增加目标B的增长,实现初级的多目标优化。

-优点:模型简单,不需要额外架构支持,没有增加算法复杂度

-缺点:没有对多目标建模,而是将多个目标折算成一个,折算权重不好确定

2.多模型分数融合:就是多个模型分别预测每个目标,最后的预测分数加权融合

-优点:模型简单

-缺点:线上服务时间开销大,部署困难,需要多个模型预测结果组合,并且不同目标难以量化评估重要性,如果样本部分特征稀疏,有的模型不好单独学习,模型融合的这几个超参数也不好确定

3.排序学习:同构预测两两物品之间相对顺序或物品序列之间顺序解决多目标学习的问题。比如:视频推荐为例,用户观看很长的i视频,点击了j视频,那么觉得观看比点击重要,假设u代表用户的偏好,则u_i>u_j。有了相对顺序,就可以使用排序学习的方式,融合多个目标,不需要序列多个模型。

-优点:优化目标顺序,不需要设计复杂超参,本身是单个模型的多个目标,线上服务压力小

-缺点:相对顺序不好构造,样本数量增大,训练速度慢,样本不平衡会被放大,比如有的用户有10次点击,有的只有1次点击,10次的会有更多机会训练

4.多任务学习:这个才是目前最常用的技术,多任务学习,可以简单的理解是用一个网络同时完成多个任务的优化,有很多优势,比如多个任务共享一个模型,占用内存少,计算速度快,并且关联任务还可以通过共享信息,互相补充,提升彼此的表现。但是,同样面临很多挑战,比如不同任务究竟如何融合呢?万一多个目标不怎么相关怎么办?目标的重要性不同,这个在训练模型的时候如何体现等等。

以下是多任务学习的经典论文。

MMOE(Multi-gate Mixture-of-Experts)

MMOE是2018年谷歌提出来的,现在依然是非常常用的模型范式,MMOE的全称是Multi-gate Mixture-of-Experts,对于这个优化任务,引入了多个专家进行不同的决策和组合,最终完成多目标的预测。解决的是硬共享里面如果多个任务相似性不是很强,底层的embedding学习反而相互影响,最终都学不好的痛点。

2.MMOE?hard-parameter sharing

再看MMOE之前,我们先了解下多任务里面的hard-parameter sharing.

推荐系统中,即使同一个场景,常常也不只有一个业务目标。在youtube的视频推荐中,推荐排序任务不仅需要考虑用户点击率,完播率,也需要考虑到一些满意度指标,例如,对视频是否喜欢,用户观看后对视频的评分;在淘宝的信息流商品推荐张,需要考虑到点击率也需要考虑转化率;而在一些内容场景中,需要考虑到点击和互动、关注、停留时长等指标。

模型中,如果采用一个网络同时完成多个任务,就可以把这样的网络模型称为多任务模型,这种模型能在不同任务之间学习共性以及差异性,能够提高建模的质量以及效率。常见的多任务模型的设计范式大致可以分为三大类:

--hard parameter sharing的方法:这是非常经典的一种方式,底层是共享的隐藏层,学习各个任务的共同模式,上层用一些特定的全连接学习特定任务模式

MMOE(Multi-gate Mixture-of-Experts)

这种方法目前用的也有,比如美团的猜你喜欢,知乎推荐的ranking等,这种方法最大的优势是task越多,单任务更加不可能过拟合,即可以减少任务之间过拟合的风险。但是劣势也非常明显,就是底层强制的shared layers难以学习到适用于所有任务的有效表达。尤其是任务之间存在冲突的时候。MMOE中给出了实验结论,当两个任务相关性没那么好(比如排序中的点击率与互动,点击与停留时长),此时这种结果会遭受训练困境,毕竟所有任务底层用的是同一组参数。

--soft parameter sharing:这个范式对应的结果从MOE->MMOE->PLE等。即底层不是使用共享的一个shared bottom,而是有多个tower,称为多个专家,而是有多个tower,称为多个专家,然后往往再有一个gating netwokrs在多任务学习时,给不同的tower分配不同的权重,那么这样对于不同的任务,可以允许使用底层不同的专家组合去进行预测,相较于上面所有任务共享底层,这个方式显得更加灵活。

--任务序列依赖关系建模:这种适合于不同任务之间有一定的序列依赖关系。比如电商场景里面的ctr和cvr,其中cvr这个行为只有在点击之后才会发生。所以这种依赖关系如果能加以利用,可以解决任务预估中的样本选择偏差(SSB)和数据稀疏性(DS)问题

样本选择偏差:后一阶段的模型基于上一阶段采样后的样本子集训练,但最终在全样本空间进行推理,带来严重泛化性问题

样本稀疏:后一阶段的模型训练样本小于前一阶段任务

ESSM是一种较为通用的任务序列依赖关系建模的方法,除此之外,阿里的DBMTL,ESSM2等工作都属于这一个范式。

通过上面的描述,能大体上对多任务模型方面的几种常见建模范式有所了解,然后也知道了hard parameter sharing存在的一些问题,即不能很好的权衡特定任务的目标与任务之间的冲突关系。

而这也就是MMOE模型提出的一个动机所在了。

MMOE(Multi-gate Mixture-of-Experts)

上面这三张图分别是hard parameter sharing,OMOE,MMOE模型的结构图。

3. MMOE模型的理论以及相关细节

3.1 混合专家模型

我们知道共享的模型结构,会遭受任务之间冲突而导致可能无法很好的收敛,从而无法学习到任务之间的共同模式。这个结构也可以看成是多个任务共用了一个专家。

先抛开任务关系,我们发现一个专家在多任务学习上的表达能力很有限,于是乎,尝试引入多个专家,这就慢慢的演化出了混合专家模型。公式表达如下:

MMOE(Multi-gate Mixture-of-Experts)

这里的y表示的是多个专家的汇总输出,接下来它要过特定的任务塔去得到特定任务的输出。这里还加了一个门控网络机制,就是一个注意力网络,来学习各个专家的重要性权重  。就是每个专家的输出,而 就是每个专家对应的权重。虽然这个东西无非是单个专家的基础上多引入了几个全连接网络,然后又给这几个全连接网络加权,但还是蕴含了厉害的思路:

1.模型集成思想:这个东西很像bagging的思路,即训练多个模型进行决策,这个决策的有效性显然要比单独一个模型来的靠谱,不管是从泛化能力、表达能力、学习能力上,应该都强于一个模型。

2.注意力思想:为了增加灵活性,为不同的模型还学习了重要性权重,这可能考虑到了在学习任务的共性模式上,不同的模型学习的模式不同,那么聚合的时候,显然不能按照相同的重要度聚合,所以为各个专家学习权重,默认了不同专家的决策地位不一样。

3.multi-head机制:从另一个角度看,多个专家其实代表了多个不同head,而不同的head代表了不同的非线性空间,之所以表达能力增强了,是因为把输入特征映射到了不同的空间中去学习任务之间的共性模式。可以理解成从多个角度去捕捉任务之间的共性特征模式。

但是这种机制也存在问题,MOE使用了多个混合专家增加了各种表达能力,但是呢,一个门控并不是很灵活,因为这所有的任务,最终只能选定一组专家组合,即这个专家组合是在多个任务上综合衡量的结果,并没有针对性了。如果这些任务都比较相似,那就相当于用这一组专家组合确实可以应对这多个任务,学习到多个相似任务的共性。但如果任务之间差得很大,这种单门控控制的方式就不行了,因为此时底层的多个专家学习到特征模式相差可能会很大,毕竟任务不同,而单门控机制选择专家组合的时候,肯定是选择出那些有利于大多数任务的专家,而对应某些特殊任务,可能学习的一塌糊涂。

所以,这种方式的缺口很明显,这样,也更能理解为啥提出多门控控制的专家混合模型了。

3.2 MMOE结构

再单独放一下MMOE的网络结构图。

MMOE(Multi-gate Mixture-of-Experts)

Multi-gate Mixture-of-Experts(MMOE)的魅力就在于在OMOE的基础上,对于每个任务都会涉及一个门控网络,这样,对于每个特定的任务,都能有一组对应的专家组合去进行预测。更关键的是,参数量还不会太多。公式如下:

MMOE(Multi-gate Mixture-of-Experts)

这个改造看似简单,只是在OMOE上额外多加了几个门控网络,但是起到了杠杆般的效果,这里来看下大佬的理解:

  • 首先,就刚才分析的OMOE的问题,在专家组合选取上单门控会产生限制,此时如果多个任务产生了冲突,这种结构就无法进行很好的平衡。而MMOE就不一样了。MMOE是针对单个任务都单独有个门控选择专家组合,那么即使任务冲突了,也能根据不同的门控进行调整,选择出对当前任务有帮助的专家组合。所以,我觉得单门控做到了针对所有任务在专家选择上的解耦,而多门控做到了针对各个任务在专家组合选择上的解耦
  • 多门控机制能够建模任务之间的关系了。如果各个任务之间冲突,那么此时有多门控的帮助,此时让每个任务独享一个专家,如果任务之间能聚成几个相似的类,那么这几类之间应该对应的不同的专家组合,那么门控机制也可以选择出来。如果所有任务相似,那这几个门控网络学习到的权重也会相似,所以这种机制把任务的无关,部分相关和全部相关进行了一种统一。
  • 灵活的参数共享,这个可以和hard模式或者是针对每个任务单独建模的模型对比,对于hard模式,所有任务共享底层参数,而每个任务单独建模,是所有任务单独有一套参数,算是共享和不共享的两个极端,对于都共享的极端,害怕任务冲突,而对于一点都不共享的极端,无法利用迁移学习的优势,模型之间没法共享信息,互为补充,容易遭受过拟合的困境,另外还会增加计算量和参数量。而MMOE处于两者的中间,既兼顾了如果有相似任务,那就参数共享,模式共享,互为补充,如果没有相似任务,那就独立学习,互不影响。又把这两种极端给进行了统一。
  • 训练时能快速收敛,这是因为相似的任务对于特定的专家组合训练都会产生贡献,这样进行一轮epoch,相当于单独任务训练时的多轮epoch。

所以,在不产生太大的参数开销的同时,能通过一个小小的改动,既建模了任务关系,又灵活参数共享,又减少训练时间,是不是很powerful呢

MMOE整体结构不复杂,内容就整理这么多。

4.小结

最后,我们看下为什么多任务学习是有效的呢?这里看下一个别人还不错的答案:

多任务学习有效的原因是引入了归纳偏置,两个效果:

互相促进:可以把多任务模型之间的关系看作是互相先验知识,也称为归纳迁移,有了对模型的先验假设,可以更好提升模型的效果。解决数据稀疏性其实本身也是迁移学习的一个特性,多任务学习中也同样会体现。

泛化作用:不同模型学到的表征不同,可能A模型学到的是B模型所没有学好的,B模型也有其自身的特点,而这一点很可能A学不好,这样一来模型健壮性更强。

大佬的推荐算法导图。

MMOE(Multi-gate Mixture-of-Experts)文章来源地址https://www.toymoban.com/news/detail-491949.html

到了这里,关于MMOE(Multi-gate Mixture-of-Experts)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ICASSP 2023 | MCROOD: MULTI-CLASS RADAR OUT-OF-DISTRIBUTION DETECTION

    原文链接:https://mp.weixin.qq.com/s?__biz=Mzg4MjgxMjgyMg==mid=2247486484idx=1sn=d43f92ca0230753e77f54557054653d6chksm=cf51beedf82637fb27d4cbb9279f273298779dabe25f7775cb93469787bcc12c1b6b2caec979#rd 无线感知论文阅读笔记:ICASSP 2023, MCROOD: MULTI-CLASS RADAR OUT-OF-DISTRIBUTION DETECTION Abstract 0.25 page 目标 针对雷达range-doppler im

    2024年02月15日
    浏览(61)
  • Multi-Modal 3D Object Detection in Long Range and Low-Resolution Conditions of Sensors

    多模态长距离低分辨率传感器条件下的3D物体检测 慕尼黑工业大学计算机、信息与技术学院 - 信息学 随着自动驾驶车辆和智能交通系统的兴起,强大的3D物体检测变得至关重要。这些系统通常面临由于远距离和遮挡的物体,或低分辨率传感器导致的数据稀疏性的挑战,这可能

    2024年02月21日
    浏览(42)
  • 多任务学习经典品读:MMoE模型篇

    作者 | 知乎博主@青枫拂岸   整理 | NewBeeNLP 今天带来是Google发表于KDD2018,针对于多任务推荐的经典模型MMOE。 论文:Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts 地址: https://dl.acm.org/doi/10.1145/3219819.3220007 由于本论文的创新偏向于模型结构和设计,而非

    2024年02月13日
    浏览(28)
  • innovus 如何计算Gate Count?

    我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 知识星球入口 gate count的计算在innovus里有专门的命令, reportGateCount ,这个命令的计算的gate count和我们理解的有些出入,通常我们认为用standard cell 总面积(去除physical only cell)/ 最小驱动二输入与非门的面积,得到的就

    2024年02月15日
    浏览(38)
  • 门控时钟(clock gating)的DFT设计

    在数字IC芯片中,时钟树的功耗占比可能高达30%,因此一般会采取门控时钟的方式来降低该部分的功耗。所谓门控时钟,就是在芯片实际工作过程中,有些信号或者功能并不需要一直开启,那么就可以在它们不用的时候将其时钟信号关闭。这样一来信号不再翻转,从而能够有

    2024年01月23日
    浏览(35)
  • Primavera Unifier 项目控制延伸:Phase Gate理论:3/3

    https://campin.blog.csdn.net/article/details/127827681 https://campin.blog.csdn.net/article/details/127827681 前述阶段的计划和安排都要在研发阶段执行起来,同时,最重要的产品设计和开发部分也需要在这一阶段完成,包括早期的部件验证,外购件测试甚至早期的客户端测试。产品的市场投放策略

    2024年02月03日
    浏览(28)
  • 数字IC之Gate-Level Simulation(GLS)概述

    门级仿真也称为后仿真,是数字IC设计流程中的一个重要步骤。 RTL生成之后,会插入DFT,生成post_DFT的网表netlist;插入CPF/UPF描述的低功耗信息,生成post_ISO的网表netlist;之后插入时钟树(clock tree)和电源开关,生成最终的post_PR网表。 理论上每次生成新的netlist,都需要重新

    2024年02月10日
    浏览(64)
  • Golden Gate(GGX)开发者见解与创新DeFi应用

    Golden Gate(GGX) 是一种创新的跨链基础设施协议,提供了一种协议无关层、且旨在消除 Layer 0 通信摩擦的通信。激励消息交付协议(IMDP)是GGX的跨链协议,它使用一种轻量级客户端的快速网络传递消息方式,来实现高效的跨链通信。Golden Gate(GGX) 的Web3基础设施具备广泛的通用性

    2024年02月03日
    浏览(40)
  • Linux音频处理:MP3解码、PCM、播放PCM、ALSA(Advanced Linux Sound Architecture)、MPEG(Moving Picture Experts Group)

    将MP3音频文件中的数字音频数据转换为可以播放或处理的音频信号的过程。MP3(MPEG-1 Audio Layer 3)是一种常见的音频压缩格式,用于将音频文件压缩到较小的文件大小,同时保持相对高的音质。 以下是MP3解码的一般步骤: 读取MP3文件 : 首先,需要读取存储在MP3文件中的音频

    2024年02月03日
    浏览(41)
  • Gate.io 土耳其社区与 Casper AMA圆满完成,共话Casper未来发展

    CasperLabs 首席执行官 Mrinal Manohar 和 Casper 协会董事会成员 Ralf Kubli 在 8月19日举行的AMA 会议上与 Gate.io 土耳其社区聚在一起,共同探讨 Casper及行业未来发展进程。 在活动开始之前, Mrinal Manohar及 Ralf Kubli介绍了自己的背景及创立Casper契机。 Mrninal Manohar:大家好, 我叫 Mrinal Mano

    2023年04月11日
    浏览(38)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包