Hulu机器学习问题与解答系列 | 第五弹:余弦距离
不知不觉,这已经是Hulu面试题—机器学习系列的第五篇了,关注的小伙伴儿们也越来越多。之前的全部内容均可在公众号下方菜单栏里找到,以便大家温故而知新~
今天的内容是
【余弦距离】
场景描述
在机器学习中,我们常将特征表示为向量的形式。在近年来,将高维稀疏的研究对象表示为低维分布的向量形式,极大地提高了各类模型的效果。在分析两个向量之间的相似性时,常使用余弦相似度来表示。余弦相似度的取值范围是[-1,1],相同的两个向量之间的相似度为1。如果希望得到类似于距离的表示,将1减余弦相似度即为余弦距离。余弦距离的取值范围为[0,2],相同的两个向量余弦距离为0。
问题
1. 结合你的学习和研究经历,探讨为什么要在一些场景使用余弦相似度而不是欧式距离?
2. 余弦距离是否是一个严格定义的距离?
先验知识:基本数学
解答与分析
问题1: 该题考查对余弦相似度和欧氏距离的理解和区分,以及对它们的使用经验。
余弦相似度关注的是两个向量之间的角度关系,而并不关心它们的绝对大小,其取值范围是[-1,1]。当我们比较两个长度差距很大、但内容相近的文本的相似度时,如果使用词频或词向量作为特征,那么欧式距离会很大;而如果使用余弦相似度,其夹角很小,因而相似度很高。
此外,在文本,图像,视频等领域,研究的对象特征维度往往很高,余弦相似度在高维的情况下,依然保持相同时为1,正交时为0,相反时为-1的性质;而欧式距离的数值受到维度的影响,范围不固定,并且其含义会比较模糊。
在一些场景例如word2vec中,其向量的模长是固定的,此时欧氏距离与余弦相似度有着单调的关系,即欧氏距离:
在此场景下,如果选择距离最小/相似度最大的近邻,那么使用余弦相似度和欧氏距离,其结果是相同的。
这道题同时要考察被试者的研究和学习经历,初学者可以从两者的定义开始拓展讨论,余弦相似度更适用于向量模长不相等的场景中;研究者如果是NLP背景的,可以结合词、文本的各种表示,以及如何求其相似度等问题进行探讨;如果是CV背景的,可以结合HOG特征的使用、人脸识别等场景进行探讨。总而言之,特定的度量方法适用于什么样的问题,需要在学习和研究中多总结和思考,这样不仅仅对面试有帮助,在遇到新的问题时,也可以活学活用。
问题2: 该题考察对距离的定义的理解,以及简单的反证和推导。
余弦距离不是严格定义的距离。
在一个集合中,如果每一对元素均可唯一确定一个实数,使得三条距离公理(正定性,对称性,三角不等式)成立,则该实数就可称为这对元素之间的距离。
余弦距离满足正定性和对称性,但是不满足三角不等式。对于向量A,B:
1: 正定性
2: 对称性
3: 三角不等式
下面给出一个反例:
给定A=(1,0), B=(1,1), C=(0,1) 那么:
假如面试的时候紧张,一时想不到反例,该怎么办呢?
此时可以思考余弦距离和欧式距离的关系,从题1中,我们知道单位圆上欧式距离和余弦距离满足:
显然在单位圆上,余弦距离和欧氏距离的范围都是[0,2]。我们已知欧式距离是一个合法的距离,而余弦距离与欧式距离有二次关系,那么自然不满足三角不等式。可以假设A与B、B与C非常近,其欧式距离为极小量u;此时A、B、C虽然在圆弧上,但近似在一条直线上,所以A与C的欧式距离接近于2u。因此,A与B、 B与C的余弦距离为1/2u2;A与C的余弦距离接近于2u2,大于A与B、B与C的余弦距离之和。
假如遇到这种类型的题该怎么办呢?首先,大多数应试者未必能熟记距离三公理,这没有关系,应该主动和面试官沟通合法距离的定义。然后,正定性和对称性的证明,只是给出含糊的表述诸如‘显然满足’是不好的,应该给出一些推导。最后,三角不等式的证明/证伪中,不应表述为‘我觉得满足/不满足’,而是应该积极分析给定三个点的情况,或者推导其和欧式距离的关系,这样哪怕一时找不到反例而误认为其是合法距离,也比‘觉得不满足’这样蒙对正确的答案要好。
笔者首次注意到余弦距离不符合三角不等式,是在研究电视剧的标签时,发现在通过影视语料库训练出的词向量中,comedy(喜剧)和funny,funny和happy的余弦距离都很近,小于0.3,然而comedy和happy的余弦距离却高达0.7。这一现象明显不符合距离的定义,引起了我们的注意和讨论,经过思考和推导,得出了上述结论。
在机器学习领域,被俗称为距离,却不满足三条距离公理的不仅仅有余弦距离。KL距离(又被称为KL散度、相对熵)也是一例,它常被用于计算两个分布之间的差异,不满足对称性和三角不等式。
下一题预告
【PCA算法】
场景描述
在机器学习领域中,我们对原始数据进行特征提取,有时会得到比较高维的特征向量。在这些向量所处的高维空间中,包含很多的冗余和噪声。我们希望通过降维的方式来寻找数据内部的特性,从而提升特征表达能力,降低训练复杂度。PCA(主成分分析)作为降维中最经典的理论,是面试中经常被问到的问题。
问题描述
PCA的原理及目标函数
PCA的求解方法
欢迎留言提问或探讨
关注“Hulu”微信公众号
点击菜单栏“机器学习”获得更多系列文章