协同过滤推荐算法

协同过滤:利用集体智慧,借鉴相关人群的观点进行推荐。
过去兴趣相似的用户在未来的兴趣也会相似;相似的用户会产生相似的历史行为数据。
根据历史行为,产生相似用户,分析出推荐结果。
用一句大白话说,其实也就是小明喜欢A、B,小红喜欢A、B、C,那么就可以推测出来小明也喜欢C,我们就可以给小明推荐C。

协同过滤算法的基本分类

在这里插入图片描述

协同过滤算法的一般步骤

收集数据—>寻找邻域—>计算推荐结果
在这里插入图片描述

收集用户行为数据:

在这里插入图片描述
显示反馈:用户主动地向系统表达其偏好,一般需要用户在消费完项目后进行额外反馈。
隐式反馈:隐含用户对项目偏好的行为数据,是用户在探索或消费项目过程中正常操作。

User-CF基于用户的协同过滤

基本思想:基于用户对项目的历史偏好找到相邻(相似)的用户,将邻居(相似)用户喜欢的项目推荐给当前用户。

用户兴趣相似度的计算

Jaccard公式和余弦相似度公式,这两个公式仅仅是计算用户的兴趣相似度。
在这里插入图片描述
实例计算:(用户相似度)
在这里插入图片描述

兴趣度预测

(1)先求出与用户u最相似的K个用户
(2)
在这里插入图片描述
计算推荐结果:
在这里插入图片描述

基于User-CF的推荐系统

离线预处理:
(1)计算用户之间的相似度
(2)并据此确定每个用户的邻域(K近邻)
在线推荐:
在这里插入图片描述

用户相似度改进IUF

问题:用户A和B都买过《新华字典》;用户C和D都买过《操作系统》,那么哪组用户更相似呢?
显然是买操作系统的那组用户是更相似的,因为新华字典有很多人买,而操作系统是这个专业的。但如果用以上方法计算相似度,两组相似度是一样的,基于这样的弊端,做出了改建。
逆用户频率
基本思想就是:惩罚热门项目;两个用户对冷门项目有过同样行为更能说明他们的兴趣相似。
相似度计算公式得到改进:
在这里插入图片描述

基于用户的缺点

很多用户两两之间,只有很少的共同反馈,而仅有的共同反馈的项目,往往是热门项目,缺乏区分度。
随着用户行为数据的增加,用户间相似度可能变化很快,离线算法难以瞬间更新推荐结果。

基于物品的协同过滤Item-CF

基本思想:基于用户对项目的反馈(偏好),寻找相似(相关)的项目;根据用户的历史反馈(偏好)行为,为他推荐相似的项目。
就是说,我过去喜欢某类商品,将来还是喜欢这类商品。

项目的相似度计算

在这里插入图片描述

兴趣度预测

在这里插入图片描述

基于Item-CF的推荐系统

离线预处理:计算项目之间的相似度,并据此确定每个项目的邻域。
在线推荐
在这里插入图片描述
计算实例
在这里插入图片描述

项目相似度改进

惩罚活跃用户
基本思想:越活跃的用户对项目相似度的贡献越小。
在这里插入图片描述
惩罚热门项目
在这里插入图片描述

基于邻域的评分预测

这个就是计算对物品的评分。

余弦相似度(用户)

在这里插入图片描述

基于User-CF的评分预测

在这里插入图片描述

Pearson相似度(用户)

在这里插入图片描述
在这里插入图片描述

基于用户的或基于项目的评分预测修正

在这里插入图片描述
在这里插入图片描述

基于二部图的CF

传统邻域方法的缺点

范围限制问题:只考虑和用户有过共同评价(或购买)项目的相邻用户
计算空间复杂度较大:需在内存中保存整个用户-项目反馈(评分)集合(矩阵)
数据稀疏/冷启动问题:用户一般只会评价(或购买)少量项目

基于二部图的协同过滤

在这里插入图片描述
激活扩散
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
物质扩散
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
图扩散
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值