Netflix-Recommender-with-Spark
Scala
Scala
共20个文件
png: 13
sbt: 2
scala: 2
gitignore: 1
pdf: 1
md: 1
基于Apache Spark的Netflix电影的离线与实时推荐系统
基于Spark的Netflix Prize电影推荐系统(包括离线推荐与实时推荐)
数据集:我的百度云分享
离线推荐
基于Spark MLlib自带的ALS最小二乘法矩阵分解算法,比较简单,文档也比较多,就不详细说了:-D。。。
选择的迭代次数iterations=5,物品、用户特征个数K=50
使用了RMSE方法评价推荐精度,结果为0.5757
不同iterations、K值组合下,RMSE值表现
实时推荐
实时推荐算法设计
设计的实时算法的大体思想是:
当用户u对电影p进行了评分,将触发一次对u的推荐结果的更新。由于用户u对电影p评分,对于用户u来说,他与p最相似的电影们之间的推荐强度将发生变化,所以选取与电影p最相似的K个电影作为候选电影。
每个候选电影按照“推荐优先级”这一权重作为衡量这个电影被推荐给用户u的优先级。
这些电影将根据用户u最近的若干评分计算出各自对用户u的推荐优先级,然后与上次对用户u的实时推荐结果的进行基于推荐优先级的合并、替换得到更新后的推荐结果。
注意:由于Netflix Prize数据电影间相似度无法直接计算,这里利用ALS算法的物品矩阵进行cos计算得到各个电影间相似度,详情见Doc下文档
具体算法设计实现文档在目录Doc下
实时推荐延迟测试
下面的数据结果分别是瞬间产生1000、5000、10000、30000、50000个评分数据情况下实时推荐系统的响应时间表现
batchDuration选择了2s
将以上这些测试结果汇总对比如图
保持一定的速度逐渐产生大量评分时实时推荐系统的响应时间表现
a.速度为500个数据量每秒时
横坐标没有数学意义,而是作为每个评分的标识;纵坐标表示了对应横坐标上的评分的实时推荐响应时间,单位为秒。在每秒产生500个评分数据的速率下,实时推荐系统性能良好,最慢的实时推荐也在6s内完成。
b.速度为1000个数据量每秒时
横纵坐标意义同上。从图中可以看到,在每秒产生1000个评分数据的速率下,实时推荐系统性能良好,最慢的实时推荐也在6s内完成。与每秒500个评分的速率下实时表现差不多。
c.速度为1500个数据量每秒时
横纵坐标意义同上。在每秒产生1500个评分数据的速率下,实时推荐系统性能良好,最慢的实时推荐也在5s内完成。与每秒500、1000个评分的速率下实时表现差不多。
d.速度为2000个数据量每秒时
横纵坐标意义同上。横纵坐标意义同上。在每秒产生1500个评分数据的速率下,实时推荐系统性能良好,最慢的实时推荐也在5s内完成。与每秒500、1000、1500个评分的速率下实时表现差不多。
e.速度为2500个数据量每秒时
横纵坐标意义同上。在每秒产生2500个评分数据的速率下,实时推荐系统随着时间推移性能开始下降,这是由于数据堆积产生的问题:当新数据到来时,还有旧数据没有处理完成,造成新数据堆积等待处理,使得被堆积的数据实时响应时间增大。可以看到,在1分钟内实时推荐响应时间逐渐升至20s。可以预见,2500个评分数据/s的速率保持时间越长,实时推荐响应时间越慢。
f.速度为3000个数据量每秒时
项目结构
alsBatchRecommender.scala: ALS离线推荐,以及计算电影间相似度
streamingRecommender.scala: 实时推荐
https://gitee.com/robei/Netflix-Recommender-with-Spark
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
项目概述:基于Apache Spark的Netflix电影推荐系统,采用Scala为主要编程语言,实现了离线和实时推荐功能。该项目包含20个文件,其中包含13个PNG格式的图像文件用于数据可视化,2个SBT构建配置文件,2个Scala源代码文件,1个Git忽略配置文件,1个PDF文档以及1个Markdown文件用于项目说明。该系统不仅优化了用户体验,还提高了推荐算法的效率和准确性。
资源推荐
资源详情
资源评论
收起资源包目录
upload.zip (21个子文件)
src
main
scala
org
pact518
alsBatchRecommender.scala 4KB
streamingRecommender.scala 10KB
Doc
实时推荐算法文档.pdf 386KB
build.sbt 738B
Pictures
10.png 40KB
9.png 37KB
3.png 24KB
12.png 41KB
1.png 68KB
11.png 40KB
13.png 44KB
6.png 32KB
5.png 30KB
4.png 28KB
8.png 33KB
7.png 11KB
2.png 31KB
.gitmodules 0B
.gitignore 47B
readme.txt 4KB
project
assembly.sbt 188B
共 21 条
- 1
资源评论
沐知全栈开发
- 粉丝: 4773
- 资源: 3372
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计项目源码-使用Matlab基于PSO工具箱的函数寻优算法实现.zip
- libusb源码,libusb是一个跨平台的用户空间USB库
- 独栋别墅图纸CAD图纸D025-两层-10.72&06.36米-施工图.dwg
- 甄嬛传后宫大合影(闲的没事....)
- SAP GUI for Windows 8.00 patch 7 64Bit
- 毕业设计项目源码-使用Matlab基于动态粒子群算法的动态环境寻优算法.zip
- 华为云会议安装包适配华为擎云L410 -1060 ARM架构
- 清空redis缓存脚本指令
- Keithley6517静电计测试软件,支持24通道切换,DAQ高速采集
- STM8S微控制器-寄存器操作指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功