教材:《推荐系统 技术、评估及高效算法》
上一小节:推荐系统学习笔记之三——(基于邻域的)协同过滤算法的公式化、标准化
上一小节我们跳过了 用户之间、物品之间 相似度计算的方法,在这一小节,我们详细叙述常见常用的集中相似度计算方法以及 相似度用户(物品)权重的重要性。
目录: 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的时候可能得到最好的结果。当然,具体问题需要交叉验证来确定这个最优参数。