咳,还是要说说这篇文章,虽然讲它的人已经很多了。毕竟作为深度学习模型大规模应用于工业界推荐系统的标志,这篇文章是绕不过去的。原文来自Deep Neural Networks for YouTube Recommendations,是YouTube2016年发表于Recosys的文章。
这篇文章的结构依然很经典:由deep candidate generation model(召回阶段)和deep ranking model(排序阶段)组成。
Overview
YouTube的推荐系统的主要挑战有三:
- Scale:有一些算法在小规模的问题上表现很好,但是难以应用于较大规模的问题,而YouTube拥有世界上最大规模的推荐系统之一,规模化是一个算法能够应用的首要问题。
- 新鲜性(其实我们一般称为内容冷启动):YouTube某种意义上是个短视频公司,和Netflix以及Hulu这样的公司不同,它的网站上随时都有新鲜内容产生,怎么把这些新鲜内容推荐出去是需要考虑的。
- 噪声:implicit feedback和content feature中都有大量的噪声,需要好好利用这些有噪声的数据。
YouTube的模型在Google Brain上训练,它的开源版本即为tensorflow。他们的模型有十亿量级的参数数目,并在千亿级别的数据量上训练。
系统的结构图如下:
可以看到这是一个两阶段的模型。关于other candidate resource的部分我的上一篇文章中有。
Candidate Generation
在召回阶段,YouTube要从海量数据集中选出数百个召回结果。在使用神经网络之前,YouTube使用的是MF算法。在使用深度学习算法时,YouTube把找回阶段建模为一个分类模型,其目标是根据上下文 C C C,用户 U U U,从集合 V V V中找到时刻 t t t最可能被观看的视频 w t w_t wt:
P ( w t = i ∣ U , C ) = e v i u ∑ j ∈ V e v j u P(w_t = i | U, C) = \frac{e^{v_iu}}{\sum_{j \in V} e^{v_ju}} P(wt=i∣U,C)=∑j∈Vevjueviu