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
youtobe视频推荐 Recommending What Video to Watch Next: A Multitask Ranking System相关推荐
- 一矢多穿:多目标排序在爱奇艺短视频推荐中的应用
短视频具有内容丰富.信息集中.用户粘性大的特点,如何提高短视频分发的效率和推荐精准度,有效提升消费时长.留存等关键业务指标,是推荐系统的核心能力和建模目标. 本文主要分享在短视频推荐场景下,爱奇艺基础 ...
- Youtube视频推荐算法:从10页论文到4页论文的变迁
Youtube视频推荐算法:从10页论文到4页论文的变迁 所以说豆瓣广播是个好东西,长久以来已经怠于主动关注paper的我,每次都能通过我那些专业敬业的友邻们发现有意思的文章或话题,知识因分享而伟大! ...
- YouTube 的视频推荐算法
转载:https://www.zhihu.com/question/20829671/answer/205421638 第一阶段,基于User-Video图游历算法,2008年[1]. 在这个阶段,Y ...
- “个性化视频推荐”算法的Storm实现方案
随着互联网的蓬勃发展,近年来利用互联网技术实现各类面向个人用户的服务系统层出不穷,其中在线视频网站系统就是其中一类典型的服务场景,利用用户在站点上实际的行为活动数据,准确地为每个用户推荐个性化.时效性 ...
- 数据结构与算法视频推荐
数据结构与算法视频推荐,小甲鱼数据结构与算法 https://www.bilibili.com/video/av2975983/index_1.html#page=1
- YouTube的视频推荐算法
这篇是来自google 2007关于YouTube上视频推荐的文章.它的一个重大意义在于,让我们了解实际工程中,尤其是像YouTube这样的大型视频分享网站,推荐系统的架构是怎么样的,以及所遇到的问题 ...
- 一篇关于youtube推荐算法的分享-基于用户行为的视频推荐
本文的前提: (1)基于用户的的行为进行推荐 (2)本文只关注注册用户,只对注册用户进行推荐 (3)数据量级:Youtube每天 百万级别的视频 ,百万级别的用户,总的播放数量超过10亿 挑战: (1 ...
- Google最新论文:Youtube视频推荐如何做多目标排序
作者 | 深度传送门 来源 | 深度传送门(ID:deep_deliver) 导读:本文是"深度推荐系统"专栏的第十五篇文章,这个系列将介绍在深度学习的强力驱动下,给推荐系统工业界 ...
- 百度视频携手神策数据,引领基于 AI 的短视频推荐技术新潮流
近日,中国最大的视频搜索和 PGC 内容分发平台百度视频与大数据分析服务提供商神策数据在已有的数据分析合作基础上,新增基于人工智能的个性化推荐技术合作,引领短视频推荐技术新潮流. 百度视频是中国最大的 ...
最新文章
- 开源图形库 FreeImage
- 如何使用万用表测量随机噪声
- Google怎么用linux
- snapshot相关
- ubuntu安装pytorch镜像修改及下载
- java se/ee_嗨,您好 。 。 ! 您如何评价Java / Java EE技能?
- 【Demo 0011】多媒体播放器
- md5 java .net_.net, java MD5 加密 互换
- __attribute__((format(printf,m,n)))
- java实现线性回归(简单明了,适合理解)
- 【mysql乱码】解决php中向mysql插入中文数据乱码的问题
- React—Native开发之 Could not connect to development server(Android)解决方法
- angularjs自动加载和手动加载
- Idea删除未引用包或暴红的包
- 中国传统色彩十六进制颜色码图片大全
- Paypal付款按钮变量列表
- 如何在Word中快速制作组织结构图?没想到可以如此简单
- python ffmpeg mp3文件转为wav文件
- 多台服务器集群部署方案
- leetcode 周赛214 学习笔记(5561、1647)