LDA vs word2vec

39

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:

Piotr Migdal
fuente
Encontré esta presentación en el lugar: slideshare.net/ChristopherMoody3/…
Piotr Migdal
Deberías mirar Doc2vec (también conocido como párrafo2vec). Los vectores de documentos resumen el documento en lugar de las palabras.
sachinruk

Respuestas:

19

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:

  • ninguno de los métodos es una generalización de otro,
  • word2vec nos permite usar geometría vectorial (como analogía de palabras, por ejemplo, vkyonortesol-vmetrounanorte+vwometrounanortevqtumiminorte , escribí una descripción general de word2vec )
  • LDA ve correlaciones más altas que dos elementos,
  • LDA da temas interpretables.

Se discuten algunas diferencias en las diapositivas word2vec, LDA e introducen un nuevo algoritmo híbrido: lda2vec - Christopher Moody .

Piotr Migdal
fuente
1
Yo diría que la declaración "LDA da temas interpretables" para decir que los temas de LDA son potencialmente interpretables. La idea de LDA de "tema" es una construcción puramente matemática que no siempre se correlaciona con lo que un humano piensa como tema.
Wayne
Un concepto clave que omitió es que LDA utiliza un enfoque de bolsa de palabras, por lo que solo conoce las coincidencias dentro de un documento, mientras que word2vec (o más comparable doc2vec) considera el contexto de una palabra.
Wayne
13

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.

Bar
fuente
1
Teóricamente, podría obtener algo análogo a las incorporaciones de vectores de word2vec calculando P (tema | palabra) de LDA, pero como dijo @Bar, estos modelos fueron diseñados para diferentes tareas. Si compara las distribuciones de P (tema | palabra) de LDA con las incorporaciones de vectores de word2vec, dudo que sean muy similares. LDA está capturando asociaciones de nivel de documento, mientras que word2vec está capturando asociaciones muy locales.
Zubin
4

Topagsyodo2Vmidotosolmithmir wyoth

re={w1:z1,...,wMETRO:zMETRO}zyowyo

LdosiOW(re)=1METROyo=1METRO(Iniciar sesiónpags(wyoEl |wmiXt)+Iniciar sesiónpags(zyoEl |wmiXt))

LSkyopags-solrunametro(re)=1METROyo=1METRO-kdok,do0 0(Iniciar sesiónpags(wyo+doEl |wyo)+Iniciar sesiónpags(wyo+doEl |zyo))

doOSyonortemi SyoMETROyoLUNARyoTY

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.

Ricardo S.
fuente
2

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:

word2vecfinalmente 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, word2veccomo usar el orden de las palabras y asignar un significado semántico a las distancias entre las representaciones de palabras.

LDAPor 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 el doc2vecque hace el mismo trabajo y es presentado por Tomas Mikolov aquí (el autor usa el término paragraph vectors). O con LSIeso.

Entonces, para responder directamente a sus dos preguntas:

  1. Ninguno de ellos es una generalización o variación del otro.
  2. Use LDA para asignar un documento a un vector de longitud fija. Luego puede usar este vector en un algoritmo ML tradicional como un clasificador que acepta un documento y predice una etiqueta sentimental, por ejemplo.
  3. Se usa word2vecpara 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.
pilu
fuente
1

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).

Wayne
fuente