UserCF与ItemCF杂想之余弦相似度

来源:互联网 发布:科比2003年总决赛数据 编辑:程序博客网 时间:2024/06/10 12:17

        User-Item矩阵

                              I1      I2      I3      I4     I5
                      U1   4       3       2       1      -
                      U2   4       -        5       3      3
                      U3   1       -        3       4      5
                      U4   3       4       -        ?      4
                      U5   -        -       4        3      5


针对ItemCF,采用余弦相似性如何计算i(i1,i2,i3,i5)对i4的相似度呢?

例如i2与i4的相似度:

   sim(2,4)=(3*1+0*3+0*4+0*3)/(sqrt(3*3)*sqrt(1*1+3*3+4*4+3*3))  ?

   用户2,3,5,未对项目2进行评分,若仍算进去的话,在分子大小不变的情况下,分母增大,这一定程度上减小了相似性;又或者说不应该以0值进行计算,那又应该以何值进行计算呢?难道取用户评分均值?!


  若不考虑进去(其实皮尔逊相似性度量方法考虑的就是共同评分),相似度如下:

sim(2,4)=(3*1)/(sqrt(3*3)*sqrt(1*1))=1   ?

从实际角度看,相似度是1么?


同样,这种情况也存在于UserCF计算余弦相似度的情况下。


对于这个问题有如下几种解释或处理措施:

1、不忽略评分为零的项目,用完整的向量进行计算相似度,至少这代表着此时二者的相似性大小本是如此。

2、为评分为零的项目补充评分,给予一个客观的评价,可以是该项目平均评分,也可以是该用户平均评分。


总结:其实,这个问题(或者不能称为问题了)就是余弦相似度计算面对稀疏矩阵所存在的不足之处。

--------------------------------割-------------------------------

总结2:通过与boss的讨论,得到一个相对可靠、能理解的解释,我们认为是应该将评分为0(未评分)的数据考虑进去。原因:此时,计算的结果偏小,这就是此时的相关性结果,至于以后它们二者的相关性的趋势,我们无需考虑。

0 0
原创粉丝点击