Deep Neural Networks for YouTube Recommendations的解读
摘要
本文根据经典的两阶段信息检索二分法进行划分:首先详细描述一个深度候选生成模型,然后描述一个单独的深度排序模型。
1. 总体模型
- 该系统有两个神经网络组成:一个用于候选集的生成,一个用于排名。
- 候选生成网络从用户的YouTube活动历史记录中获取事件作为输入,并从大型语料库中检索一小部分(数百个)视频
- 排序网络通过使用一组描述视频和用户的丰富特征,根据期望的目标函数为每个视频分数来完成任务。通过视频的得分进行排序,得分高的视频会呈现给用户。
2. 候选生成网络
候选生成网络模型
- 该模型属于DNN模型,其中把推荐问题看成一个“超大规模多分类”问题
即在时刻t,为用户U(上下文信息C)在视频库V中精准的预测出视频i的类别(每个具体的视频视为一个类别,i即为一个类别):
P ( ω t = i ∣ U , C ) = e v i u ∑ j ∈ V e v j u P(\omega_t=i|U,C)=\frac{e^{v_i u}}{\sum_{j\in V}e^{v_j u}} P(ωt=i∣U,C)=∑j∈VevjueviuU为用户-上下文的高维embedding。向量vj每个候选视频的embedding向量DNN的任务就是在用户信息,上下文信息为输入条件的情况下,学习用户的embedding向量u,通过一个softmax分类器,u能够有效的从视频语料库中识别视频的类别(也就是推荐的结果)
- 输入的是观看视频历史、搜索历史记录、用户信息和视频上传之后时间等特征
- 输出分为线上与离线两部分,其中softmax处理层为离线部分,serving为线上部分
2.1 主要特征处理
- embedded video watches => watch vector
用户观看历史记录由一个变长、稀疏的视频id序列表示,该序列通过嵌入映射成密集向量表示,最后通过加权平均得到固定维度的watch vector.
- embedded search tokens => search vector
跟用户观看历史记录处理一样
- 用户图像特征
将用户的年龄、性别、地理位置等离散或连续特征归一化为[0.1]
- 将watch vector、search vector和用户图像特征进行拼接,输入到DNN模型中。
2.2 Example age
Example age在论文中表示视频被上传之后的时间。而且,用户更倾向于推荐尽管相关度不高但是新鲜fresh的视频,因此,将此特性拼接到DNN的输入向量中,得到的模型效果如图所示:
以example age为特征训练的模型能够准确的表示数据中观察到的上传时间和受时间依赖的流行度。如果没有这个特征,模型将近似地预测训练窗口上的平均可能性
2.3 样本与上下文选择中的不对称的共同浏览问题
- 用户在浏览视频时候,往往都是序列式的,通常会先看一些比较流行的,然后才是观看一些小众的视频。剧集系列通常也是顺序地观看。
- 图(a)是held-out方式,利用上下文信息预估中间的一个视频。
- 图(b)是predicting next watch的方式,则是利用上文信息,预估下一次浏览的视频。
- 论文发现图(b)的方式在线上A/B test中表现更佳。而实际上,传统的协同过滤类的算法,都是隐含的采用图(a)的held-out方式,忽略了不对称的浏览模式。
- 发现预测用户的下一个观看视频的效果要好得多,而不是预测随机推出的视频。
- 方法:从用户的历史视频观看记录中随机拿出来一个作为正样本,然后只用这个视频之前的历史观看记录作为输入(图b)
2.4不同深度和特征的网络实验
此模块实验结果为:
- 随着网络深度加大,预测准确率在提升,但增加第4层之后,MAP(Mean Average Precision)已经变化不大了
- 增加了观看历史之外的特征,对预测准确率提升很明显
3 排序网络模型
3.1 排序网络模型图
- 此模型与上面的候选生成模型类似,不同在于training最后一层是Weighted LR,serving时激励函数使用的 e W x + b {e^{W_{x+b}}} eWx+b。
- Ranking阶段可以将不同来源的候选项进行有效的ensemble(召回阶段的候选集来源很多,没办法直接比较score)
- 相比召回阶段,引入了更多的feature:
- 当前要计算的video的embedding,
- 用户观看过的最后N个视频embedding的average,
- 用户语言的embedding和当前视频语言的embedding,
- 自上次观看同channel视频的时间,
- 该视频已经被曝光给该用户的次数
3.1 对观看时间的建模
- CTR指标对于视频搜索具有一定的欺骗性,所以论文提出采用期望观看时间作为评估指标
- 观看时长不是只有0,1两种标签,所以YouTube采用Weighted Logistic Regression来模拟这个输出,划分样本空间时,正样本为点击,输出值即阅读时长值;负样本为无点击视频,输出值则统一采用1,即采用单位权值,不进行加权
- 引入观看时间时,LR学到的odds表示正例出现概率的和与负样本概率的和的比例为: ∑ T i N − k \frac{\sum{T_i}}{N-k} N−k∑Ti ,其中N表示训练样本数量,k表示正样本数量, T i {T_i} Ti表示第i个视频观看的时间,正样本用观看时间赋予权值,负样本赋予单位权值(即不加权)
- 假设正面印象的比例很小(在例子中是正确的),学习的概率大约是E[T](1 +P),其中P是点击概率,E[T]是预期的观看时间。由于P很小,这个乘积接近E[T]。为了进行推断,我们使用指数函数 e x {e^x} ex作为最终的激活函数来产生这些接近估计预期观看时间的概率
3.2 Hideden Layers实验
- 实验证明,YouTube采用的Tower塔式模型效果最好,即第一层1024,第二层512,第三层256
A/Btest
- A/B测试(也被称为分割测试或者桶测试) 是一种将网页或者应用程序的两个版本相互比较以确定哪个版本的性能更好的方法。A/B测试本质上是一个实验,其中页面的两个或多个变体随机显示给用户,统计分析确定哪个变体对于给定的转换目标(指标如CTR)效果更好。
- two-stage(二阶段):输入数据,生成建议目标候选区域,将所有的候选区域送入分类器进行分类。