内容简介:推荐阅读
本篇论文为 Youtube 2019 年的工作《Recommending What Video to Watch Next: A Multitask Ranking System》,发表于 RecSys。
推荐系统中会出现很多挑战,比如多目标问题、选择偏差问题问题等,为了解决这样的挑战,作者提出了 MMoE-PosBias 架构,利用 MMoE 框架解决多目标问题,并利用 Wide&Deep 框架来缓解选择偏差的问题。
MMoE 上一篇论文有过介绍,选择偏差问题我们在之前介绍的阿里妈妈团队的多任务学习算法 ESMM 中也提到过,不过这里主要是位置上的选择偏差。
1.Introduction
推荐系统通常分为召回和 排序 两个阶段,本篇论文聚焦于推荐系统中的排序过程,召回过程采用 Deep Candidate Generation 模型进行召回。
设计并部署一个真实大规模的视频推荐系统会面临很多挑战,比如说:
-
多目标问题:视频推荐的目标大体可以分为 engagement objectives(例如点击、播放等)和 satistaction objective(例如点赞、收藏、评分等),这两类目标可能有冲突,比如说,用户喜欢观看的视频和喜欢收藏的视频可能是两种类型的视频;
-
隐式偏差:用户会点击排名靠前的视频,可能并不是因为他喜欢,而是仅仅是因为其位置靠前。利用这样的样本进行训练会出现 feedback loof 的效果,进一步强化样本偏差。
为了解决这个问题,作者提出了一个高效的多任务神经网络学习架构,如下图所示:
第一眼看起来会比较乱,首先我们可以将其分为上下两部分,上面是系统,下面是 Wide&Deep 模型。
-
Deep 部分用 MMoE 来进行多任务学习,利用多个专家网络和多个 Gate 进行多目标预测,并对多个目标进行线形加权得到最终的目标函数;
-
Wide 部分用浅层模型代替(shallow tower),接收与选择偏差相关的输入,并输出一个标量最终预测的偏差项,并与上层的 user engagement 进行相加,从而减少位置偏差带来的影响。
2.MMoE-PosBias
接下来,我们看一下具体内容。
2.1 Ranking Objective
在多任务排序模型中,作者将目标函数分为两类:engagement objectives 和 satisfaction objectives。前者用于捕获用户的点击观看行为、后者用户通过点赞收藏评分等来捕捉用户的满意程度。
诸多不同不同的目标中,例如点击、点赞作为分类任务,观看时常、视频评分作为回归任务。
最终作者会利用线形加权的方法来整合多个目标函数,并通过微调权重来获得最好的性能。
2.2 Task Relations and Conficts
下图展示了两种多任务模型框架:
左边为一般的基于 hard-parameter sharing 的 MTL 架构,右边是基于 soft-parameter sharing 架构的 MMoE 框架。前者在低相关性的多任务学习中表现欠佳,而后者可以很好的克服这一点。
所以作者使用 MMoE 作为多任务模型的框架,有助于从输入中学习到模块化的信息,从而更好的对多模态特征空间进行建模。
但是直接用 MoE 层的话会显著增大训练和预测的计算量(输入层维度比隐藏层维度大)。
所以利用 MLP 来实现专家网络:
其中,n 为主任务数,k 某个任务,x 为输入的 Embedding ,为第 i 个专家网络,为 gate 层。
2.3 Position Biases
我们再来看一下位置偏差。
有两种方法来处理学习到的位置特征:
-
直接作为输入;
-
或者利用 Adversarial learning 将位置作为一个辅助的学习目标来预测,并在反向传播阶段把提督取负,这样主模型便不会依赖位置特征了。
作者的实验表明,直接作为特征进行输入在深层网络中的效果不太好,所以采用了第二种方式来处理位置特征。
位置偏差是选择偏差中非常常见的一种,作者通过增加一个浅层网络来减少由于推荐产生的用户选择偏差,并打破有选择偏差导致导致的反馈循环,其结构如下图所示:
作者利用 shallow tower 去建模偏差,其输入的是与偏差相关的特征(如物品展示位置、用户设备信息等),输出的是一个偏置项标量,加到(左边的) main model 中的,并经过 Sigmoid 函数得到最终的输出。
此外,在学习的时候,为了减少对位置的过分依赖,作者还会对模型所有偏差特征进行 10% 的 dropout。
3.Experiment
来看一下实验部分。
下图是 Youtube 的推荐页面:
离线实验中,分类任务使用 AUC,回归任务使用均方误差。线上任务中,使用 A/B 测试。同时,作者利用线上线下实验来微调模型的超参。
当然,除了这些指标外,作者还会考虑计算成本。
下图展示了不同基准模型和 MMoE 模型的性能对比:
下图展示了每个 expert 对任务的累积概率,可以看到不同 expert 的侧重点是不同的:
下图展示了不同位置的偏差所带来的影响,上半部分表示不同位置的点击率,可以看到位置的对点击率的影响非常大的,而随着位置越靠后,影响越小;下半部分展示了学习到的位置偏差:
下图为线上实验:
4.Conclusion
总结:作者首先介绍了推荐系统面临的两个挑战——多任务学习和选择偏差,为了解决这个问题,作者设计了一个大规模的多目标排序框架——MMoE-Posbias 框架,其采用了 MMoE 架构,并利用 shallow tower 来解决位置偏差问题。最终实验表明,该框架能够在线上真实数据集中取得实质上的进步。
Youtube 的工业界论文比较简洁明了,也没有太多的花样,但在真实部署时必然会遇到很多困难,想要实际应用还是需要仔细挖掘。
5.Reference
-
《Recommending What Video to Watch Next: A Multitask Ranking System》
推荐阅读
征稿启示| 200元稿费+5000DBC(价值20个小时GPU算力)
文本自动摘要任务的“不完全”心得总结番外篇——submodular函数优化
斯坦福大学NLP组 Python 深度学习自然语言处理工具Stanza试用
关于AINLP
AINLP 是一个有趣有AI的自然语言处理社区,专注于 AI、NLP、机器学习、深度学习、推荐算法等相关技术的分享,主题包括文本摘要、智能问答、聊天机器人、机器翻译、自动生成、知识图谱、预训练模型、推荐系统、计算广告、招聘信息、求职经验分享等,欢迎关注!加技术交流群请添加AINLPer(id:ainlper),备注工作/研究方向+加群目的。
阅读至此了,分享、点赞、在看三选一吧:pray:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 动态任务执行框架想法篇
- 任务调度框架FluentScheduler简介
- 分布式定时任务调度框架实践
- 如何选型一个合适的框架:分布式任务调度框架选型
- 使用 Go 语言实现一个异步任务框架
- 大数据计算框架Spark之任务调度
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
菜鸟侦探挑战数据分析
[日] 石田基广 / 支鹏浩 / 人民邮电出版社 / 2017-1 / 42
本书以小说的形式展开,讲述了主人公俵太从大学文科专业毕业后进入征信所,从零开始学习数据分析的故事。书中以主人公就职的征信所所在的商业街为舞台,选取贴近生活的案例,将平均值、t检验、卡方检验、相关、回归分析、文本挖掘以及时间序列分析等数据分析的基础知识融入到了生动有趣的侦探故事中,讲解由浅入深、寓教于乐,没有深奥的理论和晦涩的术语,同时提供了大量实际数据,使用免费自由软件RStudio引领读者进一步......一起来看看 《菜鸟侦探挑战数据分析》 这本书的介绍吧!