Ir al contenido

¿Qué es el Mecanismo de Atención?

Diagrama del mecanismo de self-attention mostrando query, key y value y los pesos de atención entre tokens

El mecanismo de atención es la pieza que permite que cada token de una secuencia mire a todos los demás para decidir cuáles son relevantes. Es el núcleo del Transformer, la arquitectura sobre la que se construyen los modelos de lenguaje actuales.

Cuando un token se mira a sí mismo y a los demás de su propia secuencia, la técnica se llama self-attention o autoatención. Es lo que permite al modelo resolver que en la frase “el perro que perseguía al gato estaba cansado”, la palabra “cansado” se refiere al perro y no al gato.

Sin este mecanismo, un modelo trata cada palabra de forma aislada. Con él, cada palabra se interpreta en función de las que la rodean.

Antes de la atención, los modelos que procesaban lenguaje lo hacían en orden, palabra por palabra, arrastrando un resumen de lo leído hasta el momento. Ese enfoque tenía un límite claro: cuando la información importante quedaba lejos, al principio de una frase larga, el modelo la iba diluyendo por el camino.

El paper Neural Machine Translation by Jointly Learning to Align and Translate de Bahdanau, Cho y Bengio introdujo la solución: dejar que el modelo buscara automáticamente las partes de la frase de entrada relevantes para cada palabra que iba a producir, en lugar de depender de un único resumen comprimido. Ese fue el germen de la atención.

La atención, para cada token, hace dos cosas: calcula cuánta relevancia tiene cada uno de los demás tokens respecto a él, y después combina la información de todos ponderada por esa relevancia.

El resultado es que la representación de cada token deja de depender solo de sí mismo y pasa a incorporar el contexto. La palabra “banco” mira a las palabras de alrededor y ajusta su representación según hable de un asiento o de dinero.

Para calcular esa relevancia, de cada token se derivan tres vectores a partir de su embedding: la query, la key y el value. Los tres son proyecciones distintas del mismo vector de entrada.

Se pueden entender por su función:

  • Query (consulta): lo que este token está buscando.
  • Key (clave): lo que cada token ofrece, su etiqueta para ser encontrado.
  • Value (valor): el contenido que cada token aporta si resulta relevante.

La query de un token se compara con las keys de todos los demás para decidir a quién prestar atención, y de los que resultan relevantes se toma su value.

El método que describe el Transformer se llama atención de producto escalar escalado. El cálculo, para cada token, sigue estos pasos:

  1. Se multiplica la query del token por la key de cada otro token mediante un producto escalar. Cuanto más alineadas están dos direcciones, mayor es el número: eso mide la relevancia.
  2. Esos números se pasan por la función softmax, que los convierte en pesos que suman 1. Ahora cada token tiene un porcentaje de atención repartido entre todos los demás.
  3. Se suman los values de todos los tokens, cada uno multiplicado por su peso. El resultado es la nueva representación del token, ya cargada de contexto.

La entrada de todo este proceso son los embeddings de los tokens; la salida son esos mismos vectores enriquecidos con la información relevante del resto de la secuencia.

El Transformer no aplica la atención una sola vez, sino varias en paralelo. Cada una de esas aplicaciones se llama cabeza (head), y el conjunto, atención multi-cabeza (multi-head attention).

Cada cabeza aprende a fijarse en un tipo de relación distinto. Una puede seguir concordancias de género y número, otra relaciones entre verbo y sujeto, otra referencias a distancia. Al combinar todas, el modelo capta varias relaciones a la vez sobre la misma frase.

El paper Attention Is All You Need de Vaswani et al. demostró que se puede construir un modelo entero basado solo en atención, prescindiendo por completo de la recurrencia y de las convoluciones que usaban las arquitecturas anteriores.

Eso trajo dos ventajas decisivas. La primera es la paralelización: como ya no hay que procesar palabra por palabra en orden, todos los tokens se pueden calcular a la vez, lo que reduce mucho el tiempo de entrenamiento. La segunda es que las dependencias a larga distancia se capturan de forma directa, porque cualquier token puede mirar a cualquier otro sin importar cuánto los separe.

El precio de esa potencia es su coste: como cada token atiende a todos los demás, el número de comparaciones crece con el cuadrado de la longitud de la secuencia. Esa relación cuadrática es la raíz técnica de los límites de la ventana de contexto.

  • La atención es lo que permite que un modelo resuelva a qué se refiere un pronombre o de qué acepción de una palabra se está hablando.
  • Cuanto más larga es la secuencia, más caro es el cálculo de atención, y por eso las ventanas de contexto muy grandes son costosas.
  • Las distintas cabezas de atención se reparten el trabajo de captar relaciones gramaticales y de significado, sin que nadie les diga cuál debe seguir cada una.

Pensar que “atención” significa que el modelo presta atención como lo haría una persona, con intención o consciencia. No es eso. Es una media ponderada calculada con productos escalares: números que miden alineamiento entre vectores y que deciden cuánto pesa cada token en la representación de los demás. El nombre es una metáfora del cálculo, no una descripción de un acto mental.