YouTube 多目标排序系统:如何推荐接下来收看的视频

mac2024-12-29  17

    导读:今天给大家分享一篇Youtube推荐排序模块的论文from RECSYS 2019:Recommending What Video to Watch Next: A Multitask Ranking System。

    该论文是  youtube  上实践的一篇文章,并且内容应该比较实用。论文 本身虽然没有提出特别新颖的结构,但内容很实在,也 work,算是推荐系统中排序模块很通俗易懂的文章了,论文主要聚焦于大规模视频推荐中的排序阶段,介绍一些比较实在的经验和教训,解决  Multitask Learning,Selection Bias  这两个排序系统的关键点。

     一般推荐系统排序模块的进化路径是:ctr 任务 -> ctr+ 时长 -> mulittask & selection bias。

    所以强烈推荐还在推荐系统起步阶段的同学读一读这篇 paper, 下边简单抽取文章的重点介绍下 。

在 Youtube 上进行两段实验验证效果: multitask learning removing a common type of selection bias 贡献: - an end-to-end ranking system  - multi-objective learning ( MMOE )  - mitigate position bias  - signifcant improvements on a real-world large-scale video recommendation system ▌ 相关工作     模型结构 就不多介绍了,基本上就是各种 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,需要更高效的方案来适应这种数据分布变化。 ▌ 模型结构 1. System Overview 排序系统学习两种目标: 1) 参与度:点击、观看  2)满意度:喜欢、不喜欢     所以排序目标是分类问题和回归问题的组合。     此方法是 pointwise,像 pairwise 和 listwise 的方案虽然可以提升推荐的多样性。但是基于 serving 时的考虑还是选择用 pointwise,简单高效,尤其是候选集比较多的时候。 2. Ranking Objectives     目标基本上就是刚才说的两类,一类是点击、时长, 一类是点赞、打分。分类问题就用 cross entropy loss 学习,回归问题可就是 square loss。最后用融合公式来平衡用户交互和满意度指标,取得最佳效果。 3. Modeling Task Relations and Conficts with Multi-gate Mixture-of-Experts     常见的多目标的排序系统用的是 shared-bottom 结构,但是这种 hard-parameter 强行共享底层的方案对于目标之间相关性小的任务,是有损效果的。 因此采用并扩展 MMOE 结构来解决多目标冲突问题。     本文的排序系统上是在共享隐层上边加 experts,如图2-b。 Mixture-of-Experts 层可以帮助从输入中学习模块化信息,更好的建模多模态特征空间。 但直接上 MoE 层会显著增大训练和预测的消耗,因为输入层维度一般比隐层维度大。 具体公式如下: x 就是低层的共享 embedding, f i (x)  就是第 i 个 expert,g(x) 就是图中的 gate layer。 4. Modeling and Removing Position and Selection Biases     排序系统中有很多 bias,最明显的就是 position bias,排的靠前的天然就比排的靠后的容易被点击,所以我们需要去移除这种 bias,打破这种越来越偏的循环。     所以模型结构上除了一个 main tower,还有一个 shallow tower 去建模 bias,将输出的偏置项加到 main tower 最终输出的 logit 上,如图3训练的时候浏览时的位置作为输入,设置 drop-out rate 为10%,避免过度依赖位置特征。serving 时,位置特征设为 missing。设备信息会被加入到 shallow tower 的输入中,因为不同设备上不同位置的 bias 是不同的。 ▌ EXPERIMENT RESULTS     实验就开在 Youtube 上,比较可靠。有不少推荐系统方向论文的改进是在很小数据集上测试的,在大规模场景下经常就不好使了,所以我比较少去看学术界的推荐系统论文。     离线使用指标用 AUC,线上开 AB 实验,评估参与度指标和满意度指标,除此外还要关注下服务的预测开销。 1. Multitask Ranking With MMoE ① Baseline Methods     基线方法就是图2a的 shared-bottom,模型复杂度是差不多的,确保线上 serving 开销相同。 ② Live Experiment Results     结果如表1,MMOE 在保持模型复杂度不变的情况下,比较了下4个 experts 和8个 experts。可以看出参与度、满意度指标都有所提升。 ③ Gating Network Distribution     图5画了网络中每个 expert 对每个任务的累计概率,方便理解 MMoE 如何帮助优化多目标。可以看到有的 expert 偏重参与度任务,有的偏重满意度任务。     另外让 gating networks 直接和 input layer 相连,没有明显提升,所以没必要增大开销进行直连。 ④ Gating Network Stability     多机分布式训练可能会导致 model diverged,比如 Relu death。 在分布式训练中,可以观察到此模型中 gating network 有20%会极化,这降低了模型性能。 因此训练中要使用 drop-out,10%的概率将 expert 的利用程度设为0并重新归一化 softmax 输出的概率。 2. Modeling and Reducing Position Bias ① Analysis of User Implicit Feedback     图6展示了位置1-9的 CTR,这里边有 item 相关性的原因也有 position bias 的因素。 因此用个 shollow tower 去学下 position bias。 ② Baseline Methods 直接用位置特征作为输入 Adversarial learning: 用辅助任务去预测展现的位置,在反向传播阶段把梯度取负(这里之前理解错了,写成了把梯度抹除掉),这样主模型不会依赖位置特征 下边是原文,这里说的不太详细,我又专门去看了下文章引用的第五篇: https://arxiv.org/pdf/1707.00075.pdf 这个基线方案就是这个论文里讲的:     逻辑上是一个 head 正常预测比如点击,另一个预测位置,然后预测位置的这个 loss 反传是用负梯度,让 share 的底层不去学习位置逻辑,这样主模型就不依赖位置特征了。 ③ Live Experiment Results 表2是结果,文中提的方法更好 ④ Learned Position Biases     图7是学到的 position bias,可以看到位置越靠后,bias 越小。 ▌ Discussion Neural Network Model Architecture for Recommendation and Ranking     许多推荐系统 paper 里提出的结构源于一些传统机器学习领域,比如 NLP 的  multi-headed attention,CV 里的 CNN。但这些其实都不直接适合我们的需求。主要原因:

「 更多干货,更多收获 」

最新回复(0)