stringtranslate.com

Secuencia a secuencia

Animación de seq2seq con RNN y mecanismo de atención

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.

Historia

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
Diagrama de Shannon de un sistema general de comunicaciones , que muestra el proceso mediante el cual un mensaje enviado se convierte en el mensaje recibido (posiblemente corrompido por el ruido)

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").

Disputa de prioridad

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 .

Arquitectura

Codificador

Codificador RNN

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.

Descifrador

Decodificador RNN

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.

Mecanismo de atención

Codificador-decodificador Seq2seq RNN con mecanismo de atención, entrenamiento
Codificador-decodificador RNN Seq2seq con mecanismo de atención, entrenamiento e inferencia

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.

Codificador-decodificador RNN Seq2seq con mecanismo de atención, donde se expone la construcción detallada del mecanismo de atención. Consulte la página del mecanismo de atención para obtener más detalles.

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]

Otras aplicaciones

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]

Véase también

Referencias

  1. ^ abcde Sutskever, Ilya; Vinyals, Oriol; Le, Quoc Viet (2014). "Aprendizaje secuencia a secuencia con redes neuronales". arXiv : 1409.3215 [cs.CL].
  2. ^ Wadhwa, Mani (5 de diciembre de 2018). «Modelo seq2seq en aprendizaje automático». GeeksforGeeks . Consultado el 17 de diciembre de 2019 .
  3. ^ ab Cho, Kyunghyun; van Merrienboer, Bart; Gulcehre, Caglar; Bahdanau, Dzmitry; Bougares, Fethi; Schwenk, Holger; Bengio, Yoshua (3 de junio de 2014). "Aprendizaje de representaciones de frases mediante el codificador-decodificador RNN para traducción automática estadística". arXiv : 1406.1078 [cs.CL].
  4. ^ Bahdanau, Dzmitry; Cho, Kyunghyun; Bengio, Yoshua (2014). "Traducción automática neuronal mediante el aprendizaje conjunto de alineación y traducción". arXiv : 1409.0473 [cs.CL].
  5. ^ Vaswani, Ashish; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, León; Gómez, Aidan N; Kaiser, Łukasz; Polosukhin, Illia (2017). "La atención es todo lo que necesitas". Avances en los sistemas de procesamiento de información neuronal . 30 . Curran asociados, Inc.
  6. ^ Wu, Yonghui; Schuster, Mike; Chen, Zhifeng; Le, Quoc V.; Norouzi, Mohammad; Macherey, Wolfgang; Krikun, Maxim; Cao, Yuan; Gao, Qin; Macherey, Klaus; Klingner, Jeff; Shah, Apurva; Johnson, Melvin; Liu, Xiaobing; Kaiser, Łukasz (2016). "El sistema de traducción automática neuronal de Google: cerrando la brecha entre la traducción humana y la traducción automática". arXiv : 1609.08144 [cs.CL].
  7. ^ Mikolov, Tomáš (13 de diciembre de 2023). "Ayer recibimos el premio Test of Time en NeurIPS por el artículo de word2vec de hace diez años". Facebook . Archivado desde el original el 24 de diciembre de 2023.
  8. ^ Mikolov, Tomáš. "Modelos estadísticos del lenguaje basados ​​en redes neuronales". (2012).
  9. ^ Voita, Lena. "Secuencia a secuencia (seq2seq) y atención" . Consultado el 20 de diciembre de 2023 .
  10. ^ "Facebook tiene una red neuronal que puede hacer cálculos matemáticos avanzados". MIT Technology Review . 17 de diciembre de 2019 . Consultado el 17 de diciembre de 2019 .
  11. ^ Mehta, Ivan (29 de enero de 2020). "Google afirma que su nuevo chatbot Meena es el mejor del mundo". The Next Web . Consultado el 3 de febrero de 2020 .
  12. ^ Gage, Justin. "¿Qué es GPT-3?" . Consultado el 1 de agosto de 2020 .
  13. ^ Rodríguez, Jesús (8 de septiembre de 2022). "🤘Edge#224: AlexaTM 20B es el nuevo supermodelo de lenguaje de Amazon, también capaz de aprendizaje en pocos intentos". thesequence.substack.com . Consultado el 8 de septiembre de 2022 .

Enlaces externos