4.3 深度学习理论方法——相似度计算
我们从上一节的内容可以看出,不同目标行之间的属性不同,画出的散点图也是千差万别的。属性不同,对于机器学习来说,就需要一个统一的度量进行计算,即需要对其相似度进行计算。
相似度的计算方法很多,这里选用最常用的两种,即欧几里得相似度和余弦相似度计算。如果读者对此不感兴趣,可以跳过本节继续学习。
4.3.1 基于欧几里得距离的相似度计算
欧几里得距离(Euclidean distance)是最常用计算距离的公式,它用来表示三维空间中两个点的真实距离。
欧几里得相似度计算是一种基于用户之间直线距离的计算方式。在相似度计算中,不同的物品或者用户可以将其定义为不同的坐标点,而特定目标定位坐标原点。使用欧几里得距离计算两个点之间的绝对距离。欧几里得公式距离如下所示。
从中可以看到,作为计算结果的欧式值显示的是两点之间的直线距离,该值的大小表示两个物品或者用户差异性的大小,即用户的相似性如何。两个物品或者用户距离越大,相似度越小;距离越小,则相似度越大。
提示
由于在欧几里得相似度计算中,最终数值的大小与相似度成反比,因此在实际中常常使用欧几里得距离的倒数作为相似度值,即1/d+1作为近似值。
请参看一个常用的用户-物品推荐评分表的例子,如表4-3所示。
表4-3 用户与物品评分对应表
表4-3是3个用户对物品的打分表,如果需要计算用户1和其他用户之间的相似度,通过欧几里得距离公式可以得出:
从上可以看到,用户1和用户2的相似度为1.414,而用户1和用户3的相似度是:
从得到的计算值可以看出,d12分值小于d13的分值,因此可以得到用户2更加相似于用户1。
4.3.2 基于余弦角度的相似度计算
与欧几里得距离相似,余弦相似度也将特定目标(物品或者用户)作为坐标上的点,但不是坐标原点,而是与特定的被计算目标进行夹角计算,具体如图4-7所示。
图4-7 余弦相似度示例
从图4-7可以很明显地看出,两条直线分别从坐标原点触发,引出一定的角度。若两个目标较为相似,则其线段形成的夹角较小。若两个用户不相近,则两条射线形成的夹角较大。因此在使用余弦度量的相似度计算中,可以用夹角的大小来反映目标之间的相似性。余弦相似度的计算如下列公式所示。
余弦值一般在[-1,1]之间,而这个值的大小同时与余弦夹角的大小成正比。如果用余弦相似度计算表4-3中用户1和用户2之间的相似性,结果如下:
而用户1和用户3的相似性结果为:
从计算可得,相对于用户3,用户2与用户1更为相似。
4.3.3 欧几里得相似度与余弦相似度的比较
欧几里得相似度是以目标绝对距离作为衡量的标准,而余弦相似度是以目标差异的大小作为衡量标准,其表述如图4-8所示。
图4-8 欧几里得相似度与余弦相似度
从图4-8可以看出,欧几里得相似度注重目标之间的差异,与目标在空间中的位置直接相关。而余弦相似度是不同目标在空间中的夹角,更加表现在前进趋势上的差异。
欧几里得相似度和余弦相似度具有不同的计算方法和描述特征。一般来说,欧几里得相似度用以表现不同目标的绝对差异性,从而分析目标之间的相似度与差异情况。而余弦相似度更多的是对目标从方向趋势上进行区分,对特定坐标数字不敏感。
提示
举例来说,两个目标在不同的两个用户之间的评分分别是(1,1)和(5,5),这两个评分在表述上是一样的,但是在分析用户相似度时,更多的是使用欧几里得相似度,而不是余弦相似度。余弦相似度更好地区分了用户分离状态。