极客时间已完结课程限时免费阅读

国庆策划 | 关于深度学习推荐系统,我有这些资料想推荐给你

国庆策划 | 关于深度学习推荐系统,我有这些资料想推荐给你-极客时间

国庆策划 | 关于深度学习推荐系统,我有这些资料想推荐给你

讲述:王喆

时长08:03大小7.37M

你好,我是王喆。明天就是国庆和中秋假期了,这里我提前祝你节日快乐!
专栏上线以来,通过跟同学们在留言区讨论,我发现同学们的基础差别很大。有的同学已经是其他领域的资深工程师,希望借这门课丰富一下知识体系。有的同学确实是 0 基础的新手,可能对于机器学习的一些基本概念都不是特别清楚。
所以,我特意准备了一些适合不同阶段学习的参考书目和一些基础的实践项目,希望你能借着国庆假期查漏补缺,为我们后面的学习打好基础。
虽然这些参考书适合的学习阶段不同,但它们有两个特点,一是这些书,我都读过很多遍,它们在我学习、工作生涯的某个阶段让我受益匪浅;二是这些书都非常易读易懂,不是那种诘屈聱牙的“不适合人类阅读”的技术书。好,我们先来看看都有哪些书吧。

技术参考书,贵精不贵多

如果你在学习第 3 节课的时候有一些困难,就说明你对机器学习的一些基础概念还不太清楚,我希望你能继续巩固机器学习的基础知识,这里我推荐三本书,你根据自己的偏好和知识基础选择一本就好啦。
第一本书是南京大学周志华老师的《机器学习》。
这本书也称“西瓜书”,它的内容比较偏向传统机器学习,深度学习的内容也有,但不是重点。它的特点就是内容非常全面、详尽,语言也流畅易懂。所以,我把它推荐给机器学习基础不太好的同学,希望能够帮助你巩固基础。
第二本书是复旦大学邱锡鹏老师的《神经网络与深度学习》。
这本书也叫“蒲公英书”,它更偏向介绍神经网络和深度学习,对深度学习的介绍非常全面、详尽,但又不故作高深,是我们入门深度学习非常好的选择。
第三本书是诸葛越和 hulu 机器学习团队的《百面机器学习》。
这本书是我在 hulu 时跟 hulu 的机器学习团队一同编写的,也称“葫芦书”。它重在讲解一些机器学习领域关键的知识点,如果你正在准备算法岗位的知识性面试,它会是你极佳的选择。这本书比较适合有一些机器学习基础,但还不够深入的同学来查漏补缺。
除此之外,如果你在学习推荐系统技术架构时还有一些疑惑的话,我再给你推荐两本推荐系统领域的书籍,你可以利用它们进一步来丰富推荐系统的知识。
在我刚工作的时候,项亮的这本《推荐系统实践》让我受益匪浅,它介绍了经典的协同过滤、矩阵分解方法,还有推荐系统可以利用的数据,以及基本的评测方法等等。时至今日,其中经典的推荐系统知识仍然可以让我们受用。如果你想了解经典的推荐系统算法、技术架构,可以尝试读一读它。
这里,我还想给你推荐一本我的新书,《深度学习推荐系统》,它是今年年初出版的。我也看到很多同学在留言区提问说“老师,咱们的专栏和这本书的区别在哪呀?”。这里,我统一回复一下。
这本书当然跟咱们专栏有着千丝万缕的联系,因为它们共享了同样的知识框架。不过,咱们的专栏重在实践,这本书注重介绍知识,二者呈互补的关系。在学习这门课的同时,你也可以购买这本书,进一步拓展自己在深度学习推荐系统这个领域的知识面。
除了这些和深度学习推荐系统非常相关的书籍之外,我还想给你推荐两本课外书,这两本书是我非常喜欢的计算机领域的“闲书”。如果假期有时间的话,我非常推荐你读一读,它们可以帮助我们建立更全面的计算机思维和系统设计理念。当然,如果你都读过,也欢迎在留言区和我分享你的看法。
首先是吴军老师的《数学之美》,这本书在我刚工作的时候给了我很多的灵感,书中的内容涉及了机器学习、人工智能、信息论、自然语言处理等等重要的计算机科学子领域。虽然涉及面非常广,但是讲得非常透,生动有趣的语言也让我完全没有阅读压力。所以,我把它推荐给想拓展知识面的同学。
计算机经典书籍有很多,但最让我感到惊喜的是这本《程序员修炼之道》。我读这本书是两年前,因为已经有了很多大项目的开发和架构经验,所以读这本书时候,很多地方我都会会心一笑,太有感触了。书里面介绍了很多重构、架构、系统设计、程序员哲学相关的经验知识。因为推荐系统毫无疑问是一个复杂的大系统,所以有些时候,我们总要以系统的眼光去看待推荐系统的问题,这本书涉及的理念就至关重要了。
更关键的是,我非常喜欢它的副标题,“通向务实的最高境界”。我认为这是“返璞归真”的程序员的最高境界,也是我们作为一名工程师应该遵循的思考方式

初识实践工具,走好入门第一步

咱们这门课之后的实战环节,还会涉及很多推荐系统相关的工具,比如 Spark、TensorFlow、Redis、Jetty Server 等等。为了在之后的学习中避免一些上手的困难,我建议你先熟悉一下 Spark、TensorFlow 和 Redis 这三个工具。如果你对这些工具完全没有概念,可以通过我在下面介绍进行初步的了解。
首先是 Spark。它是业界最流行的分布式计算平台,如果你还没有相关经验的话,我建议你按照我给出的三步来学习。首先,你可以通过这篇文章(如何用形象的比喻描述大数据的技术生态?Hadoop、Hive、Spark 之间是什么关系?)来了解一下大数据的生态,然后,你可以通过 Spark 的官方教程尝试写一个 Spark Hello World 程序(在我们的 SparrowRecSys 里面新建一个 Scala 文件就可以)。因为咱们这门课大量使用了 Spark 的机器学习库 Spark MLlib,所以最后可以通过这个官方教程来做一些初步的了解。
其次是 TensorFlow。它是我们这门课要使用的训练深度学习模型的平台。Keras 是一套 TensorFlow 支持的 API,因为它的易用性,我们主要利用 Keras API 来实现我们的推荐模型。所以,我们第一步可以先看一篇介绍 TensorFlow 和 Keras 的基本概念的文章,对它们有一个初步的认识,再通过给 TensorFlow 的 Keras 接口写一个 Hello World项目做一个基本的上手实践。最后,如果你还有时间,可以通过TensorFlow 官方教程进一步熟悉 TensorFlow 的其他功能。
最后是 Redis。Redis 是我们这门课要频繁使用的内存数据库,用来存储模型所需线上特征。你可以先在官网熟悉一下Redis的基本介绍,然后下载安装它,最后尝试使用 Redis 内置客户端 redis-cli,来执行几条基本的Redis命令
相信熟悉了深度学习的基础知识和基本工具之后,你学习起来专栏后续的课程就会更加得心应手。对于完全 0 基础的同学,我可以这样说,如果你能通过我列出的书单和项目列表打牢基础,学习后面的课程肯定完全没有问题!
最后,我也想问问你,你在进行推荐、广告、搜索这些领域的学习的时候,还阅读过哪些非常不错的技术书?欢迎也在留言区分享出来,我们可以一起交流读后感,也可以让更多的同学受益。最后,再次祝你假期快乐,我们国庆之后再会!

推荐阅读

Spark:
TensorFlow:
Redis:
分享给需要的人,Ta购买本课程,你将得20
生成海报并分享

赞 42

提建议

上一篇
03 | 深度学习基础:你打牢深度学习知识的地基了吗?
下一篇
国庆策划 | 深度学习推荐系统基础,你掌握了多少?
 写留言

精选留言(20)

  • 朱月俊
    2020-09-30
    以前搞过一段时间的搜索,特别是结构化内容搜索中的垂直行业搜索。基本的步骤与非结构化搜索差不多。 主要包括三块,建库数据引入,建库数据预处理,在线检索。 对于建库数据引入,就是指如何接入站点数据,涉及到爬虫操作。因此,需要了解一下爬虫如何使用。 建库数据预处理,涉及到数据解析,生成词典,索引,摘要。因为数据预处理分了多个阶段,那么还需要kafka传递,数据预处理还涉及到flink,索引涉及到类似于elasticsearch的引擎,摘要涉及到高效的kv存储系统。因此,这块需要学习。kafka,flink,elasticsearch,kv存储等。 在线检索是根据用户的query给用户返回搜索结果。首先需要通过语意识别分析出query可能搜索的类别(领域),然后对query进行分词,拿着分词在特定类别下面通过状态机命中模板(词典相关),然后拿模板中字段的值去elasticsearch提取符合条件的key,然后去摘要库获取摘要结果,最后再拿一些网页/用户信息对多条返回结果进行排名,返回最精准的结果给用户。 这里涉及到语意分析,分词,状态机,排序等知识。 之前关注实战多了点,后续需要补充理论知识。
    展开
    32
  • 夜雨声烦
    2020-10-12
    安装spark/pyspark/redis/执行官网测试代码 1,mac 下安装spark:https://blog.csdn.net/roguesir/article/details/78335034 """ 因为只在本地执行数据,没有使用Hadoop的hdfs所以没有安装Hadoop,只安装了spark。 """ 遇到的困难就是找不到spark的包,从这个地址可以下载:https://archive.apache.org/dist/spark/ 在/usr/local/spark-2.4.7-bin-hadoop2.7/sbin下,执行 ./stop-all.sh 可以关闭spark的运行。 2,mac下安装pyspark:https://blog.csdn.net/hil2000/article/details/90747665 Hadoop下载地址: https://archive.apache.org/dist/hadoop/common/ 3,执行spark教程中的测试代码: 进入到spark所在目录:/usr/local/spark-2.4.7-bin-hadoop2.7 然后执行 bin/spark-shell 进进入到带有特殊字体写的“spark”的scala中了,然后就可以执行官网样例(https://spark.apache.org/docs/2.4.3/quick-start.html)中scala的代码了。 4,安装redis redis下载、安装教程地址:http://www.redis.cn/download.html
    展开

    作者回复: 赞实践

    共 5 条评论
    10
  • 野水晶体
    2020-10-01
    作为一个玩了推荐有几年的半老炮,王喆老师推荐的几本书差不多都看过一遍,尤其是王喆老师的深度学习推荐系统和吴军老师的数学之美,都是第一本书翻烂了,又买了第二本书在手的人,推荐系统的算法和工程在心里逐渐形成体系的过程中越来越感觉有两点困扰心里:其一是构建过程中怎么思考的问题,怎么选择算法,基于什么样的逻辑原则优化算法,不知后文有没有这方面的技巧?其二是推荐落到产品上的应用,对于公司来讲,算法毕竟无法交付,老师在构建推荐的过程中还有哪些比较有意思的应用? 不知这两方面内容老师后面的文章中会不会涉及,或者有哪些资料或书籍可以推荐?
    展开

    作者回复: 你的问题非常好,是一个senior工程师应该思考问题的方法,但说实话,这些问题的解决还是严重依赖工作上的积累和经验。因为算法落地的场景和优化的点实在太多了。 所以我一直讲不要期待magic和银弹,这门课肯定会介绍一些经验,但主要还是放在帮大家建立知识和工程上的架构。

    8
  • w1sl1y
    2020-09-30
    https://tensorflow.google.cn/tutorials/quickstart/beginner 老师给的tensorflow的HelloWorld的国内网址,老师给的链接国内太慢了,打不开。大家可以看这个。

    作者回复: 多谢推荐,原文中我找时间也更换一下。

    8
  • Geek_6789118
    2020-10-05
    老师好,目前让我困惑的是,当数据特别稀疏时,设计合适模型的思路是什么?我采集到的数据中有非常多用户只有很少的物品交互记录,我使用了(协同过滤类的)深度学习模型,但是过拟合现象很严重。 我目前的想法是把数据分成两部分,一部分用户的交互数据比较多,使用基于协同过滤的深度学习模型来训练;另一部分数据使用聚类方法,根据相似度进行推荐。不过这个想法还没实施,不清楚效果如何,请问针对这个问题有什么好的方法?
    展开

    作者回复: 数据如果过于稀疏的话,确实不适合深度学习模型。这是我一直强调的深度学习不是万能的,不是结合问题的银弹。 如果确实非常稀疏话,还是推荐一些简单模型,比如基于物品的协同过滤模型或者一些lookalike的方法。

    6
  • 🤪🤩
    2020-10-01
    我是一个产品,目前在自学推荐,请问老师有没有适合产品学习的书籍和课程?

    作者回复: 我觉得适合产品的和适合程序员的书不矛盾吧,只要你看的时候不要关注技术细节和公式就好了。这几本推荐的都挺合适的,并不难懂。

    6
  • 生命阅读
    2020-09-30
    老师您好,我想请您回答一下如何建立起入门推荐系统的知识体系,您能说下您的成长路线吗?还有就是希望能够科普下学习推荐系统对机器学习的各种方法和编程要掌握到何种程度? 学习资料:吴军老师的所有书,花书,动手学花书,统计学习方法,Python深度学习,深度学习入门,深度学习的数学。

    作者回复: 如果你真的认真读过你列出的这些书,那对于推荐系统工程师来说完全够了。 至于成长路线,找机会我开一个番外篇聊一聊我的学习工作经历吧。但这门课就是帮大家建立推荐系统知识体系的,相信能帮助到大家。

    共 2 条评论
    4
  • archmageforac
    2022-03-10
    搜索领域的:《这就是搜索引擎——核心技术讲解》、《Elasticsearch实战》 广告领域的:《计算广告》 另外做性能调优的时候读过《性能之巅》《程序员的自我修养——链接、装载与库》
    3
  • ChengdaYe
    2021-05-06
    老师好,我是做数据算法的,主要用Python,请问需要熟悉Java到什么程度,有什么书籍推荐

    作者回复: 其实并不要求一定要用java,只不过这门课线上部分选择了java为主要语言。如果你觉得公司里用的python居多,也可以不深入学习java。

    3
  • 上个纪元的赵天师
    2020-10-03
    《深度学习推荐系统》真香

    作者回复: 赞

    3
  • 刚子
    2021-02-25
    mac 一键安装 Apache Spark installation for Mac OS X :https://gist.github.com/rolandjitsu/0d470184c4cebaaf48892448638bbb38
    共 1 条评论
    2
  • 天敌
    2020-10-19
    一本都没有读过。 只是上过 Coursera 上吴恩达老师的课程。可以跟上吗?

    作者回复: 基础知识够用了,有一定的编程基础就可以跟下来。

    2
  • 与你一起学算法
    2020-11-08
    看了好几遍吴军老师的《数学之美》,每次看都有不同的收获,而且内容讲解非常清晰,易懂,强烈推荐。
    1
  • 辛湛
    2020-09-30
    如果想比较系统的学习tensorflow以及对于项目搭建 有书推荐吗

    作者回复: 我感觉按照官方教程学习应该就可以。极客时间上也有tensorflow的课程,可以尝试以下。

    共 2 条评论
    1
  • ゞ平常心
    2022-09-09 来自浙江
    2022年中秋前夕,十刷,地铁上听着歌学着习,每遍都有新收获。
  • Geek_5d8a40
    2022-04-13
    已经工作一年了,这些书基本都是校招前帮了我很多的,还有些是工作后买了简单看了一点或者准备看的,都是好资料
  • 像风握在我手里
    2021-12-17
    No TypeTag available for scala.collection.Seq[String] val sortUdf: UserDefinedFunction = udf((rows: Seq[Row]) => { 请问运行scala 报错为什么呢
  • 城阙
    2021-05-12
    买了王老师的书,滴~
  • masiwei
    2021-05-01
    王老师,您好,之前学过pyspark,为了做这个项目需要重新学scala吗?谢谢!

    作者回复: 工作中不是非常必要,但有些代码是scala的,所以实战中还需要能看懂代码。

  • Geek_f676f3
    2021-02-28
    李航的《统计学习方法》也不错

    作者回复: 是的,李航老师的这本也很经典。