基于物品的协同过滤算法ItemCF

基于item的协同过滤,通过用户对不同item的评分来评测item之间的相似性,基于item之间的相似性做出推荐。简单来讲就是:给用户推荐和他之前喜欢的物品相似的物品。

用例说明:

注:基于物品的协同过滤算法,是目前商用最广泛的推荐算法。

刚开始看这个用例,感觉还是基于用户进行的推荐,用户A,B,C都喜欢物品a,并且用户A,B喜欢物品c,然后就将物品c推荐给用户C。

再回过头来看看基于物品的协同过滤的概念:给用户推荐和他之前喜欢的物品相似的物品。按我的理解和其他用户的喜好并没有什么直接关系;比如用户C喜欢帽子a,再给他推荐个类似的商品帽子b就可以了。

比如:物品a为啤酒,物品c为尿布,符合图例,则向用户C推荐的物品为尿布,因为物品a和物品c相似?,所以就向用户C推荐了此商品。显然这里的相似并不是决对的相同种类或类型的物品。

那物品的相似是怎么计算出来的哪?

Iterm-based的基本思想是预先根据所有用户的历史偏好数据计算物品之间的相似性,然后把与用户喜欢的物品相类似的物品推荐给用户。

这样解释就可以很好的说明上面的疑问了。

当然也可以直接针对不同物品建立相似性关系。计算出不同物品的相似度。

相似度

  当已经对用户行为进行分析得到用户喜好后,我们可以根据用户喜好计算相似用户和物品,然后基于相似用户或者物品进行推荐,这就是最典型的 CF 的两个分支:基于用户的 CF 和基于物品的 CF。这两种方法都需要计算相似度。

  关于相似度的计算,现有的几种基本方法都是基于向量(Vector)的,其实也就是计算两个向量的距离,距离越近相似度越大。在推荐的场景中,在用户 - 物品偏好的二维矩阵中,我们可以将一个用户对所有物品的偏好作为一个向量来计算用户之间的相似度,或者将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度。

上一篇文章中基于用户的协同过滤,建立的用户相似矩阵,此篇文章是建立的物品相似度的矩阵。

同现矩阵(Co-occurrence Matrix): 反应物品关联度的矩阵

生成同现矩阵

数据:user,item,grade

1,101,5.0
1,102,3.0
1,103,2.5
2,101,2.0
2,102,2.5
2,103,5.0
2,104,2.0
3,101,2.0
3,104,4.0
3,105,4.5
3,107,5.0
4,101,5.0
4,103,3.0
4,104,4.5
4,106,4.0
5,101,4.0
5,102,3.0
5,103,2.0
5,104,4.0
5,105,3.5
5,106,4.0

用户1的三个item 101,102,103形成9种组合,相应位置加1.

      [101] [102] [103]
[101]   1     1     1
[102]   1     1     1
[103]   1     1     1     

最终结果:
      [101] [102] [103] [104] [105] [106] [107]
[101]   5     3     4     4     2     2     1
[102]   3     3     3     2     1     1     0
[103]   4     3     4     3     1     2     0
[104]   4     2     3     4     2     2     1
[105]   2     1     1     2     2     1     1
[106]   2     1     2     2     1     2     0
[107]   1     0     0     1     1     0     1

下面内容摘自一论坛:

再谈谈Co-occurrence Matrix(同显矩阵)和User Preference Vector(用户评分向量)相乘得到的这个Recommended Vector(推荐向量)的意义

第一次听完理论直接上这两个东西相乘实现Item Based Cooperative Filtering(基于物品的协同过滤),一下子真没反应过来,下面就个人的理解通俗的解释一下:
ItemBased :基于物品的(区分于基于用户的)体现在同现矩阵,把所有用户对物品打过分的记录都拿过来,形成一个个反应物品关联度的矩阵Co-occurrence Matrix,下面简称C矩阵。
为什么乘以User Preference Vector用户评分向量就是Recommended Vector(推荐向量),这个推荐向量又要怎么用呢?
还是用R的第三项24.5来做一下解释,
R3 的解释: 对于用户 U 商品 103 的可推荐度。
这点很重要,理解这点就是要知道我们这一系列算法过程在做什么(What)。
我把R3也就是R103的计算用公式表示如下:
R3 怎么出来的
从上面可以看到C103i *U i 就是Ui代表用户对i的喜爱度,C103i代表i和103同时出现的次数,i物品和103同时出现得越多C103i越大,用户对i的喜爱度值越大Ui越大,自然R103值就越大,越值得推荐103。
R 向量里面的R101, R104,R105和R107这三项值很大,但是我们可以忽略它们应用用户已经对它们打过分,也就是已经看过这些电影了,可以不比推荐了,对于用户没有看过的电影的几项里面选出最大(或者TopN)对应的电影推荐就可以了,
上面R102,R103,R106里面选一个最大值103,103就是可以推荐的商品了

基于物品的协同过滤算法ItemCF相关推荐

  1. 推荐系统实践(二)----基于物品的协同过滤算法(ItemCF)

      上一篇博客我简单讲了一下基于用户的协同过滤算法,这里我们一起来学习一下另一种:基于物品的协同过滤算法.基于物品的协同过滤算法是目前业界应用最多的算法,亚马逊.Netflix.Hulu.YouTub ...

  2. Hadoop案例之基于物品的协同过滤算法ItemCF

    Hadoop案例之基于物品的协同过滤算法ItemCF 转载自:http://blog.csdn.net/qq1010885678/article/details/50751607?locationNu ...

  3. 使用Spark DataFrame实现基于物品的协同过滤算法(ItemCF)

    简书不支持Markdown Math语法,请移步https://glassywing.github.io/2018/04/10/spark-itemcf/ 简介 当前spark支持的协同过滤算法只有A ...

  4. itemCF matlab算法,基于物品的协同过滤算法(ItemCF)

    物品相似度计算 余弦相似度公式: 其中 , 分别表示对物品 , 喜欢的用户数, 为同时喜欢 和 的人数.我们这里还是使用漫威英雄举例:假设目前共有5个用户: A.B.C.D.E:共有5个漫威英雄人物: ...

  5. ItemCF,基于物品的协同过滤算法

    转载自   ItemCF,基于物品的协同过滤算法 ItemCF:Item Collaboration Filter,基于物品的协同过滤 算法核心思想:给用户推荐那些和他们之前喜欢的物品相似的物品. 比 ...

  6. 推荐算法 itemcf java_推荐系统之基于物品的协同过滤算法(ItemCF)

    推荐系统之基于物品的协同过滤算法(ItemCF) 发布时间:2018-03-04 16:55, 浏览次数:1778 , 标签: ItemCF 推荐系统之基于物品的协同过滤算法(ItemCF) 前端时间 ...

  7. [推荐算法]ItemCF,基于物品的协同过滤算法

     [推荐算法]ItemCF,基于物品的协同过滤算法 标签: ItemCF基于用户的协同过滤算法 2015-03-09 15:11 4144人阅读 评论(1) 收藏 举报 本文章已收录于: 分类: ...

  8. 【推荐系统】基于物品的协同过滤算法

    基于物品的协同过滤算法 目前业界应用最多的算法. 给用户推荐和他们之前喜欢的物品相似的物品. 其主要通过分析用户的行为记录计算物品之间的相似度.物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都 ...

  9. 基于物品的协同过滤推荐算法_《推荐系统实践》3.基于物品的协同过滤算法

    基于物品的协同过滤算法(item-based collaborative filtering,以下简称ItemCF)算法思想:给用户推荐那些和他们之前喜欢的物品相似的物品. 不过,ItemCF算法并不 ...

最新文章

  1. 自定义View 实现软键盘实现搜索
  2. 深度学习(计算机视觉)面试中问题(二)
  3. HDU 2094 产生冠军 (map容器)
  4. DirectX Shader 入门学习
  5. Drools:fireAllRules,fireUntilHalt和Timers内部代码清理的详细说明
  6. 视觉SLAM十四讲学习笔记-第六讲-非线性优化的非线性最小二乘问题
  7. 索尼机器狗Aibo将在美国开售,智能撒娇是最甜的 |每只性格都不同
  8. python独立环境——virtualenv
  9. 已经发车的票还能取出来吗_火车票报销凭证是啥?能不打印吗?官方回应来了...
  10. Answers To The Questions from GiGabyte
  11. 阶段3 2.Spring_01.Spring框架简介_04.spring发展历程
  12. 图书馆占座系统(六)
  13. centos7安装其他源以及安装软件
  14. mysql数据库库推荐书籍
  15. m4a文件怎么转换成mp3?=
  16. 使用阿里云服务来部署云桌面
  17. c#获取当前日期时间
  18. 百度脑图DesktopNaotu
  19. 推荐系统的PMF - 概率矩阵分解和协同过滤
  20. vue版分享微博 分享微信 分享qq |亲测有效|2020年08月13日

热门文章

  1. EasyUI Messager的defaults基本使用
  2. 端口被占用—80端口被占用(结束被占用的端口),恢复端口
  3. linux查看主机厂商,linux下查看主机硬件信息
  4. 《种子的梦想》(顾城 )
  5. 给昨天新买的惠普笔记本拆机加内存和换m.2硬盘
  6. 嵌入式芯片的硬件组成(ARM内核)
  7. UML图和软件设计原则
  8. 住宅防雷接地的选择要求和施工方法
  9. linux程序独占桌面,桌面应用|14个可以提升Linux桌面体验的应用程序
  10. 2.3、CSS样式、盒子模型