/sundayMovies

:speak_no_evil: 大数据过滤推荐引擎 包含电影展示和基于Spark的电影推荐引擎

Primary LanguageJava

🎨大数据过滤推荐引擎

项目名称

EasyLooking(电影轻松看)

简介

本项目是基于大数据技术,对用户所点击的电影类型进行分析,通过所得数据帮助用户自动推荐符合用户喜好的电影类型,系统包括电影推荐引擎电影网站(前后端) 两大部分——EasyLooking。

本项目是来自于在2018.3~2018.4期间在东南大学软件学院研究生的实训。

该项目使用Spark通过已经获得到的所有会员电影的评分数据集,来推断每个会员的喜好,并向会员推荐合适的电影,同时也可以将电影推荐给感兴趣的用户,达到个性化的推荐效果,以此来达到增加会员,提高营业的收入的目的。

技术栈

  • Java,Scala
  • Hadoop,Spark ,MySQL
  • SpringMVC,Spring,MyBatis

项目整体架构

一、:zap:电影推荐引擎

开发环境:

  • IntelliJ IDEA
  • Maven

技术栈:

  • Spark+SparkStreaming
  • Scala

架构:

二、:hammer:电影网站

开发环境:

  • IntelliJ IDEA
  • Maven

技术栈:

  • SpringMVC+Spring+MyBatis
  • MySQL

架构:

🍎 效果展示

登陆界面:

主页面:

📝 分析

离线推荐

离线推荐部分采用协同过滤算法(ALS),根据用户的喜好推荐根据电影的相似度推荐两个部分。

实时推荐

利用SparkStreaming+Kafka的架构用流计算的方式来分析数据,其中分析的方法是:

  • 给待评分电影设置的基础优先级
  • 高分电影的奖励因子
  • 低分电影的惩罚因子

评估

利用RMES(均方根误差)的方式来评估推荐的结果。其中包含以下几个影响因子:

  • 迭代次数

  • 正则系数

参与人员

参考资料