- TensorFlow深度学习应用实践
- 王晓华
- 1342字
- 2021-04-02 04:16:27
4.3 深度学习理论方法——相似度计算
我们从上一节的内容可以看出,不同目标行之间的属性不同,画出的散点图也是千差万别的。属性不同,对于机器学习来说,就需要一个统一的度量进行计算,即需要对其相似度进行计算。
相似度的计算方法很多,这里选用最常用的两种,即欧几里得相似度和余弦相似度计算。如果读者对此不感兴趣,可以跳过本节继续学习。
4.3.1 基于欧几里得距离的相似度计算
欧几里得距离(Euclidean distance)是最常用计算距离的公式,它用来表示三维空间中两个点的真实距离。
欧几里得相似度计算是一种基于用户之间直线距离的计算方式。在相似度计算中,不同的物品或者用户可以将其定义为不同的坐标点,而特定目标定位坐标原点。使用欧几里得距离计算两个点之间的绝对距离。欧几里得公式距离如下所示。
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-P66_55063.jpg?sign=1739681220-ykGvoqbkfnHbtsY7HKikbDK9xqLM75sq-0-27ff36da90e6c6a96a47a289e49db06a)
从中可以看到,作为计算结果的欧式值显示的是两点之间的直线距离,该值的大小表示两个物品或者用户差异性的大小,即用户的相似性如何。两个物品或者用户距离越大,相似度越小;距离越小,则相似度越大。
提示
由于在欧几里得相似度计算中,最终数值的大小与相似度成反比,因此在实际中常常使用欧几里得距离的倒数作为相似度值,即1/d+1作为近似值。
请参看一个常用的用户-物品推荐评分表的例子,如表4-3所示。
表4-3 用户与物品评分对应表
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-T66_55065.jpg?sign=1739681220-Mu0KGcMXgx5GJpoXBax8KETtljpIpqxL-0-429b74520877bcf46e92cf5efffce5d9)
表4-3是3个用户对物品的打分表,如果需要计算用户1和其他用户之间的相似度,通过欧几里得距离公式可以得出:
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-P66_55066.jpg?sign=1739681220-dasAS9oUG8TFIam6y4e75BW23FIvSsMv-0-005ccf47ba2417a68d9089b9d1131ded)
从上可以看到,用户1和用户2的相似度为1.414,而用户1和用户3的相似度是:
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-P66_55067.jpg?sign=1739681220-IDvntHdiTWhmcYBagawHoBDoirvf8otY-0-d0d55e30d3a40d73e95147306e418cb6)
从得到的计算值可以看出,d12分值小于d13的分值,因此可以得到用户2更加相似于用户1。
4.3.2 基于余弦角度的相似度计算
与欧几里得距离相似,余弦相似度也将特定目标(物品或者用户)作为坐标上的点,但不是坐标原点,而是与特定的被计算目标进行夹角计算,具体如图4-7所示。
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-P66_3976.jpg?sign=1739681220-31WM16OQufVEl3pSWphFGsvc1AH9oO6r-0-46600b9672c07c00923568512c39ec81)
图4-7 余弦相似度示例
从图4-7可以很明显地看出,两条直线分别从坐标原点触发,引出一定的角度。若两个目标较为相似,则其线段形成的夹角较小。若两个用户不相近,则两条射线形成的夹角较大。因此在使用余弦度量的相似度计算中,可以用夹角的大小来反映目标之间的相似性。余弦相似度的计算如下列公式所示。
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-P67_3990.jpg?sign=1739681220-VdW9Jz0I1j8B6QKn5d0bCLTyW1fY48lh-0-be2c6dae17b58fee65a38b4dd6a9ad0e)
余弦值一般在[-1,1]之间,而这个值的大小同时与余弦夹角的大小成正比。如果用余弦相似度计算表4-3中用户1和用户2之间的相似性,结果如下:
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-P67_55068.jpg?sign=1739681220-SgoxPJxrugjyfbM59Hm92wCguORm2Uip-0-2605629a1dcc8ca87d26ef7490db68e1)
而用户1和用户3的相似性结果为:
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-P67_55069.jpg?sign=1739681220-LdwXiQkU6k4ZN9yzaxGg1FrvPAwnTwZ6-0-26fe82de3f37c4a6f8bf71bafddd966d)
从计算可得,相对于用户3,用户2与用户1更为相似。
4.3.3 欧几里得相似度与余弦相似度的比较
欧几里得相似度是以目标绝对距离作为衡量的标准,而余弦相似度是以目标差异的大小作为衡量标准,其表述如图4-8所示。
![](https://epubservercos.yuewen.com/6A4E2C/15253389604123106/epubprivate/OEBPS/Images/Figure-P67_4037.jpg?sign=1739681220-ULexlUlSXXNaUO9AI8HaOTLV7xCRKV1g-0-aa305e868eec5a736eaba2647c7d0f05)
图4-8 欧几里得相似度与余弦相似度
从图4-8可以看出,欧几里得相似度注重目标之间的差异,与目标在空间中的位置直接相关。而余弦相似度是不同目标在空间中的夹角,更加表现在前进趋势上的差异。
欧几里得相似度和余弦相似度具有不同的计算方法和描述特征。一般来说,欧几里得相似度用以表现不同目标的绝对差异性,从而分析目标之间的相似度与差异情况。而余弦相似度更多的是对目标从方向趋势上进行区分,对特定坐标数字不敏感。
提示
举例来说,两个目标在不同的两个用户之间的评分分别是(1,1)和(5,5),这两个评分在表述上是一样的,但是在分析用户相似度时,更多的是使用欧几里得相似度,而不是余弦相似度。余弦相似度更好地区分了用户分离状态。