今天介绍的是腾讯提出的一种新的多任务学习个性化推荐模型,该论文荣获了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-task Learning》,上图中可能表示的不太清楚,可以参考下图:

从上面的公式中可以看出,当aBA或者aAB值为0时,说明两者没有共享的特征,相反的,当两者的值越大,说明共享部分越大。

2)Sluice Network(水闸网络):名字都比较有意思,哈哈。这个结构出自论文《Sluice networks: Learning what to share between loosely related tasks》,模型结构比较复杂,本文不做详述,感兴趣的同学可以阅读原文

3)ML-MMoE:这是MMoE的多级结构,不再赘述

4)PLE:CGC的进阶版本,同样是本文提出的结构,后文会进行详细的介绍,此处省略。

好了,简单回顾了一些多任务学习的网络结构,接下来进入本文的重点了,准备好了么!

3、PROGRESSIVE LAYERED EXTRACTION介绍

3.1 seesaw phenomenon

我们先来看一下MTL中的seesaw phenomenon(跷跷板现象),论文主要基于腾讯视频推荐中的多任务学习为例进行介绍,其视频推荐架构如下图:

这里主要关注VCR和VTR两个任务。VCR任务可理解为视频完成度,假设10min的视频,观看了5min,则VCR=0.5。这是回归问题,并以MSE作为评估指标。VTR表示此次观看是否是一次有效观看,即观看时长是否在给定的阈值之上,这是二分类问题(如果没有观看,样本Label为0),并以AUC为评估指标。

两个任务之间的关系比较复杂。首先,VTR的标签是播放动作和VCR的耦合结果,因为只有观看时间超过阈值的播放动作才被视为有效观看。其次,播放动作的分布更加复杂,在存在WIFI时,部分场景有自动播放机制,这些样本就有较高的平均播放概率,而没有自动播放且需要人为显式点击的场景下,视频的平均播放概率则较低。

论文对比了上述所有结构的MTL在腾讯视频VCR和VTR两个任务上相对单任务模型的离线训练结果:

可以看到,几乎所有的网络结构都是在一个任务上表现优于单任务模型,而在另一个任务上表现差于单任务模型,这就是所谓的跷跷板现象。MMoE尽管有了一定的改进,在VTR上取得了不错的收益,但在VCR上的收益接近于0。MMoE模型存在以下两方面的缺点,首先,MMoE中所有的Expert是被所有任务所共享的,这可能无法捕捉到任务之间更复杂的关系,从而给部分任务带来一定的噪声;其次,不同的Expert之间也没有交互,联合优化的效果有所折扣。

针对以上两点,本文提出了PLE结构,在两个任务上都取得了相对单任务模型不错的收益,有效解决了跷跷板现象。

3.2 Customized Gate Control

Customized Gate Control(以下简称CGC)可以看作是PLE的简单版本,本文先对其进行介绍,其结构如下图所示:

CGC可以看作是Customized Sharing和MMoE的结合版本。每个任务有共享的Expert和独有的Expert。对任务A来说,将Experts A里面的多个Expert的输出以及Experts Shared里面的多个Expert的输出,通过类似于MMoE的门控机制之后输入到任务A的上层网络中,计算公式如下:

其中,gk(x)是下层模块的输出,wk(x)是第k个任务针对不同Expert输出的权重,Sk(x)则是第k个任务所用到的Expert的输出,例如对于任务A,使用Experts A和Experts Shared里面的多个Expert的输出。

3.3 Progressive Layered Extraction

在CGC的基础上,Progressive Layered Extraction(以下简称PLE)考虑了不同的Expert之间的交互,可以看作是Customized Sharing和ML-MMOE的结合版本,其结构图如下:

在下层模块,增加了多层Extraction Network,在每一层,共享Experts不断吸收各自独有的Experts之间的信息,而任务独有的Experts则从共享Experts中吸收有用的信息。每一层的计算过程与CGC类似,这里就不再赘述。接下来介绍训练时的几点优化。

3.4 MTL训练优化

传统的MTL的损失是各任务损失的加权和:

而在腾讯视频场景下,不同任务的样本空间是不一样的,比如计算视频的完成度,必须有视频点击行为才可以。不同任务的样本空间如下图所示:

解决样本空间不一致的问题,前面我们介绍过ESMM的方式。而本文则是在Loss上进行一定的优化,不同的任务仍使用其各自样本空间中的样本:

其中δki取值为0或1,表示第i个样本是否属于第k个任务的样本空间。

其次是不同任务之间权重的优化。关于MTL的权重设置,最常见的是人工设置,这需要不断的尝试来探索最优的权重组合,另一种则是阿里提出的通过帕累托最优来计算优化不同任务的权重。本文也是人工设置权重的方式,不过在不同的训练轮次,权重会进行改变。在每一轮,权重的计算如下:

上式中所有的参数均为人工设定的超参数。

4、实验结果

最后简单看一下实验结果。首先是离线的训练结果,表中的收益均是相较于单任务学习模型的:

接下来是线上A/B实验的结果:

可以看到,无论是离线训练还是线上A/B,PLE均取得了最佳的效果。

接下来,论文比较了在任务之间相关系数不同的情况下,Hard Parameter Sharing、MMoE和PLE的结果:

可以看到,无论任务之间的相关程度如何,PLE均取得了最优的效果。

最后,论文对比了MMoE和PLE不同Expert的输出均值,来比较不同模型的Expert利用率(expert utilization)。为方便比较,将MMoE的Expert设置为3个,而PLE&CGC中,每个任务独有的Expert为1个,共享的为1个。这样不同模型都是有三个Expert。结果如下:

可以看到,无论是MMoE还是ML-MMoE,不同任务在三个Expert上的权重都是接近的,这其实更接近于一种Hard Parameter Sharing的方式,但对于CGC&PLE来说,不同任务在共享Expert上的权重是有较大差异的,其针对不同的任务,能够有效利用共享Expert和独有Expert的信息,这也解释了为什么其能够达到比MMoE更好的训练结果。

参考文献

1、https://zhuanlan.zhihu.com/p/52566508
2、《Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations》
3、https://www.jianshu.com/p/ab7216e95fa9

好了,本文的介绍就到这里了,可以学习的地方还是比较多的,不仅能够对不同的MTL结构进行一个简单的梳理,同时学习到最新的MTL学习框架,感兴趣的同学一定要阅读下原文,吸收其精华!

推荐系统遇上深度学习(九十一)-[阿里]跨域点击率预估混合兴趣模型MiNet

2020-08-23

推荐系统遇上深度学习(九十)-[阿里]计算成本感知的轻量级预排序系统COLD

2020-08-08

推荐系统遇上深度学习(八十九)-推荐系统中的反馈循环

2020-08-02

推荐系统遇上深度学习(九十二)-[腾讯]RecSys2020最佳长论文-多任务学习模型PLE相关推荐

  1. 知识图谱论文阅读(八)【转】推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

    学习的博客: 推荐系统遇上深度学习(二十六)–知识图谱与推荐系统结合之DKN模型原理及实现 知识图谱特征学习的模型分类汇总 知识图谱嵌入(KGE):方法和应用的综述 论文: Knowledge Gra ...

  2. 推荐系统遇上深度学习,9篇阿里推荐论文汇总!

    作者 | 石晓文 转载自小小挖掘机(ID: wAIsjwj) 业界常用的推荐系统主要分为两个阶段,召回阶段和精排阶段,当然有时候在最后还会接一些打散或者探索的规则,这点咱们就不考虑了. 前面九篇文章中 ...

  3. 推荐系统遇上深度学习(三十九)-推荐系统中召回策略演进!

    推荐系统中的核心是从海量的商品库挑选合适商品最终展示给用户.由于商品库数量巨大,因此常见的推荐系统一般分为两个阶段,即召回阶段和排序阶段.召回阶段主要是从全量的商品库中得到用户可能感兴趣的一小部分候选 ...

  4. 推荐系统遇上深度学习(八十七)-[阿里]基于搜索的用户终身行为序列建模

    本文介绍的论文是<Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Thr ...

  5. 推荐系统遇上深度学习(二)--FFM模型理论和实践

    全文共1979字,6张图,预计阅读时间12分钟. FFM理论 在CTR预估中,经常会遇到one-hot类型的变量,one-hot类型变量会导致严重的数据特征稀疏的情况,为了解决这一问题,在上一讲中,我 ...

  6. 推荐系统遇上深度学习(二十六)--知识图谱与推荐系统结合之DKN模型原理及实现

    作者:石晓文 Python爱好者社区专栏作者个人公众号:小小挖掘机 添加微信sxw2251,可以拉你进入小小挖掘机技术交流群哟!博客专栏:wenwen 在本系列的上一篇中,我们大致介绍了一下知识图谱在 ...

  7. 推荐系统遇上深度学习(二十)--探秘阿里之完整空间多任务模型ESSM

    笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值,找寻数据的秘密,笔者认为,数据的价值不仅仅只体现在企业中,个人也可以体会到数据的魅力,用技术力量探索行为密码,让大数据 ...

  8. 推荐系统遇上深度学习(一三二)-[阿里]点击率预估中的自适应参数生成网络

    今天给大家分享一篇阿里发表的关于神经网络中网络参数自适应生成的文章,不仅可以做到不同的样本有不同的网络参数,同时通过拆分矩阵等操作大大提升了推理性能,一起来学习一下. 1.背景 当前CTR预估的主要研 ...

  9. 推荐系统遇上深度学习(十五)--强化学习在京东推荐中的探索

    强化学习在各个公司的推荐系统中已经有过探索,包括阿里.京东等.之前在美团做过的一个引导语推荐项目,背后也是基于强化学习算法.本文,我们先来看一下强化学习是如何在京东推荐中进行探索的. 本文来自于pap ...

最新文章

  1. 如何创建和维护你自己的man手册
  2. python调用接口上传文件_python上传文件接口
  3. 【数据竞赛】厦门国际银行 “数创金融杯”数据建模大赛-冠军分享
  4. memcache、redis原理对比
  5. tomcat+nginx+redis实现均衡负载、session共享
  6. java 复杂 sql_复杂的SQL条件
  7. ygo游戏王卡组_ACG大科普(7)游戏王
  8. oracle数据库6月之后的数据,Oracle数据库SCN存在可能在2019年6月导致宕机问题
  9. Linux基本命令之grep命令常见用法
  10. 【优化预测】基于matlab EMD优化SVR数据预测【含Matlab源码 1403期】
  11. 第六届蓝桥杯--奇妙的数字和移动距离
  12. 二进制、十进制、八进制、十六进制 各代表的英文字母是什么
  13. 舞伴问题(数据结构队列,c语言版)
  14. CleanMyMac X免费的c盘清理工具
  15. Java 打开资源管理器
  16. 前端编程中利用PS切图还原设计图
  17. Helocobic-energy 小电视
  18. Agile Office 365 免积分下载
  19. 一个仿微博TextView 筛选,直接使用的工具类
  20. js动态生成的DOM绑定事件失效的问题

热门文章

  1. 【HDOJ】 1001 Sum Problem_天涯浪子_新浪博客
  2. 含金量高的售后五星服务认证!
  3. fontconfig-2.13.92交叉编译
  4. PoE供电、集中供电、点对点供电各自的优缺点
  5. 安全事故频出?私有云成为企业首选项
  6. waterdrop使用笔记
  7. SHAREit(茄子科技(快乐茄科技)SRE运维一面题目)
  8. 锆基纳米复合储氢材料La2Mg17+200%M(M=Cu, Ni)+1%CeO复合贮氢材料|碳纳米纤维的储氢
  9. table表格数据无缝循环向上滚动,hover后暂停滚动
  10. 如何用你的Python代码赚取你的第一桶金