重读Youtube深度学习推荐系统论文,字字珠玑,惊为神文

标签: tuicool | 发表时间:2019-07-28 00:00 | 作者:
出处:http://itindex.net/relian

这里是 王喆的机器学习笔记 ,每隔一到两周我会站在算法工程师的角度讲解一些计算广告、推荐系统相关的文章。选择文章的标准有三个:

一是工程导向的;

二是阿里、facebook、google等一线互联网公司出品的;

三是前沿或者经典的。

这周我们一起讨论一下Youtube的深度推荐系统论文 《Deep Neural Networks for YouTube Recommendations》 ,这是2016年的论文,按照今天的标准来看,已经没有什幺新颖的地方,我也是两年前读过这篇文章之后就放下了,但前几天重读这篇文章,竟让发现了诸多亮点,几乎处处是套路,处处是经验,不由惊为神文。这篇神文给我留下的深刻印象有两点:

1.这毫无疑问是 工业界论文的典范 ,是我非常推崇的工程导向的,算法工程师必读的文章;

2.我以为毫不起眼的地方,也藏着Youtube工程师宝贵的工程经验,相比上周介绍的阿里的深度兴趣网络DIN,最重要的价值就在于Attention机制, 这篇文章你应该精确到句子来体会 ,这是我惊为神文的原因。

废话不多说,下面就跟大家分享一下两次拜读这篇论文的不同体验和收获。

第一遍读这篇论文的时候,我想所有人都是冲着算法的架构去的,在深度学习推荐系统已经成为各大公司“基本操作”的今天,Youtube在算法架构上并无惊奇之处,我们来快速介绍一下文章中的深度学习推荐系统的算法架构。

Youtube的用户推荐场景自不必多说,作为全球最大的UGC的视频网站,需要在百万量级的视频规模下进行个性化推荐。由于候选视频集合过大,考虑online系统延迟问题,不宜用复杂网络直接进行推荐,所以Youtube采取了两层深度网络完成整个推荐过程:

1.第一层是Candidate Generation Model完成候选视频的快速筛选,这一步候选视频集合由百万降低到了百的量级。

2.第二层是用Ranking Model完成几百个候选视频的精排

首先介绍candidate generation模型的架构

Youtube Candidate Generation Model

我们自底而上看这个网络,最底层的输入是用户观看过的video的embedding向量,以及搜索词的embedding向量。至于这个embedding向量是怎幺生成的,作者的原话是这样的

Inspired by continuous bag of words language models, we learn high dimensional embeddings for each video in a xed vocabulary and feed these embeddings into a feedforward neural network

所以作者是先用word2vec方法对video和search token做了embedding之后再作为输入的,这也是做embedding的“基本操作”,不用过多介绍;当然,除此之外另一种大家应该也比较熟悉,就是通过加一个embedding层跟上面的DNN一起训练,两种方法孰优孰劣,有什幺适用场合,大家可以讨论一下。

特征向量里面还包括了用户的地理位置的embedding,年龄,性别等。然后把所有这些特征concatenate起来,喂给上层的ReLU神经网络。

三层神经网络过后,我们看到了softmax函数。这里Youtube的同学们把这个问题看作为用户推荐next watch的问题,所以输出应该是一个在所有candidate video上的概率分布,自然是一个多分类问题。

好了,这一套深度学习的“基本操作”下来,就构成了Youtube的candidate generation网络,看似平淡无奇,其实还是隐藏着一些问题的,比如

1.架构图的左上角,为什幺在online serving的时候不直接用这套网络进行预测而要使用nearest neighbor search 的方法?

2.多分类问题中,Youtube的candidate video有百万之巨,意味着有几百万个分类,这必然会影响训练效果和速度,如何改进?

这些问题在读第一遍的时候我也没有深想深看,但却是工程实现中必然会遇到的问题,我们随后再深入介绍论文中的解决方法。

既然得到了几百个候选集合,下一步就是利用ranking模型进行精排序,下面是ranking深度学习网络的架构图。

Youtube Ranking Model

乍一看上面的ranking model似乎与candidate generation模型没有什幺区别,模型架构还是深度学习的“基本操作”,唯一的区别就是特征工程,那幺我们就讲讲特征工程。

事实上原文也明确说明了,引入另一套DNN作为ranking model的目的就是引入更多描述视频、用户以及二者之间关系的特征,达到对候选视频集合准确排序的目的。

During ranking, we have access to many more features describing the video and the user’s relationship to the video because only a few hundred videos are being scored rather than the millions scored in candidate generation.

具体一点,从左至右的特征依次是

1. impression video ID embedding: 当前要计算的video的embedding

2. watched video IDs average embedding: 用户观看过的最后N个视频embedding的average pooling

3. language embedding: 用户语言的embedding和当前视频语言的embedding

4. time since last watch: 自上次观看同channel视频的时间

5. #previous impressions: 该视频已经被曝光给该用户的次数

上面五个特征中,我想重点谈谈第4个和第5个。因为这两个很好的引入了对用户行为的观察。

第4个特征背后的思想是

We observe that the most important signals are those that describe a user’s previous interaction with the item itself and other similar items.

有一些引入attention的意思,这里是用了 time since last watch 这个特征来反应用户看同类视频的间隔时间。从用户的角度想一想,假如我们刚看过“DOTA经典回顾”这个channel的视频,我们很大概率是会继续看这个channel的视频的,那幺该特征就很好的捕捉到了这一用户行为。

第5个特征 #previous impressions 则一定程度上引入了exploration的思想,避免同一个视频持续对同一用户进行无效曝光。尽量增加用户没看过的新视频的曝光可能性。

至此,我的第一遍论文阅读就结束了,对Youtube的算法框架有了概念,但总觉得不过如此,没什幺太多新颖的地方。。

但如果真这幺想,还是太naive了,与上一篇 阿里的深度兴趣网络DIN 不同的是,你读懂了DIN的attention机制,你就抓住了其论文70%的价值,但这篇文章, 如果你只读懂了Youtube的推荐系统架构,你只抓住了30%的价值 。那幺剩下的70%的价值在哪里呢?

在重读这篇文章的时候,我从一个工程师的角度,始终绷着“如何实现”这根弦,发现这篇论文的工程价值之前被我大大忽略了。下面我列出十个文中解决的非常有价值的问题:

1.文中把推荐问题转换成多分类问题,在next watch的场景下,每一个备选video都会是一个分类,因此总共的分类有数百万之巨,这在使用softmax训练时无疑是低效的,这个问题Youtube是如何解决的?

2.在candidate generation model的serving过程中,Youtube为什幺不直接采用训练时的model进行预测,而是采用了一种最近邻搜索的方法?

3.Youtube的用户对新视频有偏好,那幺在模型构建的过程中如何引入这个feature?

4.在对训练集的预处理过程中,Youtube没有采用原始的用户日志,而是对每个用户提取等数量的训练样本,这是为什幺?

5.Youtube为什幺不采取类似RNN的Sequence model,而是完全摒弃了用户观看历史的时序特征,把用户最近的浏览历史等同看待,这不会损失有效信息吗?

6.在处理测试集的时候,Youtube为什幺不采用经典的随机留一法(random holdout),而是一定要把用户最近的一次观看行为作为测试集?

7.在确定优化目标的时候,Youtube为什幺不采用经典的CTR,或者播放率(Play Rate),而是采用了每次曝光预期播放时间(expected watch time per impression)作为优化目标?

8.在进行video embedding的时候,为什幺要直接把大量长尾的video直接用0向量代替?

9.针对某些特征,比如#previous impressions,为什幺要进行开方和平方处理后,当作三个特征输入模型?

10.为什幺ranking model不采用经典的logistic regression当作输出层,而是采用了weighted logistic regression?

因为我也是在视频推荐领域工作,所以可以很负责任的说以上的十个问题都是非常有价值的。但今天一口气写到这里,感觉有点气力不足了。。大家如果感兴趣的话可以点个赞,我明天再详细分析一下以上十大问题的答案。

上面问题的解答已经完成啦,大家请参考我的下一篇文章——

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

相关 [youtube 深度学习 推荐系统] 推荐:

重读Youtube深度学习推荐系统论文,字字珠玑,惊为神文

- - IT瘾-tuicool
这里是 王喆的机器学习笔记 ,每隔一到两周我会站在算法工程师的角度讲解一些计算广告、推荐系统相关的文章. 二是阿里、facebook、google等一线互联网公司出品的;. 这周我们一起讨论一下Youtube的深度推荐系统论文 《Deep Neural Networks for YouTube Recommendations》 ,这是2016年的论文,按照今天的标准来看,已经没有什幺新颖的地方,我也是两年前读过这篇文章之后就放下了,但前几天重读这篇文章,竟让发现了诸多亮点,几乎处处是套路,处处是经验,不由惊为神文.

深度学习二三事

- - FreeBuf.COM | 关注黑客与极客
我知道博客标题中使用否定词很奇怪,但是前几天有一波讨论正好相应于我正在思考的一些问题. 这一切开始于 Jeff Leek 发表的 一篇有关说明在小样本范围内使用深度学习的文章. 要言之,他认为当样本较小时(生物领域中属于常见现象),带有少许参数的线性模型甚至比带有少量层和隐藏单元的深度网络性能更优.

Min-Hash和推荐系统

- - xlvector - Recommender System
前几年看Google News Recommendation的那篇Paper,对里面提到的MinHash的算法基本没有注意,因为之前的习惯都是只注意论文的模型那块,至于怎么优化模型一般都只是扫一眼. 不过最近看了大量的Google Paper,发现Google在实现一个算法方面确实有很多独到之处. 其实,Min-Hash是LSH(Locality Sensitive Hash)的一种,我之前对LSH的了解仅仅限于知道它能把两个相似的东西Hash成两个汉明距离接近的2进制数.

推荐系统实战

- - 博客园_首页
推荐算法:基于特征的推荐算法. 推荐算法准确度度量公式:. 其中,R(u)表示对用户推荐的N个物品,T(u)表示用户u在测试集上喜欢的物品集合. 集合相似度度量公式(N维向量的距离度量公式):. 其中,N(u)表示用户u有过正反馈的物品集合. 其中,S(u,k)表示和用户u兴趣最接近的K个用户集合;N(i)表示对物品i有过正反馈的用户集合;w(u,v)表示用户u和用户v的兴趣相似度;r(v,i)表示用户v对物品i的兴趣.

推荐系统杂谈

- - 后端技术杂谈 | 飒然Hang
推荐系统是近些年非常火的技术,不管是电商类软件还是新闻类app,都号称有精准的推荐系统能给你推送你最感兴趣的内容. 现象级的资讯类app“今日头条”就得益于此成为了势头非常猛的一款产品. 本文就针对推荐系统讲述一些相关概念和实践经验. 首先需要明确的就是推荐系统的目标,一般来说不外乎以下几个:. 用户满意性:首当其冲的,推荐系统主要就是为了满足用户的需求,因此准确率是评判一个推荐系统好坏的最关键指标.

NMPA与Youtube和解

- lin - Solidot
淘宝网女装夏装 写道 "全美音乐出版商协会(NMPA)与YouTube达成和解,放弃上诉YouTube未经授权播放视频,侵犯版权. 全美音乐出版商协会将与谷歌达成授权协议,获取授权金. 2007年,维亚康姆对谷歌提起侵权诉讼,指控YouTube允许用户在未经授权的情况下上传音乐、电视剧和体育视频. 全美音乐出版商协会和维亚康姆同为原告.

关于深度学习——Deep Learning

- - 互联网旁观者
转载自: http://blog.csdn.net/abcjennifer/article/details/7826917. Deep Learning是机器学习中一个非常接近AI的领域,其动机在于建立、模拟人脑进行分析学习的神经网络,最近研究了机器学习中一些深度学习的相关知识,本文给出一些很有用的资料和心得.

深度学习的本质探究??

- - ITeye博客
原创 2016-10-07 朱洁 . 标志型事件,阿尔法围棋(AlphaGo)战胜李世石. alphago是一款围棋人工智能程序,由谷歌(Google)旗下DeepMind公司的戴维·西尔弗、艾佳·黄和戴密斯·哈萨比斯与他们的团队开发,这个程序利用“价值网络”去计算局面,用“策略网络”去选择下子. 2015年10月阿尔法围棋以5:0完胜欧洲围棋冠军、职业二段选手樊麾;2016年3月对战世界围棋冠军、职业九段选手李世石,并以4:1的总比分获胜.

深度学习利器:TensorFlow实战

- - 孟飞阳的博客
深度学习及TensorFlow简介. 深度学习目前已经被应用到图像识别,语音识别,自然语言处理,机器翻译等场景并取得了很好的行业应用效果. 至今已有数种深度学习框架,如TensorFlow、Caffe、Theano、Torch、MXNet,这些框架都能够支持深度神经网络、卷积神经网络、深度信念网络和递归神经网络等模型.

深度学习三大框架对比

- -
| 导语 Science is NOT a battle, it is a collaboration. 人工智能的浪潮正席卷全球,诸多词汇时刻萦绕在我们的耳边,如人工智能,机器学习,深度学习等. “人工智能”的概念早在1956年就被提出,顾名思义用计算机来构造复杂的,拥有与人类智慧同样本质特性的机器.