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 |
---|---|
|
|
Tipos de métricas | Tipos de índices |
---|---|
|
|
Tipos métricos | Tipos de índices |
---|---|
IP |
|
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
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.
Producto interior (PI)
La distancia IP entre dos incrustaciones vectoriales se definen de la siguiente manera:
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:
normalizar
La correlación entre las dos incrustaciones es la siguiente
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:
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.
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.
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:
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:
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 de
mé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
- Aprenda más sobre los tipos de índice soportados en Milvus.