前言
这是多任务推荐第二篇,由Google发表在2018年KDD上的论文。最近在尝试如何更为简单的概括论文提出的背景、动机、创新点以及模型结构,并且搭建一个简单的多任务推荐包(MTRec,起步阶段,见文章末尾)。
本文约1.6k字,预计阅读8分钟。
概要
推荐系统有时需要在同一时间优化多个目标,例如CTR与CVR。如果多个目标分若干个模型,则会损失任务之间的相关性信息,因此多任务推荐也是一个重要的研究方向。
本文主要针对的是在多任务推荐领域中,一个关键性的「问题」:
❝当任务之间相关度较低时,传统多任务推荐模型(Shared-Bottom model,见下图(a))性能就会明显降低(相比于高相关)。
❞
「原因是」任务差异带来的内在冲突实际上会损害某些任务的预测,尤其是在所有任务之间广泛共享模型参数时(Shared-Bottom)。一些研究者也给出了解决方法,例如任务之间参数并不共用,各自学习,然后增加正则化的限制(L2-Constrained)。不过作者指出,这种做法虽然在一定程度上提升了模型的性能,但增加了大量的学习参数,对于大规模数据下的推荐模型来说很难拟合。
因此作者提出了MMoE(Multi-gate Mixture-of-Expert)模型来解决上述问题,并且无需大规模学习参数。主要的改进措施有两点:
Shared-Bottom部分采用多个Expert模块(就是前向传播网络,NN模型),因为集成的子网络能够提升模型的性能,并且MoE模块中每个Expert可以并行训练;
通过多个门控网络(multi-gate network,任务的数量),来自动分配参数权重给每个Expert,来捕获共享任务信息与特定任务信息,区分每个任务之间的关系(其实这和Attention机制是同一个道理),无需增加额外的参数(当然,在门控网络中也可以采用简单的NN模型);
作者通过三个实验(构造的虚拟数据、Census-income数据集、大规模推荐数据集)证明了任务相关度对模型性能的影响以及MMoE的有效性。
模型结构
下图,(c)是本文提出的模型,(a)(b)进行对比,假定 个任务:

「(a)Shared-Bottom model」:模型由共享底部网络(函数 表示)和 个塔网络( 表示)组成, 为第