总结:
提出一个大规模的多目标排序在“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