Spark---ALS推荐算法

推荐算法介绍

算法 说明
基于关系型规则的推荐 1、消费者购买产品A,那么他有多大机会购买产品B
2、购物车分析(啤酒和尿布)
基于内容的推荐 1、分析网页内容自动分类,再将用户自动分类
2、将新进已分类的网页推荐给对该群感兴趣的用户
人口统计式的推荐 1、将用户以个人属性(性别、年龄、教育背景、居住地、语言)作为分类的指标
2、以此类作为推荐的基础
协同过滤式的推荐 1、通过观察所有用户对产品的评分来推断用户的喜好
2、找出对产品评分相近的其他用户、他们喜欢的产品当前用户多半也喜欢

协同过滤式推荐的优缺点

优点 缺点
1、可以达到个性化推荐
2、不需要内容分析
3、可以发现用户新的兴趣点
4、自动化程度高
1、冷启动问题:如果没有历史数据就没办法分析
2、新用户问题:新用户没有评分,就不知道他的喜好

ALS推荐算法的介绍

Spark MLlib支持的ALS推荐算法式机器学习的协同过滤式推荐算法。机器学习的协同过滤式推荐算法通过观察所有用户给产品的评分来推断每个用户的喜好,并向用户推荐合适的产品。

  • 用户对产品项目的评分

  • 显式评分(Explicit Rating)
    网站上的设计经常会请用户对某个产品进行评分,例如1-5颗星,对应评分表如下所示:

Item A Item B Item C Item D Item E
User 1 2 1 5
User 2 1 3 1 1
User 3 3 4
User 4 2 2 1 2
User 5 1 1 1 4 1
  • 隐式评分(Implicit Rating)
    有时在网站的设计上并不会请用户对某个产品进行评分,但是会记录用户是否选择了某个产品。如果选择了某个产品,就代表用户可能对该产品感兴趣,但是我们不知道评分为几颗星,这种方式为隐式评分。(1代表用户对该项产品感兴趣)
Item A Item B Item C Item D Item E
User 1 1 1 1
User 2 1 1 1 1
User 3 1 1
User 4 1 1 1 1
User 5 1 1 1 1 1

相似性推荐算法就是找出用户喜好的相同。例如,User 1有兴趣的项目是(A,B,C), User 2 有兴趣的项目是(A,B,C,D)。两者相差只有一个D。因此,可以将D推荐给User 1。

  • 稀疏矩阵(Sparse Matrix)的问题

当用户和项目数很多时,会存在大量的空白,这称为稀疏矩阵。
在这里插入图片描述

  • 矩阵分解(Matrix Factorization)

将原有的稀疏矩阵进行矩阵分解。
将原本矩阵A(m*n)分解成X(m*rank)矩阵与Y(rank*n)矩阵,而A大致等于X*Y。
矩阵分解

数据下载

电影数据集下载
本案例选择100K数据作为训练数据。Ubuntu中下载并解压数据集。

# 创建并进入存放数据集的文件夹
$ mkdir -<
  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值