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