P1_3 推荐系统 (协同过滤算法)

协同过滤算法

协同过滤推荐算法,是最经典、最常用的推荐算法。通过分析用户兴趣,在用户群中找到指定用户的相似用户,综合这些相似用户对某一信息的评价,形成系统关于该指定用户对此信息的喜好程度的预测。

步骤

1.收集用户偏好
2.找到相似的用户或物品
3.计算推荐

思想

通过观察所有用户User给产品Product/Item的评价Rating来判断每个用户的喜好Favorite

功能

1.针对用户来说(User-CF)
推荐哪些电影给用户
2.针对电影来说(Item-CF)
推荐给哪些用户

用户对产品的评分 Rating

1.显式评价
观察电影后,直接评分
滴滴打车后,直接评分
2.隐式评分
网易音乐,听某首歌的次数
音乐的收藏次数
每个网站上浏览次数
网站点击量、视频播放次数
在这里插入图片描述

Spark MLlib中协同过滤推荐算法:ALS算法

Data(User-Product-Rating) → \rightarrow Rating
ALS交替最小二乘法 → \rightarrow ALS
矩阵分解(matrix factorization)模型 → \rightarrow MatrixFactorizationModel
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在ALS算法当中,将用户对产品的评价放在个矩阵中
矩阵的每一行:
每个用户对所有产品的评价
矩阵的每一列
每个产品被所有用户的评价

概念

矩阵Matrix → \rightarrow 向量Vector → \rightarrow 数组Array
稀疏矩阵SparseMatrix
\quad 稀疏向量SpareVector:值为0占50%以上
稠密矩阵DenseMatrix
\quad 稠密向量DenseVector:值为0占50%以下

ALS(交替最小二乘法)算法核心

将用户对产品评价矩阵拆分称两个矩阵
用户因子矩阵和产品因子矩阵
X ( n ∗ m ) = U ( n ∗ k ) ∗ V ( k ∗ m ) X(n*m)=U(n*k)*V(k*m) X(nm)=U(nk)V(km)
首先初始化 U 0 U_0 U0,交替生成 V , U V,U V,U,不断迭代

算法参数

迭代次数(交替次数),特征值K的选择

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值