论文:
地址:https://dl.acm.org/doi/pdf/10.1145/3219819.3220007
论文题目:《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》
我们在之前的多任务模型esmm中已经知道了怎么通过多任务学习的方式来学习到cvr的预估,esmm中是通过share bottom的方式来学习,有效的缓解了样本选择偏差和数据稀疏的问题。
然而 ,多任务学习的效果受任务之间的相关性程度的影响,MMoE模型的提出就是为了学习这种特殊任务以及任务之间又有相关性的多任务学习。
一 、背景
现在的推荐系统里面往往都存在着很多的目标需要优化,比如在短视频领域,我们可能需要优化的目标就有,观看时长,点击率等目标,为了能用一个模型建模出对所有目标的优化,多任务学习模型经常被我们使用。
可是呢,任务之间是有相关性的,假如说两个任务的相关性很高,那么多任务模型学习出来的效果就会很好;假如两个任务的相关性是负数,也就是这两个任务是互相矛盾的,那么在模型训练的时候也就比较难以同时兼顾两个任务。
这个假设是对的吗?你可能会认为是对的。
事实上呢?MMoE这篇论文做了实验来验证这个假设是否正确。
二 、多任务学习中相关性的影响实验
2.1 Shared-bottom Multi-task Model
一般的多任务模型学习框架如上图所示,共享底层的参数,比如说是embedding layer,然后用不同的DNN层去优化自己的目标:
2.2 Synthetic Data Generation
由于现实中我们不能简单的通过实际的多任务来进行这个实验,所以我们通过自己来生成数据的方式来做这个实验。
假设实验中的模型中包含两个回归任务,数据通过采样生成,输入相同是相同的,但是输出label不同。那么任务的相关性就使用label之间的皮尔逊相关系数来表示,相关系数越大,表示任务之间越相关,数据生成的过程如下:
解释一下这个过程吧:
1.首先生成两个正交的单位向量
2.利用这两个单位向量生成两个权值向量w1和w2
3.根据正态分布随机生成向量x作为输入
4.根据我们的输入x还有sin函数,以及两个回归模型,生成label y1和y2
由于我们不是使用的线性函数,所以采用先根据权值w1和w2的cos值,然后再计算label的皮尔逊系数。在非线性模型中label的皮尔逊系数跟cos的值并不相等,而是呈正相关的关系。而在线性模型中,label的皮尔逊系数就是cos的值。
虽然在非线性模型中label的皮尔逊系数不等于cos值,但是只要是正相关,我们就把cos值当成任务之间的相关性系数。
2.3 实验结果
其中,纵轴是loss,我们可以看到相关性系数越高,loss越低。
三 、MMoE模型
expert0,1,2都是DNN模型,这里跟share bottom的方式不一样,每一个expert都有着自己的embedding,这里我也很奇怪,为什么模型结构完全一样的情况下,每一个expert可以对不同的任务带来不同的影响。
还有一点就是,每一个expert都有着自己的embedding,那这样参数量也太大了吧?实际上,后面的续文《Recommending What Video to Watch Next: A Multitask Ranking System》说到了共享embedding和不共享对于实验结果的影响是差不多的。
3.1 MoE模型(Mixture-of-Experts)
如图b所示,只有一个门的模型叫MoE模型,Gate部分的输出是一个softmax分布,模型的输出为:
g(x)是一个softmax的概率输出,f是每个expert的输出,y共享层的输出。
3.2 MMoE模型(Multi-gate Mixture-of-Experts)
其中,
gk(x)是第k个门的输出,是一个softmax概率分布
fk(x)是第k个任务的输出
yk是任务k的输出
MMoE相比于MoE就是把门的数量增加了,其他的一样,由于不同任务的gating networks可以学习到不同的组合experts的模式,因此模型考虑到了捕捉到任务的相关性和区别。
假如训练样本的label是这样:
clicklabel buylabel
0 0
1 0
1 1
这里我还是说一下每个tower的正负样本怎么选取,比如总共有两个任务一个是ctr,一个是cvr
那么在ctr任务中的正负样本是这样:
正样本:clicklabel为1, 负样本clicklabel为0
在cvr任务中的正负样本是这样:
正样本:clicklabel为1,buylabel也为1,负样本:clicklabel为1,buylabel为0
其中click跟buy均为0的样本只作为ctr任务的负样本,这样可以缓解曝光到购买的任务中正负样本及其不平衡的问题。
四、实验结果
总结下,第一,Shared-Bottom models的效果方差要明显大于基于MoE的方法,说明Shared-Bottom模型有很多偏差的局部最小点;第二,如果任务相关度非常高,则MoE和MMoE的效果近似,但是如果任务相关度很低,则MoE的效果相对于MMoE明显下降,说明MMoE中的multi-gate的结构对于任务差异带来的冲突有一定的缓解作用。
整体来看,这篇文章是对多任务学习的一个扩展,通过门控网络的机制来平衡多任务的做法在真实业务场景中具有借鉴意义。在Datafuntalk的年终推荐算法大会中,很多公司都在多任务多场景下把MMoE推全量了,这也证明了MMoE在多任务学习任务中可以发挥的真正作用是有效的。