<五>、简单分析基于物品的 CF(Item CF)推荐算法

本文介绍了基于物品的协同过滤推荐算法原理与实现过程。通过计算物品间的相似度,并结合用户的历史行为,为用户生成个性化推荐列表。以Mahout的实际案例进行详细解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:https://www.ibm.com/developerworks/cn/web/1103_zhaoct_recommstudy2/

           http://blog.fens.me/mahout-recommendation-api/

一、基本原理

基于物品的 CF 的原理和基于用户的 CF 类似,只是在计算邻居时采用物品本身,而不是从用户的角度,即基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。图 3 给出了一个例子,对于物品 A,根据所有用户的历史偏好,喜欢物品 A 的用户都喜欢物品 C,得出物品 A 和物品 C 比较相似,而用户 C 喜欢物品 A,那么可以推断出用户 C 可能也喜欢物品 C。

图 3.基于物品的 CF 的基本原理
图 3 基于物品的 CF 的基本原理

基于用户对物品的偏好找到相似的物品,然后根据用户的历史偏好,推荐相似的物品给他。

从计算的角度看,就是将所有用户对某个物品的偏好作为一个向量来计算物品之间的相似度,得到物品的相似物品后,根据用户历史的偏好预测当前用户还没有表示偏好的物品,计算得到一个排序的物品列表作为推荐。
上图给出了一个例子,对于物品A,根据所有用户的历史偏好,喜欢物品A 的用户都喜欢物品C,得出物品A 和物品C 比较相似,而用户C 喜欢物品A,那么可以推断出用户C 可能也喜欢物品C。

二、算法实现

    首先计算物品之间的相似度,然后根据物品的相似度和用户的历史行为给用户生成推荐列表

步骤

1. 建立物品的同现矩阵
2. 建立用户对物品的评分矩阵
3. 矩阵计算推荐结果

拿Mahout In Action中的案例说明

测试数据:

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.5
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

数据说明:用户ID,物品ID,评分

转化为矩阵:



步骤1:建立物品的同现矩阵
按用户分组,找到每个用户所选的物品,单独出现计数及两两一组计数。即统计任一两个物品同时被评分的人的个数,首行首列和对角线值相同代表物品单独出现的次数,例如对于101商品1、2、3、4、5用户都有评分即其本身出现了5次所有(101,101)为5,(101,102)代表同时对101和102评分的用户个数即1、2、5号用户共三个人所以(101,102)为3.



步骤2:建立用户对物品的评分矩阵



对于3号这个用户就是标黄了的


步骤3:矩阵计算推荐结果 其中对3号用户的计算为同现矩阵与3号用户对物品的评分矩阵相乘



对于3用户推荐其没有评分的的102、103、106中的103,103的26.5值最高,和计算结果一致

1 [104:1.280239,106:1.1462644,105:1.0653841,107:0.33333334]
2 [106:1.560478,105:1.4795978,107:0.69935876]
3 [103:1.2475469,106:1.1944525,102:1.1462644]
4 [102:1.6462644,105:1.5277859,107:0.69935876]
5 [107:1.1993587]


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值