El poder de las redes neuronales aplicadas en el framework de traducción de Google

El aprendizaje automático (Machine Learning), es uno de los tópicos más abstractos y complejos en lo que se refiere a la inteligencia artificial  y las ciencias de la computación. Existen infinidad de metodologías profundamente complejas, para modelar el comportamiento de un cerebro humano para aprender y resolver problemas por sí mismo.

Una de ellas es el uso de redes neuronales artificiales que consisten en el modelado de las conexiones de un grupo neuronas biológicas conectadas entre sí.

¿Como funciona?

La idea es generar una red de caminos donde cada unidad neuronal es un nodo y los axones son aristas. Cada unidad neuronal tiene una función o ponderación que es aplicada sobre la entrada y en base a esos resultados son guiadas a otras unidades hasta llegar a la solución correcta. Estas rutas o señales suelen estar en diferentes capas y cada ponderación de las unidades recorridas puede ser cambiada en función a los resultados posteriores, lo que se conoce como propagación hacia atrás.

neural_net2

 

Por supuesto, esta es una descripción increíblemente sencilla del proceso, pero sirve como introducción para intentar explicar uno de los avances más recientes y significativos en la aplicación de estos sistemas conexionistas. Este avance viene de parte de la empresa de software más importante del mundo: Google.

Sistema de traducción multilenguaje de Google basado en aprendizaje neuronal

A finales del año pasado el departamento de investigación de Google publicó un artículo en su blog llamado : Zero-Shot Translation with Google’s Multilingual Neural Machine Translation System donde explicaban los resultados de un reciente cambio en su sistema de traducción

Y es que en septiembre del mismo año, Google anunció que su servicio de traducción cambiaría su algoritmo interno por un framework llamado GNMT ( Google Neural Machine Translation ). Previo a este cambio, el servicio usaba un sistema basado en mapeo de frases, es decir, analizaba la entrada contra una gigantesca base de conocimiento de expresiones en varios idiomas hasta cotejar con los lenguajes de salida, dando así la respuesta más acertada según el contexto según previas traducciones.

Este enfoque, a pesar de ser bastante eficiente y acertado tenía ciertas limitaciones. Realizar únicamente un mapeo de frases sin entender estructuras lingüísticas tendía a producir resultados crudos. Además, estaba limitado por la cantidad de vocabulario disponible. Este tipo de traducción basada en frases no tenía la capacidad de crecer o extenderse por sí mismo y en términos de costo computacional, el proceso era más significativo

Ahora bien, ¿qué hace el nuevo framework de traducción? Básicamente aprende de sí mismo. Fue desarrollado para tener la habilidad de “entender” a través de millones de ejemplos, creciendo así a través del tiempo. Aprende estructuras lingüísticas y puede “adivinar” según el contexto el significado de frases o palabras que no existen en su base de conocimiento. Es un sistema más creativo que imperativo.

No es necesario, además, especificar la entrada del lenguaje pues el sistema puede detectar de cuál se trata.

¿Cómo funciona?

Supongamos que el sistema ha sido entrenado para traducir 2 pares de lenguajes. Al ejecutar la traducción, el sistema “comparte” parámetros entre esos dos pares y desarrolla un “conocimiento de traducción” de un par de lenguajes a otro. Es decir, puede generar un patrón según el aprendizaje que ya tiene pre-establecido.

¿Esto quiere decir que el sistema puede aprender a traducir lenguajes a los cuales no ha sido entrenado previamente? La respuesta es sí. Veamos un ejemplo

image01
(Origen : https://research.googleblog.com/2016/11/zero-shot-translation-with-googles.html)

Supongamos que el sistema es entrenado para traducir entre Japonés e Inglés y entre Coreano e Inglés. Al aprender sobre el patrón de cada lenguaje el sistema es capaz de traducir con resultados razonables entre Japonés y Coreano por ejemplo, a pesar de no haber sido entrenado para ello

Google llama a esto traducción zero shot, que dentro del aprendizaje automático significa “aprender algo sin siquiera haberlo visto una vez”.

Lo más impresionante de esto es que el sistema desarrolla por su cuenta una interlingua, que podríamos definir como un lenguaje intermedio entre un par o más de lenguajes basados en sus patrones y reglas lingüísticas.

A medida que se agregan más pares de lenguajes al sistema, éste aprende de sí mismo y puede crecer para traducir las combinaciones posibles entre los lenguajes en los cuales no ha sido entrenado, lo que genera un crecimiento exponencial de la interlingua. Esto significa que la red neuronal codifica algo sobre la semántica de las frases más que una memorización de las mismas. 

Gráfico comparativo de la calidad de traducción entre PBMT, GNMT y traducción humana
Gráfico comparativo de la calidad de traducción entre PBMT, GNMT y traducción humana

Increíblemente, el framework no fue desarrollado para realizar específicamente eso. Es un resultado inesperado para los mismos desarrolladores y ellos están tan impresionados como nosotros de que el framework funcione de esa manera. El sistema desarrolló una interlingua porque decidió que era la metodología óptima de realizar la traducción.

Esta mejora en el sistema ha traído muchos beneficios a Google, entre los que se destaca los costos en arquitectura de producción

El desarrollo de un idioma universal basado en los parámetros de la cantidad de idiomas disponibles en Google (actualmente 103) es un avance significativo en el aprendizaje automático. Es además un tema que ha sido debatido, fuera de las ciencias de computación en el estudio de la lingüística y psicología del lenguaje humano.

Tratando el tema desde un punto de vista menos científico (y por qué no, humorístico) tal vez estamos haciendo un rollback sobre la confusión de las lenguas que ocurrió, según las escrituras religiosas en la torre de babel.

Si quieres más contenido interesante sobre este tema te invito a leer los siguientes artículos que fueron usados como referencia:

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s