原文地址:多任务学习模型详解:Multi-gate Mixture-of-Experts(MMoE ,Google,KDD2018),首发微信公众号,现在转到CSDN上~
欢迎关注我的公众号,微信搜 algorithm_Tian 或者扫下面的二维码~
现在保持每周更新的频率,内容都是机器学习相关内容和读一些论文的笔记,欢迎一起讨论学习~

上篇文章介绍多任务学习的背景知识,其中提到了相关任务这一概念。那么我们知道,相关性强的任务,使用多任务学习会有不错的效果,而相关性没那么强的任务,在多任务学习时表现不佳。
但是在实际应用中很难讲要进行多任务学习的任务是否足够相关,为了解决多任务学习在相关性不强的任务上效果不够好的问题,Google在2018年KDD上发表了一篇文章:
Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts
视频简介的youtube地址:
https://www.youtube.com/watch?v=Dweg47Tswxw
一个用keras框架实现的开源地址:
https://github.com/drawbridge/keras-mmoe
本篇博文根据原论文内容及我自己的理解,准备从三方面介绍:
1. challenge in MTL(文章motivation)
3.3 Large-scale Content Recommendation
1. challenge in MTL
在多任务学习时,同时学习多个相关任务,具有明显优势。
如下图所示,假如有这样两个相似的任务:狗的分类模型和猫的分类模型。在单任务学习中,他们都拥有比较接近的底层特征,比如皮毛颜色啦、眼睛颜色啦、耳朵形状啦等等。

由于多任务学习本质上是共享表示层,任务之间互相影响。那么在多任务学习中,他们就可以很好地进行底层特征共享。

但是对于不相似的任务来说,如下图,汽车的识别和狗的识别,他们的底层表示差异很大,共享表示层可能就没那么有效果了。
进行参数共享时很有可能会互相冲突或噪声太多,对多任务学习而言非常不友好。


文章在他们自己生成的数据相关性不同的数据集上(数据生成过程就不介绍了,感兴趣的同学可以去看原文,在原论文3.2节)进行了模型训练效果与相关性之间的实验,这里的correlation是相关性系数:Pearson系数,当它为1时说明两组数据间是完全正相关的,越接近0则相关性越低。在这里进行训练的模型是多任务学习中最基本的shared bottom multi task model(下一节中介绍)。
实验结果如下图所示:

这张结果图验证了任务相关性越强则训练效果越好。
由于multi task在不相关的任务上表现不佳,同时,在实际应用中,你很难判断任务在数据层面是否是相似的。
所以多任务学习如何在相关性不高的任务上获得好效果是一件很有挑战性也很有实际意义的事。

之前有一些工作有尝试解决这一问题,但是额外参数太多。
基于以上这些原因,这篇文章就被提出来啦。
2.MMoE框架&details
关于共享隐层方面,MMoE和一般多任务学习模型的区别:
- 一般多任务学习模型:接近输入层的隐层作为一个整体被共享
- MMoE:将共享的底层表示层分为多个expert,同时设置了gate,使得不同的任务可以多样化的使用共享层
如图,a)是最原始的多任务学习模型,也就是base,b)是加入单门(one gate)的MoE layer的多任务学习模型,c)是文章提出的模型。
可以看出,c)本质上

本文详细解析Google于KDD2018发表的Multi-gate Mixture-of-Experts(MMoE)模型,针对多任务学习中任务相关性的问题。MMoE通过设置gate和多个专家网络,改善了共享底层表示层在不相关任务中的效果,实验结果显示在低相关性任务上优于其他方法。
&spm=1001.2101.3001.5002&articleId=99068255&d=1&t=3&u=df9d3de45f9a45c2a5b1a1620013ea3a)
1万+

被折叠的 条评论
为什么被折叠?



