内容简介:推荐阅读
本篇论文为 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之任务调度
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
RGB转16进制工具
RGB HEX 互转工具
URL 编码/解码
URL 编码/解码