推荐系统之协同过滤 - Blog3

今天也要加油鸭~

  • 这是一份总结的学习笔记
  • 路漫漫其修远兮,吾将上下而求索
  • 可阅读可评论可分享可转载,希望向优秀的人学习

协同过滤推荐算法

通过对用户历史行为数据的挖掘发现用户的偏好,基于不同的偏好对用户进行群组划分并推荐品味相似的商品。

1、基于用户的协同过滤算法(User-based)

通过用户历史行为数据对商品或者内容的喜欢(如商品的购买,收藏,内容评论或分享),对于这些喜好进行度量和打分。根据不同用户对相同商品或内容的态度或偏好程度计算用户之间的关系。在有相同喜好的用户间进行商品推荐。

例子: 用户A喜欢物品a,用户B喜欢物品a、b、c,用户C喜欢a和c,那么认为用户A与用户B和C相似,因为他们都喜欢a,而喜欢a的用户同时也喜欢c,所以把c推荐给用户A。有一定的数据积累(冷启动问题)。

根据上述基本原理,将基于用户的协同过滤推荐算法拆分为两个步骤:

  • 找到与目标用户兴趣相似的用户集合;
  • 找到这个集合中用户喜欢的、并且目标用户没有听说过的物品推荐给目标用户。
(1)寻找相似用户

1、 欧几里得距离:通过计算两个用户在散点图中的距离来判断不同的用户是否有相同的偏好
欧几里得
2、 皮尔逊相似系数-评分数据不规范时:结果是一个在-1与1之间的系数。该系数用来说明两个用户间联系的强弱程度(系数越大越相关)
皮尔逊

(2)为相似的用户推荐物品

1、为A用户推荐商品—推荐B/C用户的商品且A未浏览或购买过
2、加权排序推荐—对不同的商品的评分进行相似度加权,按结果排序进行推荐

2、基于物品的协同过滤算法(item-based)

通过计算不同用户对不同物品的评分获得物品间的关系。基于物品间的关系对用户进行相似物品的推荐。这里的评分代表用户对商品的态度和偏好。

例子:如喜欢物品A的用户都喜欢物品C,那么可以知道物品A与物品C的相似度很高,而用户C喜欢物品A,那么可以推断出用户C也可能喜欢物品C。
ItemBased
如图,在CF中,用m x n的矩阵表示用户对物品的喜好情况,一般用打分表示用户对物品的喜好程度,分数越高表示越喜欢这个物品,0表示没有买过该物品。图中行表示一个用户,列表示一个物品,Uij表示用户i对物品j的打分情况。CF分为两个过程,一个为预测过程,另一个为推荐过程。预测过程是预测用户对没有购买过的物品的可能打分值,推荐是根据预测阶段的结果推荐用户最可能喜欢的一个或Top-N个物品。

(1)计算物品之间的相似度

·基于余弦相似度计算:
cos
·基于关联相似度计算:两个向量之间的Pearson-r关联度
关联
调整的余弦(Adjusted Cosine)相似度计算:由于基于余弦的相似度计算没有考虑不同用户的打分情况,可能有的用户偏向于给高分,而有的用户偏向于给低分,该方法通过减去用户打分的平均值消除不同用户打分习惯的影响。
Acos
其中 c表示用户u打分的平均值
(2)计算预测值
根据之前算好的物品之间的相似度,接下来对用户未打分的物品进行预测。
1、 加权求和
用对用户u已打分的物品分数进行加权求和,权值为各个物品与物品i的相似度,然后对所有物品相似度的和求平均,计算用户u对物品i打分在这里插入图片描述
2、 回归
通过用线性回归的方式重新估算一个新的 值,运用上面同样的方法进行预测。
在这里插入图片描述
3、代码步骤
1、收集用户的偏好
1)不同行为分组
2)不同分组进行加权计算用户的总喜好
3)数据去噪和归一化
2、找到相似用户(基于用户)或者物品(基于物品)
3、计算相似度并进行排序。根据相似度为用户进行推荐

后续会附上结合电影推荐实现的协同过滤实现。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值