Blog
Modelado del Lenguaje Neural
- Publicado por: Rafael Fernandez
- Categoría: Uncategorized
El modelado del lenguaje es fundamental para muchas tareas importantes de procesamiento del lenguaje natural. Recientemente, los modelos de lenguaje basados en redes neuronales han demostrado un mejor rendimiento que los métodos clásicos, tanto de forma independiente como como parte de tareas de procesamiento de lenguaje natural más desafiantes. En este capítulo, descubrirá el modelado del lenguaje para el procesamiento del lenguaje natural. Después de leer este capítulo, usted sabrá:
- Por qué el modelado del lenguaje es crítico para abordar las tareas en el procesamiento del lenguaje natural.
- Qué es un modelo de lenguaje y algunos ejemplos de dónde se usan.
- Cómo se pueden usar las redes neuronales para modelar el lenguaje.
Vamos a empezar.
Resumen de la lección de hoy
Este tutorial está dividido en las siguientes partes:
- Problema del lenguaje de modelado
- Modelado Estadístico del Lenguaje
- Modelos de Lenguaje Neural
Problema del lenguaje de modelado
Los lenguajes formales, como los lenguajes de programación, pueden ser totalmente especificados. Todas las palabras reservadas pueden ser definidas y las formas válidas en que pueden ser usadas pueden ser definidas con precisión. No podemos hacer esto con lenguaje natural. Los lenguajes naturales no están diseñados; emergen y, por lo tanto, no hay una especificación formal.
Puede haber reglas formales y heurísticas para partes del idioma, pero tan pronto como se definan las reglas, usted ideará o encontrará ejemplos contrarios que contradigan las reglas. Los lenguajes naturales involucran un gran número de términos que pueden ser usados en formas que introducen todo tipo de ambigüedades, pero que todavía pueden ser entendidos por otros humanos. Además, los idiomas cambian, los usos de las palabras cambian: es un objetivo en movimiento. Sin embargo, los lingüistas tratan de especificar el idioma con gramáticas y estructuras formales. Se puede hacer, pero es muy difícil y los resultados pueden ser frágiles. Un enfoque alternativo para especificar el modelo del idioma es aprenderlo de los ejemplos.
Modelado Estadístico del Lenguaje
El Modelado Estadístico del Lenguaje, o Modelado del Lenguaje, o LM para abreviar, es el desarrollo de modelos probabilísticos que son capaces de predecir la siguiente palabra en la secuencia dadas las palabras que la preceden.
Un modelo de lenguaje aprende la probabilidad de que ocurran palabras basándose en ejemplos de texto. Los modelos más sencillos pueden mirar el contexto de una secuencia corta de palabras, mientras que los modelos más grandes pueden funcionar a nivel de oraciones o párrafos. Lo más común es que los modelos lingüísticos operen al nivel de las palabras.
Se puede desarrollar un modelo de lenguaje y utilizarlo de forma autónoma, por ejemplo para generar nuevas secuencias de texto que parecen proceder del corpus. El modelado del lenguaje es un problema de raíz para una amplia gama de tareas de procesamiento de lenguaje natural. De manera más práctica, los modelos de lenguaje se utilizan en el front-end o back-end de un modelo más sofisticado para una tarea que requiere comprensión del lenguaje.
Un buen ejemplo es el reconocimiento de voz, donde los datos de audio se utilizan como entrada al modelo y la salida requiere un modelo de lenguaje que interprete la señal de entrada y reconozca cada palabra nueva dentro del contexto de las palabras ya reconocidas.
Del mismo modo, los modelos de lenguaje se utilizan para generar texto en muchas tareas similares de procesamiento de lenguaje natural, por ejemplo:
- Reconocimiento óptico de caracteres
- Reconocimiento de escritura a mano.
- Traducción automática.
- Corrección Ortográfica.
- Subtitulado de imágenes.
- Integración de textos
- Y mucho más…
El desarrollo de mejores modelos de lenguaje a menudo resulta en modelos que funcionan mejor en su tarea de procesamiento de lenguaje natural. Esta es la motivación para desarrollar modelos lingüísticos mejores y más precisos.
Modelos de Lenguaje Neural
Recientemente, el uso de redes neuronales en el desarrollo de modelos de lenguaje se ha vuelto muy popular, hasta el punto de que ahora puede ser el enfoque preferido. El uso de redes neuronales en el modelado del lenguaje a menudo se llama Neural Language Modeling, o NLM para abreviar. Los enfoques de redes neuronales están logrando mejores resultados que los métodos clásicos tanto en modelos de lenguaje independientes como cuando los modelos se incorporan a modelos más grandes en tareas desafiantes como el reconocimiento de voz y la traducción automática. Una razón clave para los saltos en la mejora del rendimiento puede ser la capacidad del método para generalizar.
Específicamente, se adopta una incrustación de palabras que utiliza un vector de valor real para representar cada palabra en un espacio vectorial proyectado. Esta representación aprendida de palabras basada en su uso permite que las palabras con un significado similar tengan una representación similar.
Esta generalización es algo que la representación utilizada en los modelos estadísticos clásicos no puede lograr fácilmente.
- Asocia cada palabra en el vocabulario con un vector de característica de palabra distribuida.
- Expresa la función de probabilidad conjunta de secuencias de palabras en términos de los vectores de característica de estas palabras en la secuencia.
- Aprende simultáneamente el vector de la palabra característica y los parámetros de la función de probabilidad.
Esto representa un modelo relativamente simple en el que tanto el modelo de representación como el probabilístico se aprenden juntos directamente a partir de datos de texto sin procesar. Recientemente, los enfoques basados en los nervios han comenzado a superar los enfoques estadísticos clásicos.
Inicialmente, se utilizaron modelos de redes neuronales de retroalimentación para introducir el enfoque. Más recientemente, las redes neuronales recurrentes y luego las redes con una memoria a largo plazo como la red de memoria a corto plazo, o LSTM, permiten que los modelos aprendan el contexto relevante a través de secuencias de entrada mucho más largas que las redes de realimentación más simples.
Recientemente, los investigadores han estado buscando los límites de estos modelos lingüísticos. En el artículo Exploring the Limits of Language Modeling (Explorando los límites del modelado del lenguaje), que evalúa los modelos del lenguaje sobre grandes conjuntos de datos, como el corpus de un millón de palabras, los autores encuentran que los modelos de lenguaje neural basados en LSTM superan los métodos clásicos.
Además, proponen algunas heurísticas para desarrollar modelos de lenguaje neural de alto rendimiento en general:
- El tamaño importa: Los mejores modelos eran los más grandes, específicamente el número de unidades de memoria.
- La regularización es importante: El uso de regularización como el abandono en las conexiones de entrada mejora los resultados.
- CNN’s vs Embeddedings: Los modelos de redes neuronales convolucionales (CNN) de nivel de caracteres se pueden utilizar en el front-end en lugar de incrustaciones de palabras, logrando resultados similares y a veces mejores.
- Los conjuntos importan: La combinación de la predicción de varios modelos puede ofrecer grandes mejoras en el rendimiento del modelo.
➡ Aprende mas de Procesamiento de Lenguaje Natural en nuestro curso