Skip to content

Deep Learning Book

  • Início
  • Capítulos
  • Cursos Online
  • Contato

Deep Learning Book

Em Português, Online e Gratuito

Deep Learning Book

Capítulo 88 – Como Funcionam os Transformadores em Processamento de Linguagem Natural – Parte 3

by

Vamos seguir nossa discussão sobre os Transformadores com a parte mais importante, a Auto-Atenção. Este capítulo considera que você leu os capítulos anteriores.

Auto-Atenção: O Encoder do Transformer

O que é Auto-Atenção?

“A Auto-Atenção, às vezes chamada de Intra-Atenção, é um mecanismo de atenção que relaciona diferentes posições de uma única sequência para computar uma representação da sequência.” ~ Ashish Vaswani et al. do Google Brain.

A Auto-Atenção nos permite encontrar correlações entre diferentes palavras de entrada, indicando a estrutura sintática e contextual da frase (e por isso os Transformadores, que são baseados na Auto-Atenção, são muito utilizados em Processamento de Linguagem Natural).

Vamos tomar como exemplo a sequência de entrada “Hello, I love you” (Olá, Eu te amo). Uma camada de Auto-Atenção treinada associará a palavra “love” às palavras ‘I” e “you” a um peso maior do que a palavra “Hello”. Pela linguística, sabemos que essas palavras compartilham uma relação sujeito-verbo-objeto e essa é uma maneira intuitiva de entender o que a Auto-Atenção irá capturar.

self-attention-probability-score-matrix

Na prática, o Transformer usa 3 representações diferentes: as consultas, chaves e valores da matriz de embedding. Isso pode ser feito facilmente multiplicando nossa entrada representada pela expressão abaixo:

formula

com 3 matrizes de peso diferentes, Wq, Wk e Wv. Em essência, é apenas uma multiplicação de matrizes de embeddings. O diagrama abaixo mostra como isso funciona:

key-query-value

Tendo as matrizes Query (Q), Key (K) e Value (V), agora podemos aplicar a camada de Auto-Atenção como:

form2

No artigo original dos Transformadores, a atenção do produto escalonado foi escolhida como uma função de pontuação para representar a correlação entre duas palavras (o peso da atenção). Observe que também podemos utilizar outra função de similaridade. A raiz quadrada de d_k na fórmula acima age simplesmente como um fator de escala para garantir que os vetores não explodam.

Este termo simplesmente encontra a similaridade da consulta de pesquisa com uma entrada em um banco de dados. Finalmente, aplicamos uma função softmax para obter os pesos finais de atenção como uma distribuição de probabilidade (da mesma forma que fazemos em diversos modelos de Deep Learning para classificação).

Lembre-se de que distinguimos as Chaves (K) dos Valores (V) como representações distintas. Assim, a representação final é a matriz de Auto-Atenção (a expressão com softmax na fórmula acima) multiplicada pela matriz de valores V.

Podemos pensar na matriz de Auto-Atenção como para onde olhar e na matriz de valor como o que eu realmente quero obter.

E aqui há um detalhes sobre a similaridade do vetor:

Primeiro, temos matrizes em vez de vetores e, como resultado, multiplicações de matrizes. Em segundo lugar, não diminuímos pela magnitude do vetor, mas pelo tamanho da matriz (d_k), que é o número de palavras em uma frase! E o tamanho da frase varia. 🙂

O que faríamos a seguir?

Normalização e conexões de salto curto, semelhantes ao processamento de um tensor após convolução (CNN) ou recorrência (RNN). Mas deixamos isso para o próximo capítulo. Até lá.

Referências:

Attention Is All You Need

Deep Learning Para Aplicações de IA com PyTorch e Lightning

Processamento de Linguagem Natural

The Illustrated Transformer

Understanding Attention In Deep Learning

How Transformers work in deep learning and NLP: an intuitive introduction

Post navigation

Previous Post:

Capítulo 87 – Como Funcionam os Transformadores em Processamento de Linguagem Natural – Parte 2

Next Post:

Capítulo 89 – Como Funcionam os Transformadores em Processamento de Linguagem Natural – Parte 4

Capítulos Recentes

  • Capítulo 35 – A Matemática do Problema de Dissipação do Gradiente em Deep Learning
  • Capítulo 34 – O Problema da Dissipação do Gradiente
  • Capítulo 33 – Por que as Redes Neurais Profundas São Difíceis de Treinar?
  • Capítulo 32 – Como Uma Rede Neural Artificial Encontra a Aproximação de Uma Função
  • Capítulo 31 – As Redes Neurais Artificiais Podem Computar Qualquer Função?
  • Capítulo 30 – Variações do Stochastic Gradient Descent – Hessian Optimization e Momentum
  • Capítulo 29 – Definindo o Tamanho do Mini-Batch
  • Capítulo 28 – Usando Early Stopping Para Definir o Número de Épocas de Treinamento
  • Capítulo 27 – A Taxa de Aprendizado de Uma Rede Neural
  • Capítulo 26 – Como Escolher os Hiperparâmetros de Uma Rede Neural

Buscar

Podcast DSA

© 2025 Data Science Academy - www.datascienceacademy.com.br