1.欧氏距离(欧几里得距离 Euclidean Distance)
最常见的距离度量,即欧几里得距离。它是一种距离度量,直观解释为连接两点的线段的长度。
公式:
缺点
虽然它是一种常见的距离度量,但欧几里德距离不是尺度不变的,这意味着计算的距离可能会根据要素的单位而发生偏斜。通常,在使用此距离度量之前需要对数据进行归一化。
此外,随着数据维度的增加,欧几里得距离变得越来越没有用,另外高维下距离非常不直观。
用例
低维数据并且向量的大小对于测量很重要时,欧几里德距离效果很好。
2.余弦相似度 Cosine Similarity
余弦相似度经常被用作解决高维欧几里得距离问题。余弦相似度只是两个向量之间夹角的余弦。如果将向量归一化为长度为 1,则它也具有相同的向量内积。
两个方向完全相同的向量的余弦相似度为 1,而两个完全相反的向量的相似度为 -1。请注意,大小并不重要,因为这是方向的度量。
公式:
缺点
余弦相似度的一个主要缺点是不考虑向量的大小,只考虑它们的方向。在实践中,这意味着没有完全考虑值的差异。以推荐系统为例,余弦相似度并没有考虑不同用户之间评分量表的差异。
用例
当我们有高维数据并且向量的大小不重要时,我们经常使用余弦相似度。对于文本分析,当数据由字数表示时,那么它非常常用。例如,当一个词在一个文档中出现的频率高于另一个时,这并不一定意味着一个文档与该词更相关。
3. 向量内积
D ( x , y ) = X Y ˙ D(x, y) = X \dot Y D(x,y)=XY˙
向量的内积,也称点乘,或数量积。对两个向量执行点成运算,就是对这两个向量对应位一一相乘之后求和的操作。
n维向量的内积定义如下:
注意:点乘的结果是一个标量,而不是向量。
4.KL 散度(相对熵)
KL 散度,或者相对熵。衡量两个分布之间相似度。它并不满足对称性,也不满足三角不等式,机器学习中常用。
具体见【KL散度原理与实现】和【面经2.KL散度(相对熵)】
注:本文只介绍我用的距离函数,其他距离函数可参照https://zhuanlan.zhihu.com/p/405934860和https://www.cnblogs.com/belfuture/p/5871452.html