Deep Neural Networks for YouTube Recommendations

Paul Covinton, Jay Adams, Emre Sargin, Google, Mountain View, CA

经典论文。2016年的文章了。

相关博客文章

  1. DNN YouTube Recommendations 召回

    该文章仅关注召回部分。

    softmax 参数直接用item 的向量

    在softmax阶段均采用图二中构造用户历史embedding序列时的与商品id对应embedding商品矩阵(即YouTubeNet中的视频矩阵)做内积计算。

    SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS

    (负)采样方法

    不是从列表页中,选择没有点击过的,而是:

    从当天所有点击过的商品中,除去当前用户点击过的商品,从剩余商品中随机选择 20 个商品作为负样本。

YouTube推荐时主要有3个挑战:

  1. scale 大规模;高分布式学习与高效部署

  2. Freshness 实时性;2个方面,一方面每秒都有大量新视频传上来;另一方面要尽快基于用户的近期action更新用户画像;

  3. Noise 噪声,用户行为中有大量噪声

Google内部开始将基本上所有的learning-problem的通用解决范式,都迁移到深度学习模型。 该论文的模型也是如此。其有10亿参数,1000亿训练样本。

2. SYSTEM OVERVIEW 系统概览

主要有2个网络,第一个网络用于候选生成,百万级别到百级别;第二个网络用于排序。

候选生成网络,输入是用户的历史行为,输出是几百个与用户相关的物料。论文里说 The candidate generation network only provides broad personalization via collaborative filtering , 这是说这个网络做的事情跟协同过滤本质相同? 另外,最后一句 The similarity between users is expressed in terms of coarse features such as IDs of video watches, search query tokens and demographics. , 表面是说用户相关性的表达通过这些粗糙的特征(观看的视频id序列,搜索query token,人口信息), 实际就是说这个网络中用户的实际特征是这些?

排序网络,用的特征更细细粒度,fine-level. 用了更多用户、视频的特征。做法是给每个视频打一个分,取top \(\rightarrow\) 也就是点估计。

3.1 推荐作为分类

推荐本来是做筛选,可以转化为打分——对每个item打分,然后取TOP;论文里说将其作为分类 softmax , 其实也类似:毕竟 softmax 输出一个概率,也可以作为分数。

用户U,在上下文C下,是否要看视频 \(w_i\),用softmax

4.1 特征表示

Embedding Categorical Features 类别向量特征

Video-ID 这种词典特别大的,按点击频次排序取 TOP-N;

OOV 直接用 0向量 (没有用 UNK );

候选生成网络, 多个值得情况(如历史观看 videos ),直接取平均然后输入到网络;

不同特征域用到同一类特征,底层共享 emb: 比如 video-id 在 “曝光”,“最后一个观看 video”,“video ID that seeded the recommendation”,这里面用到的 video-id 对应的 emb, 底层都是1个 emb : 好处是泛化,减少网络对内存的消耗