youtube推荐系统论文学习
尽可能简明扼要,如有错误或我没有理解的地方请指点,互相讨论。原论文地址
目录
一、整体架构
YouTube推荐主要分为两块:1)match(召回) 2)ranking(排序)
二、召回模块(match)
核心思想:使用网络训练 用户向量U 和 视频向量V,线上使用使用topK相似度方法找出最相似的候选集。如图所示:
细节:
1、类似word2vec的方法,使用多分类做训练。借鉴了sampled softmax来提高训练效率
2、视频向量V构造?同NLP中类似初始化矩阵向量通过模型训练优化矩阵。
3、用户向量U构造?看过的视屏向量求和平均,搜索关键embedding求和平均,基础信息向量contact再通过ReLU层获得
4、视频向量V在输入和输出的softmax共享,用于训练与预测。
5、对于新视频,特征窗口可以选择最新的时刻点。有助于推新的效果。
6、在做Sampled Softmax的方法时,可以增加importance weighting(这块还不是很理解,下方有链接)的方式进行修正。
7、正样本选择:采用隐式反馈,完整地看完一个视频作为一个正样本。
8、抽样方法:每个用户都声称同样数量的样本。
9、网络层数与特征数据的对比:四层之后效果没有特别大的提升,特征还是关键。如图所示:
三、排序模块(ranking)
核心思想:输入更多详细特征,用dnn做分类器,损失函数使用视频播放时长做权重。
细节:
1、最左边的输入的是预测视频的向量
2、用户语言和视频语言(不确定
3、归一化:使用quantile,归一化到[0,1]。
4、embedding的维度是log(ID的个数)
5、multivalent的IDs会先去一个均值(不是很理解)
6、优化目标的修改(还不很理解,清楚的同学请指导)
7、训练层的影响