Auto-atención

Definición breve

La auto-atención es un mecanismo mediante el cual cada elemento de una secuencia analiza y pondera la importancia de los demás elementos dentro de la misma secuencia.

Explicación del concepto

La auto-atención es una extensión del mecanismo de atención en redes neuronales, y constituye el núcleo de los modelos transformer.

A diferencia de otros enfoques, donde la atención se aplica entre diferentes secuencias, la auto-atención permite que un modelo:

  • relacione palabras dentro de una misma oración
  • capture dependencias a largo plazo
  • comprender el contexto completo

Esto es especialmente útil en tareas de lenguaje natural.

Cómo funciona

El mecanismo de auto-atención utiliza tres componentes principales:

  • Query (Q)
  • Key (K)
  • Value (V)

El proceso general es:

  1. Cada elemento de la secuencia se transforma en vectores Q, K y V.
  2. Se calcula la similitud entre Q y K.
  3. Se generan pesos de atención.
  4. Se combinan los valores (V) según estos pesos.

Esto permite que cada elemento “preste atención” a otros elementos relevantes.

Fórmula clave

Attention(Q,K,V)=softmax(QKTdk)V\mathrm{Attention}(Q,K,V)=\mathrm{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)VAttention(Q,K,V)=softmax(dk​​QKT​)V

Por qué es importante

La auto-atención ha sido fundamental en los avances recientes en inteligencia artificial.

Beneficios:

  • captura relaciones complejas en datos
  • permite paralelización eficiente
  • mejora el rendimiento en secuencias largas
  • base de modelos como GPT, BERT y otros LLMs

Ejemplo conceptual

En la frase:
“El gato que estaba en el tejado saltó”

La auto-atención permite que el modelo relacione “gato” con “saltó”, incluso si están separados por varias palabras.

Ejemplo en PyTorch

PyTorch proporciona implementaciones listas para usar.

import torch.nn as nn
self_attention = nn.MultiheadAttention(embed_dim=128, num_heads=8)

Este módulo aplica auto-atención en secuencias.

Conceptos relacionados

Resumen

La auto-atención permite a los modelos analizar relaciones internas dentro de una secuencia, asignando importancia a cada elemento en función del contexto. Es un componente esencial en los modelos modernos de inteligencia artificial y ha permitido grandes avances en el procesamiento de lenguaje y otras tareas complejas.