物品流行度
标识多少用户同物品发生关系
相似度
衡量用户或者物品的距离或者相似度
i) 余弦相似度,其实就是归一化后的点积结果,
ii) 皮尔逊相关系数是去中心化&归一化的点积结果
iii) 修正余弦相似度,也是去中心化&归一化的点积结果,与皮尔逊的差别就在于去中心化的差异
-
普通余弦相似度
用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小的度量。值域为[-1, 1]: 1代表夹角为0°, 完全重叠/完全相似; -1代表夹角为180°, 完全相反方向/毫不相似。
余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。
2维图.gif
向量A,B的夹角的余弦计算如下:
余弦相似度.gif
扩展,向量A,B为多维(n维),则夹角的余弦计算如下:
余弦相似度_n维.gif
-
皮尔逊系数
余弦相似度在维度值缺失情况下的一种改进,如:
A = (1, 2, 4)
B=(3, -1, null),
那么这两个向量由于B中第三个维度有null, 无法进行计算。
皮尔逊相关系数的思路是, 我把这些null的维度都填上0, 然后让所有其他维度减去这个向量各维度的平均值, 这样的操作叫作中心化. 中心化之后所有维度的平均值就是0了, 也满足进行余弦计算的要求. 然后再进行我们的余弦计算得到结果. 这样先中心化再余弦计得到的相关系数叫作皮尔逊相关系数。
计算公式:
皮尔逊相关系数.jpg分子部分: 每个向量的每个数字要先减掉向量各个数字的平均值, 这就是在中心化。
分母部分: 两个根号式子就是在做取模运算, 里面的所有的 r 也要减掉平均值, 其实也就是在做中心化。 -
修正的余弦相似度
解决余弦相似度仅考虑向量维度方向上的相似而没考虑到各个维度的量纲的差异性,所以在计算相似度的时候,做了每个维度减去均值的修正操作。
同皮尔逊系数差异:
a.) 修正cosine考虑的是对item i打过分的每个user u,其打分的均值,
b.) Pearson考虑的是每个item i 的被打分的均值
计算公式如下:
修正的余弦相似度.jpg
预测准确度
对于测试集中的一个用户u和物品i,令rui是用户u对物品i的实际评分,而rui1 是推荐算法给出的预测评分
-
均方根误差(RMSE)
RMSE.gif
-
平均绝对误差(MAE)
MAE.gif
协同过滤算法
-
基于用户(UserCF)
令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过正反馈的物品集合
userCF_余弦相似度计算.JPG
e.g:
userCF_余弦相似度计算_EG.JPG
相似度算法改进User-IIF算法:
通过惩罚了用户u和用户v共同兴趣列表中热门物品对他们相似度的影响。
userCF_IIF.JPG
-
基于物品(ItemCF)
分母|N(i)|是喜欢物品i的用户数,而分子 N(i),N( j) 是同时喜欢物品i和物品j的用户数。因此,公式可以理解为喜欢物品i的用户中有多少比例的用户也喜欢物品j。
itemCF_余弦相似度计算.JPG
该公式会造成任何物品都会和热门的物品有很大的相似度,为了避免推荐出热门的物品,可以用下面的公式,惩罚了物品j的权重,减轻了热门物品会和很多物品相似的可能性:
itemCF_余弦相似度计算_改进.JPG
相似度算法改进Item-IIF算法:
活跃用户对物品相似度的贡献应该小于不活跃的用户,增加IUF参数来修正物品相似度,N(u):用户U的活跃度
itemCF_IUF.JPG
网友评论