1. share bottom (hard parameter sharing)适用于:两个任务是相关的,或者是可以相互促进的。1. share bottom (soft parameter sharing)前面的shared-Bottom是一种hard parameter sharing,会导致不相关任务联合学习效果不佳。Google提出了soft parameter sharing,one-gate MoE是其中一种实现。 MOE的由一组专家系统(Experts)组成的神经网络结构替换原来的Shared-Bottom部分,每一个Expert都是一个前馈神经网络,再加上一个门控网络(Gate)。MOE可以表示为:​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​是第k个神经网络的输出,是第n个expert network,g是门控网络。g产生n个experts上的概率分布。最终的输出是所有experts的加权和。MOE可以看成多个独立模型的集成方法。是第 k 个任务的专属输出塔(Task Tower),一般是几层全连接层,负责把融合后的表征,映射成该任务的最终预测值。2. ESMM (Entire Space Multi-Task Model) 论文地址:https://arxiv.org/abs/1804.07931在电商场景下,转化是指从点击到购买。在CVR预估时候,我们往往会遇到两个问题:样本选择偏差(SSB)和数据稀疏(DS)问题。样本偏差是指训练和测试集样本不同,拿电商举例,模型用点击的数据来训练,而预估的却是整个样本空间。数据稀疏问题就更严重了,本身点击样本就很少,转化就更少了。为了能够解决SSB和DS的问题,并且分利用用户行为的序列模式,阿里提出了ESMM模型。在ESMM中,引入CTR和CTCVR两个辅助任务。与直接在点击后的展现样本上训练CVR模型不同,ESMM把 pCVR作为一个中间变量,即 pCTCVR=pCVR*pCTR。pCTCVR和pCTR都在整个展现样本空间上进行预估,使得pCVR也在整个空间上进行预估。此时,消除了SSB问题。另外,CVR网络的特征表征参数与CTR网络共享。由于CTR网络使用更丰富的样本进行训练,这种参数迁移学习有助于明显缓解DS问题。具体如下:如下图所示:ESMM一共:3个预测任务,用到2个真实标签(人工标注的label)label1:click label正样本:有点击行为的曝光事件作为正样本负样本:没有点击行为的曝光事件作为负样本label2:conv label正样本:点击且发生转化的事件作为正样本负样本:点击且无转化的事件作为负样本对于pCTR来说,可将有点击行为的曝光事件作为正样本,没有点击行为的曝光事件作为负样本对于pCTCVR来说,可将同时有点击行为和购买行为的曝光事件作为正样本,其他作为负样本对于pCVR来说,只即使通过MMoE这种方式减轻负迁移现象,跷跷板现象仍然是广泛存在的(跷跷板现象指多任务之间相关性不强时,信息共享就会影响模型效果,会出现一个任务泛化性变强,另一个变弱的现象)。有曝光没有点击的样本中的梯度也能回传到main task的网络中。损失函数: 这个公式就是 ESMM 的联合损失函数: 第一项是 CTR 任务的交叉熵损失,表示点击标签; 第二项是 CTCVR 任务的交叉熵损失,用表示“点击+转化”的联合标签; 是 CTR 模型输出,是 CVR 模型输出,两者相乘就是 CTCVR 预测值。注:Ctr样本多,对loss的贡献大,可以减少ctr损失的权重。代码实现:https://github.com/ShaoQiBNU/ESMM3. MMoE (Multi-gate Mixture-of-Experts) 论文地址:https://dl.acm.org/doi/epdf/10.1145/3219819.3220007 MMoE是MoE的改进。在MoE的基础上使用了多个门控网络,k个任务对应k个门控。MMoE为每个Tower都分配了一个Gate,每个门都学习一种特定的方式来利用专家的产出来完成其各自的任务。即使通过MMoE这种方式减轻负迁移现象,跷跷板现象仍然是广泛存在的(跷跷板现象指多任务之间相关性不强时,信息共享就会影响模型效果,会出现一个任务泛化性变强,另一个变弱的现象)。特点:每个gating网络都可以根据训练来选择对应输入的expert网络权重,在多任务学习情况下灵活的进行参数共享是具有优势的。如果任务相关性较小,则共享expert将受到惩罚,这些任务的控制网络将学习如何使用不同的expert。因此模型考虑到了捕捉到任务的相关性和区别。(不理解)与shared-bottom模型相比,MMoE只有几个额外的gating网络,并且gating网络中的模型参数数量可以忽略不计。总之,MMoE能够通过确定不同门导致的分离如何相互重叠,以复杂的方式对任务关系进行建模。当MMoE在进行训练预测时,会存在极化现象,即任务只和其中某一个Expert权重为1,和其他权重均为0。为了缓解这种现象,我们在gate层增加10%的dropout,这样可以防止gate层过拟合,让gate输出的概率分布更平均。3.2疑问解答:3.1.1 疑问:则共享expert将受到惩罚,具体是怎么惩罚的?先给核心结论:「共享Expert受到惩罚」不是人为加惩罚项,是梯度+损失反向传播天然形成的隐式惩罚,无额外正则、无额外loss,是多任务监督自然倒逼出来的。1. MMoE结构:1. 多个公有 Expert(共享底层分支)2. 每个任务独有一个 Gate门控3. Gate 输出一组权重分布4. 任务最终输出 = 所有Expert输出 加权求和2. 任务相关性小 → 共用同一个Expert会受到惩罚,「惩罚」是什么机制?谁触发的?怎么自动生效?1). 场景前提 任务A、任务B相关性低、学习目标不一样、特征偏好不一样 假设:强行共用同一组Expert做特征提取2). 天然冲突根源 任务A 想要的特征变换/表征模式 👉 方向A 任务B 想要的特征变换/表征模式 👉 方向B 两个优化方向梯度打架、参数互相拉扯3). 关键:隐式惩罚的完整机制(核心)1. 若两个低相关任务强行共用同一个 Expert: Expert 参数要同时迎合两个矛盾任务 两个任务的梯度相互抵消、互相干扰 两个任务各自的 loss 都会变大、收敛变差2. 反向传播天然形成「惩罚」: 共用相同Expert ➜ 任务loss上升 ➜ 不利于优化 这就是原文说的:共享Expert将受到惩罚3. Gate 网络的自适应学习(自救过程)Gate 唯一目标:最小化当前任务loss既然「共用Expert会让loss变高」,梯度下降会自动引导:任务A的Gate → 偏向分配权重给 Expert A任务B的Gate → 偏向分配权重给 Expert B任务相似度低时,如果多个任务硬挤在同一个Expert里更新参数,梯度冲突会让整体损失变大(天然惩罚);为了降低loss,各个任务的Gate会自动学出差异化权重,各自分流、选用不同Expert,从而同时建模任务相关性 + 任务差异性。3. 举极简例子任务1:点击预估(偏好短时兴趣、浅层行为)任务2:长期留存预估(偏好用户长期画像、稳定属性)两者相关性低:1. 若共用Expert:参数左右横跳,两边都学不好,loss飙升(惩罚)2. MMoE自动演化: 点击Gate:权重集中在 短时兴趣Expert 留存Gate:权重集中在 长期画像Expert👉 不靠人工约束,纯损失+梯度自动完成解耦。4. 高相关任务为什么不会被惩罚?比如:T1逾期 / T4逾期、点击/加购任务优化方向高度一致梯度同向、互相辅助共用Expert不会导致loss上升Gate就会自然平均分配权重、共用专家👉 这就是为什么强共性任务MMoE和SharedBottom效果几乎一致。5. 极化现象概念极化现象:单个Expert权重趋近1,其余趋近0本质:Gate过拟合,极度稀疏路由,单一专家垄断;加 10% Dropout 作用:平滑门控概率分布、强制权重分散,避免路由极端化,提升泛化。总结:MMoE不存在人为额外惩罚项;低相关任务共享Expert时,梯度冲突会造成损失上升,形成隐式优化惩罚;门控网络为最小化任务损失,会自适应学习差异化专家权重分配,自发完成任务参数软解耦,兼顾任务共性与差异。3.1.2 什么是Gate过拟合?「极化现象」= Gate 的极端过拟合什么叫 “任务只和其中某一个 Expert 权重为 1,其他为 0”?就是 Gate 输出变成了「one-hot 向量」,比如:g = [1, 0, 0, 0],这意味着:这个任务永远只选第 1 个专家,其他专家完全被弃用。这就是Gate 层的过拟合(门控坍缩)​​​​​​​。它不是泛化地学习 “不同特征该用哪个专家”,而是死记硬背训练数据里的固定映射,变成了 “输入→固定专家” 的硬决策。结果就是:其他专家完全得不到梯度更新,成了 “死专家”,浪费了模型容量;Gate 对训练数据过拟合,一旦线上数据分布稍有变化,模型立刻崩掉。(不太理解)状态Gate 输出分布行为模式后果正常拟合权重分散,比如[0.6, 0.3, 0.1]能根据输入特征,灵活选择多个专家泛化性好,专家分工合理过拟合(极化)权重极端,比如[1, 0, 0]死记硬背训练数据,永远选同一个专家泛化性差,专家利用率低所以,说的 “防止 gate 层过拟合”,本质上就是防止 Gate 输出变成 one-hot,让它学会更平滑、更通用的权重分配。3.1.2.1 Gate 对训练数据过拟合,一旦线上数据分布稍有变化,模型立刻崩掉。我的问题:mmoe 模型在训练的时候,门控网络 和 专家网络的梯度更新是相互影响的吗? 我之所以问这个问题是因为没彻底理解gate过拟合是怎么回事。回答:门控网络和专家网络的梯度更新,是强耦合、互相影响的。Gate 过拟合导致 “死专家”,本质就是这种耦合关系被破坏了。Gate 输出极化,变成g=[1,0,0,0], 对第一个专家,它的权重