milvus-logo
LFAI
Home
  • Conceptos

Métricas de similitud

En Milvus, las métricas de similitud se utilizan para medir las similitudes entre vectores. La elección de una buena métrica de distancia ayuda a mejorar significativamente el rendimiento de la clasificación y la agrupación.

La siguiente tabla muestra cómo estas métricas de similitud ampliamente utilizadas se ajustan a varias formas de datos de entrada e índices de Milvus. Actualmente, Milvus admite varios tipos de datos, incluyendo incrustaciones de punto flotante (a menudo conocidas como vectores de punto flotante o vectores densos), incrustaciones binarias (también conocidas como vectores binarios) e incrustaciones dispersas (también conocidas como vectores dispersos).

Tipos métricos Tipos de índices
  • Distancia euclidiana (L2)
  • Producto interior (IP)
  • Similitud coseno (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 índices
IP
  • SPARSE_INVERTED_INDEX
  • SPARSE_WAND

Distancia euclídea (L2)

Esencialmente, la distancia euclídea mide la longitud de un segmento que une 2 puntos.

La fórmula de la distancia euclídea es la siguiente

euclidean euclídea

donde a = (a0, a1,...,an-1) y b = (b0, b0,..., bn-1) son dos puntos en un espacio euclídeo de n dimensiones.

Es la métrica de distancia más utilizada y resulta muy útil cuando los datos son continuos.

Milvus sólo cacula el valor antes de aplicar la raíz cuadrada cuando se elige la distancia euclídea como métrica de distancia.

Producto interior (PI)

La distancia IP entre dos incrustaciones vectoriales se definen de la siguiente manera:

ip ip

El PI es más útil si necesita comparar datos no normalizados o cuando le importan la magnitud y el ángulo.

Si se aplica la métrica de distancia IP a incrustaciones normalizadas, el resultado será equivalente al cálculo de la similitud coseno entre las incrustaciones.

Supongamos que X' se normaliza a partir de la incrustación X:

normalize normalizar

La correlación entre las dos incrustaciones es la siguiente

normalization normalización

Similitud coseno

La similitud coseno utiliza el coseno del ángulo entre dos conjuntos de vectores para medir su similitud. Puede pensar en los dos conjuntos de vectores como dos segmentos de línea que parten del mismo origen ([0,0,...]) pero apuntan en direcciones diferentes.

Para calcular la similitud coseno entre dos conjuntos de vectores A = (a0, a1,...,an-1) y B = (b0, b1,..., bn-1), utiliza la siguiente fórmula:

cosine_similarity similitud_coseno

La semejanza coseno está siempre en el intervalo [-1, 1]. Por ejemplo, dos vectores proporcionales tienen una similitud coseno de 1, dos vectores ortogonales tienen una similitud de 0, y dos vectores opuestos tienen una similitud de -1. Cuanto mayor sea el coseno, menor será el ángulo entre dos vectores, lo que indica que estos dos vectores son más similares entre sí.

Restando su similitud coseno de 1, se obtiene la distancia coseno entre dos vectores.

Distancia de Jaccard

El coeficiente de similitud de Jaccard mide la similitud entre dos conjuntos de muestras y se define como la cardinalidad de la intersección de los conjuntos definidos dividida por la cardinalidad de la unión de los mismos. Sólo puede aplicarse a conjuntos muestrales finitos.

Jaccard similarity coefficient Coeficiente de similitud de Jaccard

La distancia de Jaccard mide la disimilitud entre conjuntos de datos y se obtiene restando a 1 el coeficiente de similitud de Jaccard. Para variables binarias, la distancia de Jaccard es equivalente al coeficiente de Tanimoto.

Jaccard distance Distancia de Jaccard

Distancia Hamming

La distancia de Hamming mide cadenas de datos binarias. La distancia entre dos cadenas de igual longitud es el número de posiciones de bits en las que los bits son diferentes.

Por ejemplo, supongamos que hay dos cadenas, 1101 1001 y 1001 1101.

11011001 ⊕ 10011101 = 01000100. Como contiene dos 1, la distancia de Hamming, d (11011001, 10011101) = 2.

Similitud estructural

Cuando una estructura química forma parte de una estructura química mayor, la primera se denomina subestructura y la segunda, superestructura. Por ejemplo, el etanol es una subestructura del ácido acético, y el ácido acético es una superestructura del etanol.

La similitud estructural se utiliza para determinar si dos fórmulas químicas son similares entre sí en el sentido de que una es la superestructura o la subestructura de la otra.

Para determinar si A es una superestructura de B, utilice la siguiente fórmula:

superstructure superestructura

Donde:

  • A es la representación binaria de una fórmula química que se desea recuperar
  • B es la representación binaria de una fórmula química en la base de datos

Si devuelve 0, A no es una superestructura de B. En caso contrario, el resultado es el contrario.

Para determinar si A es una subestructura de B, utilice la siguiente fórmula:

substructure subestructura

Donde:

  • A es la representación binaria de una fórmula química a recuperar
  • B es la representación binaria de una fórmula química en la base de datos

Si devuelve 0, A no es una subestructura de B. En caso contrario, el resultado es el contrario.

FAQ

¿Por qué el resultado top1 de una búsqueda vectorial no es el propio vector buscado, si el tipo demétrica es producto interior? Esto ocurre si no se han normalizado los vectores al utilizar producto interior como métrica de distancia.
¿Qué es la normalización? ¿Por qué es necesaria la normalización?

La normalización se refiere al proceso de convertir una incrustación (vector) para que su norma sea igual a 1. Si utiliza el producto interno para calcular las similitudes entre incrustaciones, debe normalizar sus incrustaciones. Después de la normalización, el producto interior es igual a la similitud coseno.

Para más información, consulte Wikipedia.

¿Por qué obtengo resultados diferentes utilizando la distancia euclídea (L2) y el producto interior (PI) como métrica de distancia?Compruebe si los vectores están normalizados. Si no es así, primero debe normalizar los vectores. En teoría, las similitudes calculadas mediante L2 son diferentes de las calculadas mediante IP si los vectores no están normalizados.

Más información

Traducido porDeepLogo

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?