推荐系统中相似度算法介绍及效果测试
算法,数据挖掘,相似度,推荐系统,大数据2016-08-02
相似度算法主要任务是衡量对象之间的相似程度,是信息检索、推荐系统、数据挖掘等的一个基础性计算。下面重点介绍几种比较常用的相似度算法。
通常假设对象X和Y都具有N维的特征,即
X=(x_1,x_2,…x_n) Y=(y_1,y_2,…y_n)
在推荐场景下,假设用户物品矩阵为:
item1=(0,1,1) item2=(1,0,1)
欧式距离相似度算法需要保证各个维度指标在相同的刻度级别,比如对身高、体重两个单位不同的指标使用欧氏距离可能使结果失效。
并且,欧氏距离适合比较稠密的矩阵。
增量计算说明:
数据稀疏性强,就考虑用夹角余弦相似度算法
缺点:余弦相似度受到向量的平移影响,上式如果将x平移到x+1,余弦值就会改变【即当各个对象的评分指标不一致的时候,余弦相似度不能稳定刻画其相似,这种情况下使用皮尔逊相似度会更好】
计算相对比较复杂,只能应用于带评分的场景,对不同刻度的评分(如一个对象评分集中在4分,另一个集中在3分)衡量相似度时具有良好的效果。在计算相似度时采用了这种方法,近似的可以把最后一个带N的去掉(默认N很大,作为分母几乎趋近于0)。出现一次的计为1,出现多次的统一计为2.
应用于元素值为1或者0的向量。
当计算与A相似对象的相似值的时候, 如A与X,Y之间的相似,则计算公式为
计算结果不是特别准,适用于数据量非常庞大,对若干对象的近似估计
对比前面的余弦相似,余弦相似也可以表示为
这里即为对每一个值的累加时考虑了用户的因素。
效果:能推出更多的商品来,提高召回率