作者:DOTA

在做推荐系统时,在系统刚刚搭建时,针对业务目标我们可能只需要去优化CTR或者CVR即可,但是不同的推荐场景下的优化目标不同。同时,随着系统的不断迭代,我们希望推荐算法能够同时优化多个业务目标

比如,在内容信息流场景中,希望提高用户点击率CTR的基础上提高用户关注、点赞、评论、停留时长等行为,营造更好的社区氛围从而提高留存;而在电商场景中,则希望能够在优化GMV的基础上提高点击率,从而提高用户的粘性和复购行为等。因此,一个成熟的推荐系统,会向多目标、多任务方向进行演化,从而承担起更多的业务目标!

本文,我来分享一下在多目标优化问题上一些思路,包括多目标任务的技巧、算法模型MMOE、SNR、ESMM、PLE等。

多目标任务的技巧

样本加权

通过Sample Weight进行多目标优化,保证一个主目标的同时,通过将其它目标转化为样本权重的方式改变数据分布,从而达到优化其它目标的效果。

这里我们以内容信息流场景为例。设定主目标为内容点击率CTR,用户在内容流中的点击行为定义为正样本。同时,在信息流点赞、评论、转发功能也同样定义为正样本,但是点赞、评论、转发、完播率大的样本可以设置更高的样本权重。对于样本权重大的行为,如果预测错误就会带来更大的损失。通过这种方法能够在优化A目标CTR的基础上,优化B目标停留时长。目标A会受到一定的损失换取目标B的增长。通过线上AB-Test和Sample Weight调整的联动,可以保证A目标损失较小的前提下,带来目标B的提升,实现初级的多目标优化。

这种方式模型简单,上线容易,仅在训练时通过梯度乘以样本权重实现对其它目标的加权即可。但本质上并不是多目标建模,而是将不同的目标转化为同一个目标,样本的加权权重需要根据线上AB测试才能确定。

模型融合

多目标模型融合,通过一个模型同时训练多个目标(label的构造),线上进行融合。该方法的优点是各个任务之间能够共享信息,统一迭代方便,节省资源。但缺点也比较明显,目标越多模型越复杂,各任务之间相互影响,迭代速度慢等,尤其是在线上需要模型一定的响应时间时,该方法就变得有些笨重。

例如在视频信息流场景中,我们用分类模型优化点击率CTR,用回归模型优化停留时长。不同的模型得到预测的score之后,通过一个函数将多个目标融合在一起,融合的函数可以有很多,比如连乘或者指数相关的函数,这里和业务场景和目标的含义强相关,可以根据自己的实际场景探索。

MMoE

背景

推荐系统在给用户推荐一些热门内容的同时,也需要对这些内容的质量有一定的把控,比如用户的停留时长、点赞、转发、评论等,所以成熟的推荐系统的推荐模型会同时对多个目标进行优化,而如何对这多个目标进行并行优化,正是本篇论文MMOE关注的重点,在以往的一些模型当中,通常优化一方面的效果就会损失另一方面的效果,所以这是一个Trade-off的过程。除此之外无论是搜索、推荐还是广告,都存在一个的潜在的bias问题。

多任务模型通过学习不同任务的联系和差异,可提高每个任务的学习效率和质量。多任务学习的的框架广泛采用Shared-bottom的结构,不同任务间共用底部的隐层。这种结构本质上可以减少过拟合的风险,但是效果上可能受到任务差异和数据分布带来的影响。MMoE模型刻画了任务相关性,基于共享表示来学习特定任务的函数,避免了明显增加参数的缺点。

创新

Shared-Bottom 网络通常位于底部,它通过浅层参数共享,互相补充学习。这种方式下任务相关性越高,模型的loss可以降低到更低。但是当任务没有好的相关性时,这种Hard parameter sharing会损害效果。

MOE由一组专家系统(Experts)组成的神经网络结构替换原来的Shared-Bottom部分,每一个Expert都是一个前馈神经网络,再加上一个门控网络(Gate)。

MMoE(Multi-gate Mixture-of-Experts)是在MOE的基础上,使用了多个门控网络, k个任就对应k个门控网络。MMoE包括两个部分,左侧的shallow tower部分和右侧的main tower部分,论文中提到的采用类似Wide&Deep模型结构就是指这两个tower,其中shallow tower可以对应Wide部分,main tower对应的是Deep部分。

SNR

背景

谷歌在MMOE之后又做了什么?经典的Shared-Bottom网络结构存在一个明显的问题:当共同训练学习的多个任务之间联系不强的时,会严重损害各自任务的效果。因为相对于多个目标各自训练独立模型而言,Shared-Bottom的网络结构会在共享的网络底层引入了Bias,这个上文中我们已经提到了。

创新

    上面提到的MMoE模型存在的一个问题,它只能够针对共享的experts子网络进行有限的组合。因此,在MMoE模型结构的基础上,本文提出了优化的SNR模型来实现更灵活的网络参数共享。与MMoE类似,SNR模型将共享的底层网络模块化为子网络。不同的是,SNR模型使用编码变量来控制子网络之间的连接,并且设计了两种类型的连接方式:SNR-TransSNR-Aver

ESMM

背景

基于 Multi-Task Learning 的思路,阿里妈妈团队在SIGIR2018上提出一种新的CVR预估模型ESMM,它有效解决了真实场景中CVR预估面临的数据稀疏以及样本选择偏差这两个关键问题。CVR预估和CTR任务相比,有两个不同:

(1)Sample Selection Bias转化是在点击之后才“有可能”发生的动作,传统CVR模型通常以点击数据为训练集,其中点击未转化为负例,点击并转化为正例。但是训练好的模型实际使用时,则是对整个空间的样本进行预估,而非只对点击样本进行预估。

(2)Data Sparsity作为CVR训练数据的点击样本远小于CTR预估训练使用的曝光样本。

一些策略可以缓解这两个问题,但都没有从实质上解决上面任一个问题。

创新

为了解决这个问题,ESMM提出了转化公式:

在全部样本空间中,CTR对应的label为click,而CTCVR对应的label为click & conversion,这两个任务是可以使用全部样本的。而PCTCVR和PCTR都可以在全样本空间进行训练和预估。但是这种除法在实际使用中,会引入新的问题。因为PCTR其实是一个很小的值,预估时会出现PCTCVR大于PCTR的情况,导致PCVR预估值大于1。ESSM巧妙的通过将除法改成乘法来解决上面的问题。它引入了PCTR和PCTCVR两个辅助任务,训练时loss为两者相加。

PLE:Progressive Layered Extraction

背景

腾讯PCG在RecSys2020发表的最佳长论文PLE(Progressive Layered Extraction),是在视频推荐场景下多任务模型。相对于前面的MMOE、SNR和ESMM模型,PLE模型主要解决两个问题:(1)MMOE中所有的Expert是被所有任务所共享的,这可能无法捕捉到任务之间更复杂的关系,从而给部分任务带来一定的噪声;(2)不同的Expert之间没有交互,联合优化的效果有所折扣。

创新

从图中的网络结构可以看出,CGC的底层网络主要包括shared experts和task-specific expert构成,每一个expert module都由多个子网络组成,子网络的个数和网络结构都是超参数。上层由多任务网络构成,每一个多任务网络(towerA和towerB)的输入都是由gating网络进行加权控制,每一个子任务的gating网络的输入包括两部分,其中一部分是本任务下的task-specific部分的experts和shared部分的experts组成。

上面看到了CGC网络是一种single-level的网络结构,一个比较直观的思路就是叠加多层CGC网络,从而获得更加丰富的表征能力,而PLE网络结构就是将CGC拓展到了multi-level层中。

效果

作者还将不同experts的平均权重展示出来,可以看出MOE不同experts权重基本相差不大,PLE模型共享experts和独有experts的权重相差更大,说明针对不同的任务,能够有效利用共享Expert和独有Expert的信息,这也解释了为什么其能够达到比MMoE更好的训练结果。

—END—

参考文献

1、Entire Space Multi-Task Model: An Effective Approach for Estimating Post-Click Conversion Rate

2、https://zhuanlan.zhihu.com/p/291406172

3、SNR: Sub-Network Routing for Flexible Parameter Sharing in Multi-task Learning

4、https://zhuanlan.zhihu.com/p/96796043

5、Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts

6、Progressive Layered Extraction (PLE): A Novel Multi-Task Learning (MTL) Model for Personalized Recommendations

7、https://zhuanlan.zhihu.com/p/144936009

8、Multi-Task Learning Using Uncertainty to Weigh Losses for Scene Geometry and Semantics

往期精彩回顾适合初学者入门人工智能的路线及资料下载(图文+视频)机器学习入门系列下载机器学习及深度学习笔记等资料打印《统计学习方法》的代码复现专辑机器学习交流qq群955171419,加入微信群请扫码

一石二鸟:推荐算法多目标建模技巧相关推荐

  1. 推荐算法-多目标学习总结

    推荐算法-多目标学习总结 mutil-task learning,本质上是用一个模型完成多个任务的建模.在推荐系统中,多任务学习一般即指多目标学习(multi-label learning),不同目标 ...

  2. 推荐业务多目标建模算法介绍:MMOE、OMOE、Shared-Bottom

    在推荐业务中经常有"既要.也要.还要"的场景,比如做视频推荐业务的时候既要提升用户对于视频的点击率,也希望同时提升用户观看视频的时长.面对这样的诉求,通常需要在推荐系统中使用多目标 ...

  3. 【ccf2021训练赛】图书推荐算法赛道(SASRec序列推荐模型 | 序列推荐模型分类)

    内容总结 会话推荐是指,对于一个用户的点击序列(即session),预测下一个要点击的物品.即输入所有的物品V={v1,v2,-,vm} ,在给定某个session为s=[v1,v2,-,vn]的用户 ...

  4. 一石二鸟:推荐系统多目标任务建模方法

    「炼丹笔记」传送门: 这些我全要!推荐系统一石二鸟之道 作者:九羽,公众号:炼丹笔记 在做推荐系统时,在系统刚刚搭建时,针对业务目标我们可能只需要去优化CTR或者CVR即可,但是不同的推荐场景下的优化 ...

  5. 微信视频号推荐算法上分技巧

    躺平了一段时间之后,排行榜已经发生了翻天覆地的变化,emmm....不由的佩服年轻人的精力,作为老年选手,只能使用大局观了(此处内涵一下我大酒神,手动狗头).好久没写文章了,本文拿出 炼丹笔记 里的一 ...

  6. 求序列中第k小的数_推荐算法序列建模现状

    本篇文章主要是自己记录的相关序列建模.用户行为embedding向量的调研现状. 目录 一.序言 二.序列编码 (a)RNN (b)CNN (c)Attention 三.相关文献 1.attentio ...

  7. 有粉丝想转行推荐算法,我觉得......

    最近公众号后台收到一个读者的留言,他在某手机厂商做CV开发工作,想转行推荐系统,让我拿拿主意. 从前途角度考虑,我是非常建议的. 1 大厂必备核心--推荐系统 从商业角度来讲,互联网主要起到平台作用, ...

  8. 想要成为推荐算法工程师,都要准备哪些东西

    作者在<推荐算法工程师的成长之道>这篇文章中讲到推荐算法工程师是一个好的职业选择,并且讲解了职业发展路径及定位.怎么成长等话题(还没看的可以看起来). 如果大家认可我讲的并且也愿意将来从事 ...

  9. 推荐算法工程师学习路线及工作指南

    干货!推荐算法工程师学习路线及工作指南 以下文章来源于大数据与人工智能 ,作者gongyouliu 本文从我自己的学习成长经历.如何判断自己是否适合从事推荐算法.推荐算法工程师需要的知识储备.怎么找一 ...

最新文章

  1. 蛇形摆matlab,小学生注意力辅导
  2. SAP PM 初级系列2 – 定义计划员组
  3. 命令行分析java线程CPU占用
  4. 一个例子带你搞懂python作用域中的global、nonlocal和local
  5. python工资一般多少大专学历-这个面试官真霸气 不收大专程序员
  6. html5——3D转换
  7. unity3d点击屏幕选中物体
  8. MATLAB的语言基础知识
  9. oracle三大索引类型
  10. 模糊综合评价在matlab上的实现
  11. B站左程云算法视频高级班04
  12. 计算机电路计算公式,电路中相关计算公式.doc
  13. 计算机联锁中JDF是什么组合,2019年新准线海勒斯壕南站站改工程招标公告
  14. 7和7的倍数游戏答案_团建游戏大全-桌游篇
  15. 使用 html 写一个表达爱意的网页
  16. 用R自动生成pdf文件
  17. 游戏辅助制作核心--植物大战僵尸逆向之阳光生产加速实现满天星(四)2
  18. 浪潮之巅 “八叛徒”与硅谷
  19. 在MySQL表中查询出所有包含emoji符号的数据
  20. matplotlib绘制极坐标图 最全面总结

热门文章

  1. 自己写的一个简单app(android)前端代码及实例
  2. android设备登录是什么手机_手机能当U盾用,谷歌要让安卓比iOS更安全?
  3. javacv开发详解补充篇:解决转流后视频画面快进慢放,时间跳动过大,监控视频时间戳重新计算pts和dts
  4. Sql面试题-求店铺访问top3信息
  5. java 抖音 热搜
  6. Object-c的布尔值
  7. 实探“四天半工作制”的乐视:三点只剩几个人
  8. 观察者模式之:数据分析的实例
  9. 蓝桥杯训练-礼物盒问题-JAVA
  10. 【DP|01背包】AHU-603 LOL系列之蒙多的春天