本文介绍的文章是:《Recommending What Video to Watch Next: A Multitask Ranking System》
在上一篇文章中,我们介绍了一种多任务学习的模型Multi-gate Mixture-of-Experts (MMoE),而本文介绍的youtube视频推荐模型,就用到了这种多任务学习的框架。除此之外,本文还介绍了如何消除推荐系统中常见的位置偏置因素以及在应用深度学习模型中的一些实践经验,一起来学习一下。
1、背景
视频推荐的任务可以描述为根据用户当前所观看的视频,来预测用户下一个可能观看的视频。传统的推荐系统往往是两阶段的设计模式,即召回和精排阶段。本文主要介绍精排阶段的模型。
设计和部署一个大型的视频推荐系统充满了许多挑战,比如以下几条: 1)视频推荐中有多个不同甚至可能发生冲突的目标,比如除用户是否会观看外,还希望去预测用户对于视频的评分,以及是否会分享给朋友。 2)在推荐系统往往存在一些隐式的偏置信息。比如用户是否会点击和观看某个视频,并不一定是因为他喜欢,可能仅仅是因为它排在前面,因此导致训练数据可能是有偏的。这也是咱们经常遇到的位置偏置问题。
为了解决以上的挑战,youtube采用了一种多任务学习框架,该框架基于Multi-gate Mixture-of-Experts (MMoE),一起来学习一下吧。
2、模型介绍
2.1 视频推荐问题描述
构建一个视频推荐框架,除在上一节中介绍的一些挑战外,还有其他一些因素需要考虑: 1)Multimodal feature space:视频推荐模型需要考虑特征众多,比如视频本身内容、预览图、声音、标题和文字描述、上下文特征等等。 2)Scalability:模型的线上性能需要得到保证。通常通过两阶段(召回和精排两阶段)来保证性能问题。
接下来介绍一下召回和精排两阶段的内容。在召回阶段,使用多路召回的方式生成一个小规模的候选集。比如,通过主题匹配度的召回、根据与当前观看视频同时观看的频率进行召回、基于模型的召回方式等等。而在精排阶段,则采用深度神经网络来对召回阶段得到的小规模候选集进行排序。
接下来,详细介绍精排阶段的模型框架。
2.2 整体框架
模型的整体框架如下:
接下来介绍一些细节。
2.3 排序目标
这里使用用户行为来作为训练的Label。用户可能会有不同方面的行为,每种不同的行为都可以视为一个排序目标。这些排序目标主要分为两大类:
engagement objectives:这类目标主要考虑用户点击和观看行为。通过二分类模型来预测用户的点击行为,而通过回归模型来预测用户观看视频的时长。
satisfaction objectives:这类目标主要考虑用户在观看视频之后对于视频的反馈。使用二分类模型来预测用户是否会点击喜欢该视频,而通过回归模型来预测用户对于视频的评分。
针对上述不同的目标,使用一个多任务学习模型来进行训练。而在应用阶段,把每一个候选视频输入到多任务学习模型中,来得到各个子任务的输出结果,通过加权的方式来输出一个综合的推荐评分,从而进行排序。而不同网络结果的权重,通过人工调节来实现。
2.4 多任务模型
这里多任务模型借鉴了本系列上一篇中所提到的Multi-gate Mixture-of-Experts (MMoE)模型,RS Meet DL(68)-建模多任务学习中任务相关性的模型MMoE使不同的任务和不同的数据可以多样化的使用共享层。这里简单回归一下模型的结构:
上图中左图是一般的MTL框架,右侧是MMoE。此时每个任务的共享层的输出不同,第k个任务的共享层输出计算公式如下:
随后每个任务对应的共享层输出,经过多层全连接神经网络得到每个任务的输出:
2.5 建模和消除位置偏置
CTR预估问题往往存在位置偏置信息,在Youtube中,不同位置的点击率差别很大:
不同位置的点击率差异主要来自于推荐结果相关性以及位置偏置。
消除推荐系统中的位置偏置,一种常见的做法是在训练阶段将位置作为一个特征加入到模型中,而在预测阶段置为0或者一个统一的常数,如下图所示:
还有一种做法是在训练阶段将点击率拆解为两个部分,即用户看到物品的概率 * 用户看到物品后点击的概率,而在测试阶段只预估用户看到物品后点击的概率,示意图如下:
而本文的做法与上面两种方式都不相同,示意图如下:
通过一个shallow tower(可理解为比较轻量的模型)来预测位置偏置信息,输入的特征主要是一些和位置偏置相关的特征。在多任务模型的子任务最后的sigmoid前,将shallow tower的输出结果加入进去。而在预测阶段,则不考虑shallow tower的结果。
值得注意的是,位置偏置信息主要体现在CTR预估中,而用户观看视频是否会点击喜欢或者用户对视频的评分,这些是不需要加入位置偏置信息的。
3、实验及结果
这里主要对比了两个模型,一个是一般的MTL结构,一个是MMoE结构。对于评价指标,线下采用AUC,线上采用A/B test的方式,来观测实验组和对照组的停留时间、好评率等等指标,实验结果如下:
可能我的理解还有不到位的地方,欢迎大家一起讨论对这篇文章的理解~