电影推荐系统(037~039)

Posted Jozky86

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了电影推荐系统(037~039)相关的知识,希望对你有一定的参考价值。

文章目录

项目系统设计

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

项目框架

大数据处理流程


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

我们的目标:
实时推荐、离线推荐、热门推荐
有评分+标签

系统模块设计

项目系统架构

前端:angularjs
后台:spring
数据库:mongodb
辅助数据库:elasticsearch
缓存数据库:redis
工作调度服务:Azkaban
离线统计服务:spark sql
离散推荐服务:spark MLlib
实时推荐:Flume-ng
消息缓冲服务:kafka
实时推荐服务:spark streaming

系统数据流图

数据源解析

movies.csv
电影信息:

ratings.csv
用户评分信息:

tags.csv
电影标签信息:

主要数据模型

统计推荐模块


历史热门电影统计

近期热门电影统计

电影平均评分统计

各类别Top10评分电影统计

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

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

ALS推荐模型训练

ALS.train(trainData,rank,iterations,lambda)
rank:隐藏特征向量维度
iterations:迭代次数
lambda:正则化参数
通过交叉验证进行参数调整

计算用户推荐列表

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

计算电影相似度矩阵

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

为什么算相似度,不算欧氏距离?
每一个用户的评分标准不同,用户A的3分和用户B的3分的含义不一定一样。值不同,但是方向相同。夹角可以表现方向的差距
存储电影相似度矩阵

基于模型的实时推荐模块

要求:计算速度快,结果不一定特别精确
有预先设计好的推荐模型

推荐优先级计算
要考虑评分,评分反应用户的偏好
备选电影从相似电影里获得
把每一个备选电影单独计算,算一个推荐优先级
incount:最近k个电影的高分个数
recount:最近k个电影的低分个数
lg:增益项和惩罚项
如果最近看的k个电影都是低分电影,那么推荐的电影优先级应该降低。

基于内容的推荐

混合推荐–分区混合

以上是关于电影推荐系统(037~039)的主要内容,如果未能解决你的问题,请参考以下文章

大数据技术之_24_电影推荐系统项目_02_Python 基础语法

[机器学习]电影推荐系统设计

推荐系统数据集大列表

受限制玻尔兹曼机(RBM)用于电影推荐小例

Django基于用户画像的电影推荐系统源码(项目源代码)

Django基于用户画像的电影推荐系统源码(项目源代码)