借助三维坐标系来看下欧氏距离和余弦相似度的区别
从图上可以看出欧式距离衡量的是空间中各点之间的绝对距离,和点所在的位置坐标(即个体各维度的特征数值)直接相关,距离越小,两向量之间越相似;而余弦相似度衡量的是空间中两向量之间的夹角,体现的是方向上的差异,夹角越小(余弦相似度越大),两向量之间越相似。如果保持A点的位置不变,B点朝原方向延伸,那么这个时候余弦相似度cosθ是保持不变的,因为夹角不变,而A、B两点间的距离显然在发生改变,这就是欧氏距离和余弦相似度的不同之处。
那么欧式距离和余弦相似度的应用场景是什么呢?
欧氏距离能够体现个体数值特征的绝对差异,所以更多的用于需要从维度的数值大小中体现差异的分析,比如使用用户行为作为指标分析用户价值的相似情况(比较不同用户的消费能力),这属于价值度量;而余弦相似度对绝对数值不敏感,更多的用于使用用户对内容的评分来分析用户兴趣的相似程度(用户是否喜欢某商品),这属于定性度量。
基于欧几里得距离的相似度计算
欧几里得距离是常用的计算距离的公式,它表示三维空间的两个点的真实距离。欧几里得相似度计算是一种基于用户之间直线距离的计算方式,在计算时,不同的物品或者用户可以将其定义为不同的坐标点,而特定的目标定位为坐标原点,欧几里得计算两个点之间的距离公式如下:
知道了两个坐标之间的直线距离,欧几里得相似度也就很好计算了,与d成反比,即其相似度公式如下:
从公式可以看出两个物品或者用户之间的距离越大,则其相似度越小,距离越小则相似度越大。
下表用户与物品评分对应表
物品1
物品2
物品3
物品4
用户1
1
1
3
1
用户2
1
2
3
2
用户3
2
2
1
1
下面分别计算用户1和用户2之间的相似度,通过欧几里得距离公式可得:
从计算结果可以看出,d12的分值大于d13的分值,因此可以得出结论,用户2比用户3更与用户1具有相似性。
基于余弦角度相似度计算
与欧几里得距离相似,余弦相似度也特定目标,即物品或者用户作为坐标上的点,但不是坐标原点。基于此与特定的被计算的目标进行夹角计算。
由上图可以看出,如果两个目标较为相似,则其射线形成的夹角较小。如果两个用户不相近,则两条射线形成的夹角较大,因此在使用余弦度量的相似度计算中,可以用夹角的大小来反映目标之间的相似性。计算公式如下:
在上面用户与物品评分对应表中用户1和用户2之间的相似性,结果如下:
而用户1和用户3的相似性结果为:
从计算可得,相对于用户3,用户2与用户1更为相似。