教材:《推荐系统 技术、评估及高效算法》

上一小节:推荐系统学习笔记之三——(基于邻域的)协同过滤算法的公式化、标准化

上一小节我们跳过了 用户之间、物品之间 相似度计算的方法,在这一小节,我们详细叙述常见常用的集中相似度计算方法以及 相似度用户(物品)权重的重要性。

目录:   1、相似度

                       ---(1)、cosine(余弦相似度)

                       ---(2)、Pearson Correlation(皮尔逊相关系数)

                       ---(3)、Adjusted Cosine(改良的余弦相似度)

                      ---(4)、Spearman Rank Correlation(斯皮尔曼等级关联)

                 2、权重的重要性

 

相似度

   ML/DM领域常常用到距离和相似度的概念,在kmeans等聚类算法中,一般都是使用曼哈顿距离、欧氏距离等距离公式,这里我们要了解的是另一种——相似度。

  区分一下距离和相似度,在一个高维空间,两个点之间的距离就是距离。而两个向量是否平行、夹角多少,这就是相似度。

1、cosine(余弦相似度)

    我们高中的时候都学过余弦公式: 


    并且知道它的意义:它不在乎两个向量之间的距离,只在乎两个向量之间的角度,角度越小值越大,相似度越高。    

    在协同过滤中,它被用来计算用户的相似度:

                                

 然而在这种情况下存在一个问题,它没有考虑用户u和v的评分均值以及方差之间的差异(也就是我们前一小节的标准化)

 于是Pearson Correlation出场了。

 

2、Pearson Correlation(皮尔逊系数)

  基于用户的PC值计算 用户u和v之间的相似度,

依然代表用户u的所有评分的平均分:     

  同样的,物品i和j之间的相似度计算:

 

3、Adjusted Cosine(改良的余弦相似度)

  在一些基于物品的例子中,用户间评分的方差明显要大于物品间评分的方差,而PC(i,j)更关注于物品间的方差,这时候我们使用更关注用户间方差的Adjusted Cosine能够取得更好的效果。

  

 

4、Spearman Rank Correlation(斯皮尔曼等级关联)

   SRC与PC直接使用评分值来计算不同,它是根据这些评分的排名来进行相似度计算的。

  设

为物品i在用户u的所有评分物品中的排名(评分重复的取中间值),以用户相似度为例:  


  公式体现上唯一的区别,就是k代替了r。一般SRC的效果不如PC。

 

权重的重要性

  当用于计算相似度的评分数据比较少的时候,相似度的精准度就会降低,这是显而易见的事情。

  所以我们提出权重:当只有少量评分用于计算时,就会降低相似度重要性的权重

  给出公式:

  gamma是个超参数,gamma越大,代表要求评分矩阵越宽越稠密。

  在文献中发现,一般gamma>=25会显著得提高预测评分的准确性,到50的时候可能得到最好的结果。当然,具体问题需要交叉验证来确定这个最优参数。