Entre otras razones, el Big Data aparece por la necesidad de gestionar, manipular y analizar la cantidad ingente de datos que se genera hoy en día en nuestra sociedad híper conectada. La mayor parte de las veces, la información está en formato no estructurado, como es el caso de los textos. De ahí que la Minería de Textos tome gran relevancia a la hora de poder analizar textos y más concretamente el Modelado de topics, que nos permite estudiar la temática de los mismos. Este artículo muestra una comparativa en rendimiento de dos métodos dentro del modelado de topics que son LDA y LDA2vec.

Modelado de topics

La Minería de Textos es un área del aprendizaje automático (Machine Learning) centrada en extraer información oculta en los textos.
Dentro del área de la Minería de Textos, se encuentra el Modelado de Topics, utilizado para extraer estructuras semánticas ocultas de los textos escritos, es decir, para detectar las temáticas sobre las que trata un texto.

En la actualidad existen varios métodos muy extendidos dentro del Modelado de Topics. En este artículo se muestra una breve comparativa entre dos técnicas: Una ya consolidada e integrada dentro de muchas librerías, como Scikit-learn o Gensim , como es el modelo estadístico LDA (Latent Dirichlet Allocation). Por otra parte, la denominada LDA2vec , técnica novedosa que presenta mejoras sobre el LDA clásico.

LDA

La técnica LDA se apoya en la  Distribución  a priori de Dirichlet y en el concepto de Bag of words.

A partir de un conjunto de observaciones, como son las palabras por las que está compuesta un documento, con LDA se puedan inferir otros datos no observados, es decir, extraer información aparentemente oculta. Un ejemplo son los temas subyacentes a un documento.

Como resultado se obtiene una serie de matrices dispersas, con muchos ceros entre sus elementos, que representan la distribución en temas del conjunto de documentos además de la distribución de palabras dentro de cada topic o tema.

Word2vec

Existe otra técnica llamada word2vec que entrena con textos como entrada y produce como salida la representación vectorial de las palabras que los componen. Estos vectores son de tamaño fijo (entre 100-1000 dimensiones) y densos (pocos o ningún cero entre sus componentes).  Son también llamados word embeddings.

Esta técnica permite representar las palabras de una manera muy visual, como se ve a continuación. Teniendo en cuenta la premisa de que las palabras que aparecen en el mismo contexto se representan con vectores similares.

king – queen? king – man + woman = queen

LDA2vec

LDA2vec es una librería de código abierto y podría definirse como una combinación de las dos técnicas anteriores. Por un lado, aplica la representación de palabras mediante vectores densos, propios de Word2vec, junto con la representación de documentos heredada de LDA, es decir, mediante matrices/vectores dispersos en base a los tópicos a los que pertenecen dichos documentos.

LDA trata los documentos y las palabras de una manera global dentro de un conjunto de documentos y tiene la propiedad de resumir la información de un texto a un alto nivel de una manera sencilla. Mientras que Word2vec trabaja de manera local, a nivel de palabra y muy dependiente del contexto.

Interpretación de las estructuras de datos obtenidas

Un ejemplo de vector denso con cientos de dimensiones, como los de Word2vec, sería así:

Como se puede observar, un vector solo no aporta significado. Para entenderlo habría que mirar al resto de palabras vecinas.

Sin embargo, los vectores de documento heredados de LDA son más fáciles de interpretar:

Por ejemplo, este vector nos dice que el documento pertenece con un 9% a un tema, con un 78% a otro y un 11% a otro diferente. Siguiendo la idea que un documento es mezcla de varios topics pero no de muchos a la vez.

Métrica de Pametto

Esta métrica calcula la coherencia de las principales palabras que forman un tópico. Es decir, la coherencia pone un valor a cómo están relacionadas las palabras entre sí en una lista, valorando de 0 a 1.

Para evaluar los resultados obtenidos con ambos métodos y poder compararlos se utiliza la métrica de Palmetto de Röder y colaboradores.

Se ha optado por esta métrica de comparación al ser la utilizada por el propio autor de LDA2vec para evaluar su método, lo que permite contrastar nuestros resultados con los suyos.

Datasets

Para realizar la comparativa entre LDA y LDA2vec se ha utilizado dos conjuntos de datos: The 20 newsgroup y Jeopardy.

The 20 newsgroups: corpus o conjunto de documentos muy utilizado en el aprendizaje automático de análisis de textos. Consiste en un conjunto de unas 20.000 noticias categorizadas en 20 topics.

A continuación se muestra una extracción de las palabras clasificadas en topics obtenidas en los experimentos con cada una de las técnicas. Como se puede observar, con bastante coherencia entre ellas.

WordCloud – Resultados LDA con The 20NG dataset

Listado LDA2vec con The 20NG dataset

Jeopardy questions: conjunto de datos con más de 200.000 preguntas del concurso televisivo estadounidense Jeopardy. Debido a su gran tamaño se han realizado los experimentos con solo un subconjunto del mismo, en concreto 25.000 textos. En este caso, el corpus de documentos se encuentra en formato JSON, del que se han extraído exclusivamente las preguntas del concurso.

WordCloud – Resulados LDA con dataset Jeopardy

Listado LDA2vec con dataset Jeopardy

Resultados y Conclusiones

El siguiente gráfico ilustra la puntuación obtenida con Palmetto en cada uno de los datasets utilizados y por cada una de las técnicas protagonistas del estudio, calculando la media sobre la cifra de Palmetto obtenida en cada uno de los temas.

Métrica de Palmetto para LDA y LDA2vec
Métrica de Palmetto comparando ambas técnicas

Como se puede observar, para el conjunto de datos de The 20 newsgroup, ambas técnicas responden de manera similar, obteniendo de media un valor de Palmetto de 0.48. Sin embargo, en el conjunto de datos del programa televisivo Jeopardy, sí se obtiene un resultado más diferenciador con la técnica de LDA2vec frente a LDA, en concreto un 0.45 de media, frente al 0.38 respectivamente.

Del desarrollo de este estudio comparativo se pueden extraer las siguientes conclusiones:

LDA2vec resulta más difícil de utilizar que LDA. La documentación es escasa y la falta de mantenimiento y actualizaciones lo hace especialmente problemático. Por otra parte, el proyecto LDA2vec parece haber tenido poco seguimiento a pesar de que inicialmente parecía lo contrario.  Sin embargo, LDA cuenta con la ventaja de estar integrado en muchas librerías como scikit-learn o gensim lo que facilita su uso.

Otra desventaja con respecto a LDA2vec es que requiere más tiempo de ejecución. Con LDA2vec se requiere horas de entrenamiento además del uso de GPUS, ya que si no el tiempo de procesamiento es inviable. En cambio, con LDA  la misma acción implica solo unos minutos consumiendo muchos menos recursos.

A pesar de las desventajas, se ha conseguido reproducir los experimentos del autor de LDA2vec con niveles de Palmetto muy similares. Inclusive, al aplicarlo en otro conjunto de datos, se ha conseguido mejores resultados que con LDA.

Links de Interés

Text Mining (Wikipedia)
https://en.wikipedia.org/wiki/Text_mining

Moody CE 2016. Mixing Dirichlet Topic Models and Word Embeddings to make LDA2vec https://arxiv.org/abs/1605.02019

Lars Hulstaert. LDA2Vec: Word Embeddings in Topic Models.
https://www.datacamp.com/community/tutorials/lda2vec-topic-model

Röder et al 2015. Exploring the Space of Topic Coherence Measures.
http://svn.aksw.org/papers/2015/WSDM_Topic_Evaluation/public.pdf

Distribución de probabilidad de Dirichlet (Wikipedia).
https://es.wikipedia.org/wiki/Distribuci%C3%B3n_de_Dirichlet

Latent Dirichlet Allocation (Wikipedia)
https://en.wikipedia.org/wiki/Latent_Dirichlet_allocation

Word2vec (Wikipedia)
https://en.wikipedia.org/wiki/Word2vec

Código LDA2vec
https://github.com/cemoody/lda2vec

Concepto de Bag of words (Wikipedia)
https://en.wikipedia.org/wiki/Bag-of-words_model

Concepto de Word embedding (Wikipedia)
https://es.wikipedia.org/wiki/Word_embedding

Código de Palmetto
https://github.com/dice-group/Palmetto

Dataset The 20 Newsgroups
http://qwone.com/~jason/20Newsgroups/

Dataset Jeopardy https://www.reddit.com/r/datasets/comments/1uyd0t/200000_jeopardy_questions_in_a_json_file/

Sobre mí:

Acabé la carrera de Ingeniería Informática en 2008, fui dando tumbos por varias áreas, hasta que en 2014 encontré mi hueco en este mundillo cuando cayó en mis manos un folleto de un curso de verano de Big Data y Data Science. A partir de ahí, no he dejado de formarme en el campo, el cual me apasiona.  Ahora estoy volcada con el Deep Learning.

Arucas Chacón

Sobre PUE

Como líder de Big Data, Cloud, Microservicios, NoSQL y DevOps en España, el objetivo de PUE es, siempre, ofrecer a sus clientes las mejores soluciones con las últimas tecnologías: soluciones innovadoras propuestas por un equipo técnico certificado, expertos en Administración, Analista de Datos, Científico de Datos y Desarrollo.

Para más información sobre los servicios de PUE:

Servicios y soluciones con PUE
Formación y certificación oficial

Contacta para saber más en:

mail consulting@pue.es icon-formSolicitud de información para la implantación de proyectos