<audio id="audio" title="开篇词 | 从0开始搭建一个深度学习推荐系统" controls="" preload="none"><source id="mp3" src="https://static001.geekbang.org/resource/audio/5b/c0/5b51f46c972f2b3e53ea7416eddeaec0.mp3"></audio>

你好，我是王喆，在一家硅谷的科技公司Roku担任机器学习工程师。

Roku是美国最大的视频流媒体平台，在美国智能电视市场占比超过1/3。我作为推荐系统的架构负责人，在最近两年多的时间里，跟团队一起搭建了一整套深度学习推荐系统，相比于传统推荐系统，它在播放时长、点击率等效果指标上取得了30%以上的提升。

在这个过程中，我和团队踩过不少“坑”，也总结了很多经验。其中最宝贵的一点是，**只有建立起深度学习推荐系统的知识体系，从系统的层面考虑问题，我们才能够实现整体效果上的优化**。与此同时，我还发现越来越多的在校生和刚入行的工程师，想要熟悉或者是在深度学习推荐系统领域取得进一步的发展，但经常因为缺少系统的学习机会而困在一两个难点上，停滞不前。

比如说，一些对**深度学习推荐系统非常感兴趣的在校生，**很希望能有前辈带领他们熟悉业界的热门技术，让他们在进入相关领域前就积攒起足够的工程经验。这种想法是非常好的。我也面试超过两三百位应届生了，以我的经验，最让企业青睐的应届生就是动手能力强、有实习经验、有业界项目经验的。但这种锻炼自己的机会却很难找到。

再比如说，一些已经进入**推荐、广告、搜索相关部门，但是时间不长，或者正要转行进入这些行业的工程师。**他们想要自主承担起某个模块的开发任务，期待扩展自己的技术视野和格局，向更高级的职位进发。但这需要他们建立一套成体系的知识和实践框架。

我是一个十分赞同开源思想并且乐于分享知识的人。既然有那么多同行都有这样的需求，我为什么不把我建立行业知识体系的过程分享出来呢？所以在2020年初，我发布了新书《深度学习推荐系统》，希望这本书能帮助一些同学建立深度学习推荐系统的知识体系。令我没想到的是，这本书在半年之内就重印了7次，销量接近2万册，豆瓣评分达到了9.3，这对于一本技术书来说是非常难得的。

新书获得肯定的同时，我也收到了很多读者的反馈，最多的一点是“书中的知识非常体系化，帮助我建立了整个行业的知识蓝图，但如果能有配套的实践项目就更完美了”。

就像Linux之父Linus Torvalds说的那句话：“**Talk is cheap. Show me the code.”**，实践对于工程师来说永远是最重要的。所以我就趁热打铁，在极客时间上开设了一门更偏重实战的技术专栏。我想这是一次绝佳的机会，**与你一同从“0”开始，搭建一个“工业级”的“深度学习”推荐系统**，做到知识和实践两手抓！

## 深度学习的浪潮，推荐系统的时代

在跟你聊了开设这门课程的初心之后，我觉得很有必要把我们的视野放得更宽一点，看看我们这个时代到底是怎么被推荐系统影响着，推荐系统又是怎么在深度学习的浪潮之中“乘风破浪”的。

毫无疑问，推荐系统从来没有像现在这样影响着我们的生活。想上网购物，天猫、京东的推荐系统会帮你挑选商品；想了解资讯，头条、知乎的推荐系统会为你准备感兴趣的新闻和知识；想消遣放松，抖音、快手的推荐系统会为你奉上让你欲罢不能的短视频。

而驱动这些巨头进行推荐服务的，都是基于深度学习的推荐模型。

2013年，百度率先在广告系统中应用了深度学习，2015到2020年，阿里提出并应用了从MLR到DIEN等一系列的深度学习模型。国外的互联网巨头也不逞多让，从最早的Google的Word2vec，到2015年YouTube的深度学习推荐系统，再到之后的Facebook、Amazon、微软等等，几乎所有头部公司的成功应用，让深度学习如后浪般席卷了推荐系统业界，将传统的推荐模型彻底取代。

更让人感叹的是，字节跳动在2020年1月5日发布的一份《抖音数据报告》中宣布，抖音日活用户突破了4亿。要知道，这距离抖音2016年9月上线仅过去了3年多一点的时间。作为一个几乎完全由推荐系统驱动的应用，这样的增长速度是惊人的，是前所未有的。而字节跳动技术团队曾经披露的，深度学习在推荐算法、视频内容理解、自然语言处理等方向上的应用，则又一次向我们印证了深度学习的强大实力。

## 深度学习时代，推荐工程师的职业发展方向在哪？

随着推荐系统的快速发展，在深度学习时代，推荐工程师又该如何选择自己的职业发展方向呢？

推荐工程师的工作，本质上是利用一切可能的技术手段来提升推荐系统的效果，从而不断达到甚至超越企业的商业目标。

举个例子，2019年，阿里著名的千人千面系统驱动了天猫“双11”2684 亿元的成交额。假设我们通过改进天猫的商品推荐功能，让平台整体的转化率提升 1%，那么在 2684 亿元成交额的基础上，我们就能再增加 26.84 亿元。 也就是说，推荐工程师仅通过优化推荐技术，就创造了 26.84 亿元的价值。这无疑是这个职位最大的魅力所在，也是它能够支撑起百万年薪最重要的原因。

1%听起来很小，但是想要在一个成熟的推荐系统上，找到能够提升的突破点并不容易，这需要我们动用所有的领域知识储备。一位推荐工程师优秀与否，也就是在这个时候体现出来的。

在所有业界巨头的推荐引擎都由深度学习驱动的今天，作为一名推荐系统从业者，我们不应该止步于，或者说满足于继续使用协同过滤、矩阵分解这类传统方法，而应该**加深对深度学习模型的理解，加强对大数据平台的熟悉程度，培养结合业务和模型的技术直觉，提高我们整体的技术格局，这些都是我们取得成功的关键。**

可能你最近经常听说“算法工程师的知识更新太快，一不小心就处在被淘汰的边缘”。但我始终坚信一点，人才的分布都是金字塔式的，与其抱怨金字塔底座为什么这么宽，不如努力提高自己的知识储备、工程能力和技术视野，哪怕只是向金字塔的塔尖前进了一步，我们也超越了最宽的那个底座，不是吗。

因此，我希望在这门课里与你一起建立的，是深度学习推荐系统的整体架构。这对我来说也是个不小的挑战，因为它几乎需要我输出所有的工作经验和知识储备。当然，对你来说肯定也是个挑战，因为一定有很多新知识需要补充到自己的知识框架中。但我相信我们的目标一定是一致的，就是在深度学习时代，在推荐系统这个行业开拓视野、站稳脚跟。

## 这门课是怎么设计的？

一句话来说，这门课程是一门知识与实践并重的课程，通过解决30+个深度学习推荐系统问题，不仅能串联起深度学习推荐系统的知识体系，还能帮你实打实地收获一套经过实践验证过的开源代码，从而让你也能实现一个工业级的深度学习推荐系统。

注意了，这里面有几个关键词，分别是“知识体系”“深度学习”“工业级”“实战”。没错，我们的课程就是围绕这几个关键词展开的。我遵循一个经典推荐系统的框架，把课程分为6个部分，分别是“基础架构篇”“特征工程篇”“线上服务篇”“推荐模型篇”“效果评估篇”“前沿拓展篇”，其中的每节课，我们都会着重解决一个技术难点。

基础架构篇：从0出发，建立深度学习推荐系统的知识体系

在开始学习这门课之前，我对你的要求有两个，一是有一定的编程基础，二是有基本的机器学习概念知识。在此基础上，我们通过基础架构篇的学习，就能建立起深度学习推荐系统的完整知识架构，做到“心中有蓝图、心中有高楼”。

具体来说，在基础架构篇中，我会详细讲解我们要从0开始实现的推荐系统，Sparrow RecSys的主要功能和技术架构。由于缺少工业级的实验环境，Sparrow RecSys不可能是一个真正的工业级推荐系统，但是它的每一行代码都是严谨的，其中的每个方法都是经过业界验证的主流方法。并且，我们还会使用到Spark、Flink、TensorFlow这些业界目前最流行的机器学习和大数据框架，麻雀虽小，但五脏俱全。

特征工程篇：又快又好，用心准备推荐系统的“食材”

在特征工程篇中，我会和你一起讨论推荐系统会用到的特征，以及主要的特征处理方式，并且把它们都实践在Spark上。除此之外，我还会讲解深度学习中非常流行的Embedding、Graph Embedding技术。

我们可以把特征工程看作是为推荐系统准备“食材”的过程。所以我希望通过这部分的学习，你不仅能够成为一名合格的“备菜”师傅，更能够利用学到的Embedding方法，来实现Sparrow Recsys中的相似电影推荐功能，在实践中快速成长起来。

线上服务篇：实践出真知，掌握搭建工业级推荐系统的核心技能

一个工业级推荐系统和实验室Demo的最大区别就在于线上服务部分。在这一篇中，我们要实打实地搭建一个推荐服务器，它包括了服务器、存储、缓存、模型服务等相关知识。相信通过这部分的学习，你能初步掌握Jetty Server、Spark、Redis，这些工程领域的核心技能。

推荐模型篇：深度学习推荐系统上的明珠

如果让我挑出深度学习对传统推荐系统最大的改进，毫无疑问是深度学习在推荐模型上的应用，甚至我们称它为“推荐系统上的明珠”也不为过，所以这一部分可以说是整门课程的重中之重了。我们将一起学习深度学习推荐模型的原理和实现方法，主要包括Embedding+MLP 、Wide&amp;Deep、PNN等深度学习模型的架构和TensorFlow实现，以及注意力机制、序列模型、增强学习等相关领域的前沿进展。

效果评估篇：建立成体系的推荐系统评估机制

在效果评估篇中，我们要重点学习效果评估的主要方法和指标。但对一个成熟的推荐系统来说，仅熟悉这些是不够的，我还期望你能通过这一篇的学习建立起包括线下评估、线上AB测试、评估反馈闭环等整套的评估体系，真正能够用业界的方法而不是实验室的指标来评价一个推荐系统。

前沿拓展篇：融会贯通，追踪业界前沿

在完成整体的知识积累之后，我们在通过这一篇的学习，将通过业界巨头们的深度学习推荐系统方案进行融会贯通。我会重点讲解YouTube、阿里巴巴、微软、Pinterest等一线公司的深度学习应用，帮助你追踪业界发展的最新趋势，并且找到自己技术道路上的方向。

所有的点穿成线、连成面，就组成了我们希望掌握的深度学习推荐系统架构。与此同时，我们也会在课程完成后，搭建起一个完整的推荐系统，再收获一份亲眼看见自己学习成果的成就感。

<img src="https://static001.geekbang.org/resource/image/06/2e/066c5f56f4e0a5e8d4648e0cfb85e72e.jpg" alt="">

最后我想说，No Magic，不要期望一门课程就能够让你成为业界专家。如果你是完全没有推荐系统基础的新人，这门课程能够让你入门推荐系统，初步掌握深度学习推荐系统各模块的相关知识和业界实践。如果你是行业老兵，这门课能让你查漏补缺，在技术视野和格局上有所提高。但推荐系统的每个模块都有着极深的技术纵深，不管是TensorFlow还是Spark，还是Redis、Flink，它们中的每一个都需要我们持续性的钻研才能够成为领域专家。在技术专家的道路上，这仅仅是个开始，当然，我也很荣幸能帮你开启这个既有魅力又有挑战性的技术领域。

最后，关于深度学习推荐系统，希望你能在这里畅所欲言，提出你的困惑和疑问。也欢迎多多给我留言，你们的鼓励是我的动力。如果你身边也有想要学习深度学习推荐系统的同学，也别忘了把这个课程分享给他。**很高兴能与你一起开启深度学习推荐系统的学习之路，愿与你在攀登行业塔尖的路上共勉**。
