youtobe视频推荐 Recommending What Video to Watch Next: A Multitask Ranking System

总结:

提出一个大规模的多目标排序在“what video to watch next”这个工业界的推荐场景下。主要是使用了软参数共享技术Multi-gate Mixture-of-Experts,同时通过W&D结构解决了选择性偏差问题。


abstract

本文主要介绍大规模多目标推荐系统,在视频分享平台上,研究哪个视频会被推荐放在首位。应用中的挑战:一个是多个目标之间竞争,可以理解为不能既要又要还要,多个目标之间,可能只有个别目标能最优;另一个是用户反馈的隐式选择偏差,这个选择偏差因人而异。为了解决这些挑战,探索了一些参数共享方法——MMOE去优化多目标函数。另外,使用Wide&deep框架去缓和选择偏差。

introduction

本文描述了大规模视频推荐排序系统,给定一个用户正在看的视频,推荐用户下一个可能看并且喜欢的视频。一般排序分两个阶段:候选集生成和排序,本文主要聚焦在排序上。

推荐系统的挑战:

1.想要优化的目标存在争议。比如,我们可能想推荐用户评分高、分享过的视频。

2.系统存在隐式偏差。比如,用户看过或者点过的视频,可能只是因为它排在首位,并不是用户真实的喜欢该视频。因此这样的标注数据,进行模型训练,学出来的模型也是有偏模型,长此以往的存在偏差。去有效学习去偏差,这是一个值得解决的问题。

拓展W&D模型框架,引入MMOE(Multi-gate Mixture-of-Experts MMoE)多多目标学习,引入shallow tower为选择偏差建模并去除选择偏差。业务场景:给定一个正在看的视频,推荐接下来可能看什么视频。

目标划分为两类:

1.参与度目标:比如用户点击、打分

2.满意度目标:用户是否喜欢,在视频上的停留时长

通过学习估计用户行为多种类型,用MMOE去学习参数,共享给可能有冲突的目标(该目标下的样本比较少?通过样本多的目标学习基础参数,然后使用少样本进行fine-tuning?)mixture of experts结构使得输入层向专家层面模块化,每一个expert聚焦于输入的不同层面。这种方法提升了从复杂特征空间学习出的表示能力。然后使用multiple gate网络,每一个目标可以选择要不要分析expert

给其他目标。

从有偏差的训练数据中,给选择偏差建模去降低偏差(位置偏差),本文提出了shallow tower 

去建模。shallow tower 的输入是选择偏差,比如由当前系统排序得到的序号,输出是一个标量作为偏差,作用于模型训练的预测中。模型将训练数据的label分为两部分:主模型学无偏用户行为,shallow tower学习倾向性score。本文的模型采用wide and deep框架结构,这里的shallow tower就是wide部分。通过跟主模型一起shallow tower模型,学习选择偏差的好处是,不用对随机试验进行重排去获得偏好得分。

试验方式:1.多任务学习,2.移除选择偏差部分。

贡献:

1.介绍视频推荐的端到端的排序系统。

2.将排序问题建模为多目标学习认为,拓展了MMOE结构去提升所有目标的性能。

3.使用wide and deep框架结构去除样本位置偏差。

4.对该方法进行了线上评估,有明显提升。

大多数推荐系统都包含两步:产生候选集和排序。

产生候选集的方法,比如item的共现矩阵、协同过滤、随机游走的graph embedding表示item,然后过滤item产生候选集;

排序:point-wise和pair-wise构建目标函数;广泛应用的还是point-wise的DNN模型。

2.2推荐系统中的多目标学习

从训练数据中学出用户 行为并预测用户行为是很具有挑战性的一件事。用户的点击、评分行为并不能反映用户的真实想法。比如,用户看完了一个视频,但并不喜欢这个 视频,用户 只能给点击过的item评分,来表达自己的喜欢程度。

协同过滤或者基于内容的方法学习user和item之间的相似度。优点:产生 候选集比较高效;缺点:相比于DNN,他们在最终的推荐上并不 高效。——论文这个观点,优点 牵强。

另外,一些现存的多目标排序系统会使用特殊类型的特征,比如文本、视频。推荐系统中支持多模态,也是 一个巨大挑战。比如视频标题的文本、视觉上的特征。另外,在多目标排序系统中,多模态的输入也不能scale up,受到多目标场景下高效共享参数的限制。

2.3训练数据的理解以及训练数据建模时的偏差

从训练数据中捕捉用户行为和当前系统推荐的item。用户和当前推荐的item之间的交互,存在选择偏差。比如,用户点击过的item,是系统选择出来,推荐给用户的,可能该item在全集中并非最优。因此,通过这种方式训练得到的模型,是有偏的,这样的行为一直在循环。怎么学习一个去偏差的模型,是一个众所周知的问题。

Joachims是第一个分析排序模型中的位置偏差和表示偏差的学者。通过比较显示反馈中的点击数据,他们发现点击数据中的位置偏置会 影响评估query和doc之间的相关性。基于这个发现,学者们提出了一些方法去除选择偏差,尤其是位置偏差。

一个常用方法是引入位置作为模型训练的一个特征,消除偏差。在概率模型中,用位置信息来学习P(relevance|pos)。后来,为了消除偏差,训练模型的时候使用位置作为输入特征,缺失值设为1或者一个固定的值。 

另一个解决该问题的思路是归一化或者正则化。还有学习inverse propensity score (IPS) 。用户行为和item的受欢迎程度每天都有 一定程度的改变。因此,在我们训练主模型时,除了IPS方法,我们需要一个有效的方式适应训练数据分布的变化,给选择偏差进行建模。

3.问题描述

一.多模式特征空间。在场景化的个性化推荐系统中,需要学习出多模态下候选集视频在特征中间中的用户喜好,比如视频内容、缩略图,音频,标题和描述,用户人口统计信息。与其他机器学习应用相比,从多模态特征空间中进行学习表示,是非常具有挑战的一件事情。它解决了两个难题:1)弥合低级内容特征的语义鸿沟,以实现内容过滤; 2)从item的稀疏分布中学习,进行协同过滤。

二.可扩展性。构建的推荐系统服务于百万级别的用户和item,可拓展性先得尤为重要。模型训练的时候和线上打分的时候,必须是高效的。因为一些query和上下文 特征只在线上能够读取,所以排序系统只对几百个候选集进行打分。不仅要学习百万级别的item和user的表示,还要能在线上高效运行。

重申下本文的重点:给定一个正在看的video,推荐出排过序的video列表。对于每一个video,提取特征作为video的meta数据,video的内容信号作为他的表示,二者组成多模态特征空间。对于上下文特征,我们使用用户的人数、设备、时间、位置等信息作为特征。

3.1 Candidate Generation 

使用多路候选解召回策略。每一路召回都衡量了query和候选集之间的相似性。比如:匹配正在看video的主题topic;历史query和video的观看行为。

3.2 Ranking 

 

4.模型结构

用户行为多目标建模MMOE,shallow tower来学习和去除选择偏差,尤其是训练 数据中的位置信息。

被召回的item,它的特征非0的也越多,也就是会提供更多的信息用于模型学习。这也是加入 统计信息的一个弊端。没被召回的item,没机会跟用户进行交互,统计特征属性为0.

所以召回的时候,最好避免统计属性的特征。根据基本属性进行召回。

4.1 System Overview 

用户反馈:1.参与行为:点击和观看;2.满意度:喜欢和跳过;

使用point-wise方法去预测。pair-wise和list-wise方法对两个或者多个候选解进行整体排序,会提升推荐效果 的多样性,但是我们时候用point-wise方法,主要是基于线上排序的考虑,更快速简单。另外两种方法限制了其自身的拓展性,需要对pairs或者list进行排序,找到最优排序。

4.2 Ranking Objectives 

使用用户行为作为训练的label。一个目标用来预测用户的一类行为。一共两个目标:参与度和满意度。

参与度目标捕捉用户的点击和观看行为。给用户这两个行为建模:点击行为使用二分类任务,看视频所用时间用回归任务。

满意度目标,点击喜欢事件,作为二分类任务,打分行为作为回归任务。

损失函数中,二分类使用交叉熵,回归任务使用平方损失函数。

为这些预测任务训练多目标模型,对于每一个候选解,得到多个预测结果,对输出进行加权融合,得到最终预测得分。权重是手动调节的。

4.3 Modeling Task Relations and Conficts with Multi-gate Mixture-of-Experts 

多目标排序模型会共享网络的底层结构。但是,当目标之间的相关性比较弱时,这种参数分享方式会不利于多目标的学习。为了缓和多目标之间的冲突,使用MMoE结构。

MMoE是一个soft-parameter 共享模型结构,用来给任务之间的conficts and relations 建模。使用Mixture-of-Experts (MoE) 结构对所有任务共享参数,同时也给每一个task一个gating network去训练属于自己任务的参数。与共享底层模型相比,MMOE层被设计成在不需要更多模型参数的情况下捕捉任务差异。其核心思想是用MoE层代替共享ReLu层,并为每个任务添加一个单独的门控网络。

对于我们的排序系统,在共享的隐藏层上添加专家层,如图2b所示。这是因为MoE可以帮助从输入中学习模块化的信息。当直接在输入层或较低的隐藏层上使用时,它可以更好地对多模态特征空间进行建模。然而,直接将MoE层应用于输入层将显著增加模型的训练和服务成本。这是因为通常输入层的维数远高于隐藏层的维数。

我们对专家网络的实现与具有ReLU激活的多层感知器相同。给定任务k、预测yk和最后一个隐藏层hk,任务k的n个专家输出的MMoE层:fk(x)可以用以下等式表示。

参考:

1.论文:https://dl.acm.org/doi/10.1145/3298689.3346997

2.代码:https://github.com/Shicoder/Deep_Rec/blob/master/Deep_Rank/model_brain/youtube_net.py

3.比较好的讲解:https://zhuanlan.zhihu.com/p/82584437

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值