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 |
|---|---|---|---|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
2-32,768 |
|
|
|
No es necesario especificar la dimensión. |
|
|
|
8-32,768*8 |
|
|
Para los campos vectoriales del tipo
SPARSE\_FLOAT\_VECTOR, utilice el tipo métricoBM25só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 |
|---|---|---|
|
Un valor menor indica una mayor similitud. |
[0, ∞) |
|
Un valor mayor indica una mayor similitud. |
[-1, 1] |
|
Un valor mayor indica una mayor similitud. |
[-1, 1] |
|
Un valor menor indica una mayor similitud. |
[0, 1] |
|
Estima la similitud de Jaccard a partir de los bits de la firma MinHash; menor distancia = más similar. |
[0, 1] |
|
Un valor menor indica una mayor similitud. |
[0, dim(vector)] |
|
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, oINT8_VECTOR, puede utilizarMAX_SIM_COSINE,MAX_SIM_IP, oMAX_SIM_L2como tipo métrico.Para un campo vectorial que almacena incrustaciones vectoriales del tipo
BINARY_VECTOR, puede utilizarMAX_SIM_JACCADRoMAX_SIM_HAMMINGcomo 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:
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:
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:
Fórmula de normalización
La correlación entre las dos incrustaciones es la siguiente:
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:
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.
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.
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 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 b controla la intensidad de esta normalización.
La puntuación de BM25 se calcula del siguiente modo:
Descripción del parámetro:
Q: El texto de consulta proporcionado por el usuario.
D: El documento evaluado.
TF,: Frecuencia de términos, que representa la frecuencia con la que el término q aparece en el documento D.
): Frecuencia inversa del documento, calculada como:
donde N es el número total de documentos del corpus, n ) es el número de documentos que contienen el término q .
Longitud del documento D (número total de términos).
: Longitud media de todos los documentos del corpus.
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].
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.