Resumen de algoritmos para calcular similitudes

Cálculo de similitud

1 Introducción al cálculo de similitud

    En cuanto al cálculo de similitud, los varios métodos básicos existentes se basan en vectores. De hecho, se calcula la distancia entre dos vectores. Cuanto más cercana es la distancia, mayor es la similitud. En el escenario recomendado, en la matriz bidimensional de preferencias de elementos de usuario, podemos usar las preferencias de un usuario para todos los elementos como un vector para calcular la similitud entre los usuarios, o utilizar todas las preferencias de los usuarios para un elemento como Un vector para calcular la similitud entre elementos. A continuación presentamos en detalle varios métodos de cálculo de similitud comúnmente utilizados:

1.1 Coeficiente de correlación de Pearson (coeficiente de correlación de Pearson) (uno de los algoritmos utilizados por Baidu para determinar la similitud de tiele)

El coeficiente de correlación de Pearson se usa generalmente para calcular la cercanía de la relación entre dos variables de distancia fija, y su valor está entre [-1, +1].

                                              

s x , s y son las desviaciones estándar de muestra de x e y.

类 名 : PearsonCorrelationSimilarity

Principio: Estadísticas utilizadas para reflejar la correlación lineal de dos variables.

Rango: [-1,1], cuanto mayor es el valor absoluto, más fuerte es la correlación y la correlación negativa tiene poca importancia para la recomendación.

Nota: 1. No se considera el número de superposiciones; 2. Si solo hay una superposición, no se puede calcular la similitud (el proceso de cálculo tiene un divisor de n-1); 3. Si los valores superpuestos son todos iguales, no se puede calcular la similitud (la desviación estándar es 0, hacer el divisor).

Esta similitud no es la mejor opción, ni la peor opción, solo porque es fácil de entender y a menudo se menciona en las primeras investigaciones. El uso de los coeficientes de correlación lineal de Pearson debe suponer que los datos se obtienen de la distribución normal en pares, y los datos deben estar al menos igualmente espaciados en la categoría lógica. En Mahout, se proporciona una extensión para el cálculo de la correlación de Pearson. Al agregar un parámetro del tipo de enumeración (Ponderación), el número de superposiciones también se convierte en un factor de influencia para calcular la similitud.

1.2 Distancia euclidiana

Originalmente utilizado para calcular la distancia entre dos puntos en el espacio euclidiano, suponiendo que x, y son dos puntos en el espacio n-dimensional, y la distancia euclidiana entre ellos es:

 

Se puede ver que cuando n = 2, la distancia euclidiana es la distancia entre dos puntos en el plano. Cuando la distancia euclidiana se usa para expresar similitud, la siguiente fórmula se usa generalmente para la conversión: cuanto menor es la distancia, mayor es la similitud.

 

类 名 : EuclideanDistanceSimilarity

Principio: Usando la similitud s definida por la distancia euclidiana d, s = 1 / (1 + d).

Rango: [0,1], cuanto mayor sea el valor, menor será la d, es decir, cuanto más cercana sea la distancia, mayor será la similitud.

Nota: Al igual que la similitud de Pearson, la similitud no considera el efecto del número de superposiciones en los resultados.De manera similar, Mahout agrega un parámetro de tipo de enumeración (Ponderación) para hacer que el número de superposiciones sea un factor influyente para calcular la similitud.

1.3 Similitud de coseno (similitud de coseno)

La similitud de coseno se usa ampliamente para calcular la similitud de los datos del documento:

 

类 名 : Sin CensuraCosinaSimilaridad

Principio: Dos puntos en el espacio multidimensional forman el coseno del ángulo incluido con el punto de ajuste.

Rango: [-1,1], cuanto mayor es el valor, mayor es el ángulo incluido, más lejos están los dos puntos separados y menor es la similitud.

Explicación: en la expresión matemática, si los atributos de los dos elementos están centrados en los datos, la similitud del coseno calculada y la similitud de Pearson son las mismas. El valor de similitud es también la similitud del coseno después de la centralización de datos. Además, en la nueva versión, Mahout proporciona la clase UncenteredCosineSimilarity para calcular la similitud del coseno de los datos descentralizados.

 

1.4 Coeficiente de correlación de rango de Spearman-Correlación de Spearman

类 名 : SpearmanCorrelationSimilarity

Principio: el coeficiente de correlación de rango de Spearman generalmente se considera el coeficiente de correlación lineal de Pearson entre las variables clasificadas.

Rango: {-1.0, 1.0}, 1.0 cuando coinciden, -1.0 cuando no coinciden.

Nota: El cálculo es muy lento y hay mucha clasificación. Para el conjunto de datos en el sistema de recomendación, no es apropiado usar el coeficiente de correlación de rango de Spearman como medida de similitud.

1.5 Coeficiente de Tanimoto

El coeficiente de Tanimoto también se llama coeficiente de Jaccard, que es una extensión de la similitud de coseno, y también se utiliza para calcular la similitud de los datos del documento:

 

Categoría: Tanimoto Coeficiente Similitud

Principio: También conocido como el coeficiente de Jaccard generalizado, es una extensión del coeficiente de Jaccard. La ecuación es

Rango: [0,1], 1 cuando hay superposición completa, 0 cuando no hay superposición, cuanto más cerca de 1, más similar.

Nota: Manejo de datos de preferencias sin puntuación.

 

1.6 Similitud de probabilidad logarítmica

Nombre de clase: LogLikelihoodSimilarity

Principio: el número de superposición, el número de no superposición, el número de ninguno

Nota: El procesamiento de datos de preferencias sin puntuación es más inteligente que el método de cálculo del coeficiente de Tanimoto.

 

1.7 Distancia de Manhattan

类 名 : CityBlockSimilarity

Principio: la realización de la distancia de Manhattan, similar a la distancia euclidiana, se utiliza para medir la distancia espacial de datos multidimensionales

Rango: [0,1], consistente con la distancia euclidiana, cuanto menor es el valor, mayor es la distancia y mayor es la similitud.

Nota: El cálculo es menor que la distancia euclidiana y el rendimiento es relativamente alto.

 

2 Análisis de ventajas y desventajas de varios métodos de cálculo de similitud.

2.1 Similitud basada en correlación de Pearson - Similitud basada en correlación de Pearson

El coeficiente de correlación de Pearson refleja el grado de correlación lineal entre dos variables, y su valor está entre [-1, 1]. Cuando la relación lineal entre las dos variables aumenta, el coeficiente de correlación tiende a 1 o -1; cuando una variable aumenta, la otra variable también aumenta, lo que indica que hay una correlación positiva entre ellas, el coeficiente de correlación es mayor que 0; si una variable aumenta Más grande, pero la otra variable disminuye, lo que indica que están correlacionadas negativamente y que el coeficiente de correlación es menor que 0; si el coeficiente de correlación es igual a 0, indica que no existe una correlación lineal entre ellas. Expresado por una fórmula matemática, el coeficiente de correlación de Pearson es igual a la covarianza de las dos variables dividido por la desviación estándar de las dos variables.

 

 

Covarianza (covarianza ): utilizada en teoría de probabilidad y estadística para medir el error total de dos variables. Si los cambios de las dos variables tienden a ser consistentes, es decir, si una de ellas es mayor que su valor esperado y la otra también es mayor que su valor esperado, entonces la covarianza entre las dos variables es positiva; si las tendencias de las dos variables son opuestas , La covarianza es negativa. Donde u representa la E esperada de X (X), y v representa la E esperada de Y (Y).

 

Desviación estándar (desviación estándar ):

 

Varianza : en teoría de probabilidad y estadística, la varianza de una variable aleatoria expresa su grado de dispersión, es decir, la distancia entre la variable y el valor esperado.

 

Es decir, la expectativa de que la varianza sea igual a la suma de los cuadrados de los errores, la similitud basada en el coeficiente de correlación de Pearson tiene dos desventajas :

(1) No se considera la influencia del número de elementos de calificación superpuestos entre los usuarios en la similitud;

(2) Si solo hay un elemento de calificación común entre dos usuarios, no se puede calcular la similitud.

 

En la tabla anterior, las filas representan algunos de los valores de calificación del usuario (1 a 5) para los elementos (101 a 103). Intuitivamente, Usuario1 y Usuario5 usan tres ítems de puntuación comunes, y los puntajes dados no son muy diferentes. Es razonable que la similitud entre ellos sea mayor que la similitud entre Usuario1 y Usuario4, pero Usuario1 y Usuario4 Hay una mayor similitud 1.

Ejemplo: la misma escena a menudo ocurre en la vida real. Por ejemplo, dos usuarios miraron 200 películas juntos. Aunque no necesariamente dan las mismas calificaciones o calificaciones completamente similares, la similitud entre ellos también debe verse más que la otra. ¡La similitud de 2 películas idénticas es alta! Pero este no es el caso: si las similitudes dadas por los dos usuarios son iguales o muy similares a las dos películas, la similitud calculada por la correlación de Pearson será significativamente mayor que entre los usuarios que vieron las mismas 200 películas. De similitud.

Mahout ofrece una implementación de similitud basada en el coeficiente de correlación de Pearson, que se basa en un DataModel como entrada.

 

Al mismo tiempo, Mahout también se optimiza para la deficiencia (1), solo necesita pasar un parámetro Weighting.WEIGHTED adicional al construir PearsonCorrelationSimilarity, que puede hacer que la similitud entre usuarios con elementos de calificación más similares sea más cercana a 1 -1.

 

[Java] :

  1. UserSimilarity similarity1 = new PearsonCorrelationSimilarity (model); 
  2. double value1 = similarity1.userSimilarity (1, 4);

3. double value2 = similarity1.userSimilarity (1, 5); 

4. UserSimilarity similarity2 = new PearsonCorrelationSimilarity (model, Weighting.WEIGHTED); 

5. double value3 = similarity1.userSimilarity (1, 4);

6. double value4 = similarity2.userSimilarity (1, 5); 

El resultado:

Similitud de Usuario1 y Usuario4: 0.9999999999999998

Similitud de Usuario1 y Usuario5: 0.944911182523068

Similitud de Usuario1 y Usuario4 con ponderación: 0.9999999999999999

Similitud de Usuario1 y Usuario5 con ponderación: 0.986227795630767

 

2.2 Similitud basada en la distancia euclidiana-Similitud basada en la distancia euclidiana

La similitud de cálculo de distancia euclidiana es el método más simple y más comprensible en todos los cálculos de similitud. Toma elementos que las personas han evaluado de manera consistente como eje de coordenadas, y luego dibuja a las personas que participan en la evaluación en el sistema de coordenadas, y calcula la distancia en línea recta entre ellos.

 

 

En la figura, el usuario A y el usuario B puntuaron los elementos X e Y, respectivamente. La calificación del usuario A para el artículo X es 1.8, y la calificación del artículo Y es 4, lo que indica que el sistema de coordenadas es el punto de coordenadas A (1.8, 4); de manera similar, la calificación del usuario B para los artículos X e Y se expresa como el punto de coordenadas B (4.5 , 2.5), entonces la distancia euclidiana (distancia en línea recta) entre ellos es:

 

La distancia euclidiana calculada es un número mayor que 0. Para hacerla más representativa de la similitud entre usuarios, se puede reducir a entre (0, 1), el enfoque específico es: 1 / (1 + d) Ver la tabla de arriba.

 

Mientras haya al menos un elemento de puntuación común, la distancia euclidiana se puede usar para calcular la similitud; si no hay un elemento de puntuación común, la distancia euclidiana se vuelve inútil. De hecho, como de costumbre, si no hay elementos de calificación comunes, significa que los dos usuarios o elementos no son similares en absoluto.

 

2.3 Similitud de coseno-similitud de coseno

La similitud de coseno utiliza el valor del coseno del ángulo entre dos vectores en el espacio vectorial como una medida de la diferencia entre los dos individuos. En comparación con la medida de la distancia, la similitud del coseno presta más atención a la diferencia en la dirección de los dos vectores que la distancia o la longitud.

 

Similar a la distancia euclidiana, el método de cálculo basado en la similitud del coseno también toma la preferencia del usuario como un punto en el sistema de coordenadas n-dimensional. Al conectar este punto y el origen del sistema de coordenadas para formar una línea recta (vector), dos usuarios El valor de similitud es el coseno del ángulo entre dos líneas rectas (vectores). Debido a que la línea que conecta el punto que representa la calificación del usuario y el origen se intersecarán en el origen, cuanto más pequeño sea el ángulo, más similares son los dos usuarios, y cuanto más grande es el ángulo, menos similares son los dos usuarios. Al mismo tiempo, en los coeficientes trigonométricos, el coseno del ángulo está entre [-1, 1], el coseno del ángulo de 0 grados es 1 y el coseno del ángulo 180 es -1. Use el sistema de coordenadas tridimensional para ver la diferencia entre la distancia euclidiana y la similitud del coseno:

 

Se puede ver en la figura que la medida de distancia mide la distancia absoluta entre puntos en el espacio y está directamente relacionada con las coordenadas de posición de cada punto (es decir, el valor de la dimensión de entidad individual); mientras que la similitud del coseno mide el ángulo del vector espacial, Lo que es más es la diferencia de dirección, no la ubicación. Si la posición del punto A se mantiene sin cambios, y el punto B está lejos del origen del eje de coordenadas en la dirección original, entonces la similitud del coseno cos permanece sin cambios en este momento, porque el ángulo no cambia, y la distancia entre los dos puntos A y B obviamente está cambiando. Esta es la diferencia entre la distancia euclidiana y la similitud del coseno.

Características de la similitud de coseno:

  1. No es sensible al valor absoluto del usuario.
  2. El cálculo no considera el número de elementos de calificación comunes entre los usuarios. Incluso si solo hay unos pocos de los mismos elementos de calificación, es posible obtener un gran resultado de similitud, como uer3 y user1 en la tabla anterior.
  3. Mientras los ítems de calificación tienden a corresponder proporcionalmente, independientemente de la diferencia numérica, la similitud tiende a 1,000.

De acuerdo con los métodos de cálculo respectivos y las características de medición de la distancia euclidiana y la similitud del coseno, son adecuados para diferentes modelos de análisis de datos: la distancia euclidiana puede reflejar la diferencia absoluta de las características numéricas individuales, por lo que se usa más en el tamaño del valor numérico de la dimensión Incorporar el análisis de diferencias, como el uso de indicadores de comportamiento del usuario para analizar la similitud o la diferencia del valor del usuario; mientras que la similitud del coseno es más para distinguir la diferencia de la dirección, pero no es sensible al valor absoluto, se usa más para usar al usuario al contenido La puntuación se utiliza para distinguir la similitud y la diferencia de intereses, y al mismo tiempo soluciona el problema de las métricas inconsistentes entre los usuarios (porque la similitud del coseno no es sensible a los valores absolutos).

Nota:

Según el análisis anterior, la similitud de coseno es más adecuada para este tipo de trabajo de minería de datos:

  1. El resultado del cálculo no es sensible al valor absoluto de los datos del usuario, por ejemplo, al describir los intereses, las preferencias del usuario o el uso en el análisis de sentimientos.
  2. El valor de calificación en los datos del usuario es en realidad el resultado de calificación subjetiva del usuario. En otras palabras, los criterios de evaluación de cada usuario son inconsistentes, algunos son más estrictos para la definición de "bueno", mientras que otros son para "bueno" y "no La definición de "bueno" es más indulgente. En este caso, el uso de la similitud de coseno para calcular la similitud o diferencia entre usuarios puede debilitar el factor de que las métricas no son uniformes . Por ejemplo:

Métricas difusas

"Muy mal"

"No es bueno"

"Mejor"

"Muy bueno"

Criterios de evaluación del usuario1

1.0

2,0

3.5

4.0 4.0

Criterios de evaluación del usuario2

2,0

3.0

4.0 4.0

5.0

Criterios de evaluación del usuario3

1.0

2,0

3.0

4.0 4.0

Los criterios de evaluación de usuario1 y usuario3 en la tabla anterior son muy similares, ambos son más "duros" y el usuario2 es más "tolerante" en comparación.

Articulo

Item001

Articulo002

Articulo003

Comentario del usuario1

2,0

4.0 4.0

3.5

Comentario del usuario2

3.5

5.0

4.5 4.5

Comentario del usuario3

2,0

3.5

4.0 4.0

Desde el punto de vista numérico, está claro que los valores de puntaje de usuario1 y usuario3 están más cerca, y parece que la similitud es mayor; mientras que el valor de puntaje de usuario2 es más diferente que el de usuario1.

    [Java]:

1. UserSimilarity similarity1 = new UncenteredCosineSimilarity (modelo); 

2. double value1 = similarity1.userSimilarity (1, 2);

3. double value2 = similarity1.userSimilarity (1, 3);

4.UserSimilarity similarity2 = new EuclideanDistanceSimilarity (model); 

5. double value3 = similarity2.userSimilarity (1, 2);

6. double value4 = similarity2.userSimilarity (1, 3);

 

Resultado del cálculo:

Similitud de Usuario1 y Usuario2 usando cos: 0.9927441515592047

Similitud de Usuario1 y Usuario3 usando cos: 0.9801293311529091

Similitud de Usuario1 y Usuario2 usando Euc : 0.45657137141714005

 

Similitud de Usuario1 y Usuario3 usando Euc: 0.4721359549995794

Sin embargo, el cálculo de la similitud del coseno revela :

Similitud entre Usuario2 y usuario1> Similitud entre Usuario3 y usuario1. Pero si piensa en la velocidad en términos de distancia euclidiana: la similitud entre Usuario2 y usuario1 <Usuario3 y usuario1.

 

2.4 Ajuste de la similitud de coseno: similitud de coseno ajustada

En la introducción de la similitud del coseno, se dice que la similitud del coseno es más para distinguir la diferencia de la dirección, pero no es sensible al valor absoluto. Por lo tanto, no hay forma de medir la diferencia en los valores de cada dimensión, lo que conducirá a tal situación: por ejemplo, los usuarios calificaron el contenido en una escala de 5 puntos, y los usuarios X e Y calificaron los dos contenidos como (1,2) y (4, 5), el resultado obtenido usando la similitud del coseno es 0.98, y los dos son muy similares, pero desde el punto de vista de X, parece que no les gustan estos dos contenidos, mientras que Y lo prefiere. Errores, esta irracionalidad debe corregirse, y la similitud del coseno se ajusta, es decir, los valores en todas las dimensiones se restan de un promedio, por ejemplo, el puntaje promedio de X e Y es 3, luego el ajustado es (-2, - 1) y (1,2), y luego use el cálculo de similitud de coseno para obtener -0.8, la similitud es negativa y la diferencia no es pequeña, pero obviamente está más en línea con la realidad.

 

2.5 Correlación de Spearman-Correlación de Spearman

La correlación de Spearman puede entenderse como la correlación de Pearson entre las preferencias de usuario de Rank. "Mahout in Action" tiene esta explicación: supongamos que para cada usuario, encontramos el elemento que menos le gusta y reescribimos su valor de calificación como "1", luego busca el siguiente elemento menos favorito y reescribe la calificación El valor es "2", y así sucesivamente. Luego encontramos el coeficiente de correlación de Pearson para estos valores convertidos, que es el coeficiente de correlación de Spearman.

El cálculo de la correlación de Spearman ha descartado alguna información importante, es decir, el valor de puntuación real. Pero conserva la característica esencial de la ordenación del valor de preferencia del usuario, que se calcula sobre la base de la ordenación (o rango). Recordando las preferencias (puntajes) del Usuario1 ~ 5 al Ítem101 ~ 103 en la tabla anterior, la similitud calculada por el coeficiente de correlación de Spearman es

 

Descubrimos que el valor de similitud calculado es 1 o -1, porque depende de si el valor de preferencia del usuario y el valor de preferencia del Usuario1 tienden a "cambiar consistentemente" o "cambios de tendencia opuestos". Mahout ofrece una implementación de los coeficientes de correlación de Spearman. Para más detalles, consulte Similitud de correlación de Spearman. Su eficiencia de ejecución no es muy alta, porque el cálculo de la correlación de Spearman requiere tiempo para calcular y almacenar una clasificación de valores de preferencia (Rangos) Depende de la magnitud de los datos. Debido a esto, los coeficientes de correlación de Spearman se usan generalmente para investigación académica o cálculos a pequeña escala.

 

[java]:

UserSimilarity similarity1 = new SpearmanCorrelationSimilarity (modelo);

// construye una similitud basada en correlación de Spearman 

El resultado:

Usuario1 a Usuario1: 1.0

Usuario2 a Usuario1: -1.0

Usuario3 a Usuario1: NaN

Usuario4 a Usuario1: 1.0

Usuario4 a Usuario1: 1.0

Teniendo en cuenta la eficacia de Spearman Correlation, Spearman CorrelationSimilarity se puede envolver con una capa de caché, el enfoque específico es:

[Java]:

UserSimilarity similarity2 = new CachingUserSimilarity (nuevo SpearmanCorrelationSimilarity (model), model); 

De esta manera, el resultado de cada cálculo se colocará directamente en la caché, y el resultado se obtendrá de inmediato cuando se realice el siguiente cálculo, en lugar de volver a calcular.

Características del coeficiente de correlación de Spearman :

  1. La correlación de Spearman es un método para estudiar la correlación entre dos variables basadas en datos de calificaciones. Se calcula en función de la diferencia entre el número de pares de dos pares de niveles, por lo que también se denomina "método de diferencia de nivel"
  2. El coeficiente de correlación de Spearman no requiere la distribución de variables originales, y pertenece a un método estadístico no paramétrico. Por lo tanto, su rango aplicable es mucho más amplio que el coeficiente de correlación de Pearson. El coeficiente de correlación de Spearman puede calcularse incluso si los datos originales son datos de calificación. El coeficiente de correlación de Spearman también se puede calcular para los datos sujetos al coeficiente de correlación de Pearson,
  3. El poder estadístico es más bajo que el coeficiente de correlación de Pearson (no es fácil detectar la correlación real entre los dos).
  4. Spearman puede usar Spearman siempre que las observaciones de las dos variables sean datos de evaluación de calificaciones emparejados o datos de calificaciones convertidos de datos de observación de variables continuas, independientemente de la forma de distribución general de las dos variables y el tamaño del tamaño de la muestra. Investigación relacionada con los niveles.

Nota: Spearman le da a Pearson:

1. Para datos continuos, distribución normal y relación lineal, es más apropiado usar el coeficiente de correlación de Pearson. Por supuesto, el coeficiente de correlación de Spearman también se puede usar, es decir, la eficiencia no es tan alta como el coeficiente de correlación de Pearson.

2. Si alguna de las condiciones anteriores no se cumple, se utiliza el coeficiente de correlación de Spearman en lugar del coeficiente de correlación de Pearson.

3. El coeficiente de correlación de Spearman también se usa entre dos datos de medición secuenciados, y el coeficiente de correlación de Pearson no se puede usar.

4. Mientras X e Y tengan una relación funcional monotónica, entonces X e Y estarán completamente relacionados con Spearman, lo cual es diferente de la correlación de Pearson, que solo está completamente relacionada cuando existe una relación lineal entre las variables.

 

6.  Medida de  similitud basada en el coeficiente de Tanimoto —— Similitud basada en el coeficiente de Tanimoto 

El coeficiente de Tanimoto es muy diferente de los cinco métodos de cálculo de correlación anteriores. No le importa cuál es el valor de calificación específico del usuario para el artículo, y le importa si existe una asociación entre el usuario y el artículo. El coeficiente de Tanimoto se basa en esta relación booleana entre usuarios y elementos como entrada. Una declaración más precisa es: el coeficiente de Tanimoto se usa principalmente para calcular la similitud entre individuos de métrica de símbolo o métrica booleana, porque los atributos característicos de los individuos se identifican por métrica de símbolo o valor booleano, por lo que el tamaño del valor específico de la diferencia no se puede medir, solo Se puede obtener el resultado de "si es lo mismo", por lo que el Coeficiente de Tanimoto solo se preocupa por si las características compartidas por los individuos son consistentes. El coeficiente de Tanimoto también se denomina coeficiente de Jaccard, y su valor es igual al número de elementos que dos usuarios asocian (les guste o no) dividido por el número de todos los elementos que los dos usuarios asocian por separado.

 

Es decir, la intersección de la asociación se divide por la unión de la asociación, que se expresa como:

 

El valor está entre [0, 1]. Si los elementos asociados con los dos usuarios son exactamente iguales, la intersección es igual a la unión y el valor es 1. Si no hay asociación, la intersección está vacía y el valor es 0.

Nota: La asociación mencionada en este bloque significa que el usuario tiene un valor de calificación para el artículo.

 

De: https://www.tuiedu.org/74.html

Supongo que te gusta

Origin www.cnblogs.com/luodaxia/p/12699545.html
Recomendado
Clasificación