K-medias en similitudes de coseno vs distancia euclidiana (LSA)

10

Estoy utilizando un análisis semántico latente para representar un corpus de documentos en un espacio dimensional inferior. Quiero agrupar estos documentos en dos grupos usando k-means.

Hace varios años, hice esto usando el gensim de Python y escribiendo mi propio algoritmo k-means. Determiné los centroides del grupo utilizando la distancia euclidiana, pero luego agrupé cada documento en función de la similitud del coseno con el centroide. Parece que funciono bastante bien.

Ahora estoy tratando de hacer esto en un corpus de documentos mucho más grande. K-means no converge, y me pregunto si es un error en mi código. Leí recientemente que no debería agruparse usando la similitud de coseno, porque k-means solo funciona en la distancia euclidiana. Aunque, como mencioné, parecía funcionar bien en mi caso de prueba más pequeño.

Ahora me encuentro con esto en la página de Wikipedia LSA :

Los documentos y las representaciones de vectores de términos se pueden agrupar utilizando algoritmos de agrupación tradicionales como k-means utilizando medidas de similitud como coseno.

Entonces, ¿cuál es? ¿Puedo usar la similitud de coseno o no?

Jeff
fuente
Ese tema de hecho persiste por mucho tiempo en este sitio. Solo pregunta reciente: stats.stackexchange.com/q/120085/3277 (ver más enlaces allí). Lo que es terriblemente interesante es cómo implementó k-means que procesa cosenos. Si describe su algoritmo en su pregunta, ayudará a las personas a responderlo.
ttnphns
@ttnphns Realmente generé centroides de clúster usando la distancia euclidiana (la media de cada dimensión). Sin embargo, luego asigné cada documento a un grupo basado en la similitud del coseno, en lugar de la distancia euclidiana.
Jeff
I then assigned each document to a cluster based on cosine similarity- Coseno entre un doc y un centroide? Y después de que se asignan todos los documentos, actualiza los centroides de una manera habitual (euclidiana), porque se conocen las coordenadas de los documentos en el espacio. ¿Es eso así?
ttnphns
1
Solo si la suma de los valores al cuadrado para cada documento en su conjunto de datos es la misma , su enfoque funcionará y siempre convergerá. Porque en ese caso (es decir, todas las de la misma longitud) los cosenos entre los centroides y los documentos serán estrictamente monotónicos con distancias euclidianas entre los centroides y los documentos. Pero eso significará que usar los cosenos para la asignación es innecesario y luego puede usar la asignación del algoritmo k-means estándar basado en las distancias euclidianas. h
ttnphns
1
Lo que estoy empezando a pensar es que puedes estar buscando k-means en una esfera, no en el espacio. Angular k-significa, por así decirlo. Supongo que es posible, pero nunca leí ni usé tal.
ttnphns

Respuestas:

4

Sí, puedes usarlo. El problema es que la similitud del coseno no es una distancia, por eso se llama similitud. Sin embargo, se puede convertir a una distancia como se explica aquí .

De hecho, puedes usar cualquier distancia. Un estudio muy agradable de las propiedades de las funciones de distancia en espacios de alta dimensión (como suele ser el caso en la recuperación de información) es Sobre el comportamiento sorprendente de las métricas de distancia en el espacio de alta dimensión . Sin embargo, no compara Euclidiana versus coseno.

Me encontré con este estudio donde afirman que en espacios de altas dimensiones, ambas distancias tienden a comportarse de manera similar.

jpmuc
fuente
1
Esta respuesta podría ser buena si describe cómo Yes, you can use it . (¿La idea de convertir coseno a distancia euclidiana es similar a mi respuesta ?)
ttnphns
Mi comprensión de k-means es diferente. No se limita necesariamente a la distancia euclidiana ( stat.uni-muenchen.de/~leisch/papers/Leisch-2006.pdf ). Consulte también mi segunda referencia o este paquete R ( cran.r-project.org/web/packages/cclust/cclust.pdf ). Quise decir que realmente me gusta en el sitio de Wikipedia. Uno solo necesita una función de distancia. Se refieren a él como "similitud angular".
jpmuc
1
Quizás (¡y gracias por compartir el periódico!). Pero entonces todas esas "modificaciones" de k-medias que difieren de k-medias en que definen el centroide no como media aritmética en el espacio euclidiano, no deberían llamarse k-medias.
ttnphns
1

La distancia euclidiana no es adecuada para comparar documentos o grupos de documentos. Al comparar documentos, una cuestión clave es la normalización por la longitud del documento. La similitud de coseno logra este tipo de normalización, pero la distancia euclidiana no. Además, los documentos a menudo se modelan como distribuciones de probabilidad multinomiales (llamada bolsa de palabras). La similitud del coseno es una aproximación a la divergencia JS, que es un método estadísticamente justificado para la similitud. Una cuestión clave con los documentos y el coseno es que se debe aplicar la normalización tf-idf adecuada a los recuentos. Si está utilizando gensim para derivar la representación LSA, gensim ya lo hace.

Otra observación útil para su caso de uso de 2 grupos es que puede obtener una buena inicialización no aleatoria porque LSA es solo SVD. Lo haces de la siguiente manera:

  • Tome solo el primer componente de cada documento (suponiendo que el primer componente sea el vector singular superior).
  • Ordene esos valores haciendo un seguimiento de los identificadores del documento para cada valor.
  • clúster 1 = identificadores de documento correspondientes a los valores superiores, p. ej. 1000 (o más)
  • grupo 2 = identificadores de documento correspondientes al fondo, por ejemplo, 1000 (o más) valores
  • simplemente promedie los vectores para cada grupo y normalice por longitud del vector.
  • Ahora aplique k-means a esta inicialización. Esto significa simplemente iterar (1) asignando documentos al centroide más cercano actual y (2) promediando y normalizando nuevos centroides después de la reasignación
Stefan Savev
fuente
1

Sí, funciona la misma actualización de centroide por promedio de vectores.

Ver m = 1 caso en la Sección 2.2 de este documento . w son los pesos y los pesos son todos 1 para los algoritmos base k-mean.

El documento utiliza propiedades de la desigualdad de Cauchy-Schwartz para establecer la condición que minimiza la función de costo para k-mean.

Recuerde también que la similitud del coseno no es una distancia vectorial. La disimiliaridad del coseno es. (Este debería ser un buen término de búsqueda). Por lo tanto, cuando actualiza la partición, está buscando arg maxlo contrario arg min.

Argyll
fuente