深度学习推荐系统实战_03_02_Sparrow_RecSys我们要实现什么样的推荐系统
你好,我是王哲。
今天呀我想和你聊聊spell raxes,它是我们这门课要实现的推荐系统。
上节课。
我们明确了推荐系统要解决的基本问题,清楚了深度学习推荐系统的技术架构。
这节课我们开始走进实战。
作为程序员呢,我相信你肯定听过,甚至还很认同linux之父。
Linux的那句话,talk is cheap, showme the code我也一样,所以只讲理论知识,不是这门课的风格。
我希望你通过这门课的学习啊,不仅能够构建出一颗深度学习推荐系统的知识树,还能动手实现出一个看得见、摸得着、能操作、能修改的推荐系统。
所以今天啊请你跟着我的讲解,花三十分钟的时间,把一套完整的深度学习推荐系统,spell access在你的电脑上运行起来,这也是我们这门课最终要实现的推荐系统。
废话不多说,我们先把spare acx安装装运行起来。
因为我已经把项目相的所有代码数据都整理理到github的开源项目中。
所所以你不需要额外安装任何的知识软件,也不需要额外下载任何数据。
整个安装过程就可把大象装进冰箱一样,翻译成简单的三步就能完成。
分别是打开冰箱门,把大象装进去,关上冰箱门。
翻译成咱们的过程,就是从github中可用代码在本地以maven project形式安装运行rexcess server上主函数启动推荐服务器。
你就可以在网页端看到我们的推荐系统了。
接下来我详细说说这三个步骤。
首先从github中隆代码,我在文稿中直接给出了clsparis开源项目的地址。
点击之后,你需要使用githclone命令,或者从web端下载的方式把代码下载到本地。
然后你可以在本地以maven project形式安装,也就是导入项目的IDE.我推荐你使用的intj idea作为本项目的IDE,这样我们直接使用idea,打开本地的spare s根目录就可以导入项目了。
不过有一点你需要注意,如果像没有自动识别为maven project,你还需要右键点击palm,点XML文件,选择把项目设置成maven project才能进行后面的操作。
最后一步是运行rex server.我们找到项目的主函数rex server,点击右键。
因为推荐服务器默认运行在六零一零端口。
所以我们打开浏览器,输入local host六零一零就能看到整个推荐系统的前端界面了。
如果通过前面这些步骤,你的浏览器显示出了由多个电影列表组成的spell XX主页。
那么恭喜你,你已经拥有了这套深度学习推荐系统。
而且我相信你把spare x这只大象装到自己冰箱的时间不会超过三十分钟。
但第一次界面的热情过后,你可能不但想知其然,所想,知其所以然。
那接下来我就和你说说spell x的的来历以及它的功能和架构。
而且在接下来的课程中,我会以它为例来给你讲透。
深度学习。
推荐系统spiral rexes,全称是spiral recommender system,中文名叫麻雀。
推荐系统,名字取自麻雀虽小五脏俱全之意。
你第一眼看见它可能认为它像个demo或者玩具。
虽然它不可能真正具备一个工业级推荐系统的全部功能,但我希望它是一颗能够成长为参天大树的种子,以至未来有可能大鹏展示的雏鸟在投入一定精力的改造拓展之后,它甚至有可能支撑起一个规模互联网公司的推荐系统框架。
这个呀就是我设计spiral rexes的初衷。
我也希望你能够在实现它的过程中快速领略深度学习推荐系统的主要模块和主流技术,并且找到快乐,找到成就感。
那么spiral rexus到底实现了哪些功能呢?它又包含了哪些深度学习推荐系统的关键技术呢?下面我会为你一一讲解。
首先是功能的介绍。
在spiral rexus是一个电影推荐系统,视频推荐是我最熟悉的领域,这也是我以电影推荐作为切入点的原因。
像所有经典的推荐系统一样,它具备相似推荐、猜你喜欢等经典的推荐功能。
其页面的设置上主要有首页、电影、详情页和为你推荐页组成。
首先是首页spy RRS的首页由不同类型的电影列表组成。
当用户首次访问首页时,系统默认以历史用户的平均打分从高到低排序。
随着当前用户不断为电影打分,系统会根据打分的结果进行个性化的调整。
其次是电影详情页。
你可以看到电影详情页除了罗列出电影的一些基本信息,最关键的部分是相似影片的推荐,相似内容推荐这个功能几乎在所有推荐系统中都非常重要。
传统的推荐系统基本依赖于基于内容的推荐方法,而我们这门课会更多的讲解。
根据深度学习imging的相似内容推荐方法,最后是为你推荐页这一部分,也是整个推荐系统中最重要的部分,是用户的个性化推荐页面。
这个页面会根据用户的点击评价历史,进行个性化推荐,这几乎是所有推荐系统最经典和最主要的应用场景。
我希望在这门课中,能够让你一步一步的完成其中的每个关键步骤,包括但不限于特征的处理,候选集的召回排序层的主要模型等等。
知道了spell rexes的主要功能后,你肯定想问老师,咱们的数据从哪来呀?既然它是一个开源项目,那么spirrex的数据源肯定也是开源和免费的。
它的数据源来自于著名的电影开源数据集movie lens.为了方便你调试咱们这门课的教学数据集,对movie length数据进行了精简,留下一千部电影。
如果你希望在全量数据集上进行推荐,你可以去movie le的官方网站下载全量数据。
它一共包含了两万七千部电影。
呃,moviillence的数据集包含三个部分,分别是movies表,它是电影的基本信息表。
Reading表就是用户评分数据以及links表外部链接数据。
下面我们就分别来讲一讲这三部分数据,包括的内容。
首先是movies表,它是电影的基本信息表,包含了电影ID、电影名、电影的发布年份以及电影类型等等。
这些是它的基本信息。
在moviillence的官方数据集中包含了二零一六年以前的电影,大概有两万七千部包含的数据集,对它进行的精简,只保留一千部。
电影数据集是我们推荐的主体,其中包括分类发布年份、电影名称的信简,这也都是推荐模型可以利用的重要特征。
然后咱们再来看rings表,这张表包含了用户ID、电影ID评分和时间戳等信息。
Moviilles的官方数据集包含了两千万条评分数据,我们的课程从中抽取了一百零四万条。
作为实验数据,评论数据集是之后推荐模型训练所需的训练样本的来源,也是我们分析用户行为序列、电影统计型特征的原始数据。
随后我们再来看links表,这张表包含了电影IDIMDB和TMDB对应的电影ID等信息。
这两个数据库是全球最大的两个电影数据库。
因为links表包含了moviilence电影和这两个数据库ID之间的对应关系。
所以啊我们可以根据这个对应关系来抓取电影的其他相关信息。
所以是我们大量拓展推荐性型特征提供了可能。
除此之外,movie lance的数据集还包含了text表,它是用来记录用户为电影打过的标签。
因为我们的课程暂时不会使用标签数据,我就不展开说了清楚了。
Spiral rexcess的功能和数据,你肯定迫不及待的想要知道spare rexes会使用哪些技术,可以实现哪些模型。
那我们直接来看spare acxcess的技术架构图,我把它放在了文稿里。
你会发现它其实就是我们用具体的技术选型,把上节课的深度学习推荐系统架构图给填上而得到的。
所以总体来说呢,spare rexes就是深度学习推荐系统架构的一个具体实现。
我把它的技术点和工具都总结在了一张图表上,放到了文稿里。
你可以看到一共分为三个模块,分别是数据模型和前端。
其中每个部分都用业界推荐相统的主流技术。
比如数据部分,我们会用spark flink进行样本和特征的处理模型部分,我们会使用TNRF low训练深度神经网络y站deep PNN的模型。
我想啊你在看到这么多技术点和技术平台之后,肯定想问我们的课程能把它们都讲完讲透吗?这是个好问题,我也有必要在这里讲清楚。
其实推荐系统是一个应用属性很强的领域。
想把推荐系统学好,我们就必须去学习各式各样相关的平台技术。
所以我们这门课的设计面也非常广,但你不用因为要学习这么多的技术而感到惊慌。
因为我们没有必要去探究每个平台内部的原理优化的方法,我们把自己当做一个使用者就好。
举个例子你就明白了,我们处理数据需要用到spark,但我们有必要成为spark的专家吗?其实不用,因为即使你已经走上了工作岗位,也有平台架构部的同事能够提供spark很多技术知识。
所以学习这门课程,我们大可抱着一个使用者,而不是开发者维护者的心态去使用不同的技术平台。
当然,如果你想成为某个细分方向的专家,比如spark专家、flink的专家等等,我也鼓励你去进行深入的学习。
总而言之,我希望你能够通过sparrisis认识到主流深度学习推荐系统都使用了哪些技术,让自己有一个全面的认识,建立自己的知识广度。
如果还想深入钻研某个方向,也可以由此开始努力成为一个领域的专家。
好了,今天的内容讲完了,我们来做一个总结吧。
这堂课我带你熟悉了我们要实现的推荐系统。
Spell rexes它是我们深度学习推荐系统、这门课的落地项目和实践范例,以望有这个真实可用的推荐系统作为支撑。
这门课可以同时兼顾概念,讲解和代码实战,也让我们接下来的共同合作能够更好从开篇词到这一课。
我们从推荐系统要解决的核心问题,生发出深度学习推荐系统的技术架构,再让技术架构实实在在的落地到spell rexes这个开源项目上。
我想你已经可以感受到架构篇的学习过程,其实就是一个从抽象到具体,从形而上到形而下的过程。
那在形成了这门课程的架架构,接接下我们将会一起深入到技术细节以及深深学习的实实践中。
那在形体出深度学习浪潮之巅的推荐系统知识,期待继续与你同行。
学完这门课之后,你可以思考两个问题。
第一个问题,当你把spir XXX在自己的电脑上安装运行起来之后,对照着上节课的深度学习推荐系统架构图。
你能试着说出每个模块的代码属于架构图中的哪一部分吗?第二个问题,你觉得对于电影推荐系统来说,什么数据对于用户生成个性化的推荐结果最有帮助。
好了,快按照这节课的方法把spiracx运行起来吧。
课后的两个问题也并不困难,相信你肯定可以回答出来,今天就讲到这里,属们下节课见。