Tipos de métricas

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

Actualmente, Milvus soporta estos tipos de métricas de similitud: Distancia euclidiana (L2), Producto interior (IP), Similitud coseno (COSINE), JACCARD, HAMMING, y BM25 (diseñada específicamente para la búsqueda de texto completo en vectores dispersos).

La siguiente tabla resume la correspondencia entre los distintos tipos de campo y sus correspondientes tipos de métrica.

Tipo de campo

Rango de dimensión

Tipos métricos admitidos

Tipo métrico por defecto

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

INT8_VECTOR

2-32,768

COSINE L2, IP

COSINE

SPARSE\_FLOAT\_VECTOR

No es necesario especificar la dimensión.

IP, BM25 (sólo se utiliza para la búsqueda de texto completo)

IP

BINARY_VECTOR

8-32,768*8

HAMMING, JACCARD, MHJACCARD

HAMMING

  • Para los campos vectoriales del tipo SPARSE\_FLOAT\_VECTOR, utilice el tipo métrico BM25 sólo cuando realice la búsqueda de texto completo. Para más información, consulte Búsqueda de texto completo.

  • Para los campos vectoriales del tipo BINARY_VECTOR, el valor de dimensión (dim) debe ser múltiplo de 8.

La siguiente tabla resume las características de los valores de distancia de similitud de todos los tipos métricos admitidos y su rango de valores.

Tipo de métrica

Características de los valores de distancia de similitud

Rango de valores de la distancia de similitud

L2

Un valor menor indica una mayor similitud.

[0, ∞)

IP

Un valor mayor indica una mayor similitud.

[-1, 1]

COSINE

Un valor mayor indica una mayor similitud.

[-1, 1]

JACCARD

Un valor menor indica una mayor similitud.

[0, 1]

MHJACCARD

Estima la similitud de Jaccard a partir de los bits de la firma MinHash; menor distancia = más similar.

[0, 1]

HAMMING

Un valor menor indica una mayor similitud.

[0, dim(vector)]

BM25

Puntúa la relevancia basándose en la frecuencia de términos, la frecuencia de documentos invertida y la normalización de documentos.

[0, ∞)

Para indexar campos vectoriales en un campo Array of Structs, debe anteponer MAX_SIM al conjunto de tipos métricos mencionados anteriormente, basándose en las incrustaciones vectoriales almacenadas en dichos campos. Por ejemplo,

  • Para un campo vectorial que almacena incrustaciones vectoriales del tipo FLOAT_VECTOR, FLOAT16_VECTOR, BFLOAT16_VECTOR, o INT8_VECTOR, puede utilizar MAX_SIM_COSINE, MAX_SIM_IP, o MAX_SIM_L2 como tipo métrico.

  • Para un campo vectorial que almacena incrustaciones vectoriales del tipo BINARY_VECTOR, puede utilizar MAX_SIM_JACCADR o MAX_SIM_HAMMING como tipo métrico.

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 Metric Métrica euclídea

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

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

Milvus sólo calcula 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 se define como sigue:

IP Formula Fórmula IP

IP es más útil si necesita comparar datos no normalizados o cuando se preocupa por la magnitud y el ángulo.

Si utiliza IP para calcular similitudes entre incrustaciones, debe normalizar sus incrustaciones. Después de la normalización, el producto interno es igual a la similitud coseno.

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

Normalize Formula Fórmula de normalización

La correlación entre las dos incrustaciones es la siguiente:

Correlation Between Embeddings Correlación entre incrustaciones

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 segmentos de línea que parten del mismo punto, como [0,0,...], pero que 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 los 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 JACCARD

El coeficiente de distancia 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 de muestras finitos.

JACCARD Similarity Coefficient Formula Fórmula del coeficiente de similitud JACCARD

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

JACCARD Distance Formula Fórmula de la distancia JACCARD

MHJACCARD

MinHash Jaccard (MHJACCARD) es un tipo de métrica utilizada para la búsqueda eficiente y aproximada de similitudes en grandes conjuntos, como conjuntos de palabras de documentos, conjuntos de etiquetas de usuarios o conjuntos de k-mer genómicos. En lugar de comparar directamente conjuntos sin procesar, MHJACCARD compara firmas MinHash, que son representaciones compactas diseñadas para estimar la similitud de Jaccard de forma eficiente.

Este método es mucho más rápido que el cálculo exacto de la similitud de Jaccard y resulta especialmente útil en situaciones a gran escala o de alta dimensionalidad.

Tipo de vector aplicable

  • BINARY_VECTORdonde cada vector almacena una firma MinHash. Cada elemento corresponde al valor hash mínimo bajo una de las funciones hash independientes aplicadas al conjunto original.

Definición de distancia

MHJACCARD mide cuántas posiciones de dos firmas MinHash coinciden. Cuanto mayor es la proporción de coincidencia, más similares son los conjuntos subyacentes.

Milvus informa:

  • Distancia = 1 - similitud estimada (proporción de coincidencia)

El valor de la distancia oscila entre 0 y 1:

  • 0 significa que las firmas MinHash son idénticas (similitud Jaccard estimada = 1)

  • 1 significa que no hay coincidencias en ninguna posición (similitud de Jaccard estimada = 0)

Para obtener información sobre los detalles técnicos, consulte MINHASH_LSH.

Distancia HAMMING

La distancia 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. Dado que contiene dos 1s, la distancia HAMMING, d (11011001, 10011101) = 2.

Similitud BM25

El BM25 es un método de medición de la relevancia de los textos muy utilizado, diseñado específicamente para la búsqueda de textos completos. Combina los tres factores clave siguientes

  • Frecuencia de términos (TF): Mide la frecuencia con la que aparece un término en un documento. Aunque las frecuencias más altas suelen indicar una mayor importancia, BM25 utiliza el parámetro de saturación k1k_1 k para evitar que los términos demasiado frecuentes dominen la puntuación de relevancia.

  • Frecuencia inversa del documento (IDF): Refleja la importancia de un término en todo el corpus. Los términos que aparecen en menos documentos reciben un valor IDF más alto, lo que indica una mayor contribución a la relevancia.

  • Normalización de la longitud del documento: Los documentos más largos tienden a puntuar más alto debido a que contienen más términos. BM25 mitiga este sesgo normalizando la longitud de los documentos, y el parámetro bb b controla la intensidad de esta normalización.

La puntuación de BM25 se calcula del siguiente modo:

score(D,Q)=i=1nIDF(qi)TF(qi,D)(k1+1)TF(qi,D)+k1(1b+bDavgdl)score(D, Q)=\sum_{i=1}^{n}IDF(q_i)\cdot {{TF(q_i,D)\cdot(k_1+1)}\over{TF(q_i, D)+k_1\cdot(1-b+b\cdot {{|D|}\over{avgdl}})}}

Descripción del parámetro:

  • QQ Q: El texto de consulta proporcionado por el usuario.

  • DD D: El documento evaluado.

  • TF(qi,D)TF(q_i, D) TF,: Frecuencia de términos, que representa la frecuencia con la que el término qiq_iq aparece en el documento DD D.

  • (qi)IDF(q_i)): Frecuencia inversa del documento, calculada como:

    IDF(qi)=log(Nn(qi)+0.5n(qi)+0.5+1)IDF(q_i)=\log({N-n(q_i)+0.5\over n(q_i)+0.5} + 1)

    donde NN N es el número total de documentos del corpus,yn(qi)n(q_i) n ) es el número de documentos que contienen el término qiq_i q .

  • ∣D∣|D| Longitud del documento DD D (número total de términos).

  • avgdlavgdl: Longitud media de todos los documentos del corpus.

  • k1k_1 k: Controla la influencia de la frecuencia de términos en la puntuación. Los valores más altos aumentan la importancia de la frecuencia de los términos. El rango típico es [1,2, 2,0], mientras que Milvus permite un rango de [0, 3].

  • bb b: Controla el grado de normalización de la longitud, que va de 0 a 1. Cuando el valor es 0, no hay normalización. Cuando el valor es 0, no se aplica ninguna normalización; cuando el valor es 1, se aplica la normalización completa.

Try Managed Milvus for Free

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

Get Started
Feedback

¿Fue útil esta página?