文章目录

  • 项目系统设计
  • 项目框架
  • 大数据处理流程
  • 系统模块设计
  • 项目系统架构
  • 系统数据流图
  • 数据源解析
  • 主要数据模型
  • 统计推荐模块
  • 离线推荐模块(基于隐语义模型推荐)
  • ALS推荐模型训练
  • 计算用户推荐列表
  • 计算电影相似度矩阵
  • 基于模型的实时推荐模块
  • 基于内容的推荐
  • 混合推荐--分区混合


项目系统设计

主要内容:

网站本身代码已经做好了,主要做推荐系统

电影推荐系统前端python 电影推荐系统uml图_机器学习

项目框架

电影推荐系统前端python 电影推荐系统uml图_大数据_02

大数据处理流程

电影推荐系统前端python 电影推荐系统uml图_推荐系统_03


详细高清图见ppt“6_电影推荐系统设计”

电影推荐系统前端python 电影推荐系统uml图_推荐系统_04


我们的目标:

实时推荐、离线推荐、热门推荐

有评分+标签

电影推荐系统前端python 电影推荐系统uml图_相似度_05

系统模块设计

电影推荐系统前端python 电影推荐系统uml图_大数据_06

项目系统架构

前端:angularjs

后台:spring

数据库:mongodb

辅助数据库:elasticsearch

缓存数据库:redis

工作调度服务:Azkaban

离线统计服务:spark sql

离散推荐服务:spark MLlib

实时推荐:Flume-ng

消息缓冲服务:kafka

实时推荐服务:spark streaming

电影推荐系统前端python 电影推荐系统uml图_相似度_07

系统数据流图

电影推荐系统前端python 电影推荐系统uml图_大数据_08

数据源解析

movies.csv

电影信息:

电影推荐系统前端python 电影推荐系统uml图_大数据_09

ratings.csv

用户评分信息:

电影推荐系统前端python 电影推荐系统uml图_相似度_10

tags.csv

电影标签信息:

电影推荐系统前端python 电影推荐系统uml图_推荐系统_11

主要数据模型

电影推荐系统前端python 电影推荐系统uml图_相似度_12

统计推荐模块

电影推荐系统前端python 电影推荐系统uml图_机器学习_13


历史热门电影统计

电影推荐系统前端python 电影推荐系统uml图_推荐系统_14


近期热门电影统计

电影推荐系统前端python 电影推荐系统uml图_机器学习_15


电影平均评分统计

电影推荐系统前端python 电影推荐系统uml图_相似度_16


各类别Top10评分电影统计

电影推荐系统前端python 电影推荐系统uml图_电影推荐系统前端python_17

离线推荐模块(基于隐语义模型推荐)

  • 用ALS算法训练隐语义模型
  • 计算用户推荐矩阵
  • 计算电影相似度矩阵

ALS推荐模型训练

ALS.train(trainData,rank,iterations,lambda)

rank:隐藏特征向量维度

iterations:迭代次数

lambda:正则化参数

通过交叉验证进行参数调整

电影推荐系统前端python 电影推荐系统uml图_电影推荐系统前端python_18

计算用户推荐列表

笛卡尔积:相当于两个集合一对一join,外连接

电影推荐系统前端python 电影推荐系统uml图_推荐系统_19

计算电影相似度矩阵

矩阵分解后得到P和Q,P是用户特征矩阵,Q是电影特征矩阵,通过Q矩阵来计算电影相似度

电影推荐系统前端python 电影推荐系统uml图_推荐系统_20


为什么算相似度,不算欧氏距离?

每一个用户的评分标准不同,用户A的3分和用户B的3分的含义不一定一样。值不同,但是方向相同。夹角可以表现方向的差距

存储电影相似度矩阵

电影推荐系统前端python 电影推荐系统uml图_推荐系统_21

基于模型的实时推荐模块

要求:计算速度快,结果不一定特别精确

有预先设计好的推荐模型

电影推荐系统前端python 电影推荐系统uml图_推荐系统_22


推荐优先级计算

要考虑评分,评分反应用户的偏好

备选电影从相似电影里获得

把每一个备选电影单独计算,算一个推荐优先级

incount:最近k个电影的高分个数

recount:最近k个电影的低分个数

lg:增益项和惩罚项

如果最近看的k个电影都是低分电影,那么推荐的电影优先级应该降低。

电影推荐系统前端python 电影推荐系统uml图_机器学习_23


电影推荐系统前端python 电影推荐系统uml图_相似度_24

基于内容的推荐

电影推荐系统前端python 电影推荐系统uml图_相似度_25

混合推荐–分区混合

电影推荐系统前端python 电影推荐系统uml图_相似度_26