Tipos de métricas
As métricas de semelhança são utilizadas para medir as semelhanças entre vectores. A escolha de uma métrica de distância apropriada ajuda a melhorar significativamente o desempenho da classificação e do agrupamento.
Atualmente, o Milvus suporta estes tipos de métricas de semelhança: Distância euclidiana (L2), Inner Product (IP), Cosine Similarity (COSINE), JACCARD, HAMMING, e BM25 (especificamente concebida para pesquisa de texto completo em vectores esparsos).
A tabela abaixo resume o mapeamento entre os diferentes tipos de campos e os tipos de métricas correspondentes.
Tipo de campo |
Intervalo de dimensão |
Tipos de métricas suportados |
Tipo de métrica predefinido |
|---|---|---|---|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
Não é necessário especificar a dimensão. |
|
|
|
8-32,768*8 |
|
|
Para campos vectoriais do tipo
SPARSE\_FLOAT\_VECTOR, utilize o tipo métricoBM25apenas quando efetuar a pesquisa de texto integral. Para mais informações, consulte Pesquisa de texto integral.Para campos vectoriais do tipo
BINARY_VECTOR, o valor da dimensão (dim) tem de ser um múltiplo de 8.
A tabela abaixo resume as caraterísticas dos valores de distância de similaridade de todos os tipos de métrica suportados e o seu intervalo de valores.
Tipo de métrica |
Caraterísticas dos valores de distância de similaridade |
Intervalo de valores da distância de similaridade |
|---|---|---|
|
Um valor menor indica uma maior similaridade. |
[0, ∞) |
|
Um valor maior indica uma maior similaridade. |
[-1, 1] |
|
Um valor maior indica uma maior similaridade. |
[-1, 1] |
|
Um valor menor indica uma maior similaridade. |
[0, 1] |
|
Estima a similaridade Jaccard a partir dos bits da assinatura MinHash; distância menor = mais similar |
[0, 1] |
|
Um valor menor indica uma maior similaridade. |
[0, dim(vetor)] |
|
Pontua a relevância com base na frequência do termo, na frequência invertida do documento e na normalização do documento. |
[0, ∞) |
Para indexar campos de vetor em um campo Array of Structs, você deve prefixar MAX_SIM ao conjunto de tipos de métrica mencionados acima, com base nas incorporações de vetor armazenadas nesses campos. Por exemplo,
Para um campo vetorial que armazena incorporações vectoriais do tipo
FLOAT_VECTOR,FLOAT16_VECTOR,BFLOAT16_VECTOR, ouINT8_VECTOR, pode utilizarMAX_SIM_COSINE,MAX_SIM_IP, ouMAX_SIM_L2como tipo métrico.Para um campo de vectores que armazena incrustações vectoriais do tipo
BINARY_VECTOR, pode utilizarMAX_SIM_JACCADRouMAX_SIM_HAMMINGcomo tipo métrico.
Distância euclidiana (L2)
Essencialmente, a distância euclidiana mede o comprimento de um segmento que liga 2 pontos.
A fórmula para a distância euclidiana é a seguinte:
Métrica Euclidiana
em que a = (a0, a1,...,an-1) e b = (b0, b1,..., bn-1) são dois pontos num espaço euclidiano n-dimensional.
É a métrica de distância mais comummente utilizada e é muito útil quando os dados são contínuos.
O Milvus só calcula o valor antes de aplicar a raiz quadrada quando a distância euclidiana é escolhida como métrica de distância.
Produto interno (IP)
A distância IP entre dois embeddings é definida da seguinte forma:
Fórmula IP
O IP é mais útil se precisar de comparar dados não normalizados ou quando se preocupa com a magnitude e o ângulo.
Se utilizar IP para calcular semelhanças entre embeddings, deve normalizar os seus embeddings. Após a normalização, o produto interno é igual à similaridade de cosseno.
Suponha que X' seja normalizado a partir da incorporação X:
Fórmula de normalização
A correlação entre os dois embeddings é a seguinte:
Correlação entre os embeddings
Similaridade de cosseno
A semelhança do cosseno utiliza o cosseno do ângulo entre dois conjuntos de vectores para medir a sua semelhança. Pode pensar nos dois conjuntos de vectores como segmentos de linha que partem do mesmo ponto, como [0,0,...], mas que apontam em direcções diferentes.
Para calcular a semelhança de cosseno entre dois conjuntos de vectores A = (a0, a1,...,an-1) e B = (b0, b1,..., bn-1), utilize a seguinte fórmula:
Semelhança de cosseno
A semelhança de cosseno está sempre no intervalo [-1, 1]. Por exemplo, dois vectores proporcionais têm uma semelhança de cosseno de 1, dois vectores ortogonais têm uma semelhança de 0 e dois vectores opostos têm uma semelhança de -1. Quanto maior for o cosseno, menor é o ângulo entre os dois vectores, indicando que estes dois vectores são mais semelhantes entre si.
Subtraindo a semelhança de cosseno de 1, obtém-se a distância de cosseno entre dois vectores.
Distância JACCARD
O coeficiente de distância JACCARD mede a semelhança entre dois conjuntos de amostras e é definido como a cardinalidade da intersecção dos conjuntos definidos dividida pela cardinalidade da união dos mesmos. Só pode ser aplicado a conjuntos de amostras finitos.
Fórmula do coeficiente de similaridade JACCARD
A distância JACCARD mede a dissemelhança entre conjuntos de dados e é obtida subtraindo o coeficiente de semelhança JACCARD de 1. Para variáveis binárias, a distância JACCARD é equivalente ao coeficiente de Tanimoto.
Fórmula da distância JACCARD
MHJACCARD
MinHash Jaccard (MHJACCARD) é um tipo de métrica utilizado para uma pesquisa de semelhança eficiente e aproximada em grandes conjuntos - como conjuntos de palavras de documentos, conjuntos de etiquetas de utilizadores ou conjuntos de k-mer genómicos. Em vez de comparar diretamente conjuntos brutos, o MHJACCARD compara assinaturas MinHash, que são representações compactas concebidas para estimar eficientemente a semelhança Jaccard.
Esta abordagem é significativamente mais rápida do que calcular a semelhança Jaccard exacta e é especialmente útil em cenários de grande escala ou de elevada dimensão.
Tipo de vetor aplicável
BINARY_VECTORVetor de assinatura MinHash, em que cada vetor armazena uma assinatura MinHash. Cada elemento corresponde ao valor de hash mínimo sob uma das funções de hash independentes aplicadas ao conjunto original.
Definição de distância
MHJACCARD mede quantas posições em duas assinaturas MinHash coincidem. Quanto maior for o rácio de correspondência, mais semelhantes são os conjuntos subjacentes.
Milvus relata:
- Distância = 1 - similaridade estimada (rácio de correspondência)
O valor da distância varia de 0 a 1:
0 significa que as assinaturas MinHash são idênticas (similaridade estimada de Jaccard = 1)
1 significa que não há correspondências em nenhuma posição (similaridade estimada de Jaccard = 0)
Para obter informações sobre pormenores técnicos, consulte MINHASH_LSH.
Distância HAMMING
A distância HAMMING mede cadeias de dados binárias. A distância entre duas cadeias de caracteres de igual comprimento é o número de posições de bits em que os bits são diferentes.
Por exemplo, suponhamos que existem duas cadeias de caracteres, 1101 1001 e 1001 1101.
11011001 ⊕ 10011101 = 01000100. Uma vez que isto contém dois 1s, a distância HAMMING, d (11011001, 10011101) = 2.
Similaridade BM25
O BM25 é um método de medição da relevância do texto amplamente utilizado, especificamente concebido para a pesquisa de textos completos. Combina os três factores-chave seguintes:
Frequência de termos (TF): Mede a frequência com que um termo aparece num documento. Embora frequências mais elevadas indiquem frequentemente uma maior importância, o BM25 utiliza o parâmetro de saturação k para evitar que termos demasiado frequentes dominem a pontuação de relevância.
Frequência inversa de documentos (IDF): Reflecte a importância de um termo em todo o corpus. Os termos que aparecem em menos documentos recebem um valor IDF mais alto, indicando maior contribuição para a relevância.
Normalização do comprimento do documento: Documentos mais longos tendem a ter uma pontuação mais alta por conterem mais termos. O BM25 atenua esse viés normalizando o comprimento dos documentos, com o parâmetro b controlando a força dessa normalização.
A pontuação do BM25 é calculada da seguinte forma:
Descrição dos parâmetros:
Q: O texto da consulta fornecido pelo utilizador.
D: O documento que está a ser avaliado.
,: Frequência do termo, representando a frequência com que o termo q aparece no documento D.
): Frequência inversa de documentos, calculada como:
onde N é o número total de documentos no corpus, n ) é o número de documentos contendo o termo q .
Comprimento do documento D (número total de termos).
: Comprimento médio de todos os documentos do corpus.
k: Controla a influência da frequência do termo na pontuação. Valores mais altos aumentam a importância da frequência de termos. O intervalo típico é [1,2, 2,0], enquanto o Milvus permite um intervalo de [0, 3].
b: Controla o grau de normalização do comprimento, variando de 0 a 1. Quando o valor é 0, nenhuma normalização é aplicada; quando o valor é 1, a normalização completa é aplicada.