Blog
Modelos neuronales para la clasificación de documentos
- Publicado por: Rafael Fernandez
- Categoría: Uncategorized
La clasificación de texto describe una clase general de problemas tales como predecir el sentimiento de los tweets y las reseñas de películas, así como clasificar el correo electrónico como spam, o no. Los métodos de Deep Learning están demostrando ser muy buenos en la clasificación de textos, logrando resultados de vanguardia en una serie de problemas de referencia académica estándar. En esta parte del curso, descubrirás algunas de las mejores prácticas a tener en cuenta a la hora de desarrollar modelos de Deep Learning para la clasificación de textos. Después de leer este capítulo, tú sabrás:
- La combinación general de métodos de Deep Learning a considerar al iniciar sus problemas de clasificación de textos.
- La primera arquitectura en probar con consejos específicos sobre cómo configurar hiper-parámetros.
- Que las redes más profundas pueden ser el futuro del campo en términos de flexibilidad y capacidad.
Vamos a empezar con la lección de hoy.
Resumen de la lección de hoy
Este tutorial está dividido en las siguientes partes:
- Incrustaciones de palabras + CNN = Clasificación de texto
- Utiliza una arquitectura CNN de una sola capa
- Marca en los hiperparámetros de CNN
- Considera las CNN a nivel de personaje
- Considera las CNN más profundas para la clasificación
Incrustaciones de palabras + CNN = Clasificación de texto
El modus operandi para la clasificación de textos implica el uso de una incrustación de palabras para representar palabras y una Red Neural Convolucional (CNN) para aprender a discriminar documentos sobre problemas de clasificación. Yoav Goldberg, en su manual sobre Deep Learning para el procesamiento del lenguaje natural, comenta que las redes neuronales en general ofrecen un mejor rendimiento que los clasificadores lineales clásicos, especialmente cuando se utilizan con incrustaciones de palabras pre-entrenadas.
También comenta que las redes neuronales convolucionales son eficaces en la clasificación de documentos, sobre todo porque son capaces de seleccionar características salientes (por ejemplo, tokens o secuencias de tokens) de forma invariable a su posición dentro de las secuencias de entrada.
La arquitectura se compone, por tanto, de tres piezas clave:
- La Incrustación de Palabras: Se trata de una representación distribuida de palabras, donde diferentes palabras que tienen un significado similar (basado en su uso) también tienen una representación similar en el texto.
- El Modelo Convolucional: Es un modelo de extracción de características que aprende a extraer las características más destacadas de los documentos representados mediante una incrustación de palabras.
- Modelo Completamente Conectado: Es la interpretación de las características extraídas en términos de un resultado predictivo.
La unión de estos tres elementos se demuestra quizás en uno de los ejemplos más citados de la combinación, descrito en la siguiente sección.
Utilice una arquitectura CNN de una sola capa
Puedes obtener buenos resultados para la clasificación de documentos con una sola capa de CNN, tal vez con núcleos de diferentes tamaños a través de los filtros para permitir la agrupación de representaciones de palabras en diferentes escalas. Yoon Kim en su estudio del uso de vectores de palabras pre-entrenados para tareas de clasificación con Convolutional Neural Networks, encontró que el uso de vectores de palabras estáticos pre-entrenados funciona muy bien. Sugiere que las incrustaciones de palabras pre-entrenadas que fueron entrenadas en corpus de texto muy grandes, tales como los vectores de Word2Vec disponibles gratuitamente y entrenados en 100 mil millones de tokens de noticias de Google, pueden ofrecer buenas características universales para su uso en el procesamiento del lenguaje natural.
También descubrió que una mayor afinación de las tareas específicas de los vectores de palabra ofrece una pequeña mejora adicional en el rendimiento. Kim describe el enfoque general del uso de CNN para el procesamiento de lenguaje natural. Las oraciones están mapeadas para incrustar vectores y están disponibles como una entrada de matriz para el modelo. Las convoluciones se realizan a través de la palabra de entrada usando núcleos de diferente tamaño, tales como 2 o 3 palabras a la vez. Los mapas de características resultantes se procesan utilizando una capa de agrupación máxima para condensar o resumir las características extraídas.
La arquitectura se basa en el enfoque utilizado por Ronan Collobert, et al. en su trabajo Natural Language Processing (almost) from Scratch, 2011. En él, desarrollan un único modelo de red neuronal de extremo a extremo con capas convolutivas y de agrupación para su uso en una serie de problemas fundamentales de procesamiento del lenguaje natural. Kim proporciona un diagrama que ayuda a ver el muestreo de los filtros usando núcleos de diferentes tamaños y colores (rojo y amarillo).
De forma útil, informa sobre la configuración del modelo que ha elegido, descubierta a través de una búsqueda en cuadrícula y utilizada en un conjunto de 7 tareas de clasificación de texto, que se resumen a continuación:
- Función de transferencia: lineal rectificada.
- Tamaño de grano: 2, 4, 5.
- Número de filtros: 100.
- Tasa de deserción escolar: 0.5.
- Regularización del peso (L2): 3.
- Tamaño de lote: 50.
- Regla de actualización: Adadelta.
Estas configuraciones se pueden utilizar para inspirar un punto de partida para sus propios experimentos.
Marque en los hiperparámetros de CNN
Algunos hiperparámetros importan más que otros cuando se sintoniza una red neuronal convolucional en su problema de clasificación de documentos. Ye Zhang y Byron Wallace realizaron un análisis de sensibilidad de los hiper-parámetros necesarios para configurar una red neuronal convolucional de una sola capa para la clasificación de documentos. El estudio está motivado por su afirmación de que los modelos son sensibles a su configuración.
Su objetivo era proporcionar configuraciones generales que se pueden utilizar para configurar CNN’s en nuevas tareas de clasificación de texto. Proporcionan una buena descripción de la arquitectura del modelo y los puntos de decisión para configurar el modelo, que se reproducen a continuación.
El estudio presenta una serie de conclusiones útiles que podrían utilizarse como punto de partida para configurar modelos de CNN poco profundos para la clasificación de textos. Las conclusiones generales fueron las siguientes:
- La elección de incrustaciones de Word2Vec y GloVe pre-entrenadas difieren de un problema a otro, y ambas funcionaron mejor que el uso de un vector de palabras codificadas en caliente.
- El tamaño del núcleo es importante y debe ser ajustado para cada problema.
- El número de mapas de características también es importante y debe ser ajustado.
- El pooling 1-max generalmente superó a otros tipos de pooling.
El abandono tiene poco efecto en el rendimiento del modelo.
A continuación, ofrecen una heurística más específica:
- Utiliza incrustaciones de Word2Vec o GloVe como punto de partida y ajustalas mientras ajustas el modelo.
- Busca en cuadrícula a través de diferentes tamaños de núcleo para encontrar la configuración óptima para tu problema, en el rango 1-10.
- Busca el número de filtros de 100-600 y explora una pérdida de 0.0-0.5 como parte de la misma búsqueda.
- Explora el uso de las funciones de activación tanh, relu y lineal.
La advertencia clave es que los hallazgos se basan en resultados empíricos sobre problemas de clasificación de texto binario, usando oraciones sencillas como entrada.
Considere las CNN a nivel de personaje
Los documentos de texto se pueden modelar a nivel de caracteres utilizando redes neuronales convolucionales que son capaces de aprender la estructura jerárquica relevante de palabras, oraciones, párrafos, y más. Xiang Zhang, utiliza una representación de texto basada en caracteres como entrada para una red neuronal convolucional. La promesa del enfoque es que todo el esfuerzo intensivo de trabajo requerido para limpiar y preparar el texto podría superarse si una CNN puede aprender a abstraer los detalles salientes.
El modelo se lee en caracteres codificados en caliente en un alfabeto de tamaño fijo. Los caracteres codificados se leen en bloques o secuencias de 1.024 caracteres.
A continuación, una pila de 6 capas convolucionales con pooling, con 3 capas completamente conectadas en el extremo de salida de la red para hacer una predicción.
El modelo logra cierto éxito, rindiendo mejor en problemas que ofrecen un mayor corpus de texto.
Los resultados que usaban una versión extendida de este enfoque fueron llevados al estado del arte en un documento de seguimiento, tratado en la siguiente sección de la lección de hoy.
Considera las CNN más profundas para la clasificación
Se puede lograr un mejor rendimiento con redes neuronales convolucionales muy profundas, aunque todavía no se han adoptado arquitecturas estándar y reutilizables para las tareas de clasificación. Alexis Conneau, comenta sobre las redes relativamente poco profundas usadas para el procesamiento del lenguaje natural y el éxito de redes mucho más profundas usadas para aplicaciones de visión artificial. Por ejemplo, Kim (arriba) restringió el modelo a una sola capa convolucional.
Otras arquitecturas utilizadas para el lenguaje natural revisadas en el trabajo están limitadas a 5 y 6 capas. Estas se contrastan con arquitecturas exitosas utilizadas en la visión por computador con 19 o incluso hasta 152 capas. Sugieren y demuestran que hay beneficios para el aprendizaje de características jerárquicas con un modelo de red neural convolucional muy profundo, llamado VDCNNN.
La clave de tu enfoque es una incrustación de caracteres individuales, en lugar de una incrustación de palabras.
Los resultados de un conjunto de 8 grandes tareas de clasificación de texto muestran un mejor rendimiento que las redes más superficiales. Específicamente, los resultados del estado del arte en todos los conjuntos de datos probados, excepto dos, en el momento de escribir este artículo. Generalmente, ellos hacen algunos hallazgos clave al explorar el enfoque arquitectónico más profundo:
- La arquitectura muy profunda funcionó bien en conjuntos de datos pequeños y grandes.
- Las redes más profundas disminuyen el error de clasificación.
- Max-pooling consigue mejores resultados que otros tipos de pooling más sofisticados.
- En general, ir más profundo degrada la precisión; las conexiones de atajos utilizadas en la arquitectura son importantes.
➡ Aprende mucho mas de Procesamiento de Lenguaje Natural en nuestro curso:
[…] Curso de Natural Language Processing con Deep Learning, 5º clase 1/3 […]