1700533592
百面机器学习:算法工程师带你去面试 03 余弦距离的应用
1700533593
1700533594
1700533595
1700533596
场景描述
1700533597
1700533598
本章的主题是模型评估,但其实在模型训练过程中,我们也在不断地评估着样本间的距离,如何评估样本距离也是定义优化目标和训练方法的基础。
1700533599
1700533600
在机器学习问题中,通常将特征表示为向量的形式,所以在分析两个特征向量之间的相似性时,常使用余弦相似度来表示。余弦相似度的取值范围是[−1,1],相同的两个向量之间的相似度为1。如果希望得到类似于距离的表示,将1减去余弦相似度即为余弦距离。因此,余弦距离的取值范围为[0,2],相同的两个向量余弦距离为0。
1700533601
1700533602
知识点
1700533603
1700533604
余弦相似度,余弦距离,欧氏距离,距离的定义
1700533605
1700533606
问题1 结合你的学习和研究经历,探讨为什么在一些场景中要使用余弦相似度而不是欧氏距离?
1700533607
1700533608
难度:★★☆☆☆
1700533609
1700533610
分析与解答
1700533611
1700533612
1700533613
对于两个向量A和B,其余弦相似度定义为,即两个向量夹角的余弦,关注的是向量之间的角度关系,并不关心它们的绝对大小,其取值范围是[−1,1]。当一对文本相似度的长度差距很大、但内容相近时,如果使用词频或词向量作为特征,它们在特征空间中的的欧氏距离通常很大;而如果使用余弦相似度的话,它们之间的夹角可能很小,因而相似度高。此外,在文本、图像、视频等领域,研究的对象的特征维度往往很高,余弦相似度在高维情况下依然保持“相同时为1,正交时为0,相反时为−1”的性质,而欧氏距离的数值则受维度的影响,范围不固定,并且含义也比较模糊。
1700533614
1700533615
在一些场景,例如Word2Vec中,其向量的模长是经过归一化的,此时欧氏距离与余弦距离有着单调的关系,即
1700533616
1700533617
1700533618
,
1700533619
1700533620
(2.7)
1700533621
1700533622
其中|| A−B ||2表示欧氏距离,cos(A,B)表示余弦相似度,(1−cos(A,B))表示余弦距离。在此场景下,如果选择距离最小(相似度最大)的近邻,那么使用余弦相似度和欧氏距离的结果是相同的。
1700533623
1700533624
总体来说,欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。例如,统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B为(1,0);此时二者的余弦距离很大,而欧氏距离很小;我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当使用余弦距离。而当我们分析用户活跃度,以登陆次数(单位:次)和平均观看时长(单位:分钟)作为特征时,余弦距离会认为(1,10)、(10,100)两个用户距离很近;但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。
1700533625
1700533626
特定的度量方法适用于什么样的问题,需要在学习和研究中多总结和思考,这样不仅仅对面试有帮助,在遇到新的问题时也可以活学活用。
1700533627
1700533628
问题2 余弦距离是否是一个严格定义的距离?
1700533629
1700533630
难度:★★★☆☆
1700533631
1700533632
分析与解答
1700533633
1700533634
该题主要考察面试者对距离的定义的理解,以及简单的反证和推导。首先看距离的定义:在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性,对称性,三角不等式)成立,则该实数可称为这对元素之间的距离。
1700533635
1700533636
余弦距离满足正定性和对称性,但是不满足三角不等式,因此它并不是严格定义的距离。具体来说,对于向量A和B,三条距离公理的证明过程如下。
1700533637
1700533638
1700533639
1700533640
[
上一页 ]
[ :1.700533591e+09 ]
[
下一页 ]