stringtranslate.com

Atención (aprendizaje automático)

La atención basada en el aprendizaje automático es un mecanismo que imita intuitivamente la atención cognitiva . Calcula pesos "suaves" para cada palabra, más precisamente para su incrustación , en la ventana de contexto . Estos pesos se pueden calcular en paralelo (como en los transformadores ) o secuencialmente (como en las redes neuronales recurrentes ). Los pesos "blandos" pueden cambiar durante cada tiempo de ejecución, a diferencia de los pesos "duros", que están (pre)entrenados y ajustados y permanecen congelados después.

Se prestó atención a abordar las debilidades del aprovechamiento de la información de las salidas ocultas de las redes neuronales recurrentes. Las redes neuronales recurrentes favorecen la información más reciente contenida en las palabras al final de una oración, mientras que se espera que la información anterior en la oración se atenúe . La atención permite que el cálculo de la representación oculta de un token tenga acceso igual a cualquier parte de una oración directamente, en lugar de solo a través del estado oculto anterior.

Los usos anteriores adjuntaron este mecanismo al sistema de traducción de idiomas de una red neuronal recurrente en serie (abajo), pero los usos posteriores en los modelos de lenguaje grandes de Transformers eliminaron la red neuronal recurrente y dependieron en gran medida del esquema de atención paralela más rápido.

Antecesores

Los predecesores del mecanismo se utilizaron en redes neuronales recurrentes que, sin embargo, calculaban pesos "suaves" secuencialmente y, en cada paso, consideraban la palabra actual y otras palabras dentro de la ventana de contexto. Se les conocía como módulos multiplicativos , unidades sigma pi , [1] e hiperredes . [2] Se han utilizado en redes de memoria a largo plazo (LSTM), procesamiento de datos multisensoriales (sonido, imágenes, video y texto) en perceptores , memoria rápida de controladores de peso, [3] tareas de razonamiento en computadoras neuronales diferenciables. y máquinas neuronales de Turing . [4] [5] [6] [7] [8]

Cálculos básicos

La red de atención fue diseñada para identificar las correlaciones más altas entre las palabras dentro de una oración, asumiendo que ha aprendido esos patrones del corpus de entrenamiento. Esta correlación se captura en los pesos neuronales mediante retropropagación , ya sea mediante un preentrenamiento autosupervisado o un ajuste fino supervisado .

El siguiente ejemplo (una variante QKV de una red de atención solo con codificador) muestra cómo se identifican las correlaciones una vez que la red ha sido entrenada y tiene los pesos correctos. Al observar la palabra "eso" en la oración "ver correr a esa chica", la red debería poder identificar "niña" como una palabra altamente correlacionada. Para simplificar, este ejemplo se centra en la palabra "eso", pero en realidad todas las palabras reciben este tratamiento en paralelo y los pesos suaves y los vectores de contexto resultantes se apilan en matrices para su uso posterior en tareas específicas.

Las subredes Q w y K w de un único "cabezal de atención" calculan los pesos suaves, que provienen de la palabra "eso". (Variante QKV solo con codificador).

La oración se envía a través de 3 flujos paralelos (izquierda), que emergen al final como el vector de contexto (derecha). El tamaño de incrustación de palabras es 300 y el recuento de neuronas es 100 en cada subred del cabezal de atención.

  • La letra mayúscula X denota una matriz de tamaño 4 × 300, que consta de las incrustaciones de las cuatro palabras.
  • La pequeña letra x subrayada denota el vector de incrustación (tamaño 300) de la palabra "eso".
  • El cabezal de atención incluye tres subredes (dispuestas verticalmente en la ilustración), cada una con 100 neuronas, siendo W q , W k y W v sus respectivas matrices de peso, todas ellas de tamaño 300 × 100.
  • q (de "consulta") es un vector de tamaño 100, W k ("clave") y W v ("valor") son matrices de 4x100.
  • El asterisco entre paréntesis " (*) " indica softmax ( qW k / 100 ) . El resultado de Softmax es un vector de tamaño 4 que luego se multiplica por la matriz V=XW v para obtener el vector de contexto.
  • Reescalar en 100 evita una variación alta en qW k T que permitiría que una sola palabra domine excesivamente el softmax, lo que resultaría en la atención a una sola palabra, como lo haría un hard max discreto.

Notación : la fórmula softmax de filas comúnmente escrita arriba supone que los vectores son filas, lo que contradice la notación matemática estándar de los vectores de columnas. Más correctamente, deberíamos tomar la transposición del vector de contexto y usar el softmax en columnas , lo que resultaría en la forma más correcta.

Contexto = (XW v ) T × softmax( (W k X T ) × ( x W q ) T / 100 ) .

El vector de consulta se compara (mediante producto escalar) con cada palabra de las claves. Esto ayuda al modelo a descubrir la palabra más relevante para la palabra de consulta. En este caso se determinó que "niña" era la palabra más relevante para "eso". El resultado (tamaño 4 en este caso) se ejecuta a través de la función softmax , produciendo un vector de tamaño 4 con probabilidades que suman 1. Multiplicar esto por la matriz de valores amplifica efectivamente la señal para las palabras más importantes de la oración y disminuye la señal. para palabras menos importantes. [5]

La estructura de los datos de entrada se captura en las ponderaciones W q y W k , y las ponderaciones W v expresan esa estructura en términos de características más significativas para la tarea para la que se está entrenando. Por esta razón, los componentes de la cabeza de atención se denominan Consulta ( W q ), Clave ( W k ) y Valor ( W v ), una analogía vaga y posiblemente engañosa con los sistemas de bases de datos relacionales .

Tenga en cuenta que el vector de contexto para "eso" no depende de los vectores de contexto para las otras palabras; por lo tanto, los vectores de contexto de todas las palabras se pueden calcular utilizando la matriz completa X , que incluye todas las incrustaciones de palabras, en lugar del vector de incrustación x de una sola palabra en la fórmula anterior, paralelizando así los cálculos. Ahora, softmax se puede interpretar como una matriz softmax que actúa en filas separadas. Esta es una gran ventaja sobre las redes recurrentes que deben operar de forma secuencial.

La analogía común de la clave de consulta con las consultas de bases de datos sugiere un papel asimétrico para estos vectores, donde un elemento de interés (la consulta) se compara con todos los elementos posibles (las claves). Sin embargo, los cálculos paralelos relacionan todas las palabras de la oración consigo misma; por lo tanto, los roles de estos vectores son simétricos. Posiblemente debido a que la analogía simplista de la base de datos es defectuosa, se han realizado muchos esfuerzos para comprender mejor la atención mediante el estudio de sus funciones en entornos enfocados, como el aprendizaje en contexto, [9] tareas de lenguaje enmascarado, [10] transformadores simplificados, [11] bigram. estadística, [12] convoluciones por pares, [13] y factorización aritmética. [14]

Un ejemplo de traducción de idiomas

Para construir una máquina que traduzca del inglés al francés, se inserta una unidad de atención en el codificador-decodificador básico (diagrama a continuación). En el caso más simple, la unidad de atención consta de productos escalares de los estados recurrentes del codificador y no necesita entrenamiento. En la práctica, la unidad de atención consta de tres capas de red neuronal entrenadas y totalmente conectadas denominadas consulta, clave y valor.

Una secuencia paso a paso de una traducción de idioma.
Codificador-decodificador con atención. [15] La parte izquierda (líneas negras) es el codificador-decodificador, la parte media (líneas naranjas) es la unidad de atención y la parte derecha (en gris y colores) son los datos calculados. Las regiones grises en la matriz H y el vector w son valores cero. Los subíndices numéricos indican tamaños de vectores, mientras que los subíndices con letras i y i − 1 indican pasos de tiempo.

Visto como una matriz, los pesos de atención muestran cómo la red ajusta su enfoque según el contexto. [17]

Esta visión de los pesos de atención aborda el problema de la " explicabilidad " de la red neuronal. Las redes que realizan traducción palabra por palabra sin tener en cuenta el orden de las palabras mostrarían las puntuaciones más altas a lo largo de la diagonal (dominante) de la matriz. El dominio fuera de la diagonal muestra que el mecanismo de atención tiene más matices. En el primer paso por el decodificador, el 94% del peso de la atención está en la primera palabra en inglés "I", por lo que la red ofrece la palabra "je". En la segunda pasada del decodificador, el 88% del peso de la atención está en la tercera palabra en inglés "you", por lo que ofrece "t". En la última pasada, el 95% del peso de la atención está en la segunda palabra en inglés "love", por lo que ofrece "aime".

Variantes

Muchas variantes de atención implementan pesos suaves, como

Para las redes neuronales convolucionales , los mecanismos de atención se pueden distinguir por la dimensión en la que operan, a saber: atención espacial, [23] atención de canal, [24] o combinaciones. [25] [26]

Estas variantes recombinan las entradas del lado del codificador para redistribuir esos efectos a cada salida de destino. A menudo, una matriz de estilo de correlación de productos escalares proporciona los coeficientes de reponderación. En las figuras siguientes, W es la matriz de ponderaciones de atención contextual, similar a la fórmula de la sección Cálculos básicos anterior.

Representación matemática

Atención de producto escalado estándar

Atención multicabezal

Bahdanau (aditivo) Atención

[17]

Atención Luong (General)

[21]

Ver también

Referencias

  1. ^ Rumelhart, David E.; Mcclelland, James L.; Grupo, Investigación PDP (29 de julio de 1987). Procesamiento distribuido paralelo, volumen 1: exploraciones en la microestructura de la cognición: fundamentos, capítulo 2 (PDF) . Cambridge, masa: Bradford Books. ISBN 978-0-262-68053-0.
  2. ^ Yann Lecun (2020). Curso de aprendizaje profundo en NYU, primavera de 2020, video conferencia Semana 6. El evento ocurre a las 53:00 . Consultado el 8 de marzo de 2022 .
  3. ^ ab Schmidhuber, Jürgen (1992). "Aprender a controlar los recuerdos de peso rápido: una alternativa a las redes recurrentes". Computación neuronal . 4 (1): 131-139. doi :10.1162/neco.1992.4.1.131. S2CID  16683347.
  4. ^ Tumbas, Alex; Wayne, Greg; Reynolds, Malcolm; Harley, Tim; Danihelka, Ivo; Grabska-Barwińska, Agnieszka; Colmenarejo, Sergio Gómez; Grefenstette, Eduardo; Ramalho, Tiago; Agapiou, Juan; Badía, Adrià Puigdomènech; Hermann, Karl Moritz; Zwols, Yori; Ostrovski, Georg; Caín, Adán; Rey, Helena; Summerfield, Christopher; Blunsom, Phil; Kavukcuoglu, Koray; Hassabis, Demis (12 de octubre de 2016). "Computación híbrida mediante una red neuronal con memoria externa dinámica". Naturaleza . 538 (7626): 471–476. Código Bib :2016Natur.538..471G. doi : 10.1038/naturaleza20101. ISSN  1476-4687. PMID  27732574. S2CID  205251479.
  5. ^ ab Vaswani, Ashish ; Shazeer, Noam; Parmar, Niki; Uszkoreit, Jakob; Jones, León; Gómez, Aidan N ; Káiser, Łukasz; Polosukhin, Illia (2017). "La atención es todo lo que necesita" (PDF) . Avances en los sistemas de procesamiento de información neuronal . 30 . Curran asociados, Inc.
  6. ^ Ramachandran, Prajit; Parmar, Niki; Vaswani, Ashish; Bello, Irwan; Levskaya, Anselmo; Shlens, Jonathon (13 de junio de 2019). "Autoatención independiente en modelos de visión". arXiv : 1906.05909 [cs.CV].
  7. ^ Jaegle, Andrés; Gimeno, Félix; Brock, Andrés; Zisserman, Andrés; Vinyals, Oriol; Carreira, Joao (22/06/2021). "Perceptor: percepción general con atención iterativa". arXiv : 2103.03206 [cs.CV].
  8. ^ Ray, Tiernan. "La supermodelo de Google: DeepMind Perceiver es un paso en el camino hacia una máquina de inteligencia artificial que podría procesar cualquier cosa". ZDNet . Consultado el 19 de agosto de 2021 .
  9. ^ Zhang, Ruiqi (2024). "Los transformadores entrenados aprenden modelos lineales en contexto" (PDF) . Revista de investigación sobre aprendizaje automático 1-55 . 25 .
  10. ^ Rende, Riccardo (2023). "Mapeo de mecanismos de atención a un modelo de Potts generalizado". arXiv : 2304.07235 .
  11. ^ Él, Bobby (2023). "Simplificación de bloques de transformadores". arXiv : 2311.01906 .
  12. ^ "Circuitos de transformadores". transformador-circuitos.pub .
  13. ^ Red neuronal transformadora derivada desde cero. 2023. El evento ocurre a las 05:30 . Consultado el 7 de abril de 2024 .
  14. ^ Charton, François (2023). "Aprender el máximo común divisor: explicar las predicciones de los transformadores". arXiv : 2308.15594 .
  15. ^ Britz, Denny; Goldie, Anna; Luong, Minh-Thanh; Le, Quoc (21 de marzo de 2017). "Exploración masiva de arquitecturas de traducción automática neuronal". arXiv : 1703.03906 [cs.CV].
  16. ^ "Tutorial de Pytorch.org seq2seq" . Consultado el 2 de diciembre de 2021 .
  17. ^ abc Bahdanau, Dzmitry; Cho, Kyunghyun; Bengio, Yoshua (2014). "Traducción automática neuronal mediante el aprendizaje conjunto de alinear y traducir". arXiv : 1409.0473 [cs.CL].
  18. ^ Schmidhuber, Jürgen (1993). "Reducir la relación entre la complejidad del aprendizaje y el número de variables que varían en el tiempo en redes totalmente recurrentes". ICANN 1993 . Saltador. págs. 460–463.
  19. ^ Schlag, Imanol ; Irie, Kazuki; Schmidhuber, Jürgen (2021). "Los transformadores lineales son programadores de peso secretamente rápidos". ICML 2021 . Saltador. págs. 9355–9366.
  20. ^ Choromanski, Krzysztof; Likhosherstov, Valerii; Dohan, David; Canción, Xingyou; Gane, Andreea; Sarlos, Tamas; Hawkins, Peter; Davis, Jared; Mohiuddin, Afroz; Káiser, Lukasz; Belanger, David; Colwell, Lucy; Weller, Adrián (2020). "Repensar la atención con los artistas intérpretes o ejecutantes". arXiv : 2009.14794 [cs.CL].
  21. ^ abc Luong, Minh-Thang (20 de septiembre de 2015). "Enfoques eficaces para la traducción automática neuronal basada en la atención". arXiv : 1508.04025v5 [cs.CL].
  22. ^ "Artículos con código: un modelo de atención descomponible para la inferencia del lenguaje natural". paperswithcode.com .
  23. ^ Zhu, Xizhou; Cheng, Dazhi; Zhang, Zheng; Lin, Esteban; Dai, Jifeng (2019). "Un estudio empírico de los mecanismos de atención espacial en redes profundas". Conferencia internacional IEEE/CVF 2019 sobre visión por computadora (ICCV) . págs. 6687–6696. arXiv : 1904.05873 . doi :10.1109/ICCV.2019.00679. ISBN  978-1-7281-4803-8. S2CID  118673006.
  24. ^ Hu, Jie; Shen, Li; Sol, pandilla (2018). "Redes de compresión y excitación". Conferencia IEEE/CVF 2018 sobre visión por computadora y reconocimiento de patrones . págs. 7132–7141. arXiv : 1709.01507 . doi :10.1109/CVPR.2018.00745. ISBN 978-1-5386-6420-9. S2CID  206597034.
  25. ^ Woo, Sanghyun; Parque, Jongchan; Lee, Joon-Young; Kweon, en eso (18 de julio de 2018). "CBAM: Módulo de atención de bloques convolucionales". arXiv : 1807.06521 [cs.CV].
  26. ^ Georgescu, Mariana-Iuliana; Ionescu, Radu Tudor; Miron, Andreea-Iuliana; Savencu, Olivian; Ristea, Nicolae-Catalin; Verga, Nicolae; Khan, Fahad Shahbaz (12 de octubre de 2022). "Atención convolucional multimodal de múltiples cabezales con varios tamaños de kernel para superresolución de imágenes médicas". arXiv : 2204.04218 [eess.IV].
  27. ^ Neil Rhodes (2021). CS 152 NN—27: Atención: claves, consultas y valores. El evento ocurre a las 06:30 . Consultado el 22 de diciembre de 2021 .
  28. ^ Alfredo Canziani y Yann Lecun (2021). Curso de aprendizaje profundo de la Universidad de Nueva York, primavera de 2020. El evento ocurre a las 05:30 . Consultado el 22 de diciembre de 2021 .
  29. ^ Alfredo Canziani y Yann Lecun (2021). Curso de aprendizaje profundo de la Universidad de Nueva York, primavera de 2020. El evento ocurre a las 20:15 . Consultado el 22 de diciembre de 2021 .
  30. ^ Robertson, Sean. "PNL desde cero: traducción con una red de secuencia a secuencia y atención". pytorch.org . Consultado el 22 de diciembre de 2021 .

enlaces externos