文章目录
- 1、动机:
- 2、模型结构:
- Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts
- mmoe: Multi-gate Mixture-of-Experts
- mmoe由谷歌发表在KDD-2018【和阿里的ESMM同年发表,SIGIR-2018】;模型结构也蛮简单,dnn+gate_attention结构,多塔多任务模型。
1、动机:
- 之前的mtl模型中,基本都是n个塔共享底座embedding,然后不同的任务分不同的塔,这种模式需要这些塔之间具有比较强的相关性,不然性能就很差,甚至会发生跷跷板现象。【跷跷板现象:一个task性能的提升是通过损害另一个task性能作为代价换来的。负迁移现象:不同任务之间存在冲突时,会导致模型无法有效进行参数的学习,不如对多个任务单独训练。】
- 如果又有多个目标,多个task之间的相关性并不是很强,比如,CTR、点赞、时长、完播、分享等,并且有的目标的数据量并不是很足够,甚至无法单独训练一个DNN,我们可能就要考虑MTL了,这时候就可以考虑像MMOE类的模型。
2、模型结构:
模型结构如下(图c):
- 图a:传统mtl结构;多个task共享底座embedding,然后分塔预测。
- 图b:搞多个expert来学习不同空间的特征,单个gate attention负责整合多个专家的特征,然后分塔预测。
- 图c:MMOE的结构;多个expert来学习不同空间的特征,为不同的task分配对应的gate attention来整合多个专家的特征,然后分塔预测。
⭐ 来个详细的MMOE的图:
- gate的数量 = tower的数量 = task的数量;expert的数量自定义。
- expert每个网络的输入特征都是一样的,其网络结构也是一致的。
- gate网络的输入也是一样的,gate网络结构也是一样的。
- MMOE的初始输入维度是: (bs, 所有特征的embedding特征维度拼接)。
参考链接: https://blog.csdn.net/u012328159/article/details/123309660