栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【机器学习Q&A】余弦相似度、余弦距离、欧式距离以及机器学习中距离的含义

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【机器学习Q&A】余弦相似度、余弦距离、欧式距离以及机器学习中距离的含义

余弦相似度、余弦距离、欧式距离以及机器学习中距离的含义
  • 问题1:为什么在一些场景中要使用余弦相似度而不是欧氏距离?
  • 问题2:余弦距离是否是一个严格定义的距离?
  • 参考资料

机器学习问题中,通常将特征表示为向量的形式,所以在分析两个特征向量之间的相似性时,常使用 余弦相似度来表示。
余弦相似度的取值范围为[ -1, 1 ],相同的两个向量之间的相似度为1,将1减去余弦相似度即为 余弦距离。因此,余弦距离的取值范围为[0, 2],相同的两个向量余弦距离为0。

问题1:为什么在一些场景中要使用余弦相似度而不是欧氏距离?

对于两个向量A和B, 其余弦相似度定义为 c o s ( A , B ) = A ⋅ B ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 cos(A, B)=frac{Acdot B}{||A||_2||B||_2} cos(A,B)=∣∣A∣∣2​∣∣B∣∣2​A⋅B​,即两个向量夹角的余弦,关注的是向量之间的角度关系,并不关心它们的绝对大小,其取值范围是[-1, 1]。

当一对文本相似度的长度差距很大,但内容相近时,如果使用词频或者词向量作为特征,它们在特征空间中的欧式距离通常很大;而如果使用余弦相似度的话,它们之间的夹角可能很小,因而相似度高。

此外,在文本、图像、视频等领域,研究的对象的特征维度往往很高,余弦相似度在高维情况下依然保持“相同时为1,正交时为0,相反时为-1”的性质,而欧氏距离的数值则受维度的影响,范围不固定,并且含义比较模糊。

在一些场景中,如Word2Vec中,其向量的模长是经过归一化的,此时欧式距离与余弦距离有着单调的关系,即:
∣ ∣ A − B ∣ ∣ 2 = 2 ( 1 − c o s ( A , B ) ) ||A-B||_2=sqrt{2(1-cos(A,B))} ∣∣A−B∣∣2​=2(1−cos(A,B)) ​
其中, ∣ ∣ A − B ∣ ∣ 2 ||A-B||_2 ∣∣A−B∣∣2​表示欧式距离, c o s ( A , B ) cos(A,B) cos(A,B)表示余弦相似度, ( 1 − c o s ( A , B ) ) (1-cos(A,B)) (1−cos(A,B))表示余弦距离。在此场景下,选择距离最小(相似度最大)的近邻,那么使用余弦相似度和欧式距离的结果是相同的。

总体来说,欧式距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。

问题2:余弦距离是否是一个严格定义的距离?
注意:余弦距离不是严格定义上的距离!

距离的定义:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性、对称性、三角不等式)成立,则该实数可称为这对元素之间的距离。
(1)正定性
根据余弦距离的定义,有
d i s t ( A , B ) = 1 − c o s θ = ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 − A B ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 dist(A, B)=1-cos theta = frac{||A||_2||B||_2-AB}{||A||_2||B||_2} dist(A,B)=1−cosθ=∣∣A∣∣2​∣∣B∣∣2​∣∣A∣∣2​∣∣B∣∣2​−AB​
考虑到 ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 − A B ≥ 0 ||A||_2||B||_2-ABge 0 ∣∣A∣∣2​∣∣B∣∣2​−AB≥0,因此有 d i s t ( A , B ) ≥ 0 dist(A, B)ge 0 dist(A,B)≥0恒成立。
(2)对称性
根据余弦距离的定义,有
d i s t ( A , B ) = ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 − A B ∣ ∣ A ∣ ∣ 2 ∣ ∣ B ∣ ∣ 2 = ∣ ∣ B ∣ ∣ 2 ∣ ∣ A ∣ ∣ 2 − A B ∣ ∣ B ∣ ∣ 2 ∣ ∣ A ∣ ∣ 2 dist(A, B)=frac{||A||_2||B||_2-AB}{||A||_2||B||_2}=frac{||B||_2||A||_2-AB}{||B||_2||A||_2} dist(A,B)=∣∣A∣∣2​∣∣B∣∣2​∣∣A∣∣2​∣∣B∣∣2​−AB​=∣∣B∣∣2​∣∣A∣∣2​∣∣B∣∣2​∣∣A∣∣2​−AB​
满足对称性
(3)三角不等式
该性质并不成立,反例。给定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)
余弦距离满足正定性和对称性,不满足三角不等式。

另外,我们知道单位圆上欧式距离和余弦距离满足
∣ ∣ A − B ∣ ∣ = 2 ( 1 − c o s ( A , B ) ) = 2 d i s t ( A , B ) ||A-B||=sqrt{2(1-cos(A,B))}=sqrt{2dist(A,B)} ∣∣A−B∣∣=2(1−cos(A,B)) ​=2dist(A,B) ​
即有如下关系:
d i s t ( A , B ) = 1 2 ∣ ∣ A − B ∣ ∣ 2 dist(A, B)=frac{1}{2}||A-B||^2 dist(A,B)=21​∣∣A−B∣∣2
显然在单位圆上,余弦距离和欧式距离的范围都是[0,2],已知欧式距离是一个合法的距离,而余弦距离与欧式距离有二次关系,自然不满足三角不等式。

在机器学习领域,被俗称为距离,但却不满足三条距离公理的不仅仅有余弦距离,还有KL距离(Kullback-Leibler Divergence),也叫做相对熵,它常用于计算两个分布之间的差异,但不满足对称性和三角不等式。


在机器学习领域中,A/B测试是验证模型最终效果的主要手段。
问题1: 在对模型进行充分的离线评估后,为什么还要进行在线A/B测试?
(1)离线评估无法消除模型过拟合的影响;因此,得出的离线评估效果无法完全替代线上评估结果;
(2)离线评估无法完全还原线上的工程环境。一般,离线评估往往不会考虑线上环境的延迟、数据丢失、标签数据缺失等情况。
(3)线上系统的某些商业指标在离线评估中无法计算。比如,上线了新的推荐算法,离线往往关心ROC曲线、P-R曲线等;而线上评估可以全面了解该推荐算法带来的用户点击率、留存时长、PV访问量等的变化。

问题2:如何进行线上A/B测试?
(1) 进行A/B测试的主要手段是进行用户分桶,即将用户分成实验组和对照组,对实验组用户施以新模型,对对照组用户施以旧模型;
(2)在分桶的过程中,要注意样本的独立性和采样方式的无偏性,确保同一个用户每次只能分到同一个桶中;

问题3:如何划分实验组和对照组?
某公司的算法工程师对美国用户,研发了一套全新的视频推荐模型A;而正在使用的针对全体用户的推荐模型是B。
正确的做法: 将所有的 美国用户根据user_id个位数奇偶划分为实验组和对照组,分别施以模型A和B,才能够验证模型A的效果;


参考资料

[1] 《百面机器学习》第二章:模型评估
[2] 熵 Entropy – 香农熵、相对熵、交叉熵、条件熵

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/997699.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号