【多模态】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts 论文阅读及代码解析

MMoE是一种多任务学习模型,它改进了传统的SharedBottom结构,通过引入多个专家网络(Expert)和门控机制(Gate),实现了根据不同任务动态调整专家网络组合权重的能力。每个任务拥有独立的Gate,允许网络参数根据输入和任务类型自适应变化。在代码实现中,MMoE创建了多个Expert和Gate网络,通过前向传播计算每个任务的专家输出,形成任务特定的特征表示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MoE简介

MMoE是在MoE的基础之上,引入多任务而来,关于MoE的相关解读,可以参考我的另一篇博客:【论文阅读】Adaptive Mixtures of Local Experts
请添加图片描述

二、MMoE简介

关于MMoE的论文阅读在我的另一篇博客中已经讲到,具体可以参考:【推荐算法论文阅读】Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

MMoE的模型结构如下图(c)所示:
请添加图片描述
MMoE的创新之处在于跳出了Shared Bottom那种将整个隐藏层一股脑的共享的思维定式,而是将共享层有意识的(按照数据领域之类的)划分成了多个Expert,并引入了gate机制,得以个性化组合使用共享层。

MoE共享层将大的Shared Bottom网络拆分成了多个小的Expert网络(如图所示,拆成了三个,并且保持参数个数不变)。我们把第i个Expert网络的运算记为 f i ( x ) f_i(x) fi(x),然后Gate操作记为 g ( x ) g(x) g(x),他是一个n元的softmax值(n是Expert的个数,有几个Expert,就有几元),之后就是常见的每个Expert输出的加权求和,假设MoE的输出为y,那么可以表示为:
y k = h k ( f k ( x ) ) y_{k}=h^{k}\left(f^{k}(x)\right) yk=hk(fk(x))

k是多任务中task的个数。

如果只是这样的话,要完成多任务还得像Shared Bottom那样再外接不同的输出层,这样一搞似乎这个MoE层对多任务来说就没什么用了,因为它无法根据不同的任务来调整各个Expert的组合权重。所以论文的作者搞了多个Gate,每个任务使用自己独立的Gate,这样便从根源上,实现了网络参数会因为输入以及任务的不同都产生影响。于是,我们将上面MoE输出稍微改一下,用 g k ( x ) g^k(x) g

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值