Seq2seq es una familia de enfoques de aprendizaje automático utilizados para el procesamiento del lenguaje natural . [1] Las aplicaciones incluyen traducción de idiomas , subtítulos de imágenes , modelos conversacionales y resumen de texto . [2] Seq2seq utiliza la transformación de secuencias : convierte una secuencia en otra secuencia.
Naturalmente, uno se pregunta si el problema de la traducción podría ser tratado como un problema de criptografía. Cuando veo un artículo en ruso, digo: "Esto está escrito en inglés, pero está codificado con algunos símbolos extraños. Ahora procederé a descifrarlo".
— Warren Weaver , Carta a Norbert Wiener , 4 de marzo de 1947
seq2seq es un enfoque de la traducción automática (o, de manera más general, de la transducción de secuencias ) que tiene sus raíces en la teoría de la información, donde la comunicación se entiende como un proceso de codificación-transmisión-decodificación, y la traducción automática puede estudiarse como un caso especial de comunicación. Este punto de vista se elaboró, por ejemplo, en el modelo de canal ruidoso de la traducción automática.
Concretamente, seq2seq mapea una secuencia de entrada en un vector numérico real mediante una red neuronal (el codificador) y luego la mapea nuevamente a una secuencia de salida utilizando otra red neuronal (el decodificador).
La idea de la transducción de secuencias codificador-descodificador se desarrolló a principios de la década de 2010 (consulte [3] [1] para consultar artículos anteriores). Los artículos que se citan con más frecuencia como los creadores de seq2seq son dos artículos de 2014. [3] [1]
En el seq2seq propuesto por ellos, tanto el codificador como el decodificador eran LSTM . Esto tenía el problema del "cuello de botella", ya que el vector de codificación tiene un tamaño fijo, por lo que para secuencias de entrada largas, la información tendería a perderse, ya que son difíciles de encajar en el vector de codificación de longitud fija. El mecanismo de atención , propuesto en 2014, [4] resolvió el problema del cuello de botella. Llamaron a su modelo RNNsearch , ya que "emula la búsqueda a través de una oración fuente durante la decodificación de una traducción".
Un problema con los modelos seq2seq en este punto era que las redes neuronales recurrentes son difíciles de paralelizar. La publicación de 2017 de Transformers [5] resolvió el problema al reemplazar la RNN de codificación con bloques Transformer de autoatención ("bloques codificadores"), y la RNN de decodificación con bloques Transformer de atención cruzada enmascarados causalmente ("bloques decodificadores").
Uno de los artículos citados como el creador de seq2seq es (Sutskever et al 2014), [1] publicado en Google Brain mientras estaban en el proyecto de traducción automática de Google. La investigación permitió a Google transformar Google Translate en Google Neural Machine Translation en 2016. [1] [6] Tomáš Mikolov afirmó haber desarrollado múltiples ideas antes de unirse a Google Brain , incluida la traducción automática seq2seq, que mencionó a Ilya Sutskever y Quoc Le mientras estaban en Google Brain, quienes no lo reconocieron en su artículo. [7]
Mikolov había trabajado en RNNLM (usando RNN para modelado de lenguaje) para su tesis de doctorado, [8] y es más famoso por desarrollar word2vec .
El codificador es el encargado de procesar la secuencia de entrada y capturar su información esencial, que se almacena como el estado oculto de la red y, en un modelo con mecanismo de atención, un vector de contexto. El vector de contexto es la suma ponderada de los estados ocultos de entrada y se genera para cada instancia de tiempo en las secuencias de salida.
El decodificador toma el vector de contexto y los estados ocultos del codificador y genera la secuencia de salida final. El decodificador opera de manera autorregresiva, produciendo un elemento de la secuencia de salida a la vez. En cada paso, considera los elementos generados previamente, el vector de contexto y la información de la secuencia de entrada para hacer predicciones para el siguiente elemento en la secuencia de salida. Específicamente, en un modelo con mecanismo de atención, el vector de contexto y el estado oculto se concatenan juntos para formar un vector oculto de atención, que se utiliza como entrada para el decodificador.
El mecanismo de atención es una mejora introducida por Bahdanau et al. en 2014 para abordar las limitaciones en la arquitectura básica Seq2Seq donde una secuencia de entrada más larga da como resultado que la salida del estado oculto del codificador se vuelva irrelevante para el decodificador. Permite que el modelo se centre selectivamente en diferentes partes de la secuencia de entrada durante el proceso de decodificación. En cada paso del decodificador, un modelo de alineación calcula la puntuación de atención utilizando el estado actual del decodificador y todos los vectores ocultos de atención como entrada. Un modelo de alineación es otro modelo de red neuronal que se entrena conjuntamente con el modelo seq2seq que se utiliza para calcular qué tan bien una entrada, representada por el estado oculto, coincide con la salida anterior, representada por el estado oculto de atención. Luego, se aplica una función softmax a la puntuación de atención para obtener el peso de la atención.
En algunos modelos, los estados del codificador se introducen directamente en una función de activación, lo que elimina la necesidad de un modelo de alineación. Una función de activación recibe un estado del decodificador y un estado del codificador y devuelve un valor escalar de su relevancia. [9]
En 2019, Facebook anunció su uso en la integración simbólica y la resolución de ecuaciones diferenciales . La compañía afirmó que podía resolver ecuaciones complejas más rápidamente y con mayor precisión que las soluciones comerciales como Mathematica , MATLAB y Maple . Primero, la ecuación se analiza en una estructura de árbol para evitar idiosincrasias de notación. Luego, una red neuronal LSTM aplica sus funciones estándar de reconocimiento de patrones para procesar el árbol. [10]
En 2020, Google lanzó Meena, un chatbot basado en seq2seq de 2.6 mil millones de parámetros entrenado en un conjunto de datos de 341 GB. Google afirmó que el chatbot tiene una capacidad de modelo 1,7 veces mayor que GPT-2 de OpenAI , [11] cuyo sucesor de mayo de 2020, el GPT-3 de 175 mil millones de parámetros , entrenado en un "conjunto de datos de 45 TB de palabras de texto sin formato (45 000 GB) que fue... filtrado a 570 GB". [12]
En 2022, Amazon presentó AlexaTM 20B, un modelo de lenguaje seq2seq de tamaño moderado (20 mil millones de parámetros) . Utiliza un codificador-decodificador para lograr un aprendizaje de pocos intentos. El codificador genera una representación de la entrada que el decodificador usa como entrada para realizar una tarea específica, como traducir la entrada a otro idioma. El modelo supera al mucho más grande GPT-3 en la traducción y el resumen de idiomas. El entrenamiento combina la eliminación de ruido (insertar adecuadamente el texto faltante en las cadenas) y el modelado causal del lenguaje (extender significativamente un texto de entrada). Permite agregar funciones en diferentes idiomas sin flujos de trabajo de entrenamiento masivos. AlexaTM 20B logró un rendimiento de vanguardia en tareas de aprendizaje de pocos intentos en todos los pares de idiomas Flores-101, superando a GPT-3 en varias tareas. [13]