nlp in big data environments - biblioteca.cunef.edu

43
TRABAJO DE FIN DE MÁSTER NLP EN ENTORNOS BIG DATA: UN ENFOQUE METODOLÓGICO APLICADO AL MODELADO DE TÓPICOS NLP IN BIG DATA ENVIRONMENTS: A METHODOLOGICAL APROACH FOR TOPIC MODELING Realizado por: D. Álvaro Serrano López Dirigido por: D. Gabriel Antonio Valverde Castilla Máster En Data Science Para Finanzas COLEGIO UNIVERSITARIO DE ESTUDIOS FINANCIEROS Curso Académico: 2017 / 2018 CUNEF (Colegio Universitario De Estudios Financieros) Madrid, a 5 de Septiembre de 2018

Upload: others

Post on 15-Jul-2022

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

TRABAJO DE FIN DE MÁSTER

NLP EN ENTORNOS BIG DATA: UN ENFOQUE METODOLÓGICO APLICADO AL

MODELADO DE TÓPICOS

NLP IN BIG DATA ENVIRONMENTS: A METHODOLOGICAL APROACH FOR TOPIC MODELING

Realizado por: D. Álvaro Serrano López Dirigido por: D. Gabriel Antonio Valverde Castilla

Máster En Data Science Para Finanzas

COLEGIO UNIVERSITARIO DE

ESTUDIOS FINANCIEROS

Curso Académico: 2017 / 2018

CUNEF (Colegio Universitario De Estudios Financieros)

Madrid, a 5 de Septiembre de 2018

Page 2: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

1

INDICE

1. INTRODUCCIÓN

2. MARCO TEÓRICO

2.1. FUNDAMENTOS DEL PROCESAMIENTO DE LENGUAJE NATURAL

2.2. CONTEXTO LINGÜÍSTICO

2.3. MÓDULOS DEL PRE-PROCESAMIENTO

2.3.1. Tokenizado

2.3.2. Supresión de Términos Vacíos

2.3.3. Normalización

2.4. MODELOS DE REPRESENTACIÓN BASADOS EN LA FRECUENCIA

2.4.1. TF

2.4.2. TF-IDF

2.5. MODELOS DE REPRESENTACIÓN BASADOS EN LA PROBABILIDAD

2.5.1. N-gramas

2.6. TÉCNICAS DE MODELADOS DE TÓPICOS

2.6.1. LDA

2.6.2. Otros Métodos de Modelado de Tópicos

3. CUESTIONES METODOLÓGICAS

3.1. ENTORNO DE DESARROLLO

3.2. ANÁLISIS EXPLORATORIO

3.3. PRE-PROCESADO

3.3.1. Pre-Procesado Genérico

3.3.2. Pre-Procesado Contextual

3.4. MÉTODOS DE VECTORIZACION

3.5. LDA

3.5.1. Técnicas De Inferencia

3.5.2. Optimización De Hiperparametros

4. CONCLUSIONES

5. BIBLIOGRAFIA

ANEXO 1: Árbol de la familia lingüística Indoeuropea

ANEXO 2: Graficas de diagnostico de frecuencia

ANEXO 3: Resumen metodología de optimización de parámetros

Page 3: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

2

1. INTRODUCCIÓN

Suele ser habitual cuando tratamos de conceptualizar el fenómeno Big Data referirnos a un conjunto de datos con un alto volumen, alta velocidad de generación y variedad de fuentes. Sin embargo, aunque el peso de la importancia suele recaer sobre el volumen y la velocidad, existen fuentes de datos como las no estructuradas que tienen un potencial bastante inexplorado en la actualidad en comparación con las fuentes tradicionales.

Este tipo de datos representan un 80% de los datos almacenados por las empresas y asciende a cifras superiores si incluimos el contenido social. Esta importancia asciende si tenemos en cuenta que mientras que el Big Data crece anualmente de manera generalizada entre un 40% y 60%, mientras que particularmente la información no estructurada lo hace en un 80% (según informes de Gartner).

Las fuentes de información no estructuradas como el texto, las imágenes o el video, en comparación con la estructurada, aportan una información más completa y permiten aportar explicaciones alternativas a las conclusiones obtenidas con información de formato mas estricto, lo cual es fundamental en un entorno empresarial cada vez más exigente.

Dada la necesidad de desarrollar metodologías aplicables de manera generalizada con las que desarrollar modelos más complejos adaptados a estos volúmenes, el propósito de la investigación girara en torno a dos puntos. En primer lugar, y más importante, guiar al lector desde unos conocimientos básicos de estadística hasta una completa comprensión del funcionamiento de un proyecto de modelado de tópicos. Para ello se presentarán una selección de conceptos que permitan construir unos fundamentos sólidos acerca del modelado de tópicos y se acompañarán de unos cimientos metodológicos escalables y extrapolables sobre los que construir proyectos de este tipo.

Dado a las características propias de un proyecto con información no estructurada en general y del procesamiento del lenguaje natural en particular, este proyecto seguirá una estructura de densidad de materia decreciente ya que será necesario explicar conceptos básicos en más detalle que luego permitirán agilizar la explicación de la metodología aquí desarrollada.

Con el mencionado fin, este documento se articula en torno a cuatro apartados con la siguiente estructura: En el apartado 2 se presenta un marco teórico que permite comprender las bases cognitivas sobre las que se crea este proyecto (contextos lingüísticos, preprocesamiento, modelos de representación y técnicas de modelado de tópicos). En el apartado 3, se describen aquellos pasos seguidos en la metodología desarrollada. Así bien, dentro del mismo punto trataremos algunos aspectos básicos como el contexto lingüístico y de desarrollo, las técnicas de preprocesamiento a usar, los métodos de vectorización y algunas decisiones en el modelado como son la optimización de parámetros o los métodos de inferencia. Por último, se presentan las conclusiones acerca del estudio realizado, así como comentar algunas líneas de mejoras futuras.

Page 4: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

3

2. MARCO TEÓRICO

Construir un sistema de procesamiento de una lengua natural, al igual que cualquier otro sistema informático, es fundamentalmente una obra de ingeniería (Grishman, 1986): integra diferentes tipos de conocimiento y los apoya con un uso eficaz dentro de una metodología ordenada.

En los sistemas PLN, como cualquier obra de ingeniería informática, se parte de la premisa de que es más sencillo abordar un problema complejo si se divide en los subproblemas que lo componen y se resuelven individualmente, es decir, si se integran modularmente sus componentes. La complejidad del lenguaje y la cantidad de conocimientos necesarios para su procesamiento ha obligado a ramificar su estudio y especializar cada parte de manera modular. Como consecuencia de ello han surgido técnicas y herramientas que facilitan el desarrollo de metodologías complementarias. Sin ahondar en estas vamos a mostrar algunas en la siguiente tabla.

Ramas de conocimiento

Aplicaciones en PLN Utilidades practicas

Conocimiento fonético y fonológico

Reconocimiento y sentimiento del habla.

Medición del nivel de satisfacción

Conocimiento morfológico

Corrector ortográfico, parsing aplicado a lenguas con

morfología flexiva.

Corrector de un sistema de procesamiento de texto

Conocimiento sintáctico

Autocompletado de escritura, generación de lenguaje.

Creación de respuestas automatizadas para correos

Conocimiento semántico

Desambiguación de términos idénticos, agrupación de

sinónimos.

Mejoras en modelos de tópicos o traducción.

Conocimiento contextual

Modelado de tópicos Agrupación de listas de lectura automática

Tabla 1: Ramas del conocimiento en PLN

Dada la extensión disciplinar que este campo lleva consigo, resulta de vital importancia introducir unos mínimos que actúen de marco teórico para el lector y que permitan comprender las bases sobre las que están sustentadas este proyecto de modelado de tópicos.

2.1. FUNDAMENTOS DEL PROCESAMIENTO DE LENGUAJE NATURAL

El punto de partida será la aclaración de una serie cuestiones básicas ¿Que es la lingüística computacional?,¿Es equivalente al procesamiento del lenguaje natural (PLN)?,¿y a la minería de texto? Como es habitual en otras ramas del conocimiento en desarrollo, existen problemas en la identificación y delimitación de los objetos de estudio, aclaremos estos términos:

Page 5: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

4

• Lingüística computacional. Campo científico interdisciplinario que abarca la comprensión del lenguaje escrito y hablado desde una perspectiva computacional. Algunas de las vías de estudio de este campo podrían ser analizar la relación histórica de dos lenguas o el desarrollo de modelos matemáticos de representación lingüística.

• Lenguaje Natural. Lengua o idioma hablado o escrito por humanos para propósitos generales de comunicación.

• Minería de texto. Es el proceso de extracción de información estructurada a partir de información no estructurada, en este caso en lenguaje natural. Es un termino bastante generalista y engloba muchos campos como es el procesamiento de lenguaje natural.

• Procesamiento del Lenguaje Natural (PLN). Disciplina de ingeniería que parte del lenguaje natural como medio para crear algoritmos lo suficientemente detallados que nos permitan estudiar diferentes fenómenos.

• Modelado de tópicos. Método estadístico para encontrar y crear conglomerados de palabras llamados tópicos en un corpus de documentos.

En cuanto a este proyecto, se podría ubicar en la rama del procesamiento de lenguaje natural, no obstante, se utilizarán otras metodologías dentro de la minería de texto que nos permitirán hacer esa ingeniería sobre el lenguaje natural que influya en nuestros modelos finales.

Seguido de la definición del campo de estudio resulta conveniente también explicar algunos preceptos terminológicos sobre los que se sustentaran el estudio:

• Documento. Unidad básica de información y procesamiento sobre la que trabajar, no existen limites de restricción de tamaño pueden ser capítulos, mensajes o libros completos.

• Corpus. Colección de documentos a procesar, puede ser visto también como la muestra en términos estadísticos. Existen múltiples disecciones de este termino ya sea por su enfoque temporal (estático y dinámico), alcance (generalizado y especializado) o numero de lenguas (bilingües, trilingües).

• Unidad mínima de información o token. Secuencia de caracteres en un documento que se agrupa como unidad semántica útil para el objetivo del estudio. Suelen ser normalmente palabras, no obstante, para ciertos estudios pueden ser frases, silabas o n-gramas.

• (Word) Type. Cada unidad mínima de información sin repeticiones, en el caso de estar hablando de palabras nos referiríamos a palabras únicas, no obstante, no son necesariamente lemas.

Page 6: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

5

• Lema o forma canónica. Parte de una palabra la cual contiene la información acerca de su significado, se consigue extrayendo de la palabra los prefijos y sufijos que nos estén aportando información mas allá de la mínima (lema: “conclu”, palabras: “concluido” o “inconcluso”).

• Flexión. Alteración que experimentan las palabras según el significado (gramatical o categórico) para expresar sus distintas funciones dentro de la oración y sus relaciones de dependencia o de concordancia con otras palabras o elementos oracionales (niño, niña).

• Diccionario. En este sentido es una acepción propia, cuando nos referimos a la creación de diccionarios estamos hablando de la creación de un conjunto de palabras que son propias de un tipo de tópico y que mediante ellas podemos realizar clasificaciones de texto.

Aportada ya la terminología básica nos adentraremos en la metodología PLN en si, la cual suele ser de estructura generalmente ordenada, definida y enfocada al estudio deseado.

2.2. CONTEXTO LINGÜÍSTICO

Parece lógico que el primer de los pasos en la metodología del procesamiento del lenguaje natural sea definir cual o cuales van a ser los entornos lingüísticos en los que nos moveremos. Comenzando por el número de lenguas en este proyecto por cuestiones de simplicidad consideraremos que estamos tratando con un solo idioma a la vez, no obstante, la metodología aquí descrita no es exclusiva de una lengua, es más, es extrapolable entre lenguas relativamente parecidas y fácilmente ampliable para dos idiomas.

El contexto lingüístico puede cambiar totalmente el proceso de elaboración de un proyecto de PLN, siendo los casos más drásticos aquellos en los cuales no se comparte ni la sintaxis ni la ortografía. Sin embargo, el concepto contexto lingüístico no se limita meramente al idioma ya que en el influyen las características extralingüísticas (lugar, audiencia o interlocutores potenciales, registro y el momento) o comunicativas (conocimientos y creencias compartidos por los interlocutores oportunos para la comprensión).

Comenzaremos por realizar una comparativa entre las dos principales lenguas en las que se ha basado este estudio (inglés y español). Para la mayor parte de los hablantes de inglés y de español, la percepción es que ambas lenguas son muy diferentes. Las diferencias se suelen reducir a afirmaciones bastante vagas basadas en la percepción de los hablantes de una lengua respecto a otra, “el español tiene muchas formas verbales que en ingles no existen” o “el Inglés es muy difícil de pronunciar”, entre otras. Sin embargo, estas afirmaciones son sobre la estructura superficial de la lengua dejando de lado otros aspectos como el semántico o la sintaxis que resultan menos perceptibles a primera vista e ignorando que la comparación entre lenguas siempre es relativa. Pongamos un ejemplo, si partimos de dos lenguas sinotibetanas (tailandés y chino) las comparaciones entre estas llevarían a expresiones como las anteriormente

Page 7: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

6

mencionadas, no obstante, si en lugar de eso las comparásemos con dos Indoeuropeas (Inglés y Alemán) percibiríamos profundas diferencias.

Es esa una entre otras razones por las que los lingüistas tienden a agrupar las lenguas por su historia pasada (influenciada en fuertemente por los patrones geográficos). Sin profundizar en las ramas en la figura podemos ver un árbol básico de las ramificaciones de las familias ligústicas (ver anexo 1 para ver la rama Indoeuropea ampliada).

Ilustración 1: Familias Lingüísticas Resumidas

Nos centraremos en comparar en el inglés y español las cuales dentro de la familia indoeuropea se distinguen por ser Germánicas e Itálica respectivamente.

No existe ninguna duda de que en la cultura popular de hoy el inglés es la lengua prima en el mundo, aunque en hablantes de lengua materna las dos lenguas se encuentran en cifras similares, cuando añadimos a las personas que lo hablan como segunda lengua las diferencias se disparan 500 millones de personas en el español frente a más de 1100 millones del inglés.

Categoría Español Ingles

Hablantes Lengua Materna

443 M (2017)

21 países

378 M (2017)

57 países

Hablantes Segunda Lengua

70 M (2017) 743 M (2017)

Tabla 2: Numero de hablantes por lengua según Ethnolongue (M para Millones)

En cuanto a las diferencias cuantitativas del lenguaje, el aspecto que más suele llamar la atención es el número de palabras que cada lengua tiene. De manera abstracta, el número de palabras representa el grado de concreción que tienen los hablantes en la conceptualización de la realidad que viven, cuanto más rica en palabras sea una lengua más conceptos se manejaran en esa lengua.

Por otro lado, sería poco realista realizar un conteo del número exacto de palabras de una lengua y mucho menos de manera actualizada dado a que las lenguas están en continua evolución. Lo coherente a priori seria ver las palabras

Page 8: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

7

de un diccionario, no obstante, esto no es válido dado a que contiene mayoritariamente información heredada y en la mayoría de los idiomas no existe ningún organismo regulador de la lengua, es más, para solucionar estos tipos de problemas existe una rama de estudio en sí. Para establecer una referencia cuantitativa en este trabajo se tomarán las cifras porcentuales obtenidas en el detallado estudio de Cantos y Sánchez (2011) creado a partir de dos corpus de 20 millones de palabras en inglés y español.

En este sentido para realizar un análisis de la variedad léxica nos centraremos en las palabras diferentes (types). Existen algunas deducciones que podemos sacar a priori, el castellano al ser una lengua mucho más flexiva (sobre todo en las formas verbales y adjetivas) tendera a tener más types que el inglés. Otra deducción es que el inglés es una lengua más concisa y que por tanto el número de palabras que se emplean en sus oraciones es menor al español y con menos variedad léxica (nombres, adjetivos, verbos y adverbios). Por último, también existe la consciencia de que en inglés se hace uso de palabras más cortas.

Podemos ver resumidos en la tabla 3 los resultados acerca de los fenómenos mencionados en el párrafo anterior, los cuales encajan con las hipótesis planteadas.

Hipótesis Resultados Relevantes

Español Ingles

Tramos de Frecuencias

El carácter flexivo del castellano afectara a

los resultados.

+ 5% types con una única repetición

Igualado en el resto de los

tramos

Tamaño de las

oraciones

El inglés usa oraciones más cortas

+7% palabras léxicas

-2 palabras por oración

Tamaño de las palabras

En inglés usa palabras más cortas,

es más conciso y menos ornamental

60 % palabras de 2 a 5 letras

50% palabras de 1 a 3 letras

Tres veces más palabras de 1

letra

Tabla 3: Resumen de la comparación cuantitativa

Estos resultados no son triviales para el estudio ya que guardan una fuerte relación con las decisiones que tendrá que tomar el usuario de la metodología aquí propuesta y que se irán explicando en cada apartado próximo.

Empezaremos por explicar lo que viene siendo uno de los fenómenos más relevantes en PLN y en especial en el modelado de tópicos, el “sparsity”. Este fenómeno afectara a la selección de variables, la compacidad, tiempo de ejecución, gasto de memoria e interpretabilidad de nuestro modelo. Además, en PLN este término tiene como mínimo 3 acepciones:

Page 9: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

8

• Data Sparsity. El número de observaciones a utilizar es demasiado pequeño para obtener buenos resultados.

• Probability Sparsity. La mayoría de los elementos de nuestra distribución de probabilidad de ocurrencias de palabras condicionadas a otras anteriores, son cercanas cero.

• Model Sparsity. La mayoría de las dimensiones de los vectores que representan un documento, normalmente frecuencia de cada término del corpus en el documento, no son necesarias para realizar un buen modelo.

En nuestro caso nos centraremos en la tercera acepción, la que se conoce también como sparsity estructural. Aunque en la literatura a este fenómeno se le reconoce como un problema en casos en los que hay muchas palabras con frecuencias muy bajas o con frecuencias altas, en este documento haremos alusión al sparsity como medida del grado de concentración que tiene la distribución de frecuencias de palabras en un corpus.

Esto tiene es alta importancia puesto que tiene implicaciones directas con la métrica que determina la calidad del ajuste del modelo, la perplejidad (que explicaremos más adelante). Además de afectar a esta métrica, el sparsity también puede producir otros efectos cuando toma cotas extremas. En el caso de ser bastante alto (muchos types con frecuencias bajas, es decir pocas palabras repetidas en un texto) es recomendable aplicar un mayor número de tópicos ya que si no se hace, cada tópico quedara definido por unas palabras con una probabilidad similarmente baja. En el otro opuesto cuando es bastante baja (existen pocos types con frecuencias similares, es decir muchas repeticiones de palabras parecidas en el texto) se pueden producir solapamiento de las palabras en diferentes tópicos en caso de tener muchos tópicos.

En resumen, dado que los modelos de tópicos se basan principalmente en relaciones semánticas, el grado de sparsity afectara directamente a la concreción de las conceptualizaciones que los tópicos reciben de las palabras. En la actualidad existen algunos métodos de redes neuronales como word2vec que sirven para corregir este efecto, permitiendo detectar relaciones semánticas similares a partir del contexto en el que se encuentra la palabra. De esta manera podremos realizar correcciones ortográficas o agrupar sinonimias, reduciendo el sparsity.

Volviendo al contexto lingüístico podemos empezar a ver la relevancia de algunas de las explicaciones anteriormente dadas tienen sobre el sparsity. Empezando por el castellano algunas de las características intrínsecas de este lenguaje hacen que se tienda a un mayor sparsity: la flexibilidad de esta lengua hace que tienda a los términos poco frecuentes, además el carácter más ornamental de esta lengua contribuye a que se usen adjetivos muy diferentes para expresar conceptos similares y el uso de palabras poco frecuentes en el lenguaje hablado puede tener un efecto directo sobre el número de faltas ortográficas (aumentando el número de types poco frecuentes y con ello el sparsity).

Page 10: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

9

En cuanto al inglés el problema es el contrario, la falta de Sparsity: el bajo número de letras por palabras y la poca variedad hace que tengamos una mayor concentración de palabras similares, además la poca flexibilidad y tamaño dificulta las posibles transformaciones sobre esas palabras. En cuanto a los errores tipográficos los sucesos que pueden influir en estos son que existe un mayor número de personas hablantes como segunda lengua y que la pronunciación difiere de la escritura en muchos casos por lo que es difícil saber en qué lengua es mayor.

Resultados Efecto sobre Sparsity

Español Ingles

Tramos de Frecuencias

Aumenta Reduce

Tamaño de las

oraciones

Aumenta Reduce

Tamaño de las palabras

Aumenta Reduce

Errores Tipografía

Similar Similar

Tabla 4: Implicaciones de los resultados sobre el sparsity

Dado a que no se puede generalizar al tipo de muestra a la que se aplicara esta metodología, una de las aproximaciones más cercanas es el estudio del efecto lingüístico y las implicaciones que este puede tener. A partir de aquí nos centraremos en explicar cómo tratar el texto de manera que se produzca un acercamiento entre lo que un hombre y lo que un ordenador entiende.

2.3. MÓDULOS DEL PRE-PROCESAMIENTO

La metodología del PLN es una tarea ardua y la manera mediante la cual se ha conseguido aplicar es mediante la realización de un proceso modular de tareas. Algunas de son de obligado seguimiento, no obstante, existen otras que dependiendo de las características del estudio (muestra, modelo, coste computacional) es recomendable seguir o hay que realizar de manera alternativa. Dado a que uno de los enfoques que se primaron en la elaboración de este proyecto es la reproducibilidad del algoritmo, la mayoría de los pasos que se seguirán serán de carácter bastante generalista.

Page 11: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

10

Figura 1: Resumen metodología de preprocesamiento básico

2.3.1. Tokenizado

Una vez identificado el contexto lingüístico del corpus y descartada la necesidad de segmentación en frases (más propia del análisis sintáctico) el primer paso a dar será la Tokenizacion. La Tokenizacion es el proceso mediante el cual se divide el texto en unidades mínimas con significado, que por lo general suelen ser palabras.

Puede parecer que es un paso relativamente sencillo en lenguas donde la palabra separada por espacios es la unidad lingüística por antonomasia, no obstante minimizar el número de errores en este paso es vital debido a su capacidad de propagación al resto de estadios del preprocesamiento. Es por eso por lo que existen métodos más sofisticados (a partir de un estandar), que nos permiten adaptarnos a los requisitos metodológicos y lingüísticos de la muestra. Comenzaremos por explicar que se entiende por Tokenizacion estándar.

La Tokenizacion estándar consiste en separar los elementos mediante un carácter especial, el cual suele ser un espacio en blanco. Además, existen otros delimitadores de términos pertenecientes a caracteres especiales (coma, comillas, exclamación, interrogación, guion) los cuales se suelen reemplazar por un espacio antes de realizar la separación. Hay que considerar que no todas las lenguas separan los términos por espacios o caracteres especiales y se pasaran por altos algunos fenómenos característicos de cada lengua (palabras compuestas en alemán, contracciones en inglés y francés), sin embargo, es un buen punto de partida sobre el que comenzar a añadir módulos que nos permitan ganar representatividad en casos específicos.

A partir de aquí podemos diferenciar en diferentes niveles de sofisticación con los que queramos complementar el estándar anteriormente mencionado, siempre teniendo en cuenta que a más niveles de especificación más específica

Documentos• Aplicamos Tokenizacion

Terminos• Eliminamos Stop Words

Variables• Realizamos Normalizacion

Variables Normalizadas

• Aplicamos modelos de representacion

Page 12: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

11

será la Tokenizacion a esa muestra. Algunos de los tratamientos más comunes que se tienden a emplear son:

• Caracteres Alfanuméricos. Una técnica común de utilización es descartar todo aquello que no sean caracteres alfanuméricos ya que con esta medida se solucionaran muchos de los problemas mencionados a continuación (palabras compuestas con guion, números, acrónimos). Aunque existen casos en los que puede crear ambigüedad (U.S.A, usa).

• Acrónimos y Abreviaciones. Algunos ejemplos de estos son “sr.” O “U.K”, la manera de proceder es a partir de una lista con las más comunes (en la muestra o en la lengua) reemplazar los signos de puntuación por nada o transformarlas en las palabras completas, esto lo que nos permitirá es obtener nuevos términos.

• Palabras de pocas letras. Aunque la técnica es más similar a la supresión de términos vacíos se suele realizar en este módulo ya que permite reducir el número de iteraciones de búsqueda en los pasos futuros. Por norma general se tiende a tomar valores de 2 o 3 que tienden a ser artículos y preposiciones de nulo valor en la creación de tópicos.

• Números y expresiones especiales. Se incluyen en esta categoría emails, números de teléfono, fechas, horas, direcciones web. En caso de no ser útil para el estudio en sí, pueden ser suprimidos mediante una expresión regular que mantenga solo los caracteres alfabéticos que no sigan la estructura de ninguna expresión regular, en caso de sí ser se deberían incluir como tokens íntegros.

• Conceptos compuestos. De los anteriores es el más complejo de solventar dadas las diferentes casuísticas que pueden surgir (palabras compuestas con y sin guion, entidades). Algunas de las metodologías aquí aplicadas son: frecuencia de n-gramas o coocurrencias de contexto similares.

Las consecuencias de estos tratamientos tienen sobre el sparsity es bastante intuitiva ya que suelen concentrar más los términos en la gran mayoría de los casos ya que reduciremos en términos relativos el número de tokens poco frecuentes.

2.3.2. Supresión de Términos Vacíos

El número de types en la mayoría de los casos de PLN tiende a ser grande incluso en casos en los que los documentos son relativamente pequeños (incidencias o reseñas) pudiendo llegar a cotas inimaginablemente grandes (en caso de libros o capítulos) como miles de millones de types. Esto puede llevar a que la representación de los documentos en forma de tópicos no sea representativa.

La mayoría de esas palabras suelen ser irrelevantes para la categorización de documentos en tópicos y pueden ser eliminadas sin repercusiones en la labor clasificativa e incluso mejorar los resultados reduciendo el ruido. Al proceso que elimina las palabras irrelevantes se le conoce como selección de variables y uno sus pasos más comunes es el filtrado de términos vacíos. Un término vacío o stop word es un término que por su alta frecuencia no aporta ningún valor

Page 13: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

12

semántico ni al modelo que sobre estos datos queramos aplicar. Si bien la practica más común es quitar unos pocos términos existen técnicas más agresivas que consisten en eliminar altos porcentajes de las variables. Sin embargo, para un modelado de tópicos carece de sentido ya que una de las bases sobre las que se sustenta esta técnica es la coocurrencia de términos frecuentes que definen las bases de algunos tópicos. La estrategia generalizada supone la creación de listas de stopwords y posterior filtrado a partir de estas; existiendo dos enfoques posibles y complementarios.

La utilización de listas genéricas de stopwords formadas por palabras que cumplen los requisitos para ser así consideradas se conoce como el enfoque generico o de uso de stopwords genéricas. Algunos de los diccionarios más conocidos para el español e inglés son: Snowball, RanksNL y UniNE.

Otro enfoque es la confección propia de las listas de stopwords. Para ello es necesario realizar una recolección de las frecuencias (normales o inversas) de los términos y de ahí tomaremos aquellos términos que tienen una frecuencia altísima (o frecuencia inversa bajísima) o que simplemente la tienen alta y no guardan ningún aporte semántico que discrimine en el contexto que estamos tratando. A este otro enfoque se le conoce el uso de stopwords basadas en el contexto.

Puede parecer que el efecto sobre los tópicos a crear (y el sparsity) es bastante intuitivo (promueve la concentración de términos), no obstante, la revisión bibliográfica dice lo contrario. En los trabajos de Schofield, Magnusson y Mimno (2017) se menciona que, salvo en casos de frecuencias extremadamente altas, eliminar stopwords no tiene efecto sustancial sobre la verosimilitud, coherencia y precisión del modelo. Aunque se recomienda eliminar determinantes, conjunciones y preposiciones, pero nada más allá dado su carácter irrelevante.

La conclusión que sacamos a partir de esto es que el filtrado de stopwords genérico es recomendable pero que el filtrado contextual dependerá altamente del conocimiento de la muestra que tengamos más que de un criterio cuantitativo como es el de limitar las frecuencias extremadamente altas.

2.3.3. Normalización

Una vez se han realizado las tareas propias y tenemos el conjunto de términos que van a componer cada uno de los documentos de nuestro corpus, podemos intentar reducir la complejidad de estos términos transformándolos a una forma más estándar, su forma canónica (por ejemplo, el masculino singular en adjetivos y el infinitivo en verbos).

La normalización es la tarea de determinar las raíces comunes entre las palabras eliminando los afijos sobrantes, esto resulta de especial utilidad en casos en los que tengamos un alto sparsity y en lenguas morfológicamente complejas, ya que concentraremos el numero de types. La morfología es el estudio de cómo se componen las palabras en unidades menores de significado llamadas morfemas, podemos distinguir dos tipos de morfemas el que contiene la raíz y los afijos que

Page 14: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

13

aportan el componente flexivo. Para realizar una normalización existen dos procedimientos: El stemming y el lemming.

El primero de ellos es de carácter más sencillo ya que consiste en extraer de todas las palabras los afijos hasta quedarnos con la raíz, sin hacer distinción del tipo de palabra a la que estamos atendiendo lo cual puede crear ambigüedad semántica.

Nos podemos referir a la ambigüedad como a la capacidad de tener más de un significado o ser entendido de más de una manera. En el lenguaje puede surgir a diferentes niveles, como el léxico, sintáctico o pragmático, en este caso estaremos hablando de ambigüedad semántica. Un método de reducir la ambigüedad en este proceso es la creación de las raíces es mediante el lemming.

El segundo método supone realizar un parseo previo que tenga en cuenta el tipo de palabra y a partir de ahí extraer los afijos. Esto supone no solo realizar un análisis morfológico además necesitaremos realizar un análisis sintáctico previo a todo el preprocesamiento para etiquetar cada palabra por su categoría sintáctica.

Puede parecer que combinar aquellas palabras de raíz común, es la acción correcta. No obstante, tiene sus efectos negativos como la ambigüedad anteriormente mencionada, además es necesario tener en cuenta el contexto lingüístico con el que estamos tratando.

En el caso del idioma en la lengua inglesa sus palabras más cortas dejaran menos margen de maniobra para acortar las palabras, sin embargo, es una tarea mucho más fácil que en castellano. En español tanto el carácter flexivo como por la cantidad de verbos irregulares que maneja (más de 1500 frente a los aproximadamente 200 del inglés) nos hacen cometer muchos errores como casos de lemas ambiguos o inexistentes.

Las implicaciones de este módulo sobre el modelado de tópicos, como en el anterior paso, es una línea de investigación en si. En Schofield y Mimno (2016) se advierte que el uso de métodos de stemming fuertes como el de Porter desempeñan una labor negativa sobre la verosimilitud frente a el no tratamiento o un tratamiento más liviano. Además, en la coherencia de los tópicos no se ven mejorías entre la aplicación o no de la normalización y las asignaciones de las palabras a los tópicos son menos consistentes.

La elección entre uno de los dos métodos también tiene sus imprecaciones ya que el stemming nos producirá un resultado mejor ajustado a cambio del empeoramiento en la sensitividad que el modelo tendría haciendo uso del Lemming.

Una vez tenemos el corpus construido con vectores de términos relevantes para el estudio el siguiente paso a dar será la elaboración de modelos de representación válidos para el modelado de una maquina (modelos espacio-vectoriales).

Page 15: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

14

2.4. MODELOS DE REPRESENTACIÓN BASADOS EN LA FRECUENCIA

La mayoría de los algoritmos de clasificación y predicción en un entorno PLN no pueden procesar directamente los documentos en su forma original, es por eso por lo que durante el preprocesamiento hemos ido pasando por diferentes etapas desde el documento original hasta a representaciones de vectores con variables relevantes. Dado que estos vectores solo representaran los índices que por los que se rija el modelo tendremos que asignar unos pesos a estos términos.

Un concepto básico para empezar para representar la información de la que se alimenta un algoritmo de PLN es la matriz de términos documentos, en la literatura suele solaparse con la matriz de frecuencia de términos o TF no obstante existen métodos alternativos de cálculo de pesos, aquí describiremos algunos de ellos.

Do

cu

me

nto

s

Términos

T1 T2 T3

D1 W1,1 W2,1 W3,1

D2 W2,1 W2,2 W3,2

D3 W3,1 W2,3 W3,3

Tabla 5: Matriz de términos documentos

2.4.1. TF

Un enfoque lógico para asignar los pesos es acumular las ocurrencias de cada termino en cada documento, a este enfoque se le conoce en la literatura como “term frequency” (TF) y a su resultado como bolsa de palabras o “bag of words” en inglés.

En este formato el orden exacto de las palabras en un documento es ignorado pasando por alto todos los fenómenos sintácticos que puedan ocurrir. Por ejemplo, una oración con el sujeto y el complemento directo tendrá el mismo formato que una en la que estos se inviertan y el resto se mantenga igual. Sin embargo, este enfoque resulta simple e intuitivo ya que los documentos con las mismas palabras suelen contener el mismo significado.

Una crítica a este modelo podría ser, ¿tiene sentido que todas las palabras mantengan el mismo peso? Ya hemos introducido el fenómeno de stopwords como palabras que, por su alta frecuencia y poco significado, no resultan útiles para la elaboración de modelos y que eliminamos. En un corpus de artículos deportivos lo más común es que “equipo” se encuentre una vez en casi todos los documentos y podemos no reconocerlo como de alta frecuencia en el cómputo global de frecuencias y que tenga menos peso que “Barcelona” dado a que existen algunos artículos en los que se repiten más veces esa palabra. De hecho, existe un mecanismo para atenuar este efecto.

Page 16: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

15

2.4.2. TF-IDF

Intuitivamente la primera idea para realizar esto sería escalar los pesos de los términos con una frecuencia alta, definida por el total de ocurrencias de un término globalmente mediante un factor que reduce progresivamente los pesos de la matriz TF. Sin embargo, resulta más común usar para este propósito la matriz TF ya creada, dado a que para discriminar entre documentos es mejor tratar con estadísticos a nivel de documentos que utilizar los estadísticos en términos globales.

Como hemos ejemplificado antes, existen situaciones en las que la frecuencia global (cf) y la frecuencia a nivel de documentos (df) difiere y necesitaremos potenciar aquellas palabras de menos frecuencia. La manera de realizarlo es aplicando a los términos la frecuencia inversa de documentos (idf) donde N es la frecuencia total:

idfT = log (N / dfT)

Esto nos permitirá producir nuestra matriz tf-idf asignando a los términos (Tm) un peso en el documento (Dn) de la siguiente manera

tf-idfT, D = tf T, D × idfT

Con unos pesos que son:

• Mas altos: cuando el termino ocurre muchas veces en pocos documentos (dándole importancia discriminadora a esos documentos).

• Menores: cuando el termino ocurre pocas veces en un documento u ocurre en muchos documentos (quitándole relevancia a esos términos)

• Bajísimos: cuando el termino ocurre en prácticamente todos los documentos.

Aunque el enfoque frecuentista es el predominante en la asignación de los pesos, la aplicación de probabilidad al estudio del lenguaje es otro enfoque alternativo ampliamente usado en las técnicas de PLN. En este sentido para la comprensión de este proyecto necesitamos conocer dos modelos de representación mediante frecuencias (vistos) y uno probabilístico (n-gramas). A partir de ahí seguiremos, principalmente, con el enfoque probabilístico aplicado a las técnicas de modelado de tópicos (punto 2.6).

2.5. MODELOS DE REPRESENTACIÓN BASADOS EN LA PROBABILIDAD

Uno de los propósitos más clásicos en PLN ha sido la posibilidad de realizar inferencia estadística en el campo del lenguaje. Normalmente para realizar esta tarea necesitaremos encontrar otras variables que sirvan para predecirla, asumiendo que el comportamiento pasado es una buena guía de lo que sucederá en el futuro (presunción de estacionariedad). Así pues, podremos dividir la muestra en conjuntos equivalentes que comparten capacidad predictiva sobre una variable y utilizarlas para predecir nuevos datos.

Page 17: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

16

Esto implica que estaremos haciendo asunciones de independencia del tipo los datos o no dependen de otros datos o dependen de manera insignificante y podemos ignorar esa dependencia sin influir mucho en los resultados. Lo que nos lleva a una situación de “trade-off” entre incorporar más variables que reduzcan la incertidumbre (menos conjuntos de mayor tamaño) o tener una mayor sensitividad (más conjuntos de menor tamaño).

2.5.1. N-gramas

La tarea de predecir la siguiente palabra se puede resumir a la siguiente función de probabilidad:

P (wn | w1, ..., wn-1)

En tal problema estocástico, utilizamos la clasificación de las palabras previas (su historia) para predecir la siguiente palabra, a partir de observar más datos podremos saber que palabras tienden a seguir a otras. Como es lógico pensar para este proceso no podemos considerar cada historia de cada palabra de manera textual ya que crearíamos historias que no tienen ninguna repetición en las que basar nuestras predicciones. Es por eso por lo que necesitamos un método de agrupar historias que creen similitudes con las que predecir.

Una solución valida es agruparlas siguiendo una asunción de Markov de que solo el contexto local (últimas palabras) afecta a la siguiente palabra. Si construimos un modelo donde todas las historias que tienen las ultimas n-1 palabras en el mismo conjunto tendremos un modelo de Markov de orden (n-1) o lo que es lo mismo un modelo de n-gramas. En la literatura encontramos frecuentemente aquellos para los que n = 1,2,3 también conocidos como unigramas, bígramas, trigramas.

Figura 2: Representación n-gramas

En principio podríamos pensar que queremos que n de nuestros n-gramas sean alto ya que detectaremos influencias más fuertes y claras, no obstante, existe un problema, si dividimos nuestros datos en muchos conjuntos habrá muchos parámetros que estimar (para 1000 palabras en trigramas crearemos casi mil millones de parámetros, imagínese para un n-grama de n = 6) lo que hace que a efectos prácticos se usen máximo solo dos valores históricos.

Independientemente de cómo formemos los conjuntos de terminos acabaremos con un cierto número de fragmentos del texto, centrémonos en cómo se estiman las probabilidades sobre ellos. Estas se fijan mediante la frecuencia relativas que tienen una combinación de palabras con respecto al total de veces que aparece la palabra a predecir, este método de estimación se le conoce como de máxima

Page 18: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

17

verosimilitud. En resumen, necesitaremos realizar el conteo, por ejemplo, del bigrama C(xy) y normalizar realizando la suma de todos los bigramas que comparten la primera palabra.

𝑃(𝑤𝑛 | 𝑤𝑛−1) = 𝐶(𝑤𝑛−1 𝑤𝑛)

∑ 𝐶(𝑤𝑛−1𝑤)𝑤

Además, si consideramos el espacio de todas las posibles asignaciones de parámetros dentro de un tipo de n-grama concreto para una muestra, podríamos entenderlo como una función de verosimilitud. La estimación de la máxima verosimilitud (MLE) representa las elecciones de los valores de parámetros que dan la probabilidad más alta, no malgastando ninguna parte de la probabilidad relativa en eventos fuera del corpus y aumentando al máximo la de los eventos observados.

El problema viene dado el sparsity que los datos tienen, mientras pocas palabras suelen tener frecuencias altas (en términos relativos) la gran mayoría suelen ser poco frecuentes, si extrapolamos esto a conjuntos de palabras formados de n-gramas las se vuelven cifras ínfimas (sobre todo para n superiores a 3). MLE asigna probabilidades de cero a aquellos eventos casi no observados, estos ceros se propagan y empeoran las estimaciones en nuestras probabilidades relativas. Para evitar que nuestro modelo asigne esos ceros a eventos no vistos tendremos que trasladar un poco de la masa probabilística desde los términos más frecuentes a los nunca vistos. Esta modificación se conoce como suavizado y algunas de las metodologías a aplicar son la de Laplace (añadir uno a todas las frecuencias) y Kneser-Ney.

Partiendo de que una evaluación extrínseca de la capacidad predictiva queda descartada (por su costo computacional y la dificultad de acceso a nuevos datos), la evaluación intrínseca es una medida de evaluación de la calidad de un modelo con un conjunto de datos separado del de entrenamiento.

Dados los dos modelos será el mejor el que entrenado en el conjunto de entrenamiento obtenga mejores resultados en evaluación, no obstante, para esto es necesario entrenar los modelos tanto en el conjunto de entrenamiento como en test (para realizar evaluaciones sobre dos conjuntos de n-gramas) lo cual introduce sesgo e introduce imprecisión en la perplejidad. Es por eso por lo que es necesario separar un tercer conjunto de datos de validación en una proporción que suele seguir unos porcentajes de 80-10-10.

Sin embargo, en la práctica no se usan las probabilidades como métrica de evaluación de los modelos, en su lugar se utiliza una variante llamada perplejidad. La perplejidad (PP) de un modelo del lenguaje no es más que la probabilidad inversa normalizada por el número de palabras. Si aplicamos la regla de la cadena esta se podría calcular mediante:

𝑃𝑃(𝑊) = √∏1

𝑃(𝑤𝑖|𝑤1 … 𝑤𝑖−1)

𝑁

𝑖=1

𝑁

Page 19: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

18

Nótese que de manera inversa cuanto más alta sea la probabilidad condicional de la secuencia de palabras, menor será la perplejidad, por lo que minimizar la perplejidad es equivalente a maximizar la probabilidad en el conjunto de prueba.

Hay que mencionar que la creación de n-gramas como método de inferencia probabilística comparte la base estadística con las técnicas de modelado de tópicos, en este sentido tanto el método de estimación (MLE) como de evaluación (PP) resultan similares.

2.6. TÉCNICAS DE MODELADOS DE TÓPICOS

En el entorno actual de generación de información a una velocidad masiva resulta imposible comprenderla y clasificarla sin el uso de nuevas técnicas que lo hagan automáticamente. En este contexto la investigación actual ha desarrollado diferentes técnicas de machine learning que nos permiten agrupar documentos, llamados modelos de tópicos.

Un modelo de tópicos es un modelo estadístico para descubrir los tópicos abstractos que ocurren en una colección de documentos, lo que permite conocer estructuras semánticas ocultas en un corpus. Es importante mencionar que se realiza bajo el principio ya explicado de que dos documentos con las mismas palabras guardan el mismo significado e ignorando la sintaxis.

Para llevar a cabo esta tarea existen diferentes modelos, en este documento nos centraremos en el que más popularidad tiene en la actualidad denominado Latent Dirichlet Allocation (LDA) y una vez explicado además se explicaran superficialmente algunas alternativas a este modelo, así como que ventajas e inconvenientes tienen estas.

2.6.1. LDA

Tal y como es definido en Blei, Ng y Jordan (2003), Latent Dirichlet Allocation o LDA es un modelo estadístico generativo para colecciones de datos discretos como los documentos, es además un modelo de tres niveles jerárquico bayesiano en el cual cada ítem de una colección es modelado como una mixtura infinita sobre un conjunto de tópicos subyacentes. Como vemos esta definición es un tanto compleja, por lo que vamos a tratar de clarificarla ya que uno de los objetivos de este documento es aportar los conocimientos básicos que permitan comprender la teoría detrás del modelado de tópicos, comenzaremos por decir que es una variable latente.

Las variables latentes (tópicos), son las variables que no se observan directamente, sino que son inferidas a través de un modelo (LDA) a partir de otras variables que se observan (documentos), por ende, los modelos que tratan de explicar estas variables son modelos de variables latentes. La mayoría de estos modelos tienden a asumir que variables visibles no supera al de las latentes, no obstante, existen excepciones.

A partir de modelos predecesores LDA supone un progreso significativo sobre modelos previos, su predecesor más directo es el pLSI (probabilistic Latent semantic indexing). En este se modelaba cada palabra en los documentos como

Page 20: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

19

una muestra de un modelo mixto, en el que los componentes mixtos podían ser vistos como representaciones de los tópicos. No obstante, no provee de un modelo probabilístico a nivel de documentos, es decir, cada documento se representa como una lista de proporciones para los tópicos sin un modelo generativo de probabilidades. Esto conlleva dos problemas principalmente, en primer lugar, no está claro como asignar probabilidades a documentos externos al entrenamiento. En segundo lugar, el número de parámetros en el modelo incrementa linealmente con el tamaño del corpus, lo que produce sobreajuste.

Para superar esto es necesario realizar algunas asunciones probabilísticas sobre este modelo relacionadas con las sintaxis. Asumiremos que el orden especifico de las palabras y los documentos pueden descuidarse, es decir asumimos su intercambiabilidad basándonos en el teorema de Finetti (2017). En este se establece que cualquier colección de variables aleatorias intercambiables tiene una representación como una distribución mixta. Aquí es importante realizar una distinción, intercambiable no implica independencia y de distribuciones idénticas, implica que son “condicionalmente” independientes y de distribuciones idénticas donde el condicionamiento es respecto a los parámetros latentes de la distribución de probabilidad.

Antes de introducir el proceso que sigue el modelo, es necesario saber que este asume que la distribución de los tópicos a priori sigue una Dirichlet. La distribución Dirichlet es la generalización multivariada de la distribución Beta y parametrizadas por un vector alfa. La constante de normalización es la función beta multinomial, que puede expresarse en términos de la función gamma de la siguiente manera:

𝐵(𝛼1, … , 𝛼𝑘) = ∏ Γ(𝛼𝑖)

𝑘𝑖=1

Γ(∑ 𝛼𝑖𝑘𝑖=1 )

Y por ende la distribución Dirichlet:

𝑝(𝜃|𝛼) =1

𝐵(𝛼1, … , 𝛼𝑘)𝜃1

𝛼1−1… 𝜃𝑘

𝛼𝑘−1

Resumiendo, LDA es un modelo probabilístico generativo con la idea básica de que los documentos están representados por unas variables latentes llamadas tópicos y que esos tópicos están caracterizados por una distribución de probabilidad de un conjunto de palabras. Cabe mencionar que esto está basado en la intuición de que los documentos cubren solo una parte del tópico y que los tópicos solo usan un grupo de palabras frecuentemente. Con esto obtenemos una asignación a los tópicos más precisa ya que estamos teniendo en cuenta la participación de las palabras por documentos globalmente.

Como comentamos en la definición podemos definir el proceso generativo que sigue el modelo mediante tres pasos para cada documento en el corpus:

Page 21: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

20

1) Seleccionamos un conjunto de N términos (documento) donde N se distribuye como una Poisson

2) Seleccionamos una distribución aleatoria de tópicos para

ese documento () de un numero de fijo dimensiones (k) predefinido y

parametrizadas por un vector alfa ()

3) Para cada termino de 1 a N:

a. Seleccionamos un tópico 𝑧𝑛 seleccionado de una

distribución discreta multinomial parametrizada por . Hay que mencionar que seleccionaremos arbitrariamente un tópico dependiendo de lo ya observado

b. Seleccionamos una palabra wdn basada en la probabilidad condicionada del tópico 𝑧𝑛.

Si quisiéramos 100 documentos dado este modelo teórico, lo que este nos daría son 100 documentos de N palabras que han sido generados por unos tópicos dada una distribución de probabilidad. Cada una de las palabras estará basada en una matriz de tópicos por palabras.

Podemos representar el modelo de manera gráfica (Figura 1). Como se muestra en la figura que representa el LDA existen hay tres niveles. Los parámetros alfa y beta son parámetros a nivel corpus, el cual se muestra solo una vez en el

proceso de generación del corpus. Las variables d son variables a nivel de documentos y se muestrean una vez por documento. Por ultimo las variables zdn y wdn son variables a nivel de términos y son muestreadas una vez por cada palabra en cada documento.

Figura 3: Modelo grafico de representación del LDA.

La caja exterior hace referencia a la replica sobre los documentos y la interior a las palabras.

2.6.2. Otros Métodos de Modelado de Tópicos

Aunque LDA es en la actualidad el modelo de mayor popularidad no es el único ya que existen diferentes alternativas anteriores con algunos inconvenientes al ser anteriores, en este apartado explicaremos de manera escueta algunas de las alternativas, los modelos que introduciremos son: Latent Semantic Analysis (LSA), Probabilistic Latent Semantic Analysis (pLSA) y Correlated Topic Model (CTM).

Page 22: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

21

• Latent Semantic Analysis (LSA). Es una técnica cuyo propósito principal es crear representaciones para documentos en forma de vectores que reflejen su contenido semántico. De carácter frecuentista, asume que las palabras de significado similar ocurren en partes similares del texto. A partir de una matriz TF o TF-IDF se agrupan los documentos con la misma frecuencia de palabras y se realiza una reducción dimensión de los términos mediante una descomposición de valores singulares para posteriormente realizar una comparación entre vectores de palabras. Aquellas palabras similares pertenecerán a vectores de documentos similares.

• Probabilistic Latent Semantic Analysis (pLSA). Es un modelo latente para análisis de factores de conteos, es una mejora del modelo anterior en el sentido de que usa un modelo generativo, aunque ya hemos mencionado con anterioridad que tiene sus inconvenientes. La meta principal es similar a la de LDA y se desarrolla en dos pasos.

• Correlated Topic Model (CTM). Diferente a los dos anteriores y es complementario al LDA ya que nos permite ver la correlación entre la ocurrencia de tópicos donde el LDA realizaba la asunción de “independencia”.

Modelo Características Limitaciones

LSA Extracción de sinonimia

Poca robustez

Difícil de obtener y saber tópicos

Difícil interpretación

pLSA Puede generar cada palabra de un solo tópico

Maneja polisemia

No genera un modelo probabilístico

LDA No hay relación entre tópicos No se pueden modelar las relaciones entre tópicos

CTM Aplica una log normal para crear relaciones entre tópicos

Requiere grandes cálculos

Cada tópico contiene muchas palabras generales

Tabla 6: Principales características de modelos de tópicos

3. CUESTIONES METODOLÓGICAS

Pasamos a cubrir el segundo objetivo de este proyecto. El primero, el cual con el apartado 2 queda saldado, consistía en confeccionar un marco teórico básico acerca del modelado de tópicos para personas con unos conocimientos mínimos. El segundo es el que comienza a continuación y consiste en desarrollar una metodología base sobre la cual desarrollar proyectos de modelado de tópicos. Además, esta metodología se realizará con una altísima escalabilidad dotada por el hecho de haber sido realizada de manera distribuida con Spark.

Page 23: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

22

Para la explicación de esta metodología comenzara por explicar algunos datos relativos a la muestra y al entorno de desarrollo en el que fue creada, a partir de ahí se procederá con las acciones tomadas. Adicionalmente en el anexo 2 podremos ver un cuadro resumen de las diferentes funciones que se han empleado.

3.1. ENTORNO DE DESARROLLO

Un elemento que resulta diferenciador de este proyecto reside en que se ha realizado en un entorno distribuido usando Spark. No obstante, esto puede suscitar algunas preguntas del tipo ¿qué es Spark?, ¿qué ventajas tiene su uso? Por ese motivo es importante introducir algunos aspectos que permitan comprender la importancia del uso de esta tecnología para un proyecto PLN.

Apache Spark es una nueva tecnología (desde 2014) la cual esta rápidamente suplantando a su predecesor tecnológico (MapReduce de Hadoop) como la plataforma preferida de procesamiento de datos en entornos Big Data. Hadoop es un entorno de computación distribuido de código libre que consiste en un sistema de ficheros distribuidos HDFS (Hadoop Distributed File System) y su núcleo de ejecución MapReduce. Spark es similar a Hadoop en el sentido de que es una plataforma de computación distribuida de código libre, no obstante, su diseño único el cual permite mantener grandes cantidades de datos en memoria nos permite crear programas hasta 100 veces más rápidos.

Haciendo uso de las Apis que dispone para diferentes lenguajes de programación (Python en este caso) podemos crear programas distribuidos con un nivel de abstracción similar a utilizar una librería en local. En cuanto a los componentes de Spark los que nos interesan son tres: Spark Core, Spark SQL y Spark MLlib.

En primer lugar, Spark Core contiene funcionalidades básicas requeridas para ejecutar trabajos y las necesarias por otros componentes. Podríamos decir que el más importante de todos es el RDD (resilent Distributed dataset) es una abstracción de una colección distribuida de elementos con operaciones y transformaciones aplicables a un conjunto de datos. En este componente encontramos métodos de acceso a diferentes sistemas de ficheros como HDFS o Amazon S3.

En segundo lugar, Spark SQL nos dota de funciones para manipular largos conjuntos de datos distribuidos y estructurados utilizando un lenguaje SQL. El formato de representación de los datos es en Dataframe de Spark los cuales simplifican el manejo de información e incluyen mejoras de rendimiento provenientes de su optimizador de queries Catalyst.

Por último, Spark MLlib es la librería de algoritmos (distribuidos) de machine learning que soporta tanto RDD (Spark MLlib) como Dataframe de Spark (Spark ML). En nuestro campo esta librería cuenta con múltiples funciones tanto de modelado como de transformación de datos: LDA, tokenizador, n-gramas, entre otras.

Page 24: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

23

Las operaciones realizadas en Spark se pueden dividir en dos tipos: acciones y transformaciones. Las Transformaciones construyen un nuevo RDD a partir de uno previo, las acciones por el contrario computan un resultado basado en un RDD. Aunque realicemos múltiples transformaciones estas se realizaran de manera perezosa y no se evaluaran hasta que se realice una acción.

Esta diferenciación es clave para entender la ventaja en rendimiento que supone Spark. Resulta obvio que realizar una a una cada transformación de manera no perezosa supondría un gasto computacional alto (en número de lecturas y cargas en memoria) frente lo que supone crear una cadena de transformaciones de manera perezosa y ejecutando solo los datos necesitados hasta que una acción requiera de toda la información. Un detalle adicional de importancia es que los RDDs de Spark se vuelven a ejecutar por defecto cada vez que realizamos una acción. En caso de querer reutilizar un RDD en múltiples acciones es necesario persistirlo en alguna de las diferentes memorias disponibles dotando de velocidad a las siguientes acciones que se realicen.

En nuestro caso debido a la carga computacional que supone un procesamiento de lenguaje natural nos veremos altamente beneficiados del uso de esta tecnología. A partir de esta realizaremos las diferentes transformaciones en cada uno de los pasos definidos por los apartados para luego forzar una acción que nos permita realizar un diagnóstico de cuál es el estado de nuestros datos en ese punto. Por último, antes de realizar cualquier acción con una demanda computacional bastante elevada, como son el modelado de LDA, persistiremos nuestros datos para acelerar el proceso.

3.2. ANÁLISIS EXPLORATORIO

Este es el paso de más importancia cuando tratamos con datos reales ya que en la realidad los datos distan de tener el formato y forma que deseamos para ser introducidos en un modelo. Además, la calidad de los modelos que utilicemos estará directamente relacionada con los datos de los que se alimentan. Cuando estamos hablando de grandes volúmenes de información no estructurada (texto) la dificultad y los requisitos computacionales se multiplican. Es por eso por lo que resulta fundamental contar con una metodología de programación distribuida que nos permita agilizar y facilitar este proceso.

Nuestro punto de partida un corpus en formato Spark Dataframe en la cual cada fila tiene dos columnas: un campo clave que identifica la fila y una incidencia (documento).

El preprocesado al realizarse en Spark se realizará creando módulos perezosos que se irán añadiendo a un pipeline y acumulando en el grafo de ejecución para ejecutarse de forma seguida cuando acabe el preprocesado, el motivo de esto es no sobrecargar el grafo de ejecución con el que funciona Spark.

En este sentido para desarrollar este proyecto se realizó en dos capas. En la primera se realiza un preprocesado genérico que seguirá unos criterios mínimos sin prácticamente observar los datos, luego se exploraran los datos y en

Page 25: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

24

consecuencia se realizara adicionalmente un preprocesado contextual teniendo en cuenta las características de la muestra concreta.

3.3. PRE-PROCESADO

Este es el paso de más importancia cuando tratamos con datos reales ya que en la realidad los datos distan de tener el formato y forma que deseamos para ser introducidos en un modelo. Además, la calidad de los modelos que utilicemos estará directamente relacionada con los datos de los que se alimentan. Cuando estamos hablando de grandes volúmenes de información no estructurada (texto) la dificultad y los requisitos computacionales se multiplican. Es por eso por lo que resulta fundamental contar con una metodología de programación distribuida que nos permita agilizar y facilitar este proceso.

Nuestro punto de partida un corpus en formato Spark Dataframe en la cual cada fila tiene dos columnas: un campo clave que identifica la fila y una incidencia (documento).

El preprocesado al realizarse en Spark se realizará creando módulos perezosos que se irán añadiendo a un pipeline y acumulando en el grafo de ejecución para ejecutarse de forma seguida cuando acabe el preprocesado, el motivo de esto es no sobrecargar el grafo de ejecución con el que funciona Spark.

En este sentido para desarrollar este proyecto se realizó en dos capas. En la primera se realiza un preprocesado genérico que seguirá unos criterios mínimos sin prácticamente observar los datos, luego se exploraran los datos y en consecuencia se realizara adicionalmente un preprocesado contextual teniendo en cuenta las características de la muestra concreta.

3.3.1. Pre-Procesado Genérico

Comenzaremos por realizar un tokenizado en este caso partiremos del estándar de reducción a minúsculas y separado de espacio blanco y añadiremos unos módulos adicionales:

• Probabilistic Latent Semantic Analysis (pLSA). Es un modelo latente para análisis de factores de conteos, es una mejora del modelo anterior en el sentido de que usa un modelo generativo, aunque ya hemos mencionado con anterioridad que tiene sus inconvenientes. La meta principal es similar a la de LDA y se desarrolla en dos pasos.

• Correlated Topic Model (CTM). Diferente a los dos anteriores y es complementario al LDA ya que nos permite ver la correlación entre la ocurrencia de tópicos donde el LDA realizaba la asunción de “independencia”.

En cuanto al resto de módulos que podrían añadirse no se consideran relevantes para la elaboración de una metodología generalizada de modelado de tópicos dado a que o requieren de un diccionario especifico previo o se desvían mucho del propósito central del proyecto.

Page 26: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

25

Idioma Caracteres Expresión regular

Español

Alfabéticos [^\𝑤 − áÁéÉíÍñÑóÓúÚüÜ]|[\𝑑] +

Alfanuméricos [^\𝑤 − áÁéÉíÍñÑóÓúÚüÜ] +

Ingles

Alfabéticos [^\𝑤]|[\𝑑] +

Alfanuméricos [^\𝑤] +

Tabla 7: Expresiones regulares de caracteres

En cuanto al resto de módulos que podrían añadirse no se consideran relevantes para la elaboración de una metodología generalizada de modelado de tópicos dado a que o requieren de un diccionario especifico previo o se desvían mucho del propósito central del proyecto.

Para la primera criba de palabras vacías nos serviremos de 5 listas predefinidas, a partir de estos estableceremos en consenso entre ellos como medida de ajuste de más fuerza (más stopwords) o menos fuerza (menos stopwords). Comenzaremos por establecer un consenso alto (poca fuerza) tomando solo las palabras presentes en más de 4 listas y a medida que vayamos explorando los resultados iremos añadiendo palabras o aplicando una fuerza mayor. A continuación, las siguientes tablas (8 y 9) mostraran algunas de las características de las listas de stopwords utilizadas.

Lista Numero

de términos

UNINL 307

RanksNL 179

ISO 732

SnowBall 308

Kaggle 307

Consenso Numero

de términos

>1 732

>2 492

>3 308

>4 122

5 12

Tabla 8 y 9: Numero de palabras por lista de stopwords

En cuanto a la normalización como hemos comentado con anterioridad en el análisis exploratorio no debería de suponer ninguna ventaja y que solo supondría creación de ambigüedad, por ese motivo se decidió no realizarse.

A partir de aquí se generarán datos con vistas a realizar un diagnóstico a posteriori del pre-procesado genérico. Para ello necesitaremos crear diferentes variables que utilizaremos en el diagnóstico: bigramas, trigramas, número de

Page 27: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

26

términos y de types por documento para los bigramas, trigramas y unigramas. En el anexo 2 podemos ver las gráficas asociadas a los siguientes puntos.

• Gráfico de evolución del sparsity por tramos

Para el primer diagnóstico vamos a ver cómo evolucionan el número de types con la acumulación de muestra. Para ello separaremos el corpus en muestras acumuladas según unos tramos porcentuales. Los tramos se seleccionarán dependiendo del sparsity y tamaño de la muestra, a más tamaño se necesitarán tramos más tramos y a mayor sparsity menos tramos harán falta. Un ejemplo podría ser elegir un tramo de un 25 % por lo que se crearían 4 muestras (25%, 50%, 75% y 100%). La lógica detrás de este diagnóstico es bastante sencilla buscaremos realizar el tratamiento de datos que nos permita aproximarnos a los resultados mostrados en la siguiente gráfica. Idealmente cuanta más muestra vayamos seleccionando más iremos cubriendo el total de types que tiene la muestra. Una línea con poca curva en ese grafico nos dirá que la totalidad de las palabras que existen en la muestra se alcanzan en pocas observaciones de la muestra, es decir, tenemos un sparsity bajo y podremos actuar en consecuencia. Idealmente la línea debería ser similar a la distribución acumulada como por ejemplo la de una gamma inversa con beta menor a 1 y alfa mayor a 1.

• Distribución de frecuencia del tamaño

Realizaremos una representación de la distribución de frecuencia de las observaciones enfocándolo a el número de términos y types (para todos los n-gramas). Observando cómo se distribuyen los tamaños de los types y términos de los documentos podremos establecer un criterio de corte para aquellos documentos con un tamaño demasiado pequeño y grande. Además, viendo la relación respecto a los bigramas y trigramas también podremos ver las sí existen muchas palabras repetidas por documento y globalmente. En resumen, si hay pocas diferencias entre los términos y types (palabras y n-gramas) anotamos que podremos endurecer el consenso en los diccionarios (al estar hablando en términos generales) y si vemos que existen colas en la distribución estableceremos dos umbrales para recortar la distribución.

• Control de frecuencias de los términos

En tercer lugar, exploraremos las frecuencias totales de las palabras y anotamos aquellas palabras de alta frecuencia que nos parecen demasiado genéricas para definir un tópico, además también veremos qué criterio de corte tomaremos para las palabras de baja frecuencia y si nos compensa realizar un corte a aquellas palabras con mucha frecuencia. Tenemos que tener en cuenta que existen palabras con mucha frecuencia que nos pueden indicar un tópico que después será divisible en subtópicos. Por ejemplo: en artículos deportivos puede ser que nos parezca que en muchos tópicos aparezca la palabra futbol, no obstante, existen varios tópicos que incluyen esa palabra y a su vez el equipo del que se habla, otro caso distinto es el de la palabra partido que no hace diferenciación entre categorías deportivas y que deberíamos incluir como palabra vacía.

Page 28: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

27

Dadas las dimensiones con las que tratamos no será posible graficar las frecuencias para los más de 1 millón de types que disponemos, en su lugar dividiremos la muestra en los tramos que más nos interesan, las palabras con mayor frecuencia y las de menor frecuencia. Para ello fijaremos tres umbrales uno que limite las frecuencias más altas (palabras con frecuencia superior a “X”) y otros dos que limites (superior e inferior) para las frecuencias más pequeñas (palabras que se encuentren entre “Y” y “Z”).

Un dato que si podemos representar sin establecer límites es la distribución del número de repeticiones, es decir cuantas palabras se repiten un número determinado de veces. Este grafico nos servirá para establecer los límites que comentamos en el anterior párrafo de manera intuitiva y podremos anotar un mínimo de frecuencias de palabras a partir de las cuales empezaremos a realizar el conteo a nivel documentos.

• Mapa de calor de coocurrencias con dendrograma

Por último, también exploraremos la coocurrencia basada en una ventana de 1 posición hacia delante y hacia atrás con dendrograma. Dado a que este grafico es el más complejo de todos los anteriores vamos a proceder a explicar cómo se realiza.

En cierto sentido este método guarda algunas similitudes con parte de la metodología de un LSE ya que se centra en la frecuencia de las coocurrencias, no obstante, en este caso no será a nivel termino-documento sino termino-termino.

Si lo ejemplificamos es más simple, crearemos una matriz en la cual las filas y columnas serán cada una de las palabras existentes y en la que se introducirán el número de veces que cada palabra aparece inmediatamente antes o después (ventana de una posición) de otra palabra. Con esto ya tendríamos una parte del grafico (mapa de calor) la cual nos muestra que palabras suelen salir juntas en los mismos documentos y que por tanto no nos están aportando mucho en labores de discriminación en tópicos.

El segundo paso será reorganizar esa matriz de coocurrencias utilizando un dendrograma. Un dendrograma es un tipo de representación gráfica en forma de árbol en la cual organiza todos los datos en subcategorías divisibles hasta llegar al nivel de concreción deseado, en este caso el criterio de separación tomado la distancia euclídea del número de ocurrencias que tienen dos palabras. Con esto conseguiremos visualizar conjuntos de palabras coocurridas.

Como anteriormente cuando trabajamos con graficas a nivel de types resulta necesario reducir la cantidad de los datos que usaremos, para ello elegiremos aquellas que superen un umbral de coocurrencias con alguna palabra. Lo cual tiene sentido ya que, buscaremos anotar aquellas palabras que tienen una fuerte relación con otras existiendo algunas ya anotadas frecuencias totales.

Page 29: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

28

3.3.2. Pre-Procesado Contextual

Una vez explicados los pasos seguidos el pre-procesado genérico en el contextual, dado a que la lógica a seguir será la misma, no será necesario volver a explicar los mismos pasos.

El punto de partida será tomar los datos después del tokenizado (salvo necesitar reajustes en el tamaño mínimo de las palabras) y volver a realizar los pasos teniendo en cuenta las anotaciones anteriormente tomadas. En la tabla 9 vemos los pasos anteriormente dados y sobre qué aspectos tienen implicaciones.

Pasos Observaciones

Tokenizado

Numero de letras

Español: a partir de 3 letras.

Ingles: a partir de 2 letras.

Expresión regular

En castellano incluir caracteres especiales

Incluir números si fuesen necesarios

Stopwords

Genéricos

Aplicar un consenso inicial de 4

Si fuese necesario más fuerza bajar consenso

Normalización Método Aplicar si existe mucha flexibilidad

Diagnostico

Evolución Sparsity

En caso de no tener curvatura endurecer las stopwords genéricas

Tamaño Recortar las colas de textos cortos y largos

Frecuencia términos

Anotar palabras con alta frecuencia y poca discriminación semántica

Establecer un mínimo de frecuencias

Coocurrencia Anotar palabras con alta coocurrencia

Tabla 9: Resumen metodología preprocesado

Es importante mencionar también que este preprocesado contextual podrá repetirse varias veces hasta que los gráficos de diagnósticos (similares a los genéricos) no den indicios de problemas significativos que puedan afectar al desarrollo de un modelado de tópicos. No obstante, es importante mencionar que existen algunos pasos posteriores en los cuales se podrán alterar los datos.

Page 30: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

29

3.4. MÉTODOS DE VECTORIZACION

Uno de los problemas de más importancia en el desarrollo de un caso en procesamiento del lenguaje natural es la falta de la potencia computacional necesaria para poder evaluar dimensiones tan altas que fácilmente alcanzan más de un millón. En la actualidad con los volúmenes de información que manejamos carece de sentido no disponer de métodos que nos faciliten estas tareas.

La vectorizacion o conteo de frecuencias es el proceso mediante el cual pasamos de tener vectores de términos (palabras o n-gramas) a nivel documento a tener vectores con las frecuencias de palabras a nivel documento. Para realizar eficientemente esta tarea existen diversos métodos que nos permitirán reducir el número de dimensiones de ellos en Spark se nos ofrecen dos con implicaciones muy relevantes.

• HashingTF

Es un transformador el cual toma conjuntos de términos y los transforma en vectores de variables de tamaño fijo. Para ello utiliza una función hash (Murmur Hash 3) aplicada a los términos en la cual se generan unos índices y luego las frecuencias son calculadas basándonos en los índices con la función aplicada. De esta manera se evita computar un mapeado término-índice global el cual es bastante caro computacional mente en un corpus grande.

No obstante, hay que tener en cuenta que este método puede proporcionar colisiones entre índices donde varios términos pueden tener el mismo índice después del hash. Para reducir este efecto tendremos que aumentar el número de dimensiones de las variables o el tamaño del hash.

Dado a que el número de variables se fija a nivel corpus (número de palabras que queremos tener en cuenta), es una técnica de conteo un tanto agresivo ya que no estamos teniendo en cuenta las características que tiene cada documento ni el número de documentos en el que se encuentra cada término.

Dado a que es parcialmente reversible por el efecto de las colisiones y que la integridad del vocabulario asociado a los índices queda cuestionada este método no resulta adecuado para este estudio. En caso de utilizarse no se podría acceder a los términos característicos de cada tópico lo que hace imposible evaluar su coherencia. Esta técnica se centra más en problemas de clasificación, modelos supervisados, donde tenemos una columna que nos dictara la calidad del modelo y para los que necesitemos trabajar con volúmenes de datos que haga imposible tratar con tantas dimensiones como palabras diferentes en el corpus.

• CountVectorizer (CV)

Este método es una alternativa que nos ayuda a convertir una colección de documentos a vectores de términos contados. Ofrece la posibilidad de introducir un diccionario a priori con los términos que queremos contabilizar lo que puede ser útil para comprobar el impacto de los términos vacíos. En caso de no

Page 31: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

30

introducirse un diccionario, igual que la función anterior, generara unos índices para realizar el conteo de términos con la diferencia de que también generara una lista con el vocabulario en el mismo orden que los índices.

Este método, aunque menos apto para volúmenes masivos, nos permite controlar la dimensión de los vectores que crea a diferentes niveles (corpus y documento) mediante diferentes parámetros. En primer lugar, a nivel documento nos permite seleccionar el mínimo de frecuencias con las que tiene que contar una palabra para ser considerada. En segundo lugar, a nivel corpus nos permite también seleccionar el número mínimo de documentos en el que tiene que estar cada termino para ser contabilizado, además también nos permite fijar el número de palabras de vocabulario que se contabilizaran para el cual elige las palabras de mayor frecuencia. Es aquí donde podremos utilizar las anotaciones realizadas en el preprocesamiento.

En resumen, las diferencias que existen entre los dos métodos de conteo se pueden resumir en los siguientes puntos:

• Parcialmente reversible (CV) vs irreversible (HashingTF). Dado que el hash compromete la veracidad de los datos, con este método no se puede recuperar el origen. Como consecuencia los modelos creados usando este método son más difíciles de interpretar y monitorizar.

• Consumo computacional. Mediante hash solo necesitaremos una iteración de los datos y ninguna memoria extra más allá del conteo. CV requiere una segunda iteración y memoria adicional para almacenar el vocabulario.

• Dependencias. HashingTF depende del tamaño del vector, la función de hash y un documento. CV depende del tamaño del vector, el corpus y un documento.

• Fuente de la perdida de información. En HashingTF es la reducción dimensional con posibles colisiones realizada a nivel corpus. En CV depende de los límites establecidos a nivel corpus y documento.

Como vemos cada método tiene sus ventajas y desventajas por lo que resultaría injusto decir que uno es superior al otro cuando resulta un trade-off entre eficiencia computacional e interpretabilidad. Como hemos mencionado con anterioridad dado a que en un paso posterior tendremos que interpretar la coherencia de los tópicos obtenidos necesitaremos tener disponibilidad de un vocabulario por lo que usaremos CV.

• IDF

Aunque no el modelado de tópicos se base meramente en las frecuencias el IDF puede resultar recomendable para realizar un paso extra en la comprobación de los parámetros utilizados para el CV. Para ello podremos observar los extremos de los pesos obtenidos para cada palabra en el IDF y ver si es necesario rectificar en alguno de los pasos anteriores.

Page 32: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

31

3.5. LDA

LDA es un modelo que nos permite crear variables latentes las cuales consisten en un conjunto de palabras con una distribución de probabilidad de estar asignadas a ese tópico, es decir, los tópicos no se fijan a nivel documento sino a nivel palabra.

Figura 4: Representación de tópicos.

Resulta importante en este punto comprender cada parámetro y sus implicaciones sobre el entrenamiento del modelo, así como los métodos de inferencia que se pueden utilizar. Para ello recordemos cómo funciona el algoritmo de una manera más intuitiva a la explicada anteriormente.

Partimos de un vector , este servirá como base de probabilidades a priori para

definir cómo será la distribución de probabilidad de los tópicos (). Tenemos M

documentos y tenemos las distribuciones de probabilidad de los tópicos (). Para comprender más sencillamente esto asumiremos que solo existe un documento.

Ahora tenemos un solo documento que tiene N palabras y cada una de esas palabras ha sido generada por un tópico. Generaremos N documentos para ser rellenados con palabras (estos documentos están vacíos).

Basándonos en (parámetro que organiza la distribución beta), en que sigue

una distribución Dirichlet y acorde a esa distribución, genera un numero de palabras para cada uno de los tópicos. A partir de ahí rellenaremos con palabras cada uno de los N documentos condicionados a los tópicos que representan.

Adicionalmente vamos también a clarificar las diferencias entre dos parámetros

que pueden resultar similares pero que se encuentran a diferentes niveles. y

. es una matriz aleatoria donde (i, j) representa la probabilidad de el

documento i de contener palabras que pertenezcan al tópico j. Similarmente (i,

Page 33: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

32

j) representa la probabilidad de el tópico i de contener la palabra j, además sigue una distribución Dirichlet.

Comprendido el proceso nos faltaría por responder a la siguiente pregunta ¿Que implicaciones tienen los movimientos en estos parámetros? Es importante comprender la importancia que tiene alfa como variable que altera la forma de la distribución Dirichlet directamente. Veamos un ejemplo para tres dimensiones.

Como vemos los valores altos de alfa empujan la distribución hacia la zona central del hiperplano, mientras que los pequeños lo empujan hacia las esquinas.

Mientras que los movimientos sobre (parámetro que afecta a la beta) ponderaran tener cada tópico compuesto de solo unas pocas palabras

dominantes, por el contrario, el efecto que reduzca nos proporcionara más palabras dominantes con un menor peso.

Por último, el parámetro más relevante en la estimación de modelos es el número de tópicos (k) será el que marque el grado de cohesión semántica que guarden los tópicos. Además, es el que más demanda computacionalmente por lo que es recomendable limitar el número dependiendo de la muestra a utilizar. En definitiva, partiremos de alfa, beta, k y el número de iteraciones como hiperparametros a optimizar.

Page 34: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

33

3.5.1. Técnicas De Inferencia

Aunque existen varias alternativas para la inferencia de este modelo nos centraremos en las dos que Spark MLlib nos ofrece: un algoritmo de esperanza-maximización (EM) de la función de verosimilitud y un método iterativo de muestreo en mini-batch llamado inferencia variacional online (online VB).

Si comparamos las dos técnicas de inferencia nos encontramos que el algoritmo VB converge más rápido, mientras que el EM necesita más iteraciones, pero existen casos en los que ajusta mejor según la perplejidad que el VB. Para esta metodología utilizaremos el VB.

Hay que mencionar adicionalmente que en Spark el método de EM nos generara un objeto del tipo DistributedLDAModel en el cual se almacenan los tópicos inferidos, los datos de entrenamiento y las distribuciones de tópicos. Sin embargo, el método online nos genera un LocalLDAModel el cual contiene solo los tópicos inferidos.

Las funciones por cada uno de los modelos variaran, aunque un objeto DistributedLDAModel se podrá transformar a uno LocalLDAModel y no al revés. Las implicaciones que esto tiene son de fiabilidad contra velocidad, en el modelo generado por EM se ha comprobado que demanda menos memoria y que al almacenar en disco los datos de entrenamiento su ejecución resulta más fiable acorde a unas limitaciones de memoria preestablecidas, aunque necesitemos memoria en disco para almacenarlo y sea más lento.

3.5.2. Optimización De Hiperparametros

La optimización de parámetros es la selección de los valores de los hiperparámetros los cuales optimizan un propósito, en este sentido existen multitud de métodos para llevarla a cabo, en este caso se ha seguido un método de elaboración propia en dos pasos marcados (perplejidad y coherencia), este lo podemos ver en el anexo 3.

Para comprenderlo empezaremos por explicar dos de los más comunes algoritmos para conseguir este propósito son: Grid Search y Random Search. Grid Search es una técnica muy tradicional para implementar hiperparámetros. Consiste en introducir una lista de posibles valores para cada uno de los hiperparámetros y entrenar todas las combinaciones de estos. A partir de las comprobaciones desarrolladas con los modelos entrenados se toma el modelo que mejor resultado nos aporta. Este método, aunque muy sencillo, sufre en casos en los cuales las combinaciones de parámetros adquieren dimensiones muy altas ya que necesitaremos entrenar un modelo para cada combinación.

Random Search muestrea el espacio de búsqueda y evaluar que combinaciones dan mejores resultados. A partir de ahí podrían realizarse variaciones de combinaciones con poco margen hasta que se encuentre la mejor combinación de hiperparámetros.

Page 35: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

34

En cuanto a la métrica a aplicar para evaluar el modelo los modelos LDA de Spark nos permiten elegir entre dos, el valor mínimo de perplejidad o el valor máximo de la verosimilitud. Teniendo en cuenta que tienden a ser medidas que están altamente correlacionadas (>90 % en la muestra que se realizó) en esta metodología se tomara como métrica de más relevancia la perplejidad por su carácter popular en la evaluación de modelos de tópicos, su cálculo en LDA es el siguiente:

𝑙𝑜𝑔 𝑝(𝑥𝑡𝑒𝑠𝑡) = ∑ 𝑁𝑗𝑤

𝑗𝑤

𝑙𝑜𝑔1

𝑆∑ ∑ �̅�𝑘𝑗

𝑠

𝑘

�̅�𝑤𝑘𝑠

𝑠

Donde entrenamos el modelo LDA con una muestra de entrenamiento y después se elabora la perplejidad con otra de validación.

En cuanto al método de muestreo elegido en las diferentes comprobaciones que se realizaron en la optimización de parámetros la elección de diferentes métodos fue irrelevante. Los métodos posibles son separación en muestra de entrenamiento y test y validación cruzada con k muestras. Resulta obvio que la segunda opción demandará mucha más potencia computacional no obstante será la más fiable. En nuestro caso se probaron ambos métodos:

• Para el muestreo en entrenamiento y validación, se probaron diferentes proporciones y los resultados fueron similares por lo que se optó por mantener la popular proporción de 70% de entrenamiento y 30% de validación.

• En la validación cruzada en cuanto a la selección del número de muestras también se observó indiferencia en los resultados al cambiar número de muestras, dentro de estas se ha continuado manteniendo la proporción 70-30 de muestra y validación para el cálculo de la perplejidad.

Podemos deducir por tanto que las diferencias más significativas en la elección de las muestras están en el tiempo de procesamiento. En este caso para las mismas especificaciones técnicas se comprobaron los tiempos de ejecución (tabla 10), veremos así el grado de escalabilidad que el algoritmo. En este caso vemos que la escalabilidad es alta ya que tarda menos en hallar un optimo cuanto mas datos dispone

Método de muestreo Tiempo de ejecución

Entrenamiento y validación

1 hora y 35 minutos

Validación cruzada (10 muestras)

23 horas (2 horas cada muestra)

Tabla 10: Tiempos de ejecución según método de muestreo

Una vez realizado este primer paso obtendremos un numero de mejores combinaciones de hiperparametros para el modelo, no obstante, es necesario otro paso adicional de evaluación para elegir cual es el mejor modelo.

Page 36: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

35

A continuación, realizaremos una evaluación de los tópicos generados a partir de las palabras que tienen una mayor probabilidad asociada de pertenecer a ese tópico. Existen dos maneras de realizar esta tarea, evaluar la coherencia de manera manual revisando cada tópico creado o realizarlo de manera automática mediante la generación de un score de coherencia. El método manual lo descartaremos dado a que se encuentra limitado por el número de tópicos y la capacidad de una persona de revisar las palabras que componen cada uno.

En cuanto a los scores de coherencia existen muchas variantes para determinar la calidad de los tópicos creados, sin embargo, no existe consenso acerca de cuál es el modelo más adecuado. Para esta metodología utilizaremos el modelo de cuatro pasos de Röder, Both y Hinneburg (2015) implementado en el paquete Gensim.

El método consiste en cuatro pasos (segmentación, estimación, métrica y agregado), en los cuales se aplican diferentes métricas para los conjuntos de palabras formados por agrupaciones de palabra frente a todas las palabras, palabra frente a todas las del tópico y tópico entre tópicos. Posteriormente se agregan mediante diversas medidas de centralidad para cada uno de los segmentos.

En resumen, para la optimización de parámetros primero crearemos un Random Grid, elegiremos un método de muestreo entre entrenamiento validación y validación cruzada (teniendo en cuenta entre el trade-off de fiabilidad velocidad) posteriormente si las métricas obtenidas varían mucho buscaremos realizar otro Grid a partir de los óptimos locales. Para los tópicos generados con los mejores parámetros establecemos un score de coherencia, a partir de ahí elegimos el de métrica más alta como modelo final.

4. CONCLUSIONES

Resulta difícil realizar algunas conclusiones sin mostrar los datos que la apoyan, no obstante, de manera abstracta podemos inferir algunos inconvenientes y mejoras a realizar sobre esta metodología.

El método está comprobado que funciona en unos tiempos aceptables, pero tiene algunos inconvenientes. En primer lugar, resulta necesario disponer de un clúster de ordenadores, esto resulta inevitable para disfrutar de las ventajas de computación distribuida. En segundo lugar, algunas de las funciones utilizadas están implementadas experimentalmente en Spark por lo que probablemente en futuras versiones de esta librería se realicen mejoras que alteren algunas de las decisiones que se han tomado a lo largo de la metodología. Por último, hay que mencionar también que Spark es una tecnología de reciente uso pero que como todas las tecnologías puede verse superada por otra superior haciendo necesaria una implementación de esta propuesta a su sucesora.

Una de las ventajas que una metodología base tiene es la capacidad de mejora mediante la inclusión de nuevos módulos que la complementen. En este sentido existen varias líneas de trabajo futuro que por su grado de generalización se podrían agregar, algunas propuestas son:

Page 37: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

36

• Contracción del número de types. Uno de los problemas principales de escalar el volumen datos son las colas de la distribución de frecuencia de los términos (con sus consecuencias en sparsity). Una solución posible es aplicar una reducción dimensional mediante el uso de modelos de word embbeding como word2vec. Este método asignara un coeficiente a cada palabra según la capacidad predictiva que tiene su entorno respecto a ella (Skip-Gram) o que ella tiene sobre su entorno (CBOW), a partir de ahí podremos ver aquellos términos con coeficientes similares. Estas pueden ser agrupadas mediante correcciones ortográficas comprobando que palabras tienen un contexto similar y pocas diferencias en letras o buscar relaciones de sinonimia que corrijan el carácter ornamental y flexivo de los lenguajes.

• Inferencia de tópicos en nuevos documentos. Una implementación que sería útil seria realizar un método que nos permita obtener tópicos de nuevos documentos a partir de modelos ya entrenados. Para ello se podría comparar distribuciones de probabilidad de los tópicos frente al de los documentos.

• Implementación a tiempo real. Puede ser de gran utilidad para monitorizar la evolución de los tópicos a lo largo del tiempo, así como sus métricas. Mediante el uso de Spark Streaming se podría realizar con dos enfoques diferentes o realizar acumulativamente las cargas y comprobar las variaciones con respecto al histórico o entrenar modelos de un periodo reciente y compararlo con otros periodos.

En este proyecto se ha llevado a cabo la construcción de una propuesta metodológica para el modelado de tópicos en entornos Big Data de manera cognitiva como metodológica, si bien este modelo no resulta definitivo por su carácter flexible es un buen punto de partida sobre el que empezar a construir una metodología adaptada a un contexto especifico.

Page 38: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

37

5. BIBLIOGRAFIA

Blei, D. M., Ng, A. Y., & Jordan, M. I. (2003). Latent dirichlet allocation. Journal of machine Learning research, 3(Jan), 993-1022. Cantos, P., & Sánchez, A. (2011). El inglés y el español desde una perspectiva cuantitativa y distributiva: equivalencias y contrastes1/English and Spanish from a distributional and quantitative perspective: Equivalences and contrasts. Complutense Journal of English Studies, 19, 15. De Finetti, B. (2017). Theory of probability: a critical introductory treatment (Vol. 6). John Wiley & Sons. Grishman, R. (1986). Computational linguistics: an introduction. Cambridge University Press.

Röder, M., Both, A., & Hinneburg, A. (2015, February). Exploring the space of topic coherence measures. In Proceedings of the eighth ACM international conference on Web search and data mining (pp. 399-408). ACM.

Sandoval, A. M. (1998). Lingüística computacional. Teide. Schofield, A., & Mimno, D. (2016). Comparing apples to apple: The effects of stemmers on topic models. Transactions of the Association for Computational Linguistics, 4, 287-300. Schofield, A., Magnusson, M., & Mimno, D. (2017). Pulling out the stops: Rethinking stopword removal for topic models. In Proceedings of the 15th Conference of the European Chapter of the Association for Computational Linguistics: Volume 2, Short Papers (Vol. 2, pp. 432-436). Schofield, A., Magnusson, M., & Mimno, D. (2017). Understanding text pre-processing for latent Dirichlet allocation. In Proceedings of the 15th conference of the European chapter of the Association for Computational Linguistics (Vol. 2, pp. 432-436).

Page 39: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

38

ANEXO 1: Árbol de la familia lingüística Indoeuropea

Page 40: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

39

ANEXO 2: Graficas de diagnostico de frecuencia

• Grafico de evolución del sparsity por tramos

Distribución acumulada gamma inversa, este es un ejemplo de como podria ser la distribución por tramos. En el eje vertical tenemos los porcentajes acumulados de los tramos, en el eje horizontal tenemos el números de types. Idealmente seria similar a las tres superiores.

• Distribución de frecuencia del tamaño

Page 41: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

40

• Distribución de frecuencias de los términos

Page 42: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

41

• Mapa de calor de coocurrencias con dendrograma (ejes de palabras ocultos)

Page 43: NLP IN BIG DATA ENVIRONMENTS - biblioteca.cunef.edu

PLN en entornos big data: Un enfoque metodológico aplicado al modelado de tópicos

42

ANEXO 3: Resumen metodología de optimización de parámetros

• Paso 1: Criterio de perplejidad

• Paso 2: Criterio de coherencia

Seleccion de

parametros

Calculo de metricas

Seleccion de tipo de muestreo

Creacion de Grid

Random Grid

Entrenamiento y validacion

Entrenamos en una muestra y calculamos

perplejidad en otra

Seleccion de mejores parametros segun

metrica

Validacion cruzada

Entrenamos en una submuestra y

calculamos perplejidad en otra

Entrenamos en una submuestra y

calculamos perplejidad en otra

Seleccion de mejores parametros segun media de metricas

Entrenamos en una submuestra y

calculamos perplejidad en otra

Seleccion de parametros

finales

Calculo Score

coherencia

Generacion de topicos

Creacion de Grid

Seleccion de hiperparametros segun perplejidad

Generacion de topicos de

parametros 1

Generacion de score de

coherencia 1

Generacion de topicos de

parametros 2

Generacion de score de

coherencia 2

Mejor combinacion de

parametros

Generacion de topicos de

parametros 3

Generacion de score de

coherencia 3