论文笔记-Deep Neural Networks for YouTube Recommendations

从各方资料总结了一下大体思路,论文中很多细节还有待细读。

1.引言

youtube视频推荐的三大挑战:

(1)规模大:数以亿计

(2)新鲜度:每秒就有很多新视频上传,要考虑用户的实时行为和新视频的推荐,平衡好新视频和好视频。(exploration and exploitation)

(3)噪音:用户历史行为很稀疏并且有各种难以观测的隐性因子。而视频本身数据也是非结构化的。推荐算法需要有很好的鲁棒性。

2.系统概览

和我们熟知的召回、排序流程是一样的。这里候选集的生成除了使用dnn生成的之外,还可以引入其他方式得到的候选集,后面都称为召回。

召回和排序两个阶段分别用一个dnn来进行训练。在召回阶段,从数以亿计的视频中选出几百个候选视频,在排序阶段对几百个视频进行打分,排序后展现给用户。

3.召回

在李宏毅的课程中曾介绍过矩阵分解可以一个看做简单的nn,而矩阵分解在推荐上也是很早就有过应用的。这里DNN的使用可以看做是对mf的一种非线性泛化。

对召回过程的建模,文中将其看做是一个超大规模的多分类问题。每一个视频就是一个类别。在给定用户U和上下文C的条件下,预测在时间t下观看的视频类别为 i,视频库记为V

其中对V中的每个视频i,被embedding为一个 vj 的向量,而 user与context的pair被 embedding为向量 u。所以最后就成了多分类的softmax问题。

在这里,embedding是说对离散的变量mapping为一个稠密的向量。

对每个视频的embedding,是将视频的文本放入Embedding工具(例如Word2Vec,但TensorFlow自带)得到。而用户的embedding,则是通过训练而来。

DNN的目标就是学习输入的 embedding 向量u,使得这个u在通过softmax分类器后能够对视频做出准确预测。其中u可以看做是用户的历史行为和上下文的函数。

召回网络结构:

主要特征处理:

(1)用户浏览过的视频,每个做embedding后求平均

(2)用户的搜索query,每个token做embedding后求平均

(3)用户画像特征:如地理位置,设备,性别,年龄,登录状态等连续或离散特征都被归一化为[0,1], 和watch vector以及search vector做拼接(concat)

(4)example age: 视频上传后的时间

样本和上下文的选择:

(1)不仅使用推荐场景的展示、点击日志,也使用其他非推荐场景的数据,快速捕捉用户的兴趣。

(2)对每个用户使用固定的样本数量,这样对每个用户是公平的,防止活跃用户主导了损失函数。

(3)反直觉的,去掉序列信息,只是对每次的token embeding,避免最后一次搜索主导了推荐内容。

(4)不对称的共同浏览问题 asymmetric co-watch probabilities ,指出用户观看视频时,遵循的是一种非对称的共同看过模式,在初始的观看序列中,范围会比较广泛,在后期的观看中,范围会逐渐集中。而大部分协同过滤算法,在推荐时往往利用的是用户的全量观看历史。所以,作者的改进在于从用户的观看历史序列中,只截取held-out watch之前的观看序列

在线请求时,通过上述DNN训练得到用户&上下文embedding的向量u,然后与视频库的所有vj进行内积运算,检索出内积值最大的几百个推荐候选列表。这里需要与所有视频库的视频向量做内积,时间花费太大,文中采用了一种hash的快速算法。

4.排序

排序的DNN框架和召回类似,输入的时候加入了更多的特征。

对类别类特征,做embedding,比如视频Id类特征。在基数很高的情况下,可以只对点击的topN的item做embedding,其余的直接embedding为0。而对于像“过去点击的视频”这种multivalent特征,与召回阶段的处理相同,进行加权平均即可。另外一个值得注意的是,同维度不同feature采用的相同ID的embedding是共享的(比如“过去浏览的视频id” “seed视频id”),这样可以大大加速训练,但显然输入层仍要分别填充。(这句话不太懂)

NN对scale比较敏感,对连续类特征,文中使用了一个积分的归一化方法。一般而言除了树模型外其他方法对scale都是比较敏感的。

不同与通常的CTR预估,这里ranking任务利用用户期望观看时长来进行建模。有点击的为正样本,有PV无点击的为负样本,正样本需要根据观看时长进行加权,负样本权重则为1。训练阶段网络最后一层用的是加权的逻辑回归。训练得到回归的参数后,利用得到期望观看时长。

参考:

https://zhuanlan.zhihu.com/p/25343518

http://www.jianshu.com/p/19ef129fdde2

http://blog.csdn.net/xiongjiezk/article/details/73445835

https://www.zhihu.com/question/20829671

http://www.jianshu.com/p/c5b8268d273b

时间: 2024-08-03 02:18:16

论文笔记-Deep Neural Networks for YouTube Recommendations的相关文章

【论文阅读-REC】<<DEEP NEURAL NETWORKS FOR YOUTUBE RECOMMENDATIONS>>阅读

1.介绍: YouTube推荐的挑战: scale:很多算法在小数据有用,在youtube无用: freshness:需要对对新上传视频足够敏感: noisy:没有真实的用户反馈:缺少结构化的数据 2.skip 3.候选生成: 之前的模型是基于矩阵分解:YouTube的DL模型的前几层就是使用神经网络模拟这种分解:这可以看成是分解技术的非线性泛化 3.1.把推荐看做多分类: NCE和hs,文字指出hs没有得到nce的效果:YouTube认为,遍历树中不相关节点,使效果变差. 在线预估的时候,并不

论文阅读--Scalable Object Detection using Deep Neural Networks

Scalable Object Detection using Deep Neural Networks 作者: Dumitru Erhan, Christian Szegedy, Alexander Toshev, and Dragomir Anguelov 引用: Erhan, Dumitru, et al. "Scalable object detection using deep neural networks." Proceedings of the IEEE Confere

Mastering the game of Go with deep neural networks and tree search

Silver, David, et al. "Mastering the game of Go with deep neural networks and tree search." Nature 529.7587 (2016): 484-489. Alphago的论文,主要使用了RL的技术,不知道之前有没有用RL做围棋的. 提出了两个网络,一个是策略网络,一个是价值网络,均是通过自我对战实现. 策略网络: 策略网络就是给定当前棋盘和历史信息,给出下一步每个位置的概率.以前的人似乎是用

论文笔记 《Maxout Networks》 && 《Network In Network》

论文笔记 <Maxout Networks> && <Network In Network> 发表于 2014-09-22   |   1条评论 出处 maxout:http://arxiv.org/pdf/1302.4389v4.pdfNIN:http://arxiv.org/abs/1312.4400 参考 maxout和NIN具体内容不作解释下,可以参考:Deep learning:四十五(maxout简单理解)Network In Network 各用一句话

On Explainability of Deep Neural Networks

On Explainability of Deep Neural Networks « Learning F# Functional Data Structures and Algorithms is Out! On Explainability of Deep Neural Networks During a discussion yesterday with software architect extraordinaire David Lazar regarding how everyth

论文笔记 Deep Patch Learning for Weakly Supervised Object Classi cation and Discovery

Background 1) "Patch-level image representation"的优势 "Patch-level image representation is very important for object classification and detection, since it is robust to spatial transformation, scale variation, and cluttered background" &

(转)Understanding, generalisation, and transfer learning in deep neural networks

Understanding, generalisation, and transfer learning in deep neural networks FEBRUARY 27, 2017 This is the first in a series of posts looking at the 'top 100 awesome deep learning papers.' Deviating from the normal one-paper-per-day format, I'll take

Training Deep Neural Networks

http://handong1587.github.io/deep_learning/2015/10/09/training-dnn.html  //转载于 Training Deep Neural Networks Published: 09 Oct 2015  Category: deep_learning Tutorials Popular Training Approaches of DNNs?—?A Quick Overview https://medium.com/@asjad/po

Why are Eight Bits Enough for Deep Neural Networks?

Why are Eight Bits Enough for Deep Neural Networks? Deep learning is a very weird technology. It evolved over decades on a very different track than the mainstream of AI, kept alive by the efforts of a handful of believers. When I started using it a