Blog
¿Qué son los modelos de codificador-decodificador para la traducción neural automática?
- Publicado por: Rafael Fernandez
- Categoría: Uncategorized
La arquitectura codificador-decodificador para redes neuronales recurrentes es el método estándar de traducción neuronal automática que rivaliza y, en algunos casos, supera a los métodos clásicos de traducción automática estadística. Esta arquitectura es muy nueva, habiendo sido pionera sólo en 2014, aunque, ha sido adoptada como la tecnología central dentro del servicio de traducción de Google. En este capítulo, tú descubrirás los dos ejemplos fundamentales del modelo codificador-decodificador para la traducción neural automática. Después de leer este capítulo, tú sabrás:
- La arquitectura de red neuronal recurrente de codificador-decodificador es la tecnología principal del servicio de traducción de Google.
- El llamado modelo Sutskever para la traducción automática directa de principio a fin.
- El llamado modelo Cho que amplía la arquitectura con unidades GRU y un mecanismo de atención.
Vamos a empezar
Arquitectura de codificador-decodificador para NMT
La arquitectura Codificador-Decodificador con redes neuronales recurrentes se ha convertido en un enfoque efectivo y estándar tanto para la predicción de la traducción automática neural (NMT) como para la predicción de secuencia a secuencia (seq2seq) en general. Los beneficios clave de este enfoque son la capacidad de entrenar un único modelo de extremo a extremo directamente en las frases de origen y destino y la capacidad de manejar secuencias de entrada y salida de texto de longitud variable. Como prueba del éxito del método, la arquitectura es el núcleo del servicio de traducción de Google.
En este capítulo, examinaremos más de cerca dos proyectos de investigación diferentes que desarrollaron la misma arquitectura de codificador-decodificador al mismo tiempo en 2014 y lograron resultados que pusieron el foco en la meta. Estos son:
- Modelo Sutskever NMT
- Modelo Cho NMT
Sutskever NMT Modelo
En esta sección, veremos el modelo de traducción neural automática desarrollado por Ilya Sutskever, como se describe en su artículo de 2014, Sequence to Sequence Learning with Neural Networks (Secuencia para el aprendizaje secuencial con redes neuronales).
Nos referiremos a él como el Modelo Sutskever NMT, a falta de un mejor nombre. Este es un documento importante, ya que fue uno de los primeros en introducir el modelo de codificador-decodificador para la traducción automática y, en general, el aprendizaje de secuencia a secuencia. Es un modelo importante en el campo de la traducción automática, ya que fue uno de los primeros sistemas neuronales de traducción automática que superó a un modelo de aprendizaje automático estadístico de línea de base en una tarea de traducción de gran envergadura.
Problema
El modelo se aplicó a la traducción del inglés al francés, específicamente a la tarea de traducción del WMT 2014. La tarea de traducción se procesaba frase por frase, y se añadía un token de fin de secuencia (<EOS>) al final de las secuencias de salida durante la formación para indicar el final de la secuencia traducida. Esto permitió que el modelo fuera capaz de predecir secuencias de salida de longitud variable.
El modelo fue entrenado en un subconjunto de los 12 millones de oraciones del conjunto de datos, compuesto por 348 millones de palabras francesas y 304 millones de palabras inglesas. Este conjunto fue elegido porque estaba pretocado. El vocabulario de la fuente se redujo a las 160.000 palabras de origen más frecuentes en inglé,s y a 80.000 de las palabras de destino más frecuentes en francés. Todas las palabras fuera del vocabulario se sustituyeron por el símbolo UNK.
Modelo
Se desarrolló una arquitectura de codificador-decodificador en la que se leía una secuencia de entrada en su totalidad y se codificaba a una representación interna de longitud fija. Una red de decodificadores utilizaba esta representación interna para emitir palabras hasta que se llegaba al final del token de la secuencia. Las redes LSTM se utilizaron tanto para el codificador como para el decodificador.
El modelo final fue un conjunto de 5 modelos de Deep Learning. Se utilizó una búsqueda de izquierda a derecha durante la inferencia de las traducciones.
Configuración del modelo
A continuación se presenta un resumen de la configuración del modelo tomado del documento:
- Las secuencias de entrada se invirtieron.
- Se utilizó una capa de incrustación de palabras de 1000 dimensiones para representar las palabras de entrada.
- Se utilizó Softmax en la capa de salida.
- Los modelos de entrada y salida tenían 4 capas con 1.000 unidades por capa.
- El modelo fue apto para 7,5 épocas en las que se realizó algún tipo de decaimiento de la velocidad de aprendizaje.
- Durante la formación se utilizó un tamaño de lote de 128 secuencias.
- El recorte de gradiente se utilizó durante el entrenamiento para mitigar la posibilidad de explosiones de gradiente.
- Los lotes estaban formados por frases de aproximadamente la misma longitud para acelerar el cálculo.
El modelo se colocó en una máquina de 8 GPUs donde cada capa se ejecutaba en una GPU diferente. El entrenamiento duró 10 días.
Resultado
El sistema alcanzó una puntuación BLEU de 34,81, que es una buena puntuación en comparación con la puntuación inicial desarrollada con un sistema de traducción automática estadística de 33,30. Es importante destacar que este es el primer ejemplo de un sistema de traducción automática neural que superó la línea de base de una traducción automática estadística basada en frases en un problema a gran escala.
El modelo final se utilizó para volver a puntuar la lista de las mejores traducciones y mejorar la puntuación hasta 36,5, lo que la acerca al mejor resultado en el momento de 37,0.
Cho NMT Modelo
En esta sección, veremos el sistema de traducción neural automática descrito por Kyunghyun Cho, en su artículo de 2014 titulado Learning Phrase Representations using RNN Encoder- Decoder for Statistical Machine Translation (Aprendizaje de representaciones de frases utilizando el codificador decodificador RNN para la traducción automática estadística). Nos referiremos a él como el modelo Cho NMT por falta de un nombre mejor. Es importante destacar que el modelo Cho sólo se utiliza para calificar las traducciones de los candidatos y no se utiliza directamente para la traducción como el modelo Sutskever anterior. Aunque las extensiones del trabajo para diagnosticar mejor y mejorar el modelo lo utilizan directa y exclusivamente para la traducción.
Problema
Como en el caso anterior, el problema es la tarea de traducción del inglés al francés del taller WMT 2014. El vocabulario de origen y destino se limitó a las 15.000 palabras en francés e inglés más frecuentes, que cubren el 93% del conjunto de datos, y las palabras fuera del vocabulario se sustituyeron por UNK.
La implementación no utiliza unidades LSTM, sino que se desarrolla una unidad de red neuronal recurrente más simple llamada unidad recurrente cerrada o GRU.
Configuración del modelo
A continuación se presenta un resumen de la configuración del modelo tomado del documento:
- Se utilizó un incrustación de palabras en 100 dimensiones para representar las palabras de entrada.
- El codificador y el decodificador se configuraron con 1 capa de 1000 unidades GRU.
- 500 unidades Maxout que agrupan 2 entradas fueron utilizadas después del decodificador.
- Durante la capacitación se utilizó un lote de 64 frases.
El modelo fue entrenado por aproximadamente 2 días.
Extensiones
En el artículo On the Properties of Neural Machine Translation: Encoder-Decoder Approaches (Sobre las propiedades de la traducción automática neural”: Encoder-Decoder Approaches) Cho, investiga las limitaciones de su modelo. Descubre que el rendimiento se degrada rápidamente con el aumento de la longitud de las frases de entrada y con el número de palabras fuera del vocabulario.
Proporcionan un gráfico útil del rendimiento del modelo a medida que aumenta la longitud de la oración que captura la elegante pérdida de habilidad con mayor dificultad.
Para abordar el problema de las palabras desconocidas, sugieren aumentar drásticamente el vocabulario de las palabras conocidas durante el entrenamiento. Abordan el problema de la longitud de las oraciones en un documento de seguimiento titulado Neural Machine Translation by Jointly Learning to Align and Translate (Traducción Neural Automática por medio del Aprendizaje Conjunto para Alinear y Traducir) en el que proponen el uso de un mecanismo de atención. En lugar de codificar la frase de entrada en un vector de longitud fija, se mantiene una representación más completa de la entrada codificada y el modelo aprende a utilizarla para prestar atención a las diferentes partes de la entrada para cada palabra emitida por el decodificador.
En el documento se ofrecen numerosos detalles técnicos, por ejemplo:
- Se utiliza un modelo de configuración similar, aunque con capas bidireccionales.
- Los datos se preparan de tal manera que 30.000 de las palabras más comunes se mantienen en el vocabulario.
- El modelo se entrena primero con frases de hasta 20 palabras y luego con frases de hasta 50 palabras.
- Se utiliza un tamaño de lote de 80 frases y el modelo fue adecuado para 4-6 épocas.
- Durante la inferencia se utilizó una búsqueda por haz para encontrar la secuencia de palabras más probable para cada traducción.
Esta vez el modelo tarda aproximadamente 5 días en entrenar. El código para este trabajo de seguimiento también está disponible. Al igual que con el Sutskever, el modelo logró resultados al alcance de los enfoques estadísticos clásicos basados en frases.
Kyunghyun Cho también es autor de una serie de artículos en 2015 en el blog de desarrolladores de Nvidia sobre el tema de la arquitectura de codificador-decodificador para la traducción neural automática titulada Introduction to Neural Machine Translation with GPUs (Introducción a la traducción neural automática con GPU). La serie proporciona una buena introducción al tema y al modelo.
➡ ¿Quieres seguir aprendiendo? Ingresa a nuestro curso de Procesamiento de Lenguaje Natural: