item-based协同过滤算法

基于用户相似性的推荐算法称之为memory-based,基于物品相似性的推荐算法称之为model-based,后者能适应更大规模的数据集,因为一般情况下物品的总量是远小于用户的总量的。

算法对应公式用于计算物品i和物品j之间的相关性:

http://www.grouplens.org/papers/pdf/www10_sarwar.pdf

item-based协同过滤算法

然后基于余弦相似性原理预估用户u对物品i的评分:

item-based协同过滤算法

推荐算法应该尽量基于相关性较高的物品之间进行。


Slope One,通常指一系列协同过滤算法的集合:

http://www.daniel-lemire.com/fr/abstracts/SDM2005.html

一般来说算法分为两步:

1. 计算物品之间rating的偏离量(deviation)

item-based协同过滤算法

分母表示进行rating的人数,分子则表示对于某个人,其对于两件item的rating偏移量,通过上述公式计算出物品i与物品j之间的评级

Slope One算法思想一大优点是更新开销很小。如果有新用户对物品i和物品j重新进行了rating,那么只需要在原有物品i和物品j的rating偏移量上加上新用户的偏移量,最后除以rating总人数+1,就是物品i和物品j的新rating偏移量


2. 使用偏离量进行预测

这里用户(称之为Ben)可能多若干物品都进行了rating,那么预测他对物品i的rating值就需要对上述物品集合对于物品i的偏移量进行综合计算,这里由于偏移量计算的人数集合不一致,所以需要加权。

item-based协同过滤算法

上述公式是具体实现过程。C(j, i)表示对于物品i有多少人进行了rating,这表示权重。












你可能感兴趣的:(item-based协同过滤算法)