Skip to content

Latest commit

 

History

History
executable file
·
100 lines (46 loc) · 6.41 KB

Modeling-Task-Relationships-in-Multi-task-Learning-with-Multi-gate-Mixture-of-Experts.md

File metadata and controls

executable file
·
100 lines (46 loc) · 6.41 KB

Multi-task Learning with MMoE

paper

pdf: Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

slides论文作者视频讲解: YouTube

MOE混合专家系统

首先我们需要了解混合专家系统(mixture of experts),这里特别推荐Hinton在多伦多大学的一篇slides:

CSC321: Introduction to Neural Networks and Machine Learning Lecture 15: Mixtures of Experts

先看这个,然后我们直接讲MOE的本质理解:

moe-vs-decision-tree

moe其实就是个决策树桩,他的多个专家网络,就是决策树桩的多个叶子结点的函数。而那个门控路由,就是决策树的if else规则。这样类比的话,就感觉很容易能理解moe的本质了。

更进一步,moe相当于一个连续概率选择(这里需要看下上面的slides)的决策树桩,每一个叶子结点可以看作是一个专家系统。加上归一化的概率,这样就可以有连续的空间来优化参数。

按照moe的思想,确实应该要每个结果乘以一个概率,然后整合成一个结果进行输出,最后就等价于决策树那样。moe把决策树通过概率给连续化了,这样也方便计算损失进行训练。

为什么moe的多个结果要相加,而不是concat呢,我感觉是因为moe的思想就是连续化的决策树,所以多个专家的决策结果形式上要和一个专家的结果保持一致。

moe会让几何空间有明显的分割界限,这个和决策树的空间划分是同一个意思,如上图的上半部分所示。

至于mmoe,则就是利用moe的多个叶子结点的信息,通过不同的multi-gate的参数进行调整,作为不同任务的输入,即共享了底层结点,丰富了原始特征,又不至于让所有专家网络同质化或者低质化。

为什么需要引入MMOE

下面引用自知乎推荐算法负责人的博客。

与所有的系统类似,知乎的多目标推荐系统最初也是一个比较简单的版本,仅仅是给各个目标学习一个模型。这种情况下,模型本身的训练和在线预测的负担就会非常严重,每一个模型的训练和预测都要耗费同样的资源,这样对于工程资源压力是非常大的。这些模型之间还有互相的交叉、验证;每个模型还需要评估,离线评估一遍,在线评估一遍,之后再合并… 林林总总的行为加起来,对研发资源造成的负担是非常大的。

在多目标推荐系统的第一版(不同目前各自是一个模型)做出来之后,团队就在考虑:能不能使用模型之间共享一些参数的方式,或者共享模型本身以及训练流程的方式,来减少在训练上的负担,以及它在工程成本、研发成本上的负担?

以此想法为基础,团队做出了一个能够在底层共享相关参数,在顶层根据各种模型、目标本身特点而学习的特有的神经网络架构,张瑞说,这套架构中参考了很多现有的多目标学习的研究进展。

虽然解决了一部分问题,但是把多个模型融合在一起,通过一个模型去学习一个目标的方式仍然存在问题。

首先,目标之间的相关性决定了这个模型学习的上限能有多少。比如:如果一个模型中点赞和点击是完全耦合的,那么这个模型在学习点赞的过程中,也就学习了点击。但是对用户来讲,它的意义是不一样的,这并不是一个完全耦合的系统。

在这个学习任务下,如果去共享底层网络参数的话,可能会造成底层的每个目标都能学习一点,但是每个目标学习的都不够充分,这是多目标学习系统实现的一个难点。为了解决这个问题,研发团队参考了 Google 发表的一篇论文,叫做 Multi-gate Mixture-of-Experts,简称 MMOE。

MMOE 的核心思想是:把底层的网络划分成一些专用的模块,虽然底层参数是共享的,但是通过目标和网络参数之间的一个 gate(门)来学习,让每部分网络充分学习到对每个目标的贡献最大的一组参数结构,通过这种方式来保证,底层网络参数共享的时候,不会出现目标之间相互抵消的作用。

张瑞告诉我们,经过尝试之后,交互层面的预估子任务的 AUC 值得到了至少千分之二的提升,在模型的主任务也就是预测阅读的任务中,AUC 也没有下降。上线之后,取得的效果也是非常正向的。

参考资料

“MOE混合专家系统”参考此slides。

“为什么需要引入MMOE”参考了此博客。

本文参考了了上述几篇文章中的内容。

这个论文讲述了为什么embedding聚合采用sum而不是avg和max的原因。

===

CS 2750 Machine Learning Ensamble methods. Mixtures of experts

这是一篇介绍MOE的slides。

Twenty Years of Mixture of Experts

《Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics》18年cvpr

这篇论文用来调多任务模型训练,各loss融合的权重

多目标模型之MMoE

这篇讲了MMoE和共享底层多任务模型的区别。