探究余弦距离
《百面机器学习》笔记
余弦相似度可以作分析两个特征向量之间的相似性的一种度量指标。
由点积 a ∗ b = ∣ ∣ a ∣ ∣ ∗ ∣ ∣ b ∣ ∣ cos θ a*b=||a|| * ||b|| \cos\theta a∗b=∣∣a∣∣∗∣∣b∣∣cosθ可知两个向量的夹角的余弦值为
cos θ = a b ∣ ∣ a ∣ ∣ 2 ∣ ∣ b ∣ ∣ 2 \cos\theta=\frac{ab}{||a||_2||b||_2} cosθ=∣∣a∣∣2∣∣b∣∣2ab
因此余弦相似度的取值范围为 [ − 1 , 1 ] [-1, 1] [−1,1] 相同的相似度为1。
而余弦距离 d i s t ( A , B ) = 1 − cos θ dist(A,B)=1-\cos\theta dist(A,B)=1−cosθ, 因此余弦距离的取值范围为 [ 0 , 2 ] [0, 2] [0,2],距离等于0则说明两个向量是相等的。
向量归一化后的欧式距离与余弦距离的关系
向量归一化可得
∣
∣
A
∣
∣
2
=
1
,
∣
∣
B
∣
∣
2
=
1
||A||_2=1, ||B||_2=1
∣∣A∣∣2=1,∣∣B∣∣2=1, 因此余弦距离则为:
d
i
s
t
(
A
,
B
)
=
1
−
A
B
dist(A, B)=1-AB
dist(A,B)=1−AB
归一化后的欧氏距离为
∣
∣
A
−
B
∣
∣
2
=
∣
∣
A
∣
∣
2
2
+
∣
∣
B
∣
∣
2
2
−
2
A
B
=
2
−
2
A
B
=
2
(
1
−
A
B
)
||A-B||^2=||A||_2^2+||B||_2^2-2AB=2-2AB=2(1-AB)
∣∣A−B∣∣2=∣∣A∣∣22+∣∣B∣∣22−2AB=2−2AB=2(1−AB)
即:欧氏距离
∣
∣
A
−
B
∣
∣
=
2
(
1
−
A
B
)
=
2
(
1
−
d
i
s
t
(
A
,
B
)
)
||A-B||=\sqrt{2(1-AB)}=\sqrt{2(1-dist(A,B))}
∣∣A−B∣∣=2(1−AB)=2(1−dist(A,B))
这就说明了,向量归一化后,欧氏距离与余弦距离存在单调关系。
余弦距离不是一个严格定义的距离
根据数学上的定义,在一个集合中,如果一对元素均可确定一个实数,使得三条距离公式(非负性,对称性,三角不等式)成立,则该实数可称为这对元素之间的距离。
1.非负性
由上面的余弦距离可以知道,余弦距离的取值范围为
[
0
,
2
]
[0, 2]
[0,2],这就满足了非负性的性质。
2.对称性
d
i
s
t
(
A
,
B
)
=
1
−
cos
θ
=
∣
∣
A
∣
∣
2
∣
∣
B
∣
∣
2
−
A
B
∣
∣
A
∣
∣
2
∣
∣
B
∣
∣
2
=
∣
∣
B
∣
∣
2
∣
∣
A
∣
∣
2
−
B
A
∣
∣
B
∣
∣
2
∣
∣
A
∣
∣
2
=
d
i
s
t
(
B
,
A
)
dist(A, B)=1-\cos\theta \\\\\\\\\\ = \frac{||A||_2||B||_2 - AB}{||A||_2||B||_2} \\\\\\\\\\ = \frac{||B||_2||A||_2 - BA}{||B||_2||A||_2} \\\\\\\\\\ = dist(B, A)
dist(A,B)=1−cosθ=∣∣A∣∣2∣∣B∣∣2∣∣A∣∣2∣∣B∣∣2−AB=∣∣B∣∣2∣∣A∣∣2∣∣B∣∣2∣∣A∣∣2−BA=dist(B,A)
由于
d
i
s
t
(
A
,
B
)
=
d
i
s
t
(
B
,
A
)
dist(A, B)=dist(B, A)
dist(A,B)=dist(B,A),因此满足对称性。
3.三角不等式
例子:
A
=
(
1
,
0
)
,
B
=
(
1
,
1
)
,
C
=
(
0
,
1
)
A=(1, 0), B=(1, 1), C=(0,1)
A=(1,0),B=(1,1),C=(0,1),则有
d
i
s
t
(
A
,
B
)
=
1
−
2
2
dist(A,B)=1-\frac{\sqrt{2}}{2}
dist(A,B)=1−22
d
i
s
t
(
B
,
C
)
=
1
−
2
2
dist(B,C)=1-\frac{\sqrt{2}}{2}
dist(B,C)=1−22
d
i
s
t
(
A
,
C
)
=
1
dist(A,C)=1
dist(A,C)=1
因此,
d
i
s
t
(
A
,
B
)
+
d
i
s
t
(
B
,
C
)
=
2
−
2
<
1
=
d
i
s
t
(
A
,
C
)
dist(A,B)+dist(B,C)=2-\sqrt{2}<1=dist(A,C)
dist(A,B)+dist(B,C)=2−2<1=dist(A,C)。
因此,余弦距离是不满足三角不等式的性质的。
总结
余弦距离不是一个严格定义的距离,但是却可以很有效的体现特征向量方向上的相对差异。