CTR预估 论文精读(十六)--Youtube 排序系统:Recommending What Video to Watch Next
作者:互联网
1. 摘要
In this paper, we introduce a large scale multi-objective ranking system for recommending what video to watch next on an industrial video sharing platform. The system faces many real-world challenges, including the presence of multiple competing ranking objectives, as well as implicit selection biases in user feedback. To tackle these challenges, we explored a variety of soft-parameter sharing techniques such as Multi-gate Mixture-of-Experts so as to efficiently optimize for multiple ranking objectives. Additionally, we mitigated the selection biases by adopting a Wide & \& & Deep framework. We demonstrated that our proposed techniques can lead to substantial improvements on recommendation quality on one of the world’s largest video sharing platforms.
2. 主要工作
该论文主要工作是使用 MMOE + bias network + wide & deep 架构实现了一套工业级视频推荐系统方案;
其中 MMOE 用于可能存在潜在冲突的多目标预估,bias network 用于去除 position bias 影响,Wide & Deep 为基础架构(Deep 侧用于特征交叉,Wide 侧替换为 bias network);
3. 相关工作
模型结构就不多介绍了,基本上就是各种pointwise,pairwise目标,还有各种NN模型结构,rnn,attention,NN+GBDT等等。
多目标的话最基础的就是shared-bottom这种共享底层的结构,进阶版就是MMOE这种了,以及因为不同目标的loss贡献不一样所以会搞一些比如gradnorm这种的优化算法。
Bias之前的分享的推荐系统文章基本都提过这块。常见的是把position之类的作为输入,预估时用position为1的输出值。 其他的方案有从随机数据中学一个bias iterm,也有不需要随机数据的,用counter-factual model学inverse propensity score (IPS)。像Twitter、Youtube这种用户兴趣变化比较快的,不太适合IPS,需要更高效的方案来适应这种数据分布变化。
多年以前,百度解决这个问题的方法,是把 rank 作为一个 feature 加在 nn 的最后一层,其实仔细想一想,和 ytb 的这个解决方法是类似的。ytb 在这个解决方法的基础上,把 rank feature 扩展成了一个 tower,然后耦合了 mmoe,拆分了受 rank 影响的 label 和 不受 rank 影响的 label. 做的更 “fashion” 了一些。主要思想,其实差不多。
4. YouTube 推荐难点
-
多特征空间:
- 存在语义鸿沟:如候选特征来源于 video content, audio, title and description 等特征空间,进行融合时候存在语义鸿沟;
- 在协同过滤中学习 item 的稀疏分布;
通过使用video meta-data 和 video content signature 作为 video 特征表示,对于上下文特征,使用了用户画像、设备、时间、地点等特征进行表示;(没有使用用户多模态特征,如audio等)
-
scalability:
现实推荐场景中必须做到实时推荐;因此,实际系统中使用了召回-排序两阶段,point wise rank 模型进行打分排序的方式解决(而非pair wise, list wise 方式,虽然论文作者提到 pair wise 和 list wise 有助于提升模排序多样性,但是为了性能考虑,依旧是采用 point wise 打分结构);
注:论文中 YouTube 的推荐场景是依据用户当前观看 video 和上下文,提供一个排好顺序的rank list;所以用户当前观看 video 就会显得很重要,用户当前观看的 video 即为 query,
其推荐场景与电商推荐系统不太一样(电商场景进入一家店铺就是直接进入一家店铺,后退返回列表页才是继续观察推荐内容);
5. YouTube 推荐系统模型结构
其模型结构总结来说就是:MMOE 多目标框架 + Wide & Deep 模型建 + bias network 建模
- 采用 MMOE 多目标架构,可满足同时优化相关性任务交叉的多任务学习目标,论文实验验证 MMOE 相较于传统的 bottom share 结构有较大提升;
- Bias network 采用 rank position, device 等特征及交叉输入,之所以放入 device,是因为不同设备上,Position bias 不同,论文实验证明该种方式建模 Position bias 相较于直接将 Position 作为 feature 输入效果提升很多(训练时输入 position, device;预测时,Position 置空,输入 device);
- 将 Bias network 的 logit 输出 与 DNN logit 进行相加,与 gating network 输出结果做乘,传入各子任务的 Tower 进行预测;
针对 多年以前,百度解决这个问题的方法,是把 rank 作为一个 feature 加在 nn 的最后一层,其实仔细想一想,和 ytb 的这个解决方法是类似的。ytb 在这个解决方法的基础上,把 rank feature 扩展成了一个 tower,然后耦合了 mmoe,拆分了受 rank 影响的 label 和 不受 rank 影响的 label. 做的更 “fashion” 了一些。主要思想,其实差不多。
5.1 YouTube 排序学习目标
YouTube 排序系统学习两种目标
-
参与度:点击、观看时长 ;
将点击建模成二分类任务,采用交叉熵损失函数;观看时长建模成回归任务,采用平方差损失函数;
-
满意度:喜欢、打分;同理可将喜欢建模成二分类,打分建模成回归任务。
所以排序目标是分类问题和回归问题的组合。此方法是 pointwise,像 pairwise 和 listwise 的方案虽然可以提升推荐的多样性。但是基于 serving 时的考虑还是选择用 pointwise,简单高效,尤其是候选集比较多的时候。
5.2 排序模型架构
目标基本上就是刚才说的两类,一类点击、时长, 一类点赞、打分。
分类问题就用cross entropy loss学习,回归问题可就是square loss。最后用融合公式来平衡用户交互和满意度指标,取得最佳效果。
图 2b 即为本次实验架构MMOE实现细节,2a 作为 baseline 进行对比;
其中有两点值得注意:
-
从图中不难看出,gating network 与 Expert network 对应 input layer 均为 share bottom layer,其中后续论文作者有做对比实验,将 gating network 直接针对任务从输入 feature 直接组织(比如目前线上系统使用人群包分群,其依据是不同人群对应的点击、购买行为不同),论文在 YouTube 推荐场景中两者效果没有差别;
-
在实践中,论文作者提出 Expert network 可以很多(后续证明了 8 个Expert network 比 4 个 Expert network 要好),为降低线上开销,Expert network 的隐层神经元个数是小于输入层的,这点区别于一般的 DNN 组织架构;
-
为避免 gating network 极化(分布式训练中,有20%的可能 gating network 倾向于使用 0 个 Experts),为缓解此问题,使用了 drop out 在 gating network 上,随机让 10% 的 expert 的输出为 0 并重新归一化 softmax 输出概率,消除 gating 网络极化影响;
仔细想一下,drop 确实是解决 stability 一个比较好的方法,因为 Gating Network 退化的本质是,训练过于拟合到某一个 expert 上了,通过随机一部分 expert 输出为 0,相当于每次都只训练了部分网络,然后也避免了对某一个子网络的过度拟合。也就减少了网络的 variance, 优化了最终的训练稳定性 和 模型效果。
值得思考的是 dropout work 的地方,是不是都是:通常都是 variance 比较大的地方 ?如果网络训练本身已经比较稳定了,那么 dropout 可能也就不怎么 work 了。
5.3 MMOE 结构分析
常见的多目标的排序系统用的是 shared-bottom 结构,但是这种 hard-parameter 强行共享底层的方案对于目标之间相关性小的任务,是有损效果的。因此采用并扩展 MMOE 结构来解决多目标冲突问题。
本文的排序系统上是在共享隐层上边加 experts,如图2-b。Mixture-of-Experts 层可以帮助从输入中学习模块化信息,更好的建模多模态特征空间。但直接上MoE层会显著增大训练和预测的消耗,因为输入层维度一般比隐层维度大。
具体公式如下:
y
k
=
h
k
(
f
k
(
x
)
)
where
f
k
(
x
)
=
∑
i
=
1
n
g
(
i
)
k
(
x
)
f
i
(
x
)
y_{k}=h^{k}\left(f^{k}(x)\right) \quad\quad \text { where } f^{k}(x)=\sum_{i=1}^{n} g_{(i)}^{k}(x) f_{i}(x)
yk=hk(fk(x)) where fk(x)=i=1∑ng(i)k(x)fi(x)
x
∈
R
d
x \in \mathbb{R}^{d}
x∈Rd 就是底层共享 embedding,
g
k
g^{k}
gk 是针对任务 k 的 gating network,
g
k
(
x
)
∈
R
n
g^{k}(x) \in \mathbb{R}^{n}
gk(x)∈Rn,
g
(
i
)
k
(
x
)
g_{(i)}^{k}(x)
g(i)k(x) 是第 i 个实体,
f
i
(
x
)
f_{i}(x)
fi(x) 就是第 i 个 expert,gating network 就是输入的线性变换传入 softmax 做概率:
g
k
(
x
)
=
softmax
(
W
g
k
x
)
g^{k}(x)=\operatorname{softmax}\left(W_{g^{k}} x\right)
gk(x)=softmax(Wgkx)
其中
W
g
k
∈
R
n
×
d
W_{g^{k}} \in \mathbb{R}^{n \times d}
Wgk∈Rn×d 是线性变换矩阵;
MMOE 就是将 shared-bottom 结构,输入部分转化为 Expert network,同时增加针对各任务建模的 gating network 用于学习各 Expert network 的组合相关性,最后将 gating network 的概率值与Expert network 输出进行动态加权继续传入针对各任务的Tower network;
5.4 建模 Position bias
排序系统中有很多 bias,最明显的就是 position bias,排的靠前的天然就比排的靠后的容易被点击,所以我们需要去移除这种bias,打破这种越来越偏的循环。
所以模型结构上除了一个 main tower,还有一个 shallow tower 去建模 bias,将输出的偏置项加到 main tower最终输出的 logit 上,如图3,训练的时候浏览时的位置作为输入,设置 drop-out rate 为 10%,避免过度依赖位置特征。
serving时,位置特征设为 missing,设备信息会被加入到shallow tower的输入中,因为不同设备上不同位置的bias是不同的。
输入特征中,Position feature, device 以及 Position feature 和 device 交叉特征,作为 shallow tower 的输入,这个原因是不同的手机型号,rank 1 的位置是不一样的,所以需要用 device 和 rank 做一个交叉。
6. 实验结果
离线使用指标用AUC,线上开AB实验,评估参与度指标和满意度指标,除此外还要关注下服务的预测开销。
结果如表1,MMOE在保持模型复杂度不变的情况下,比较了下4个experts和8个experts。可以看出参与度、满意度指标都有所提升。
从上图的效果上来看,Satisfaction Metric 的提升要优化 Engagement Metric. 这个一定程度上是因为 Engagement Metric ( 比如点击等)的正样本数量,通常要大于 Satisfaction Metric(比如打分) 的正样本数量. 所以联合做训练 & 优化了模型之后,Satisfaction Metric 能获得的信息量的增益显然会更多一些。
7. Discussion
许多推荐系统paper里提出的结构源于一些传统机器学习领域,比如NLP的 multi-headed attention,CV里的CNN。但这些其实都不直接适合我们的需求。 主要原因:
- Multimodal feature spaces.
- Scalability and multiple ranking objectives.
- Noisy and locally sparse training data.
- Distributed training with mini-batch stochastic gradient descent.
Future Directions:
- Exploring new model architecture for multi-objective ranking which balances stability, trainability and expressiveness.
- Understanding and learning to factorize.
- Model compression.
参考文献
[1] Recommending What Video to Watch Next: A Multitask Ranking System
[2] Youtube 19: Recommending What Video to Watch Next
[3] [Youtube 排序系统:Recommending What Video to Watch Next](
标签:What,精读,network,CTR,rank,MMOE,bias,video,gating 来源: https://blog.csdn.net/Dby_freedom/article/details/112201081