Skip to main content

Attention mechanism, Multi Head Attention | Text Generation | I.A

  • Attention mechanism, Multi Head Attention | Text Generation | I.A

O que é Attention (atenção), em ideia simples

Atenção é o mecanismo que permite ao modelo atribuir diferentes níveis de importância às palavras de uma sequência ao processar um determinado token.

Em vez de tratar todas as palavras igualmente, o modelo foca mais nas partes do texto que são relevantes para o contexto atual.

Exemplo:

“O gato que estava com fome comeu o peixe”

Para compreender a palavra “comeu”, o modelo precisa considerar principalmente “gato” (quem executa a ação) e “peixe” (o objeto da ação), enquanto palavras como “que” ou “estava” têm menor relevância nesse momento.


Scaled Dot-Product Attention (atenção básica)

Este é o núcleo matemático do mecanismo de atenção.

O que ela faz:

  1. Compara cada palavra com todas as outras
  2. Mede o grau de relevância entre elas
  3. Converte essas medidas em pesos normalizados
  4. Usa esses pesos para construir uma representação contextualizada

Em termos simples, ela responde à pergunta:

“Para esta palavra, quais outras palavras da frase são mais importantes agora?”

O termo scaled (escalado) refere-se a um ajuste numérico aplicado para:

  • evitar valores excessivamente grandes
  • tornar o treinamento mais estável

Essa forma de atenção considera um único ponto de vista por vez.


Multi-Head Attention (atenção com múltiplas visões)

O Multi-Head Attention estende a atenção básica ao permitir que o modelo observe a sequência sob diferentes perspectivas simultaneamente.

Em vez de realizar uma única atenção, o modelo executa várias atenções em paralelo, chamadas de heads (cabeças).

Cada head funciona como um especialista que aprende a focar em um tipo diferente de relação no texto.


Analogia intuitiva

Imagine analisar uma frase com várias pessoas ao mesmo tempo:

  • Uma observa quem executa as ações
  • Outra analisa quando ou em que contexto elas ocorrem
  • Outra foca na estrutura gramatical
  • Outra observa o significado geral

O Multi-Head Attention funciona de forma semelhante: cada head aprende a capturar um aspecto distinto da linguagem.


O que cada head faz

Cada head:

  • executa sua própria Scaled Dot-Product Attention
  • aprende padrões específicos de relacionamento entre palavras
  • opera em paralelo às demais

Por exemplo:

  • Head 1: relações sujeito–verbo
  • Head 2: contexto semântico
  • Head 3: dependências de longo alcance
  • Head 4: estrutura sintática da frase

Esses focos não são definidos manualmente; eles são aprendidos durante o treinamento do modelo.


Combinação final das heads

Após todas as heads processarem a sequência:

  1. As saídas individuais são concatenadas
  2. O modelo produz uma única representação integrada
  3. Essa representação é enviada para a próxima camada do Transformer

Por isso, a saída final é descrita como uma representação coesa, que combina múltiplos pontos de vista sobre o mesmo texto.


Por que isso é tão poderoso?

O Multi-Head Attention permite que o modelo:

  • compreenda frases longas com mais eficiência
  • capture relações entre palavras distantes
  • processe informações de forma paralela
  • aprenda padrões complexos de linguagem

Essas características explicam por que os Transformers superaram arquiteturas anteriores como RNNs e LSTMs.


Resumo direto

  • Attention: destaca o que é relevante em um contexto
  • Scaled Dot-Product Attention: calcula a relevância entre palavras
  • Multi-Head Attention: executa várias atenções em paralelo
  • Cada head aprende um padrão diferente
  • A combinação final gera uma representação mais rica

Attention na prática — exemplo simples

Frase de exemplo:

"O gato come peixe"

Após a tokenização:

["O", "gato", "come", "peixe"]

Cada palavra é convertida em um vetor numérico (embedding). Para simplificar, suponha vetores de duas dimensões:

O     → [1, 0]
gato → [0, 2]
come → [1, 1]
peixe → [0, 3]

Scaled Dot-Product Attention em ação

Para a palavra “come”, o modelo avalia a relevância das demais:

come × O     → baixa
come × gato → média
come × come → alta
come × peixe → alta

Valores ilustrativos:

[0.1, 0.6, 1.0, 0.9]

Após normalização:

[0.03, 0.20, 0.37, 0.40]

Interpretação:

  • “peixe” e “come” têm maior peso
  • “gato” é relevante
  • “O” contribui pouco

Esses pesos são usados para gerar a representação final da palavra “come”.


Multi-Head Attention no exemplo

Em vez de repetir esse processo uma única vez, o modelo o executa várias vezes em paralelo.

Por exemplo:

  • Head 1 foca em quem realiza a ação → “gato”
  • Head 2 foca no objeto da ação → “peixe”
  • Head 3 foca na estrutura e no contexto geral

Cada head produz uma representação diferente, que é posteriormente combinada.


Conexão com código

Quando você utiliza:

nn.MultiheadAttention(...)

O que acontece internamente é:

  • múltiplas Scaled Dot-Product Attentions em paralelo
  • cada uma com pesos distintos
  • seguida de uma etapa de combinação final

Resumo final

  • Attention define onde focar
  • Scaled Dot-Product mede relevância
  • Multi-Head permite múltiplos focos simultâneos
  • Cada head captura um tipo diferente de informação
  • O resultado é uma compreensão mais profunda do texto

--