作者 | Tim Elfrink
译者 | Tianyu
出品 | AI科技大本营(ID:rgznai100)
【导读】本文来自于谷歌研究人员最近发表的一篇论文,介绍了视频平台 Youtube 的视频推荐方法,并在 RecSys 2019 大会上做了分享。本文总结归纳了一些论文中的重点内容。
提出问题
当用户在 Youtube 上观看视频时,网站会按顺序为用户展示一系列推荐视频的列表。该论文主要聚焦以下两个目标:
1)需要对不同的目标进行优化。没有特定的目标函数,但目标可以被归类为参与度(是否点击、观看时间)目标和满意度(是否点赞、点踩)目标。
2)减小由系统引入的用户的选择偏差,基于推荐视频的位置分布,用户更容易点击系统推荐的第一个视频,即使排在后面的视频有更高的参与度和满意度。
如何让系统高效地学习减小选择偏差是急需解决的问题。
解决方法
图 1:模型的整个结构
论文中介绍的模型聚焦于两个主要目标,同时引用了宽度&深度模型结构,将宽度模型的记忆能力和深度神经网络的泛化能力结合起来。宽度&深度模型会为每个定义的目标(包括参与度和满意度)生成一个预测结果。目标可以归结为二分类问题(如:喜欢或不喜欢某个视频)和回归问题(如:对某个视频的评分)。在这个模型的上面又叠加了一个单独的排序模型,这只是输出向量的权重组合,它们是不同的预测目标。
为达到不同目标的最佳效果,这些权重是人工进行调优的。为了提升效果,研究人员还提出了基于结对和列表的先进方法,但由于计算时间过长,这些方法没有被应用到实践中。
图 2:用 MMoE 替换 shared-bottom 层
宽度&深度模型的深层部分使用了多任务学习模型 MMoE。该模型以当前视频的特征(内容、标题、主题、上传时间等)和观看者的信息(观看时间、个人资料等)作为输入。MMoE 模型的思想主要是基于不同目标之间可以高效地共享权重。底部共享层被分成多个专家层,用于预测不同的目标。每个目标都有一个门函数,这是一个 softmax 函数,以原始的共享层和不同的专家层作为输入。这个 softmax 函数决定对于不同的目标,哪些专家层更加重要。如图 3 所示,不同的专家层对于不同目标的重要性存在差别。与共享层结构的模型相比,如果不同目标之间的相关性越低,那么 MMoE 的训练过程所受影响也会更小。
图 3:多个 YouTube 任务的专家层使用情况
模型的宽度部分主要关注由系统引入的推荐视频位置所导致的选择偏差问题。这一部分被称作“浅塔”(shallow tower),它只是一个简单的线性模型,用到的特征包括被点击视频的位置和观看视频所使用的设备。浅塔的输出与 MMoE 模型的输出相结合,构成了宽度&深度模型结构的主要组成部分。基于这种方法,模型就会更加关注到视频的位置。在训练过程中,将 dropout 率设置为 10%,防止位置特征在模型中的重要性过高。如果你不使用宽度&深度结构,只是把位置当做单独的特征引入,模型大概率注意不到这个特征。
结果
论文中的结果表明,用 MMoE 替代底部共享层后,模型在参与度(推荐视频的观看时间)和满意度(调查反馈)上的表现都有所提升。增加 MMoE 的专家层数目和乘法运算的数目可以进一步提升模型的性能。但由于计算上的限制,在实际部署过程中无法增加该数目。
进一步的结果表明,通过引入“浅塔”减小选择偏差,可以提高参与度。与仅作为 MMoE 模型的输入特征相比较,这是一个显著的提升。
一些有趣的评论
- 虽然 Google 拥有强大的计算基础设施,他们仍需要在训练和服务成本方面保持谨慎;
- 基于宽度&深度模型,你可以设计一个网络,预定义一些对你很重要的特征;
- 当你需要一个多目标模型时,MMoE 模型也许是你的不二选择;
- 即使我们拥有了强大而复杂的模型结构,但仍需要对最后一层的权重进行手动调优,从而根据不同目标的预测结果确定最终的排序。
原文链接:
https://medium.com/vantageai/how-youtube-is-recommending-your-next-video-7e5f1a6bd6d9
(*本文为 AI科技大本营编译文章,转载请微信联系 1092722531)