协同过滤(Collaborative Filtering)扫盲班(5)

Slope One协同过滤算法

Slope One是一个简单高效的协同过滤算法,由 Daniel Lemire 教授在 2005 年提出。

基本概念

用户X,Y和Z都对Item1打了分。 同时用户X,Y还对Item2打了分,用户Z对Item2可能会打多少分呢?

用户 对Item1的评分 对Item2的评分
X 5 3
Y 4 3
Z 4 ?

计算方法:4 – ((5-3) + (4-3))/2 = 2.5,找到对Item1和Item2都打过分的用户,算出rating差的平均值,这样我们就能推测出对Item1打过分的用户Z对Item2的可能的评分,并据此向Z用户推荐新项目。

Slope One的优点

这里我们能看出Slope One算法的一个很大的优点,在只有很少的数据时候也能得到一个相对准确的推荐, 这一点可以解决Cold Start的问题。

另外一种情况

如果100个用户对Item1和Item2的评分差的平均值是2,1000个用户对Item2和Item3的评分差的平均值是-3,那Item1相对Item3的评分情况又是如何?显然这两个rating差的权重是不一样的。因此我们的计算过程是:

  • (100×(Rating 1 to 2) + 1000×(Rating 3 to 2)) / (100 + 1000)
  • (100×2 + 1000×(-3)) / (100 + 1000)
  • -2800/1100
  • 约等于-2.55

也就是说Item1和Item3的评分差的平均值是2.55

其他你可能感兴趣的:

0 Responses to “协同过滤(Collaborative Filtering)扫盲班(5)”


  • No Comments

Leave a Reply