Attention-Mecanismos de atención

         La publicación del paper «Attention is all you need» fue una revolución en el campo de NLP. Solventan los problemas de memoria que presentan las RNN, mejoran el rendimiento de GRU y LSTM, y permiten entrenar más rápido con cuerpos más pesados. La clave de la arquitectura es el mecanismo de auto-atención y el uso de autoencoders para agilizar el entrenamiento y producir resultados top.

Las RNN, por su arquitectura recurrente, dan importancia al orden de la secuencia. Sin embargo, el Transformer pierde el mecanismo de recurrencia para utilizar el mecanismo de «auto-atención de múltiples cabezas». Esto, en teoría, permite capturar dependencias más largas y agilizar el entrenamiento bastante.

El Transformer recibe una oración de entrada y la convierte en dos secuencias: una secuencia de vectores de palabras y una secuencia de codificaciones posicionales. Ambos vectores son escritos usando representaciones numéricas del texto para que la red neuronal pueda procesarlas. Cada palabra del diccionario se representa como un vector. Las codificaciones posicionales son una representación vectorial de la posición de la palabra en la oración original.

 El transformer junta ambas secuencias y pasa el resultado a través de una serie de codificadores, seguidos de una serie de decodificadores. A diferencia de las RNN, el input no es alimentado en la red de forma secuencial sino que se pasa todo de una vez.

Cada uno de los codificadores convierte su entrada en otra secuencia de vectores llamados codificaciones. Los decodificadores hacen lo contrario: vuelven a convertir las codificaciones en una secuencia de probabilidades de diferentes palabras de salida. Cada codificador y decodificador contiene un componente llamado mecanismo de atención, que le permite generar un contexto a cada palabra que procesa, y cómo los mismos son colocados en forma paralela, la red tiene la capacidad de procesar todas las palabras en simultáneo, lo que le brinda su ventaja.


El mecanismo toma 3 valores de entrada:

  • Q: se trata de la query que representa el vector de una palabra.
  • K: las keys que son todas las demás palabras de la secuencia.
  • V: el valor vectorial de la palabra que se procesa en dicho punto temporal.

En el caso de auto-atención, los valores V y Q son el mismo vector. Y por lo tanto, el mecanismo nos devuelve la importancia.

La versión del mecanismo que utiliza un Transformer es una proyección de Q, K y V en h espacios lineales. Siendo h la cantidad de cabezas que tiene el mecanismo (siendo h=8 en el paper).


Implementaciones:

Attention Is All You Need: https://arxiv.org/abs/1706.03762



MaxViT: Multi-Axis Vision Transformer
https://arxiv.org/pdf/2204.01697.pdf

FlashAttention: Fast and Memory-Efficient Exact Attention with IO-Awareness
https://arxiv.org/abs/2205.14135
Cross-Modality Attention: 

Key Frame Attention:

Temporal Attention: