【推荐系统】 协同过滤

1.0 传统的推荐系统模型

1.1 传统模型演化关系

在这里插入图片描述

2.0 协同过滤

2.1 基本思想

人以类聚,物以群分
在这里插入图片描述

2.2 目标场景

  • 存在共现矩阵的情况下,进行点击率预估、评分预测等等
    在这里插入图片描述

基于人的协同过滤:
假若,Alice和用户2比较相似,而用户2对物品5打了5分,所以Alice也对物品打了5分

基于物的协同过滤:
倘若,物品2和物品5比较相似,Alice对物品2打了3分,所以Alice对物品5也应该打3分

2.3 相似度计算方式

- 杰卡德(Jaccard)相似系数

在这里插入图片描述

- 余弦相似度
在这里插入图片描述

补充:
(1)比较常用,效果也不会太差
(2)局限性:对于【评分数据不规范】的时候,也就是说,存在有的用户喜欢打高分,有的用户喜欢打低分情况的时候,有的用户喜欢乱打分的情况,这时候consine相似度算出来的结果可能就不是那么准确了

- 皮尔逊相关系数
在这里插入图片描述

相比较于余弦相似度,这个有点类似于归一化的操作,
解决了这样的一个问题——》一些用户喜欢打低分,一些用户喜欢打高分

  • 其它的相似度的计算方式

    • 欧式距离
    • 曼哈顿距离
    • 马氏距离
  • 余弦相似度VS欧式距离

    • 为什么在一些场景中要使用余弦相似度而不是欧式距离呢?

    • 总体的来说,欧式距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异余弦相似度强调夹角,欧氏距离强调绝对数值,举例

    • 举例

      • 如果要统计两部剧的用户观看行为,用户A的观看向量(0,1),用户B为(1,0),此时二者的余弦距离很大,而欧式距离很小。我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当用余弦距离。
      • 而当我们分析用户活跃度,以登录次数和平均观看时长作为特征时,余弦距离会认为(1,10)和(10,100)两个用户距离很近,但显然这两个用户活跃度是有着极大差异的。此时我们关注的是数值绝对差异,应当使用欧式距离。

2.4 基于User的协同过滤(UserCF)

当一个用户A需要个性化推荐的时候, 我们可以先找到和他有相似兴趣的其他用户, 然后把那些用户喜欢的, 而用户A没有听说过的物品推荐给A。

2.4.1 举一个例子:

在这里插入图片描述

步骤

  1. 计算Alice与其他用户的相似度

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

  2. 根据相似度用户计算Alice对物品5的最终得分
    1)方式一
    利用【用户相似度】和【相似用户的评价】加权平均获得用户的评价预测
    在这里插入图片描述
    2)方式二
    在这里插入图片描述
    采用方式二进行评分预测得出的结果如下:
    在这里插入图片描述

  3. 根据用户评分对用户进行推荐

    定一个阈值,预测评分超过阈值,即可推荐给用户

2.4.2 缺点

  • 1、数据稀疏性

    • 一个大型的电子商务推荐系统一般有非常多的物品,用户可能买的其中不到1%的物品,不同用户之间买的物品重叠性较低,导致算法无法找到一个用户的邻居,即偏好相似的用户,即使找到了,准确性也可能不会太高。这导致UserCF不适用于那些正反馈获取较
  • 2、用户相似度矩阵维护难度大

    • 每来一个,矩阵就得重新更新一次——复杂度为n^2

    • 在互联网应用场景中,绝大多数产品的用户数都要远大于物品数,因此维护用户相似度矩阵的难度要大很多

    • 基于用户的协同过滤需要维护用户相似度矩阵以便快速的找出Topn相似用户,该矩阵的存储开销非常大,存储空间随着用户数量的增加而增加,不适合用户数据量大的情况使用。

2.4.3 适用场景

  • 常适用于用户少,物品多,时效性较强的场合

  • 例如新闻推荐领域

2.5 基于Item的协同过滤(ItemCF)

ItemCF算法并不利用物品的内容属性计算物品之间的相似度, 主要通过分析用户的行为记录计算物品之间的相似度, 该算法认为, 物品a和物品c具有很大的相似度是因为喜欢物品a的用户大都喜欢物品c。

  • 由于UserCF技术上的两点缺陷,导致很多电商平台并没有采用这种算法,而是采用了ItemCF算法实现最初的推荐系统。

2.5.1 举一个例子

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

在这里插入图片描述

2.5.2 优缺点

优点:

  • 1、Item-based算法的预测结果比User-based算法的质量要高一点。
  • 2、由于Item-based算法可以预先计算好物品的相似度,所以在线的预测性能要比User-based算法的高。

-缺点

  • 1、数据稀疏性

    • 至少有一行有两个1才能计算。即使有,如果行数过少,得出来的就不可靠

    • 适用于电商平台等User数量远远大于Item数量的应用场景

  • 2、物品相似度矩阵维护难度大

    • m个User n个Item m>>n
    • User相似度矩阵:mm
      Item相似度矩阵:n
      n

2.5.3 适用场景

  • 适用于兴趣变化较为稳定的应用,更接近于个性化的推荐,适合物品少,用户多,用户兴趣固定持久,物品更新速度不是太快的场合

  • 比如音乐推荐、电影推荐

2.6 UserCF和ItemCF的优缺点比较

  • 区别
    在这里插入图片描述

  • 共同的缺点

    • 不能彻底解决数据稀疏性的问题(一个评分矩阵中很多空的)

    • 泛化能力弱——> 为了解决这一问题,矩阵分解技术被提出来

    • 无法利用更多的信息

      • 一般仅仅基于用户的行为信息(评价、购买、下载等),而不是依赖于项的任何附加信息或者用户的任何附加信息,比如不依赖物品自身特征、用户年龄、性别等
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值