1、MMoE背景
MMoE是谷歌在2018年发表在KDD上的一篇基于多任务学习的经典论文,其使用场景是对不相关任务的多任务学习。在推荐系统中,这些不相关的任务可以示例为:视频流推荐中的CTR、时长、点赞、分享、收藏、评论等相关性不强的多个任务。
2、MMoE模型概述
2.1、Shared-Bottom model
MMoE模型的基础结构是“Shared-Bottom multi-task DNN”结构,Shared-Bottom model网络结构如下图。
Shared-Bottom model在输入层后接入几个bottom层作为多任务的共享网络结构,然后每个任务有一个独立的网络“塔”。这个网络结构比较简单,就是多个任务共享底部的Shared-Bottom网络,然后每个子任务在链接一个独立的tower网络。
这种网络结构的优点是浅层参数共享,互相补充学习,任务相关性越高,模型的loss可以降低到更低,但当任务没有好的相关性时,会影响模型的效果。
假设当前有K个任务,Shared-bottom Multi-task Model由一个shared-bottom的网络组成,这个shared-bottom网络可表示为函数f,将K个tower networks表示为,其中k=1,2,...,K为任务数。Shared-Bottom model的shared-bottom网络接入的是输入层,每个tower networks建立在shared-bottom网络的输出上,每个tower networks的输出就是对每个独立任务的网络输出,可表示为
。这样,对于子任务k,Shared-Bottom model的网络输出为: