基于商品的协同过滤推荐算法与预测评分实践【matlab实现】
正如昨天所介绍的,我们之前介绍了基于用户的协同过滤推荐算法,但是这种算法存在一种重大缺陷,即:
我们计算的用户相似度是历史记录中的“老客户”,这种推荐算法对新注册用户,或者缺少行为记录的用户是极其不友好的,因为无法计算与其相似的用户,因而不能进行个性化推荐,因此,我们从商品的相似度出发,解决用户冷启动问题。


现在简单介绍基于基于商品的协同过滤推荐算法:
基于用户的协同过滤基本思想非常简单,就是找到志同道合的朋友,并把朋友感兴趣的而用户没有接触过的商品推荐给用户。
但是这有一个问题,由于新用户的注册量非常高,基于用户的协同过滤推荐需要计算新用户和之前的用户之间的相似度,这会将数据稀疏,延展性差等问题暴露的非常明显。
所以基于商品的协同过滤方法被提出,相较于用户之间的相似度,商品之间的相似度相对是静态的,当新用户注册并有了一些自己感兴趣的商品信息时,无需再进行计算,直接根据之前存储的商品之间的相似度,将用户可能感兴趣的商品推荐给用户。

可以看出基于商品的协同过滤推荐算法也是分为两步,第一步是根据数据库中已有的信息求出商品的相似度,第二步是利用求出的商品之间的相似度计算用户对某种商品可能的兴趣程度。
商品之间的相似度可以利用皮尔逊相似度,余弦相似度或是改进的余弦相似度来进行计算。
皮尔逊相似度:

至于数据集,与昨日所采用的的数据集一致
我们要将得到的数据进行预处理,过程与昨日的相同。



由此,我们得到了商品相似度矩阵。

最后进行预测

