一石二鸟:推荐算法多目标建模技巧
作者: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-Trans和SNR-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,加入微信群请扫码
一石二鸟:推荐算法多目标建模技巧相关推荐
- 推荐算法-多目标学习总结
推荐算法-多目标学习总结 mutil-task learning,本质上是用一个模型完成多个任务的建模.在推荐系统中,多任务学习一般即指多目标学习(multi-label learning),不同目标 ...
- 推荐业务多目标建模算法介绍:MMOE、OMOE、Shared-Bottom
在推荐业务中经常有"既要.也要.还要"的场景,比如做视频推荐业务的时候既要提升用户对于视频的点击率,也希望同时提升用户观看视频的时长.面对这样的诉求,通常需要在推荐系统中使用多目标 ...
- 【ccf2021训练赛】图书推荐算法赛道(SASRec序列推荐模型 | 序列推荐模型分类)
内容总结 会话推荐是指,对于一个用户的点击序列(即session),预测下一个要点击的物品.即输入所有的物品V={v1,v2,-,vm} ,在给定某个session为s=[v1,v2,-,vn]的用户 ...
- 一石二鸟:推荐系统多目标任务建模方法
「炼丹笔记」传送门: 这些我全要!推荐系统一石二鸟之道 作者:九羽,公众号:炼丹笔记 在做推荐系统时,在系统刚刚搭建时,针对业务目标我们可能只需要去优化CTR或者CVR即可,但是不同的推荐场景下的优化 ...
- 微信视频号推荐算法上分技巧
躺平了一段时间之后,排行榜已经发生了翻天覆地的变化,emmm....不由的佩服年轻人的精力,作为老年选手,只能使用大局观了(此处内涵一下我大酒神,手动狗头).好久没写文章了,本文拿出 炼丹笔记 里的一 ...
- 求序列中第k小的数_推荐算法序列建模现状
本篇文章主要是自己记录的相关序列建模.用户行为embedding向量的调研现状. 目录 一.序言 二.序列编码 (a)RNN (b)CNN (c)Attention 三.相关文献 1.attentio ...
- 有粉丝想转行推荐算法,我觉得......
最近公众号后台收到一个读者的留言,他在某手机厂商做CV开发工作,想转行推荐系统,让我拿拿主意. 从前途角度考虑,我是非常建议的. 1 大厂必备核心--推荐系统 从商业角度来讲,互联网主要起到平台作用, ...
- 想要成为推荐算法工程师,都要准备哪些东西
作者在<推荐算法工程师的成长之道>这篇文章中讲到推荐算法工程师是一个好的职业选择,并且讲解了职业发展路径及定位.怎么成长等话题(还没看的可以看起来). 如果大家认可我讲的并且也愿意将来从事 ...
- 推荐算法工程师学习路线及工作指南
干货!推荐算法工程师学习路线及工作指南 以下文章来源于大数据与人工智能 ,作者gongyouliu 本文从我自己的学习成长经历.如何判断自己是否适合从事推荐算法.推荐算法工程师需要的知识储备.怎么找一 ...
最新文章
- 蛇形摆matlab,小学生注意力辅导
- SAP PM 初级系列2 – 定义计划员组
- 命令行分析java线程CPU占用
- 一个例子带你搞懂python作用域中的global、nonlocal和local
- python工资一般多少大专学历-这个面试官真霸气 不收大专程序员
- html5——3D转换
- unity3d点击屏幕选中物体
- MATLAB的语言基础知识
- oracle三大索引类型
- 模糊综合评价在matlab上的实现
- B站左程云算法视频高级班04
- 计算机电路计算公式,电路中相关计算公式.doc
- 计算机联锁中JDF是什么组合,2019年新准线海勒斯壕南站站改工程招标公告
- 7和7的倍数游戏答案_团建游戏大全-桌游篇
- 使用 html 写一个表达爱意的网页
- 用R自动生成pdf文件
- 游戏辅助制作核心--植物大战僵尸逆向之阳光生产加速实现满天星(四)2
- 浪潮之巅 “八叛徒”与硅谷
- 在MySQL表中查询出所有包含emoji符号的数据
- matplotlib绘制极坐标图 最全面总结