milvus-logo
LFAI
首页
  • 概念

度量类型

相似度量用于衡量向量之间的相似性。选择合适的距离度量有助于显著提高分类和聚类性能。

目前,Milvus 支持这些类型的相似性度量:欧氏距离 (L2)、内积 (IP)、余弦相似度 (COSINE)、JACCARD,HAMMINGBM25 (专门为稀疏向量的全文检索而设计)。

下表总结了不同字段类型与相应度量类型之间的映射关系。

字段类型

维度范围

支持的度量类型

默认度量类型

FLOAT_VECTOR

2-32,768

COSINE,L2,IP

COSINE

FLOAT16_VECTOR

2-32,768

COSINE,L2,IP

COSINE

BFLOAT16_VECTOR

2-32,768

COSINE,L2,IP

COSINE

SPARSE_FLOAT_VECTOR

无需指定维度。

IP,BM25 (仅用于全文检索

IP

BINARY_VECTOR

8-32,768*8

HAMMING,JACCARD

HAMMING

  • 对于SPARSE_FLOAT_VECTOR 类型的向量场,只有在执行全文检索时才使用BM25 公制类型。有关详细信息,请参阅全文搜索

  • 对于BINARY_VECTOR 类型的向量字段,维度值 (dim) 必须是 8 的倍数。

下表总结了所有支持的度量类型的相似性距离值特征及其取值范围。

度量类型

相似性距离值的特征

相似性距离值范围

L2

值越小表示相似度越高。

[0, ∞)

IP

数值越大,表示相似度越高。

[-1, 1]

COSINE

数值越大,表示相似度越高。

[-1, 1]

JACCARD

数值越小,表示相似度越高。

[0, 1]

HAMMING

值越小,表示相似度越高。

0,dim(向量)] [0, dim(vector)

BM25

根据词频、反转文档频率和文档规范化对相关性进行评分。

[0, ∞)

欧氏距离(L2)

从本质上讲,欧氏距离测量的是连接两点的线段的长度。

欧氏距离的计算公式如下。

Euclidean distance formula 欧氏距离公式

其中a = (a0,a1,...,an-1)b = (b0,b1,...,bn-1)是 n 维欧氏空间中的两点。

这是最常用的距离度量,在数据连续时非常有用。

当选择欧氏距离作为距离度量时,Milvus 只计算应用平方根之前的值。

内积(IP)

两个 Embeddings 之间的 IP 距离定义如下。

Inner product formula 内积公式

如果需要比较非标准化数据,或者需要考虑幅度和角度,IP 会更有用。

如果使用 IP 计算嵌入式之间的相似性,必须对嵌入式进行归一化处理。归一化后,内积等于余弦相似度。

假设 X' 是由嵌入式 X 归一化而来。

Normalized inner product formula 归一化内积公式

两个嵌入式之间的相关性如下。

Correlation between embeddings 嵌入式之间的相关性

余弦相似性

余弦相似度使用两组向量之间角度的余弦来衡量它们的相似程度。你可以把这两组向量看作从同一点(如 [0,0,...])出发,但指向不同方向的线段。

要计算两组向量A = (a0,a1,...,an-1)B = (b0,b1,...,bn-1) 之间的余弦相似度,请使用下面的公式。

Cosine similarity formula 余弦相似度公式

余弦相似度总是在区间[-1, 1] 内。例如,两个正比向量的余弦相似度为1,两个正交向量的余弦相似度为0,两个相反向量的余弦相似度为-1,余弦越大,两个向量之间的夹角越小,说明这两个向量之间的相似度越高。

用 1 减去它们的余弦相似度,就可以得到两个向量之间的余弦距离。

JACCARD 距离

JACCARD 相似性系数衡量两个样本集之间的相似性,定义为定义集的交集的卡方值除以它们的联合的卡方值。它只适用于有限样本集。

JACCARD similarity coefficient formula JACCARD 相似性系数公式

JACCARD 距离测量数据集之间的不相似性,通过从 1 减去 JACCARD 相似性系数得到。

JACCARD distance formula JACCARD 距离公式

汉明距离

HAMMING 距离测量二进制数据字符串。两个长度相等的字符串之间的距离是比特不同的比特位置数。

例如,假设有两个字符串:1101 1001 和 1001 1101。

11011001 ⊕ 10011101 = 01000100.由于其中包含两个 1,因此 HAMMING 距离 d (11011001, 10011101) = 2。

BM25 相似性

BM25 是一种广泛使用的文本相关性测量方法,专门用于全文检索。它结合了以下三个关键因素。

  • 术语频率 (TF):衡量术语在文档中出现的频率。虽然较高的频率通常表示较高的重要性,但 BM25 使用饱和参数 k1 来防止过于频繁的术语主导相关性得分。

  • 反向文档频率(IDF):反映术语在整个语料库中的重要性。在较少文档中出现的术语会获得较高的 IDF 值,这表明其对相关性的贡献更大。

  • 文档长度归一化较长的文档由于包含较多的术语,往往得分较高。BM25 通过对文档长度进行归一化处理来减轻这种偏差,参数 b 控制这种归一化处理的强度。

BM25 评分的计算方法如下。

BM25 similarity formula BM25 相似性公式

参数描述

  • Q:用户提供的查询文本。

  • D:正在评估的文档。

  • TF(qi,D):术语频率,表示术语qi 在文档D 中出现的频率。

  • IDF(qi):反向文档频率,计算公式如下

    IDF formula IDF 公式

    其中N 是语料库中的文档总数,n(qi) 是包含术语 qi 的文档数。

  • ∣D∣:文档D 的长度(术语总数)。

  • avgdl:语料库中所有文档的平均长度。

  • k1:控制词频对得分的影响。数值越大,词频越重要。典型的范围是 [1.2, 2.0],而 Milvus 允许的范围是 [0, 3]。

  • b:控制长度归一化的程度,范围从 0 到 1。当值为 0 时,不进行归一化处理;当值为 1 时,进行完全归一化处理。

翻译自DeepLogo

想要更快、更简单、更好用的 Milvus SaaS服务 ?

Zilliz Cloud是基于Milvus的全托管向量数据库,拥有更高性能,更易扩展,以及卓越性价比

免费试用 Zilliz Cloud
反馈

此页对您是否有帮助?