Saltar al contenido

2026-09-01

Fundamentos de Deep Learning: Transformers y el mecanismo de atención

Las CNN son excelentes para datos con estructura de grilla, pero tienen un límite: cada capa solo "ve" una vecindad local (el tamaño del kernel), y hace falta apilar muchas capas para que información lejana en la imagen o en una secuencia termine relacionándose. Los Transformers resuelven esto con un mecanismo distinto: en vez de mirar solo lo cercano, cada elemento de la entrada puede atender directamente a cualquier otro, sin importar la distancia.

El problema que resuelve la atención

En una secuencia (texto) o en una imagen dividida en parches, no todos los elementos son igual de relevantes entre sí. La palabra "banco" depende de si antes apareció "río" o "dinero"; un parche de imagen depende de qué otros parches forman parte del mismo objeto. El mecanismo de atención aprende, para cada elemento, cuánto debe pesar la información de todos los demás al construir su representación — dinámicamente, según el contenido, no según una vecindad fija como en una convolución.

Self-attention, paso a paso

Cada elemento de entrada se proyecta en tres vectores aprendidos: Query (qué estoy buscando), Key (qué ofrezco) y Value (qué contenido llevo). La atención de un elemento hacia otro es el producto punto entre su Query y la Key del otro — entre más similares, más atención. Esos puntajes se normalizan con softmax para obtener pesos que suman 1, y la salida de cada elemento es el promedio ponderado de todos los Values según esos pesos.

Fila resaltada: a qué atiende el token "durmió". El peso más alto (color más intenso) recae sobre "gato" y "negro" — el sujeto de la acción — aunque no sean las palabras más cercanas. Esa es la diferencia clave frente a una convolución: la relación se aprende por contenido, no por posición.

En la práctica esto se calcula para todos los elementos a la vez con matrices:

Attention(Q, K, V) = softmax(Q · Kᵀ / √d_k) · V

La división por √d_k (la raíz de la dimensión de las Keys) evita que los productos punto crezcan demasiado y saturen el softmax.

Multi-head attention

En vez de calcular una sola atención, el Transformer la calcula varias veces en paralelo ("cabezas"), cada una con sus propias proyecciones Q/K/V aprendidas. Una cabeza puede especializarse en relaciones sintácticas, otra en correferencia, otra en proximidad — y sus salidas se concatenan y se proyectan de vuelta a la dimensión original. Esto le da al modelo varias "perspectivas" simultáneas sobre las mismas relaciones.

Por qué importa que no haya recurrencia ni convolución

Una RNN procesa la secuencia paso a paso — no se puede paralelizar en el tiempo, y la información de un token lejano se diluye al pasar por muchos pasos intermedios. Una CNN necesita apilar capas para agrandar su campo receptivo. Un Transformer conecta cualquier par de posiciones en un solo paso y procesa toda la secuencia en paralelo, lo que lo hace mucho más eficiente de entrenar en GPU/TPU a gran escala. El costo: como no hay noción de orden implícita (a diferencia de una RNN), hay que inyectarla a mano con codificación posicional (positional encoding), sumada a cada embedding de entrada.

Arquitectura completa

Un bloque Transformer encadena, con conexiones residuales y normalización:

  1. Multi-head self-attention — cada token mezcla información con el resto de la secuencia.
  2. Feed-forward por posición — una red densa (típicamente 2 capas con una no linealidad) aplicada independientemente a cada token, que aporta capacidad de transformación no lineal.

Apilando varios de estos bloques se obtiene el encoder (usado en BERT, para representación) o, con atención enmascarada para no ver el futuro, el decoder (usado en GPT, para generación). La arquitectura original (Vaswani et al., Attention Is All You Need, 2017) combina ambos para traducción; la mayoría de los modelos actuales usan solo uno de los dos lados.

Dónde aparece esto en visión

Los Vision Transformers (ViT) dividen la imagen en parches (por ejemplo 16×16 píxeles), los tratan como si fueran tokens de una secuencia, y aplican el mismo mecanismo de atención entre parches. Esto es justo lo que usa el bloque TCM (mezcla Transformer-CNN) de uno de mis proyectos de compresión de imágenes — lic-lab —, donde una rama convolucional y una rama con ventanas de atención (estilo Swin) procesan la imagen en paralelo dentro del mismo bloque.


Próxima nota de esta serie: cómo se combinan CNN y atención en la práctica, y qué ventaja concreta aporta cada una cuando se comprimen imágenes.