推荐系统 -- 数据挖掘

本文深入探讨了推荐系统的重要性和应用场景,特别是协同过滤算法的应用。详细介绍了基于商品的协同过滤(IBCF)、Slope One算法以及矩阵分解(Matrix Factorization)的原理、实现步骤和优缺点。通过比较不同算法的预测准确性,展示了推荐系统评估指标的多样性,包括准确率、覆盖率和多样性等。
摘要由CSDN通过智能技术生成

作者:林子
链接:https://blog.csdn.net/Leoch007/article/details/80578463
欢迎转载,记得注明出处


推荐系统

推荐系统作为数据挖掘领域的一个重要应用,主要是为了解决信息过载和用户无明确需要的问题。其基本任务是联系用户和商品,一方面能帮助用户发现他可能感兴趣的商品或信息,另一方面也能将商品或者信息展示给对其感兴趣的用户面前。

目前,推荐系统已经应用在了多个邻域中,成为我们生活的一部分:

  • 音乐、电影的推荐
  • 电子商务中商品推荐
  • 个性化阅读(新闻消息)
  • 社交网络好友推荐、朋友圈推荐
  • 基于位置的服务推荐

而常见的推荐算法主要可以分为三大类:

  • 基于内容的推荐算法 Content based
  • 基于协同过滤的推荐算法 Collaborative Filtering based
  • 基于隐向量的推荐算法 Latent Factor based

而以下要实现的三种推荐算法都可认为是属于协同过滤的范畴。

IBCF
  1. 算法解析

    IBCF(Item Based Collaborative Filtering)基于商品的协同过滤,是较为常见也较为常用的CF协同过滤算法,其能够有效地利用用户-商品评分的信息,却也会面临数据稀疏性问题和冷启动问题。

    IBCF的主要思想是1)找到商品和商品之间的相似性、关联性,2)给用户推荐与其喜欢的商品最为相似的商品。具体地,前者商品之间相似性的计算常见的主要有以下三种:

    • 余弦相似度: sim(i,j)=i⃗ j⃗ i2j2 s i m ( i , j ) = i → ⋅ j → ‖ i ‖ 2 ∗ ‖ j ‖ 2
    • 皮尔逊相关系数: sim(i,j)=uU(Ru,iRi¯)(Ru,jRj¯)uU(Ru,iRi¯)2uU(Ru,jRj¯)2 s i m ( i , j ) = ∑ u ∈ U ( R u , i − R i ¯ ) ( R u , j − R j ¯ ) ∑ u ∈ U ( R u , i − R i ¯ ) 2 ∑ u ∈ U ( R u , j − R j ¯ ) 2
    • 余弦适应性相似度: sim(i,j)=uU(Ru,iRu¯)(Ru,jRu¯)uU(Ru,iRu¯)2uU(Ru,jRu¯)2 s i m ( i , j ) = ∑ u ∈ U ( R u , i − R u ¯ ) ( R u , j − R u ¯ ) ∑ u ∈ U ( R u , i − R u ¯ ) 2 ∑ u ∈ U ( R u , j − R u ¯ ) 2

    对比可知,余弦相似度计算时对于用户未同时评分的商品较难处理,赋予任何值都显得不太合理,而余弦适应性相似度和皮尔逊相关系数就解决了这个问题,它们只考虑被同一用户同时评分了的i、j商品,区别在于,余弦适应性相似度通过减去用户评分的均值消去用户评分的偏好,而皮尔逊相关系数减去了商品分数的均值消去了商品本身的分值大小。

    IBCF接着便要给用户推荐与其喜欢商品最为相似的商品,切确地说,对于用户未评分过的商品,我们要在0-5分的评分值中预测出用户会给这些商品打多少分。主要基于下面这个计算法则:

    rxi=jN(i)sijrxjjN(i)sij r x i = ∑ j ∈ N ( i ) s i j ⋅ r x j ∑ j ∈ N ( i ) s i j

    其中, rxi r x i 代表用户x给商品i的评分,而

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值