Estoy tratando de entender cuál es la similitud entre la asignación de Dirichlet latente y word2vec para calcular la similitud de palabras.
Según tengo entendido, LDA asigna palabras a un vector de probabilidades de temas latentes , mientras que word2vec las asigna a un vector de números reales (relacionado con la descomposición de valores singulares de información mutua puntual, ver O. Levy, Y. Goldberg, "Neural Word Embedded como Factorización de matriz implícita " ; consulte también ¿Cómo funciona word2vec? ).
Me interesan tanto las relaciones teóricas (puede considerarse una generalización o variación de la otra) como las prácticas (cuándo usar una pero no la otra).
Relacionado:
machine-learning
self-study
natural-language
latent-variable
word2vec
Piotr Migdal
fuente
fuente
Respuestas:
Una respuesta a los modelos de tema y los métodos de coincidencia de palabras cubre la diferencia (skip-gram word2vec es la compresión de información mutua puntual (PMI) ).
Asi que:
Se discuten algunas diferencias en las diapositivas word2vec, LDA e introducen un nuevo algoritmo híbrido: lda2vec - Christopher Moody .
fuente
Los dos algoritmos difieren bastante en su propósito.
LDA está dirigido principalmente a describir documentos y colecciones de documentos al asignarles distribuciones de temas, que a su vez tienen asignadas distribuciones de palabras, como usted menciona.
word2vec busca incorporar palabras en un espacio vectorial de factor latente, una idea que se origina en las representaciones distribuidas de Bengio et al. También se puede usar para describir documentos, pero en realidad no está diseñado para la tarea.
fuente
Además, encontrará dentro de ese trabajo algunas frases como:
"La probabilidad no es la mejor opción para la representación de características"
y
"LDA prefiere describir la relación estadística de ocurrencias en lugar de la información semántica real incrustada en palabras, temas y documentos"
lo que te ayudará a comprender mejor los diferentes modelos.
fuente
Otras respuestas aquí cubren las diferencias técnicas entre esos dos algoritmos, sin embargo, creo que la diferencia principal es su propósito: esos dos algoritmos fueron diseñados para hacer cosas diferentes:
word2vec
finalmente produce un mapeo entre palabras y un vector de longitud fija. Si lo comparáramos con otro enfoque bien conocido, tendría más sentido hacerlo utilizando otra herramienta diseñada para el mismo propósito, como la Bolsa de palabras (modelo BOW). Éste hace lo mismo pero carece de algunas características deseadas,word2vec
como usar el orden de las palabras y asignar un significado semántico a las distancias entre las representaciones de palabras.LDA
Por otro lado, crea una asignación de un documento de longitud variable a un vector. Este documento puede ser una oración, un párrafo o un archivo de texto completo, pero no es una sola palabra. Tendría más sentido compararlo con eldoc2vec
que hace el mismo trabajo y es presentado por Tomas Mikolov aquí (el autor usa el términoparagraph vectors
). O conLSI
eso.Entonces, para responder directamente a sus dos preguntas:
word2vec
para asignar una palabra a un vector de longitud fija. De manera similar, puede usar estos vectores para alimentar modelos ML donde la entrada son palabras, por ejemplo, cuando se desarrolla un autocompletador que se alimenta de palabras anteriores e intenta predecir la siguiente.fuente
Desde un punto de vista práctico ...
LDA comienza con una entrada de bolsa de palabras que considera qué palabras coexisten en los documentos, pero no presta atención al contexto inmediato de las palabras. Esto significa que las palabras pueden aparecer en cualquier parte del documento y en cualquier orden, lo que elimina un cierto nivel de información. Por el contrario, word2vec tiene que ver con el contexto en el que se usa una palabra, aunque quizás no sea el orden exacto.
Los "temas" de LDA son una construcción matemática y no debes confundirlos con temas humanos reales. Puede terminar con temas que no tienen interpretación humana, son más como artefactos del proceso que temas reales, y puede terminar con temas en diferentes niveles de abstracción, incluidos temas que básicamente cubren el mismo tema humano. Es un poco como leer hojas de té.
He encontrado que LDA es útil para explorar datos, pero no tanto para proporcionar una solución, pero su kilometraje puede variar.
Word2vec no crea temas directamente en absoluto. Proyecta palabras en un espacio de alta dimensión basado en un uso similar, por lo que puede tener sus propias sorpresas en términos de palabras que usted considera distintas, o incluso opuestas, pueden estar cerca unas de otras en el espacio.
Puede usar cualquiera para determinar si las palabras son "similares". Con LDA: ¿las palabras tienen pesos similares en los mismos temas? Con word2vec: están cerca (en cierta medida) en el espacio de incrustación.
Puede usar cualquiera para determinar si los documentos son similares. Con LDA, buscaría una mezcla similar de temas, y con word2vec haría algo como sumar los vectores de las palabras del documento. ("Documento" podría ser una oración, párrafo, página o un documento completo). Doc2vec es una versión modificada de word2vec que permite la comparación directa de documentos.
Si bien LDA arroja algo de información contextual con su enfoque de bolsa de palabras, tiene temas (o "temas"), que word2vec no tiene. Por lo tanto, es sencillo usar doc2vec para decir: "Muéstrame documentos que sean similares a este", mientras que con LDA es sencillo decir: "Muéstrame documentos donde el tema A es prominente". (Nuevamente, sabiendo que el "tema A" surge de un proceso matemático en sus documentos y luego descubre a qué tema (s) humano corresponde principalmente).
fuente