1. 摘要
这篇论文提出一个视频推荐领域的大规模的多目标排序系统,该系统主要面临几个挑战:1)多个竞争关系的目标;2)用户反馈的选择偏见(selective bias)。 本文探究了大量软-参数共享技术,例如MMoE,来有效的优化多目标排序。除此之外,本文还采用wide&deep框架来缓和选择偏见问题。并且在youtube线上环境验证了方案的效果。
2. 简介
本文描述了一个用户视频推荐的大规模排序服务。具体场景是:给定一个用户播放的视频,生成下一个他可能会播放和喜欢的视频。 典型的推荐系统包含两个阶段:召回(recall),排序(rank)。本文的重点聚焦在排序阶段:对召回阶段输出的数百个内容,应用复杂的模型进行排序,选出其中最有可能被用户喜欢的。
设计与实现一个大规模的线上推荐系统会面临一下挑战:
- 经常面临不同,甚至冲突的多个目标
- 经常碰到隐式偏见,例如用户倾向于点击排序靠前的视频,而不是最好的。如果训练数据处理的时候不考虑到这些因素,会陷入feedback loop effect。
所以本文的贡献:
- 提出一个基于deep&wide框架的多任务学习框架
- deep部分是一个MMoE多任务学习框架
- wide部分引入一个浅层网络,来降低selection bias(这篇论文用的是position bias)
作者首先把目标分为两类:
- 参与性 点击、播放等隐式行为
- 满足性 点赞、打分等显示行为
这些目标可能正相关,也可能负相关,正好适合应用MMoE框架来解决。为了对selection bias进行建模,引入了一个浅层的模型。该模型输入是一个能刻画selection bias的因子,例如排序的位置,输出一个标量作为主模型输出的偏移量。
简而言之,该模型把用户对视频的喜好拆分成两部分:无偏效用(MMoE学习),bias(浅层网络学习)
3. 相关工作
推荐问题可以理解为:给定一个查询、上下文、候选集,返回一个高可用性的小列表。在这一节,我们会分三部分来讨论:1)工业推荐系统的样例分析;2)多目标排序系统;3)理解训练数据的偏倚问题。
3.1 工业级推荐系统
想要设计、开发一个强大机器学习模型加持的成功的排序系统,我们需要大量的训练数据,在大多数现有的推荐系统中,训练数据都依赖用户的行为日志。
推荐系统想获得用户的显式反馈,例如电影评分等,但是由于用户成本很高,所以显示反馈往往很稀疏。因此,目前推荐系统的训练大多数依赖用户的隐式反馈,例如点击、播放等等。
推荐系统一般分为两个阶段:
- 召回
从海量视频中筛选出部分用户感兴趣的视频,为了提高多样性召回一般使用多路。通常包括:利用共现关系(关联规则),协同过滤,随机游走,基于内容,混合方法。 - 排序
一般采用LearningToRank方法,包括point-wise, pair-wise, list-wise。线上排序服务重点需要考虑效率问题,所以本文选用基于深度神经网络的point-wise方法,因为可扩展性强。
这些推荐系统面临的主要挑战之一就是可扩展性。所以,通常需要从机器学习模型效率和推荐系统架构两个方面着手。为了在模型的效率和效果中取得一个平衡,现在比较通行的做法是使用基于深度学习的pointwise排序模型。
本文首先提出了推荐系统的的问题:用户隐式反馈和真实需求之间的鸿沟;然后,提出一个基于深度学习的多任务学习模型,分别多两种类型用户反馈进行建模。
3.2 推荐系统中的多目标学习
在推荐系统中,用户的行为多种多样,例如:点击、点赞、下单等。 单个用户行为并不能准确反映用户对Item的好恶,例如一个用户播放某个视频,但是最后给了一个低分。并且这些行为之间不是相互独立的,可能会结合在一起决定用户对视频的偏好。所以,我们要结合这些行为分数在一起来评价用户的对某个视频的偏好。
目前不少推荐系统都有考虑到多目标。例如大多数推荐系统在召回阶段都会考虑到多目标,因此应用多种算法来做召回。 还有一些针对特定特征做了多目标排序,例如针对文本特征做了排序,针对图像特征做了一个排序。这些往系统的可扩展性比较差,一来没有利用不同特征之间的关系,二来一旦特征空间比较复杂,整个排序的参数规模会很大。
3.3 位置偏倚
用户隐式反馈受位置偏倚影响很大,这个在搜索和推荐领域早就有人证明了这点。因此,也有了一些工作希望移除位置偏倚的影响。比较常用的做法是把位置作为一个参数带入模型训练和预测过程。例如把位置作为条件概率的前键值,对
p
(
c
l
i
c
k
∣
p
o
s
i
t
i
o
n
,
i
t
e
m
)
p(click|position, item)
p(click∣position,item)建模,在预测阶段,计算
p
(
c
l
i
c
k
∣
p
o
s
i
t
i
o
n
=
1
,
i
t
e
m
)
p(click|position=1, item)
p(click∣position=1,item)来移除位置的影响。也有一些工作,学习一个全局的
b
i
a
s
bias
bias因子来对结果进行正规化,缺点是这个
b
i
a
s
bias
bias做不到个性化。
而且,在真实的推荐系统中,用户的兴趣偏好和视频的流行度每天都在变化,因此利用全局的
b
i
a
s
bias
bias很难取得好效果。
4. 问题描述
综上所述,推荐领域的排序面临以下几个问题:
- 隐式反馈不能代表用户真实兴趣
- 需要考虑多目标
- 特征很复杂,覆盖很多垂直领域的特征
- 位置偏倚
- 大规模应用场景要求模型算法的可扩展性
5. 模型框架
在这一节,本文将会会详细描述提出的排序系统的细节。首先,我们会提供问题的总览,包括:形式化、目标、特征。然后,我们讨论如何设置多目标,以及如何引入经典的多目标排序模型:MMoE来学习多个排序目标。最后,我们会陈述如何结合MMoE和浅层网络来学习和降低 s e l e c t i v e selective selective b i a s bias bias,尤其是位置偏倚。
5.1 系统总览
正如前文所述,本系统的用户行为分为两类:1)参与性,如:点击、播放;2)满足性,如:点赞、评分。给定用户的query, 上下文,候选集,排序系统会预测这两类行为。
出于对线上部署便利性和效率的考虑,本文选用pointwise类方法。
5.2 排序目标
本文使用用户的行为种类作为多目标分类的依据。把用户的行为分为参与性和满足性两类。其中参与性拆分成两个目标:一个二分类(是否点击),一个回归(时长);满足性也可以拆分成两个目标:二分类(是否点赞)、回归(评分)。相应的损失函数分别为:交叉熵损失和平方损失。
一个输入样本,模型会输出多个目标的得分。一个权重计算公式结合多个得分计算出最终的分数。这个权重是参数调节出来的,并不是模型学习的。
5.3 用MMoE对目标关系建模
多目标排序模型通常的结构都是底层共享一个shared-bottom结构。然而,如果这些底层共享比较硬,对于相互关系不密切,甚至矛盾的多目标建模,最终的效果会收到损害。因此,youtube在2018年提出了MMoE结构,bottom层为多个expert模块组合而成,每个任务的组合系统不同,因此参数共享比较soft。
该模型结构并不完全等同于MMoE,因为在推荐领域特征规模很大,为了降低复杂度,在MoE层和输入之间插入一个shared bottom层来对特征进行降维。这种方法其实很常见,例如可以对底层的embedding matrix进行卷积操作,降低矩阵的大小。
shared bottom层上面,就是MoE层,以及边缘的gate。每个MoE层只是一层MLP+ReLU。给定输入
x
x
x, MoE层的输出为
f
(
x
)
i
,
i
∈
[
1
,
n
]
f(x)_i,i\in[1,n]
f(x)i,i∈[1,n]。每个任务
k
k
k的tower的输入为MoE的混合(Mixture), 记为
f
k
(
x
)
=
∑
g
k
(
x
)
i
f
(
x
)
i
f^k(x)=\sum{g^k(x)_if(x)_i}
fk(x)=∑gk(x)if(x)i,k是和任务相关的,每个任务有一个独立的
g
(
x
)
g(x)
g(x),即有一个独立的gating network。每个
g
k
(
x
)
=
s
o
f
t
m
a
x
(
W
g
k
∗
x
)
g^k(x)=softmax(W_{gk}*x)
gk(x)=softmax(Wgk∗x)。Expert的数量可以很多,但是每个task最终采纳的可能只有权重最大的
t
o
p
K
topK
topK个。
5.4 建模并移除position和selective bias
隐式反馈的位置偏倚,以及其他类型的选择性偏倚在推荐和广告系统中广泛存在,因为隐式反馈受是来自于本系统的上一次推荐,这就是feedback loop。
例如在推荐系统中,我们想基于用户目前正在观看的视频,预测他下一个观看的视频,用户往往倾向于点击观看列表最上面的视频,这和他的兴趣偏好之类因素无关。我们的目标就是在排序模型中移除这种位置偏倚,来提高模型的质量,中断feedback loop。
最终的模型结构大概如下图所示:
postion和设备特征一起,通过一个浅层网络输出的logit会和task specific tower的logit结合在一起,预测最终的输出。在训练阶段,只有部分样本会加入位置信息,这样是为了防止模型过拟合位置信息。在预测阶段,不考虑位置特征,或者位置特征取一样。
6. 实验
实现表明:
- 某些expert的作用比其他expert大;
- 一些task分配给Expert的权重较为均匀,另一些则更极端一些。极端情况的出现会导致gating网络不稳定,一般引入dropout来降低影响;
7. 讨论
- 一些在其他领域取得不错效果的模型,如CNN, multi-head attention在CTR预估领域并不能取得很好的效果。原因可能是包括:
1.1 特征多模态,推荐用到的特征模态比较复杂
1.2 扩展性和多目标冲突
1.3 噪音和数据稀疏性 - 出于效率考虑,网络结构不易太复杂太深。
- 训练数据还存在其他bias
- 复杂模型线下,和线上效果评估可能差别较大;
- 未来方向:
5.1 开发新模型,提高扩展性、表达能力
5.2 对未知bias建模
5.3 模型压缩,降低latency