今天介绍的是腾讯提出的一种新的多任务学习个性化推荐模型,该论文荣获了RecSys2020最佳长论文奖,一起来学习下!
1、背景
多任务学习通过在一个模型中同时学习多个不同的目标,如CTR和CVR,最近被越来越多的应用到线上的推荐系统中。
当不同的学习任务之间较为相关时,多任务学习可以通过任务之间的信息共享,来提升学习的效率。但通常情况下,任务之间的相关性并不强,有时候甚至是有冲突的,此时应用多任务学习可能带来负迁移(negative transfer)现象,也就是说,相关性不强的任务之间的信息共享,会影响网络的表现。
此前已经有部分研究来减轻负迁移现象,如谷歌提出的MMoE模型。该模型会在第二节进行一定的回顾。但通过实验发现,多任务学习中往往还存在seesaw phenomenon(本文中暂且翻译为跷跷板现象,如有不当,欢迎指正),也就是说,多任务学习相对于多个单任务学习的模型,往往能够提升一部分任务的效果,同时牺牲另外部分任务的效果。即使通过MMoE这种方式减轻负迁移现象,跷跷板现象仍然是广泛存在的。
论文提出了Progressive Layered Extraction (简称PLE),来解决多任务学习的跷跷板现象。本文会在后面对PLE进行详细介绍。
本文的后续首先将介绍一下多任务学习的一些常见的架构,然后重点介绍论文提出的PLE,最后简单介绍一下实验结果部分。
2、多任务学习介绍
这一部分主要是根据论文中给出的总结图进行介绍。论文中将MTL模型分为了Single-Level MTL Models和Multi-Level MTL Models。因此我们也按照此进行介绍。
2.1 Single-Level MTL Models
Single-Level MTL Models主要包含以下几种形式:
1)Hard Parameter Sharing:这也是最为常见的MTL模型,不同的任务底层的模块是共享的,然后共享层的输出分别输入到不同任务的独有模块中,得到各自的输出。当两个任务相关性较高时,用这种结构往往可以取得不错的效果,但任务相关性不高时,会存在负迁移现象,导致效果不理想。
2)Asymmetry Sharing(不对称共享):可以看到,这种结构的MTL,不同任务的底层模块有各自对应的输出,但其中部分任务的输出会被其他任务所使用,而部分任务则使用自己独有的输出。哪部分任务使用其他任务的输出,则需要人为指定。
3)Customized Sharing(自定义共享):可以看到,这种结构的MTL,不同任务的底层模块不仅有各自独立的输出,还有共享的输出。2和3这两种结构同样是论文提出的,但不会过多的介绍。
4)MMoE:这种结构的MTL之前的文章中也都介绍过了,相信大家也比较熟悉。底层包含多个Expert,然后基于门控机制,不同任务会对不同Expert的输出进行过滤。
5)CGC:这是本文提出的结构,后文会进行详细的介绍,此处省略。
2.2 Multi-Level MTL Models
Multi-Level MTL Models主要包含以下几种形式:
1)Cross-Stitch Network(“十字绣”网络):出自论文《Cross-stitch Networks for Multi