【源头活水】机器学习:多任务学习之MMOE模型
“问渠那得清如许,为有源头活水来”,通过前沿领域知识的学习,从其他研究领域得到启发,对研究问题的本质有更清晰的认识和理解,是自我提高的不竭源泉。为此,我们特别精选论文阅读笔记,开辟“源头活水”专栏,帮助你广泛而深入的阅读科研文献,敬请关注。
地址:https://zhuanlan.zhihu.com/p/346635793
地址:https://www.kdd.org/kdd2018/accepted-papers/view/modeling-task-relationships-in-multi-task-learning-with-multi-gate-mixture-
研究动机
研究MMOE的动机在于刻画了多任务机器学习中多目标之间相关性对loss的影响,同时也提出了一种新的MTL架构,可以利用gate函数和Moe Layer多层Expert去缓解多目标相关性低导致的准确率问题。
多任务模型通过学习不同任务的联系和差异,可提高每个任务的学习效率和质量。多任务学习的的框架广泛采用shared-bottom的结构,不同任务间共用底部的隐层。这种结构本质上可以减少过拟合的风险,但是效果上可能受到任务差异和数据分布带来的影响。也有一些其他结构,比如两个任务的参数不共用,但是通过对不同任务的参数增加L2范数的限制;也有一些对每个任务分别学习一套隐层然后学习所有隐层的组合。
和shared-bottom结构相比,这些模型对增加了针对任务的特定参数,在任务差异会影响公共参数的情况下对最终效果有提升。缺点就是模型增加了参数量所以需要更大的数据量来训练模型,而且模型更复杂并不利于在真实生产环境中实际部署使用。
MMoE概述
关于共享隐层方面,MMoE和一般多任务学习模型的区别:
一般多任务学习模型:接近输入层的隐层作为一个整体被共享;
MMoE:将共享的底层表示层分为多个expert层(可以将它看作三维的Tensor,即类似一个Shared Bottom但纬度为3),同时设置了gate网络,使得不同的任务可以多样化的使用共享层;
Gate网络作用:每个任务的gating networks通过最终输出权重不同实现对experts的选择性利用。不同任务的gating networks可以学习到不同的组合experts的模式,因此模型考虑到了捕捉到任务的相关性和区别。
如图,a)是最原始的多任务学习模型,也就是base,b)是加入单门(one gate)的MoE layer的多任务学习模型,c)是文章提出的模型。可以看出,c)本质上是将base的shared bottom换成了MoE layer,并对每个任务都加gate网络。
Shared-bottom Multi-task Model & MoE layer
如上图所示,左边是原始模型,右边是MoE layer。
原始模型:
共享隐层的输出结果是
MoE layer:
隐层是三个expert子网组成,各自的输出
MMoE实际上就是原始模型+多个门的MoE layer,模型结构如下所示:
对每个任务k,输出为:
其中
本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。
“源头活水”历史文章
通过对抗性训练和数据增强改进常识因果推理
简单不过图卷积-Spatial Graph ConvNets
SCUT-FBP5500 人脸美学预测
Attention Is All You Need (Transformer模型)
从双层优化视角理解对抗网络GAN
EF-Net一种适用于双流SOD的有效检测模型(Pattern Recognition)
从傅立叶变换到炒股:基于多频率分析的递归神经网络
从样本对抗到模型对抗:Worst-Case Perturbations (WCP) 对抗模型
T-PAMI 2021:换个损失函数就能实现数据扩增?
Transformer in CV—— Vision Transformer
Inductive Biases for Deep Learning By Bengio
OneNet: End-to-End One-Stage Object Detection
基于认知图谱实现多跳阅读
A Little Introduction of Neural ODE
PDE遇见深度学习
更多源头活水专栏文章,
请点击文章底部“阅读原文”查看
分享、在看,给个三连击呗!