余弦相似度在数学上被描述为向量的点积与欧几里得范数或每个向量的大小的乘积之间的除法。而在机器学习领域,余弦相似度又是量化两个或多个向量之间相似度的度量。余弦相似度是向量之间夹角的余弦值。向量通常是非零的并且在内积空间内。
本文就来介绍下什么是余弦相似度?以及余弦相似度的作用。
什么是余弦相似度
余弦相似度是一种常用的相似度度量技术,可以在Matlab、SciKit-Learn和TensorFlow等库和工具中找到。余弦相似度是受0和1约束范围约束的值。相似性度量是对两个非零向量A和B之间夹角的余弦值的度量。
假设两个向量之间的角度为90度。余弦相似度是一个受0和1约束范围约束的值。该值越接近0意味着两个向量正交或相互垂直。当该值越接近1时,表示角度越小,图像越相似。
随着余弦相似度测量值越来越接近1,则两个向量A和B之间的角度越小。
余弦相似度的作用
从计算机视觉世界到数据挖掘,比较高维空间中表示的两个向量之间的相似性度量有很多用途。
1.文档相似度
涉及识别文档对之间相似性要求的场景是利用余弦相似性作为两个对象之间相似性度量的量化的一个很好的用例。
要找到两个文档之间相似性的量化,需要将文档或句子中的单词或短语转换为向量化的表示形式。然后可以在余弦相似度公式中使用文档的矢量表示以获得相似度的量化。
在上述场景中,余弦相似度为1意味着两个文档完全相似,而余弦相似度为0则表明两个文档之间没有相似性。
2.姿势匹配
姿势匹配涉及比较包含关节位置关键点的姿势。
姿态估计是一项计算机视觉任务,通常使用深度学习方法解决,例如卷积姿态机、堆叠沙漏和PoseNet等。
姿势估计是从图像或图像序列中导出身体重要部位和关节的位置和方向的过程。
结尾
余弦相似度还能用作其他应用领域,例如推荐系统、剽窃检测器和数据挖掘。它甚至可以作为训练神经网络时的损失函数。余弦相似度背后的逻辑很容易理解,并且可以用大多数现代编程语言来实现。