深度学习推荐系统实战
王喆
Roku 推荐系统架构负责人,前 hulu 高级研究员,《深度学习推荐系统》作者
33298 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 44 讲
深度学习推荐系统实战
15
15
1.0x
00:00/00:00
登录|注册

02 | Sparrow RecSys:我们要实现什么样的推荐系统?

前端
模型
数据
links.csv
ratings.csv
movies.csv
为你推荐页
电影详情页
首页
运行RecSysServer
以maven project的形式安装
从GitHub中clone代码
前端
模型
数据
links.csv
ratings.csv
movies.csv
为你推荐页
电影详情页
首页
Sparrow Recsys涵盖的技术点
Sparrow Recsys的数据来源
Sparrow RecSys的功能
三十分钟内在电脑上运行Sparrow RecSys
技术点
数据来源
功能
实战
深度学习推荐系统的技术架构
推荐系统要解决的基本问题
Sparrow RecSys
王喆
推荐系统Sparrow RecSys到底什么样?

该思维导图由 AI 生成,仅供参考

你好,我是王喆。
上节课,我们明确了推荐系统要解决的基本问题,清楚了深度学习推荐系统的技术架构,这节课我们开始走进实战。
作为程序员,我相信你肯定听过,甚至可能还很认同 Linux 之父 Linus Torvalds 的那句话“Talk is cheap.Show me the code.”。我也一样,所以只讲解理论知识不是这门课的风格,我希望你通过这门课的学习,不仅能构建出一棵深度学习推荐系统的知识树,还能动手实现出一个看得见、摸得着、能操作、能修改的推荐系统。
所以今天,你跟着我的讲解,只需要花三十分钟的时间,就能将一套完整的深度学习推荐系统,Sparrow RecSys(随着课程的进行,我们会逐渐补充新的模块),在你自己的电脑上运行起来。这也是我们这门课最终要实现的深度学习推荐系统。

废话不多说,直接运行

废话不多说,我们先把 Sparrow RecSys 安装运行起来。因为我已经把项目相关的所有代码(代码还会随着课程进行持续更新)、数据都整理到 GitHub 的开源项目中,所以你不需要额外安装任何的支持软件,也不需要额外下载任何数据。
这样,整个安装过程就跟“把大象装进冰箱“一样,只需要三步,就是打开冰箱门,把大象装进去,关上冰箱门。“翻译”成咱们的过程就是,从 GitHub 中 clone 代码,在本地以 maven project 的形式安装,运行 RecSysServer 主函数启动推荐服务器。接下来,我们详细地解释一下这三个步骤。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Sparrow RecSys是一个开源的深度学习推荐系统,旨在帮助程序员快速构建和实现一个完整的推荐系统。该系统提供了相似推荐、个性化推荐等经典推荐功能,并包含了首页、电影详情页和为你推荐页等页面设置。其数据源来自于MovieLens数据集,包括电影基本信息、用户评分数据和外部链接数据等。Sparrow RecSys的功能和数据源的详细介绍,为读者提供了深度学习推荐系统的主要模块和主流技术的快速领略和实现路径。文章通过简洁明了的步骤指引,使读者能够在30分钟内在本地电脑上运行起这套深度学习推荐系统,为读者提供了一个快速入门的机会。文章还介绍了Sparrow Recsys涵盖的技术点,包括数据处理使用Spark和Flink,模型训练使用TensorFlow等。通过对Sparrow RecSys的技术架构图的解读,读者可以了解到主流深度学习推荐系统所使用的技术,建立自己的知识广度。整篇文章以实际项目Sparrow RecSys为例,将概念讲解和代码实战结合,为读者提供了全面的认识和实践机会。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深度学习推荐系统实战》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(116)

  • 最新
  • 精选
  • Capricornus
    置顶
    MAC OS系统 1.下载IDEA(https://www.jetbrains.com/idea/download/#section=mac) 2.下载JDK(https://www.oracle.com/java/technologies/javase-jdk15-downloads.html) 3.安装IDEA和JDK(JDK的路径~/Library/Java/JavaVirtualMachines/openjdk-15.0.1-1) 4.打开IDEA,打开File->Project Strucure->Project->Project JDK(我的好像会自动识别)。若没有识别(显示jdk15.1),点击三角号,自己添加,步骤Add SDK->JDK->选择上面提到的JDK路径选择。 5.在pom.xml点击右键,设置为maven project->'Reload project'。耐心等待,这个很费时间。 6.然后找到SparrowRecSys/src/main/java/com/SparrowRecSys/online/RecSysServer,右击选择"Run 'RecSysServer.main()'",程序就执行起来了. 7.浏览器中键入http://localhost:6010/

    作者回复: jdk推荐使用java8的版本,因为spark目前对java8以上版本支持不好。

    2020-12-22
    12
    60
  • 挖掘机
    置顶
    windows下搭建推荐系统的步骤 1. 使用的vscode作为IDE 2. 编译命令为mvn package assembly:single 3. 我的web root uri在源代码里总是为空,稍微改了一下,这里是为了绕过去,也请指导的高手告诉正确方法 RecSysServer.java中49行改成了绝对路径 URI webRootUri = URI.create("file:/D:/Work/RecommendationSystem/Sparrow/SparrowRecSys/target/classes/webroot/"); 4. 运行java -jar target\SparrowRecSys-1.0-SNAPSHOT-jar-with-dependencies.jar即刻成功
    2020-12-21
    6
    12
  • 浣熊当家
    因为没有项目经验,想知道git clone到本地之后,怎么运行这个Maven project呢?油管上有没有类似的demo可以看看,老师能出一下小的录屏么?万分感谢。。第一步就卡住了。。

    作者回复: 简单来说就是: 1、到这个地址下载IDE, https://www.jetbrains.com/idea/download/#section=mac 2、安装IDEA 3、打开IDEA 4、选择File->Open->选择项目根目录 5、在pom.xml点击右键,设置为maven project(最新的IDE版本也可能不用) 6、找到类文件 class RecSysServer,右键点击-> run 7、浏览器输入http://localhost:6010/ 8、看到SparrowRecSys首页说明运行成功。

    2020-09-23
    7
    38
  • 嘿人
    王老师您好,我学习的时候就是经常把握不好“使用者”的度,碰到什么都想扎进去研究,导致很容易陷入‘局部极小值’,请问怎么把握这个度呢?

    作者回复: 要有知识广度和宽度的概念,就像你做高考试卷,如果第一道题比较难,不太会,你总不能在第一道题上就花半个小时去解它吧,肯定是先跳过,把整体上比较简单的做完再回头做第一道。 技术学习,和技术积累也是这样的,先知全局,再有针对性的深入,提高,否则你整体的技术水平肯定不会太高。

    2020-12-09
    37
  • Hhha爲
    老师您好,我查阅了网上的一些博客资料,大多认为协同过滤这样的传统方法应该是在召回层。,不过在您的图里是在排序(精排)层,可以问一下这样分类的理由是什么吗?谢谢!

    作者回复: 这是个好问题。 五六年前的传统推荐系统不少还在用协同过滤作为主排序模型。这几年慢慢被淘汰了,排序层变成了以深度学习推荐模型为主的复杂模型。 但因为协同过滤类算法比较简单,比如矩阵分解之后可以进行embedding快速召回,所以放在召回层也完全适用。 文章中推荐系统的架构是一个比较经典的架构,但也没必要认为它是无法改变的真理。在实际应用场景之中要根据业务特点灵活运用。

    2020-09-23
    34
  • pedro
    暂时没有去跑项目,先尝试回答问题二吧,对于一个电影爱好者而言,从我的角度出发,一个能够取悦我的,电影推荐系统,必须满足我在电影种类,演员,电影内容,电影质量上的需求,要说什么最有帮助,我觉得应该是用户历史浏览记录。

    作者回复: 非常好,几乎就是我想说的了。你说的前一部分是content based特征,后一部分是user behavior类特征。一般从对结果的影响大小来看,user behaviour特征在电影推荐、电商推荐等场景下都是更重要的。

    2020-09-22
    2
    27
  • Don
    召回有优化之后,排序并不能捕捉到召回新增的特征,在排序后召回的优化点弱化很多,这种一般怎么处理?比如:召回有话增加了性别+年龄的特征,但是排序层没有用这维特征,导致根据该特征召回的内容排序后都在靠后位置没有机会曝光

    作者回复: 非常好的实践经验。在设计召回层和排序层的时候一般要联合设计,召回层要特别关注召回率指标。 如果你认为你的排序模型效果是非常不错的,把性别和年龄特征召回的item排在后面,就说明二者相关的item不应该被召回。 如果年龄和性别这两个特征对结果影响很大,那为什么排序层模型训练的时候不引入这两个特征呢? 所以需要再重新评估一下两个层,做一个重新的设计。

    2020-09-23
    2
    19
  • 夜雨声烦
    JAVA小白 mac os系统 安装Sparrow Recsys时的历程: 1,安装java8和scala2.11 网上有很多参考教程。 安装Java8:https://blog.csdn.net/irokay/article/details/71374426 遇到的/etc/profile是readonly的情况,解决方法是更改该文件的权限,增加写权限:775.https://blog.csdn.net/good007boy/article/details/88659162 安装scale:https://blog.csdn.net/u012373815/article/details/53231292 遇到的问题,在执行scala的时候出现“scala [ERROR] Failed to construct terminal; falling back to unsupported”,应该是跟iterm2起了什么冲突,解决方案:https://blog.csdn.net/merrily01/article/details/102823539 2,安装、打开IDEA 略过 3,执行文件 在pom.xml点击右键,设置为maven project->'Reload project' 配置SDK:在File->Project Structure->Project配置Project SDK 然后找到SparrowRecSys/main/java/online/RecSysServer,右击选择"Run 'RecSysServer.main()'",程序就执行起来了 浏览器输入http://localhost:6010/,就可以看到SparrowRecSys首页

    作者回复: 非常好。推荐给其他同学参考。

    2020-10-09
    6
    15
  • Sam
    ## 上个旧版本有些链接失效,现在补上这个新的,而且更新了步骤。 win7下 搭建 推荐系统 的步骤: 1. 第1步骤:下载IDEA。 https://www.jetbrains.com/idea/download/#section=windows 2. 第2步骤:如何下载和配置JDK1.8(一定要JDK1.8) https://www.cnblogs.com/hejh/p/11276434.html 3.第3步骤:IDEA配置JDK1.8(一定要JDK1.8) https://blog.csdn.net/liluo_2951121599/article/details/78484776 4. 第4步骤:window下安装scala步骤 https://www.cnblogs.com/onlyxx/p/5168882.html 4.1 第4.1步骤:Scala安装问题找不到主类的(不要安装在有空格的路径) https://blog.csdn.net/weekdawn/article/details/94625067 4.2 第4.2步骤:Scala2.11要匹配JDK1.8,否则出问题 https://blog.csdn.net/yulutian/article/details/80566728 5. 第5步骤:IDEA配置Scala https://www.cnblogs.com/starzy/p/10461038.html 6. 第6步骤:win7安装hadoop spark https://www.jianshu.com/p/9f40fe1b6587 7. 第7步骤:安装Redis https://www.cnblogs.com/liuqingzheng/p/9831331.html 大功告成,如果安装过程有问题的同学,请留言,我们一起解决!~^^

    作者回复: 非常赞

    2021-06-18
    6
    14
  • 明月
    老师,这是需要去了解一下java吗,在校生做推荐系统还是用Python

    作者回复: 线上部分会使用java,spark部分会使用scala,tensorflow部分会使用python。

    2020-11-25
    2
    12
收起评论
显示
设置
留言
99+
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部