milvus-logo
LFAI
Home
  • Conceitos

Métricas de similaridade

No Milvus, as métricas de semelhança são utilizadas para medir as semelhanças entre vectores. A escolha de uma boa métrica de distância ajuda a melhorar significativamente o desempenho da classificação e do agrupamento.

A tabela seguinte mostra como estas métricas de semelhança amplamente utilizadas se adaptam a vários formulários de dados de entrada e índices Milvus.

Tipos de métricas Tipos de índices
  • Distância euclidiana (L2)
  • Produto interno (IP)
  • Semelhança de cosseno (COSINE)
  • FLAT
  • IVF_FLAT
  • IVF_SQ8
  • IVF_PQ
  • GPU_IVF_FLAT
  • GPU_IVF_PQ
  • HNSW
  • DISKANN
Tipos de métricas Tipos de índices
  • Jaccard
  • Hamming
  • BIN_FLAT
  • BIN_IVF_FLAT
Tipos métricos Tipos de índice
IP
  • ÍNDICE_ESPARSO_INVERTIDO
  • SPARSE_WAND

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:

euclidean euclidiana

em que a = (a0, a1,...,an-1) e b = (b0, b0,..., 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

ip ip

O PI é mais útil se precisar de comparar dados não normalizados ou quando se preocupa com a magnitude e o ângulo.

Se aplicar a métrica de distância IP a embeddings normalizados, o resultado será equivalente ao cálculo da semelhança de cosseno entre os embeddings.

Suponha que X' é normalizado a partir da incorporação X:

normalize normalizar

A correlação entre os dois embeddings é a seguinte:

normalization normalização

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 dois segmentos de linha que começam na mesma origem ([0,0,...]) mas 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:

cosine_similarity coseno_similaridade

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 dois vectores, indicando que esses dois vectores são mais semelhantes entre si.

Ao subtrair a semelhança de cosseno de 1, obtém-se a distância de cosseno entre dois vectores.

Distância de Jaccard

O coeficiente de semelhança de 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.

Jaccard similarity coefficient Coeficiente de semelhança de Jaccard

A distância de Jaccard mede a dissemelhança entre conjuntos de dados e é obtida subtraindo o coeficiente de semelhança de Jaccard de 1. Para variáveis binárias, a distância de Jaccard é equivalente ao coeficiente de Tanimoto.

Jaccard distance Distância de Jaccard

Distância de Hamming

A distância de Hamming mede cadeias de dados binárias. A distância entre duas cadeias de dados de igual comprimento é o número de posições de bits em que os bits são diferentes.

Por exemplo, suponha que existem duas cadeias de caracteres, 1101 1001 e 1001 1101.

11011001 ⊕ 10011101 = 01000100. Como isso contém dois 1s, a distância de Hamming, d (11011001, 10011101) = 2.

Similaridade Estrutural

Quando uma estrutura química ocorre como parte de uma estrutura química maior, a primeira é chamada de subestrutura e a segunda é chamada de superestrutura. Por exemplo, o etanol é uma subestrutura do ácido acético, e o ácido acético é uma superestrutura do etanol.

A semelhança estrutural é utilizada para determinar se duas fórmulas químicas são semelhantes entre si no sentido em que uma é a superestrutura ou a subestrutura da outra.

Para determinar se A é uma superestrutura de B, utilize a seguinte fórmula:

superstructure superestrutura

Onde:

  • A é a representação binária de uma fórmula química a ser recuperada
  • B é a representação binária de uma fórmula química na base de dados

Se o resultado for 0, A não é uma superestrutura de B. Caso contrário, o resultado é o inverso.

Para determinar se A é uma subestrutura de B, utilize a seguinte fórmula:

substructure subestrutura

Onde:

  • A é a representação binária de uma fórmula química a ser recuperada
  • B é a representação binária de uma fórmula química na base de dados

Se o resultado for 0, A não é uma subestrutura de B. Caso contrário, o resultado é o inverso.

PERGUNTAS FREQUENTES

Porque é que o resultado top1 de uma pesquisa vetorial não é o próprio vetor de pesquisa, se o tipo de métrica for o produto interno?Isto ocorre se não tiver normalizado os vectores ao utilizar o produto interno como métrica de distância.
O que é normalização? Porque é que a normalização é necessária?

A normalização refere-se ao processo de conversão de uma incorporação (vetor) para que a sua norma seja igual a 1. Se utilizar o produto interno para calcular as semelhanças das incorporações, tem de normalizar as incorporações. Após a normalização, o produto interno é igual à similaridade de cosseno.

Consulte a Wikipédia para obter mais informações.

Por que obtenho resultados diferentes usando a distância euclidiana (L2) e o produto interno (PI) como métrica de distância?Verifique se os vetores estão normalizados. Se não estiverem, é necessário normalizar os vectores primeiro. Teoricamente, as semelhanças obtidas por L2 são diferentes das semelhanças obtidas por IP, se os vectores não estiverem normalizados.

O que vem a seguir

Traduzido porDeepLogo

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Esta página foi útil?