其他分享
首页 > 其他分享> > CTR预估 论文精读(十六)--Youtube 排序系统:Recommending What Video to Watch Next

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 推荐难点

  1. 多特征空间:

    1. 存在语义鸿沟:如候选特征来源于 video content, audio, title and description 等特征空间,进行融合时候存在语义鸿沟;
    2. 在协同过滤中学习 item 的稀疏分布;

    通过使用video meta-data 和 video content signature 作为 video 特征表示,对于上下文特征,使用了用户画像、设备、时间、地点等特征进行表示;(没有使用用户多模态特征,如audio等)

  2. 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 建模

针对 多年以前,百度解决这个问题的方法,是把 rank 作为一个 feature 加在 nn 的最后一层,其实仔细想一想,和 ytb 的这个解决方法是类似的。ytb 在这个解决方法的基础上,把 rank feature 扩展成了一个 tower,然后耦合了 mmoe,拆分了受 rank 影响的 label 和 不受 rank 影响的 label. 做的更 “fashion” 了一些。主要思想,其实差不多。

5.1 YouTube 排序学习目标

YouTube 排序系统学习两种目标

  1. 参与度:点击、观看时长 ;

    将点击建模成二分类任务,采用交叉熵损失函数;观看时长建模成回归任务,采用平方差损失函数;

  2. 满意度:喜欢、打分;同理可将喜欢建模成二分类,打分建模成回归任务。

所以排序目标是分类问题和回归问题的组合。此方法是 pointwise,像 pairwise 和 listwise 的方案虽然可以提升推荐的多样性。但是基于 serving 时的考虑还是选择用 pointwise,简单高效,尤其是候选集比较多的时候。

5.2 排序模型架构

目标基本上就是刚才说的两类,一类点击、时长, 一类点赞、打分。

分类问题就用cross entropy loss学习,回归问题可就是square loss。最后用融合公式来平衡用户交互和满意度指标,取得最佳效果。

在这里插入图片描述

图 2b 即为本次实验架构MMOE实现细节,2a 作为 baseline 进行对比;

其中有两点值得注意:

  1. 从图中不难看出,gating network 与 Expert network 对应 input layer 均为 share bottom layer,其中后续论文作者有做对比实验,将 gating network 直接针对任务从输入 feature 直接组织(比如目前线上系统使用人群包分群,其依据是不同人群对应的点击、购买行为不同),论文在 YouTube 推荐场景中两者效果没有差别;

  2. 在实践中,论文作者提出 Expert network 可以很多(后续证明了 8 个Expert network 比 4 个 Expert network 要好),为降低线上开销,Expert network 的隐层神经元个数是小于输入层的,这点区别于一般的 DNN 组织架构;

  3. 为避免 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∑n​g(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(Wgk​x)
其中 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。但这些其实都不直接适合我们的需求。 主要原因:

Future Directions:

参考文献

[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