Lo que hace Google Translate es nada menos que asombroso. Con el fin de diseñar la capacidad de traducir entre las docenas de idiomas que soporte, los creadores de Google Translate utilizaron algunos de los más avanzados y recientes desarrollos de Procesamiento del Lenguaje Natural de una forma excepcionalmente creativa.
En la traducción automática, generalmente hay dos enfoques: un enfoque basado en reglas y un enfoque basado en Machine Learning.
La traducción basada en reglas implica la recopilación de un diccionario masivo de traducciones, tal vez palabra por palabra o por frase, que se unen en una traducción.
En primer lugar, las estructuras gramaticales difieren significativamente entre los idiomas. Consideremos el español, uno de los idiomas más complejos, acá los objetos tienen género, masculino o femenino, a diferencia del inglés. Por lo tanto, todos los adjetivos y palabras como “el” o “la” se deben ajustar al género del objeto en el que se describe. Por lo tanto, traducir una frase en inglés al español, por ejemplo “the houses are big”, requerirá que cada una de las palabras se escriban en plural y en femenino, ya que esos son los atributos de la oración.
Esta gramática y la necesidad de cambiar todos los adjetivos no tiene ningún sentido para un inglés puro. Solo dentro de la traducción inglés-español, hay demasiadas disparidades en la estructura fundamental como para seguirlas. Sin embargo, una traducción verdaderamente global requiere la traducción entre cada par de idiomas.
Ahora bien, digamos que quieres traducir un texto del francés al mandarín, la única solución factible basada en reglas sería traducir el francés a una lengua base, que puede ser el inglés, que luego se traduciría al mandarín.
Cuando se lanzó Google Translate, inicialmente, utilizaron un algoritmo basado en frases, que es esencialmente un método basado en reglas con más complejidad. Poco después, mejoró drásticamente su calidad con el desarrollo de la Traducción Automática Neural de Google (GNMT, por sus siglas en inglés). Consideraron cada uno de los problemas anteriores y crearon este desarrollo.
Crear un modelo para cada par de idiomas es obviamente ridículo, el número de modelos profundos necesarios llegaría a los cientos, cada uno de los cuales tendría que ser almacenado en el teléfono del usuario para un uso eficiente fuera de línea. En cambio, Google decidió crear una gran red neuronal que pudiera traducir entre dos idiomas cualesquiera, dados dos tokens que representan los idiomas.
La estructura fundamental del modelo es codificador-decodificador. Un segmento de la red neuronal busca reducir un idioma a su representación universal fundamental y legible por máquina, mientras que el otro toma esta representación universal y transforma repetidamente las ideas subyacentes en el idioma de salida. Se trata de una arquitectura transformadora.
Las arquitecturas de redes neuronales transformadoras fueron introducidas en 2017 con el artículo “La atención es todo lo que necesitas” de Google para deshacerse de esos modelos de Redes Neuronales Recurrentes (RNN) y Redes Neuronales Convolucionales (CNN) y usar en su lugar la atención.
Utilizando un enfoque similar al de las Redes Neuronales Recurrentes, los transformadores harían posible el uso de una mayor paralelización durante el entrenamiento, haciéndolo mucho más rápido y preciso.
Transformadores
Primero, necesitamos mirar la atención, ya que es una idea clave en los transformadores. La atención es la evaluación de la relación entre cada elemento de entrada y cada elemento de salida.
Luego está la auto-atención, que es la evaluación de la relación entre cada elemento de entrada y cada uno de los demás elementos de entrada. Esta es la atención con respecto a uno mismo. Nos dice cómo una palabra en particular en la frase es relevante para otras palabras en la misma frase.
Las redes transformadoras usan la auto-atención en tiempo múltiple, llamada atención multi-cabeza. Cada “cabeza” aprende las relaciones de atención de forma independiente.
Arquitectura
Los transformadores son un modelo de secuencia a secuencia que utiliza codificadores y decodificadores. Los codificadores y decodificadores funcionan de manera muy parecida a las Redes Neuronales Recurrentes. Utiliza múltiples módulos de atención de múltiples “cabezas” apilados unos sobre otros.
El codificador evalúa el grado de relevancia de cada palabra con respecto a las otras palabras de la frase a traducir. El decodificador encapsula ambas interacciones lingüísticas, como las interacciones en francés e ingles. Haciendo eso, obtenemos las relaciones con otras palabras en ambos idiomas.
En general, el decodificador predice la siguiente palabra y la ejecutamos en múltiples pasos de tiempo hasta el final de la frase.
Estos codificadores y decodificadores están todos conectados a través de capas de alimentación que transforman las salidas para hacerlas digeribles por el siguiente bloque codificador o decodificador.
La principal diferencia entre las Redes Neuronales Recurrentes es el hecho de que las secuencias de entrada se pasan simultáneamente en lugar de una a la vez, lo cual es mucho más rápido. Por ejemplo, en el Procesamiento del Lenguaje Natural, los Redes Neuronales Recurrentes aprender una palabra a la vez mientras que los transformadores pueden aprender todas las palabras de una frase simultáneamente. Estas se utilizan en tareas de secuencia a secuencia como la traducción automática, donde toma una secuencia de palabras, por ejemplo, en inglés, y la traduce en una secuencia en otro idioma, como el francés.
Ventajas y Desventajas
Como todo, los transformadores tienen beneficios y desventajas. Tienen un tiempo de entrenamiento más rápido que las Redes Neuronales Recurrentes si tienes acceso a suficiente computación, esto debido a la paralelización.
Además, el mecanismo de atención ignora el orden, lo que significa que es tan fácil detectar relaciones entre elementos muy distantes como lo es detectar relaciones entre elementos muy cercanos en una secuencia.
Sin embargo, también hay inconvenientes. Los transformadores son modelos muy grandes, por lo que necesita mucha memoria y computación para entrenar y requiere muchos datos.
Por último, como son bastante nuevos, sabemos menos sobre ellos y lo que funciona, como los efectos de los hiperparámetros, en comparación con las Redes Neuronales Recurrentes y Convolucionales.
Hay muchos desafíos cuando se trata de proporcionar un servicio de traducción verdaderamente global. El modelo debe ser liviano, pero también entender el vocabulario, las estructuras gramaticales y las relaciones entre docenas de idiomas.
La Traducción Automática Neural de Google (GNMT) utiliza una arquitectura de transformadores y con estos avances, mas allá de la traducción de texto a texto, pero de imagen a imagen y de sonido a sonido, el Aprendizaje Profundo ha dado un gran salto hacia la comprensión del lenguaje humano.
Con esto finalizamos la explicación. Ya conoces un poco más sobre como se utiliza la Inteligencia Artificial en Google Translate, por lo tanto te dejo la siguiente pregunta, ¿Cuáles de las siguientes afirmaciones crees tú que sea cierta?
Opción 1: Google Translate utiliza Redes Neuronales Recurrente.
Respuesta Incorrecta. Utilizando un enfoque similar al de las Redes Neuronales Recurrentes, los transformadores harían posible el uso de una mayor paralelización durante el entrenamiento, haciéndolo mucho más rápido y preciso.
Opción 2: Los codificadores y decodificadores están todos conectados a través de capas de alimentación que transforman las salidas para hacerlas digeribles por el siguiente bloque codificador o decodificador.
Respuesta Correcta.
Opción 3: Los transformadores tienen un tiempo de entrenamiento más rápido que las Redes Neuronales Recurrentes si tienes acceso a suficiente computación, esto debido a la paralelización.
Respuesta Correcta.