百面机器学习:算法工程师带你去面试---余弦距离的应用(一)

自从中央定调“新基建”,互联网大厂继续加码人工智能。,然而,AI产业却面临着巨大的人才缺口!在这样的大环境下,如果你有志应聘相关的技术岗,只有苦练内功,趁早磨刀,比如认真刷题,才有可能在面试中致胜。

以下分享算法岗的经典面试题,选自《百面机器学习:算法工程师带你去面试》一书。

问题场景描述

本章的主题是模型评估,但其实在模型训练过程中,我们也在不断地评估着样本间的距离,如何评估样本距离也是定义优化目标和训练方法的基础。

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

知识点

余弦相似度,余弦距离,欧氏距离,距离的定义

问题1 结合你的学习和研究经历,探讨为什么在一些场景中要使用余弦相似度而不是欧氏距离?

难度:★★☆☆☆

分析与解答

对于两个向量A和B,其余弦相似度定义为在这里插入图片描述,即两个向量夹角的余弦,关注的是向量之间的角度关系,并不关心它们的绝对大小,其取值范围是[−1,1]。当一对文本相似度的长度差距很大、但内容相近时,如果使用词频或词向量作为特征,它们在特征空间中的的欧氏距离通常很大;而如果使用余弦相似度的话,它们之间的夹角可能很小,因而相似度高。此外,在文本、图像、视频等领域,研究的对象的特征维度往往很高,余弦相似度在高维情况下依然保持“相同时为1,正交时为0,相反时为−1”的性质,而欧氏距离的数值则受维度的影响,范围不固定,并且含义也比较模糊。

在一些场景,例如Word2Vec中,其向量的模长是经过归一化的,此时欧氏距离与余弦距离有着单调的关系,即
在这里插入图片描述
其中|| A−B ||2表示欧氏距离,cos(A,B)表示余弦相似度,(1−cos(A,B))表示余弦距离。在此场景下,如果选择距离最小(相似度最大)的近邻,那么使用余弦相似度和欧氏距离的结果是相同的。

总体来说,欧氏距离体现数值上的绝对差异,而余弦距离体现方向上的相对差异。例如,统计两部剧的用户观看行为,用户A的观看向量为(0,1),用户B为(1,0);此时二者的余弦距离很大,而欧氏距离很小;我们分析两个用户对于不同视频的偏好,更关注相对差异,显然应当使用余弦距离。而当我们分析用户活跃度,以登陆次数(单位:次)和平均观看时长(单位:分钟)作为特征时,余弦距离会认为(1,10)、(10,100)两个用户距离很近;但显然这两个用户活跃度是有着极大差异的,此时我们更关注数值绝对差异,应当使用欧氏距离。

特定的度量方法适用于什么样的问题,需要在学习和研究中多总结和思考,这样不仅仅对面试有帮助,在遇到新的问题时也可以活学活用。

以上是《百面机器学习:算法工程师带你去面试》中的部分精华。

在这里插入图片描述
此书已加入到VIP会员卡,只要购买VIP会员卡即可免费阅读上百本电子书,这张VIP卡除了免费让你读书,还有更多的权益等你来领,往下↓拉
在这里插入图片描述

在这里插入图片描述

作者群像

在这里插入图片描述

《百面机器学习》学习脉络图

前微软全球执行副总裁、美国工程院院士沈向洋,高度认可这本书:“这本书致力于普及人工智能和机器学习,帮助每个软件工程师成为自信的AI实践者,每个数据科学家成为优秀的AI研究者。”

《浪潮之巅》《数学之美》作者吴军亦很美誉此书:“这本书教授大家如何搭建计算机理论和算法与具体应用之间的桥梁。它可以让计算机的从业者对理论的认识有一个飞跃,也可以让非计算机专业的工程人员了解计算机科学这个强大的工具。”

此书已加入到VIP会员卡,只要购买VIP会员卡即可免费阅读上百本电子书,这张VIP卡除了免费让你读书,还有更多的权益等你来领,往下↓拉
在这里插入图片描述

发布了40 篇原创文章 · 获赞 120 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/weixin_37649168/article/details/105053961
今日推荐