Milvus的相似度指标

官网:https://milvus.io/docs/metric.md
版本: v2.3.x

在 Milvus 中,相似度度量用于衡量向量之间的相似度。选择良好的距离度量有助于显着提高分类和聚类性能。
下表展示了这些广泛使用的相似性指标如何与各种输入数据形式和 Milvus 索引相匹配。

一、浮点型向量

image.png

1.1 欧式距离L2

本质上,欧氏距离测量连接 2 个点的线段的长度。欧氏距离的公式如下:
image.png
其中 a = (a0, a1,…, an-1) 和 b = (b0, b0,…, bn-1) 是 n 维欧几里德空间中的两个点 这是最常用的距离度量。
PS:当选择欧几里德距离作为距离度量时,Milvus 仅在应用平方根之前计算值

1.2 内积IP

image.png
如果您需要比较非标准化数据或当您关心幅度和角度时,IP 会更有用。
PS: 如果您使用 IP 来计算嵌入相似度,则必须对嵌入进行标准化。归一化后,内积等于余弦相似度。

1.3 余弦相似度

余弦相似度使用两组向量之间的角度的余弦来衡量它们的相似程度。您可以将两组向量视为从同一原点 ([0,0,…]) 开始但指向不同方向的两条线段。要计算两组向量 A = (a0, a1,..., an-1)B = (b0, b1,..., bn-1) 之间的余弦相似度,请使用以下公式:
image.png
余弦相似度始终在区间 [-1, 1] 内。
例如,两个比例向量的余弦相似度为 1,两个正交向量的相似度为 0,两个相反的向量的相似度为 -1。余弦越大,两个向量之间的角度越小,表明这两个向量彼此更相似。用 1 减去它们的余弦相似度,就可以得到两个向量之间的余弦距离。

二、2值型向量

有Jaccard、Hamming如下两种:
image.png

2.1 Jaccard杰卡德距离

杰卡德相似系数(Jaccard similarity coefficient):两个集合 A 和 B 的交集元素在 A,B 的并集中所占的比例,称为两个集合的杰卡德相似系数,则其表达式为:
image.png
image.png
它只能应用于有限的样本集。
杰卡德距离衡量数据集之间的不相似性,由1减去杰卡德相似系数得到,与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度。对于二元变量,杰卡德距离相当于谷本系数(Tanimoto coefficient)。
杰卡德距离的表达式为:
image.png

2.2 Hamming汉明距离

汉明距离(Hamming Distance)可以用来计算长度相等两个向量的相似度;

  • 汉明距离的计算方式为:比较向量的每一位是否相同,若不同则汉明距离加1,这样即可得到汉明距离。向量相似度越高,对应的汉明距离越小。
  • 汉明距离可以比较两个二进制串,a=11101010,b=11011010。a和b两个二进制串不同的位数为2,则汉明距离为2。

例如,假设有两个字符串 1101 1001 和 1001 1101。 11011001 ⊕ 10011101 = 01000100。由于其中包含两个 1,因此汉明距离 d (11011001, 10011101) = 2。


如果有用,请点个三连呗 `点赞、关注、收藏`。
***你的鼓励是我最大的动力***

相关推荐

  1. milvus 相似检索底层原理

    2024-03-14 01:42:02       34 阅读
  2. 字符串之间相似评价指标汇总

    2024-03-14 01:42:02       41 阅读
  3. 几种计算图像/向量相似指标(实现)

    2024-03-14 01:42:02       36 阅读
  4. 数据相似计算

    2024-03-14 01:42:02       56 阅读
  5. 文本相似三种算法

    2024-03-14 01:42:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 01:42:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 01:42:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 01:42:02       82 阅读
  4. Python语言-面向对象

    2024-03-14 01:42:02       91 阅读

热门阅读

  1. 01-shell的自学课-基础变量学习

    2024-03-14 01:42:02       40 阅读
  2. HTML 参考手册- (HTML5 标准)

    2024-03-14 01:42:02       45 阅读
  3. Android UI 代码实现:可换行的布局控件

    2024-03-14 01:42:02       50 阅读
  4. Keil C51 汉字显示 BUG 解决方案

    2024-03-14 01:42:02       45 阅读
  5. 【npm】 npm link软链接的使用

    2024-03-14 01:42:02       40 阅读
  6. 【MySQL 系列】MySQL 语句篇_DCL 语句

    2024-03-14 01:42:02       39 阅读
  7. 网页的用户登录功能

    2024-03-14 01:42:02       41 阅读
  8. Linux 命令汇总

    2024-03-14 01:42:02       36 阅读
  9. 【话题】人工智能迷惑行为大赏

    2024-03-14 01:42:02       37 阅读
  10. Nginx和Ribbon实现负载均衡的区别

    2024-03-14 01:42:02       41 阅读