基于物品的协同过滤算法

之前的一篇博文里介绍的是基于用户的协同过滤算法http://blog.sina.com.cn/s/blog_dac9ee630102vhmh.html 但是该算法随着用户数目增多的情况下计算用户兴趣相似性矩阵将越来越困难,其运算复杂度空间复杂度的增长和用户的增长接近于平方的关系。所以就出现了基于物品的协同过滤算法(ItemCF:item-based collaborative filteing).但是ItemCF算法并不利用物品的内容属性计算物品的相似性,主要通过分析用户的行为计算物品的相似性。

 

基于物品的协同过滤算法主要分为以下两步

1. 计算物品之间的相似性

2. 根据物品的相似性和用户的历史行为给用户生成推荐列表。

 

计算物品相似性可以用以下公式计算:



基于物品的协同过滤算法
N(i): 喜欢物品 i 的用户数,分子是同时喜欢物品 i 和物品 j 的用户数。可以理解为喜欢物品 i的用户中有多少比例的用户也喜欢物品 j.

也可以利用下面的公式计算:

基于物品的协同过滤算法

在得到物品之间的相似度后,ItemCF通过如下公式计算用户 u 对一个物品 j 的兴趣:


N(u) 用户喜欢的物品的集合,S(j,k)是和物品 j 最相似的 K个物品的集合,w(ji) 是物品 j 和 i 的相似度,r(ui)是用户 u 对物品 i 的兴趣,用户 u 对物品 i 有过行为则 r(ui)=1,反之 r(ui)=0。

但是利用上式计算物品相似性存在一个问题就是用户活跃度高的用户和低的用户对物品的相似度的贡献应不应该一样??JohnS.Breese提出 IUF(Inverse UserFrequence),即用户活跃度对数的参数,认为活跃用户对物品相似性的贡献应小于不活跃的用户,以此来修正物品相似度:

基于物品的协同过滤算法

这个公式只对活跃用户做个一个惩罚,但是实际情况中存在很多过于活跃的用户,将直接忽略物品相似性的计算。

 

再之,在研究中表明将 ItemCF 的相似性矩阵将按最大值进行归一化,可以提高推荐的准确率。

基于物品的协同过滤算法


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值