CategoryResourceRepost/极客时间专栏/深度学习推荐系统实战/开篇词/开篇词 | 从0开始搭建一个深度学习推荐系统.md
louzefeng d3828a7aee mod
2024-07-11 05:50:32 +00:00

88 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<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它们中的每一个都需要我们持续性的钻研才能够成为领域专家。在技术专家的道路上这仅仅是个开始当然我也很荣幸能帮你开启这个既有魅力又有挑战性的技术领域。
最后,关于深度学习推荐系统,希望你能在这里畅所欲言,提出你的困惑和疑问。也欢迎多多给我留言,你们的鼓励是我的动力。如果你身边也有想要学习深度学习推荐系统的同学,也别忘了把这个课程分享给他。**很高兴能与你一起开启深度学习推荐系统的学习之路,愿与你在攀登行业塔尖的路上共勉**。