Parte III — Redes Neurais e Deep Learning · Cap. 11

Sequências e Linguagem

De RNN a Transformer: por que a atenção venceu.

◐ essencial🕒 estado da arte 2026-08revisão 2026-08-10📖 ~19 min de leitura🎯 3 exercícios⬇ md

Objetivos de aprendizagem

  • O1. Explicar por que dados sequenciais quebram a premissa de independência.
  • O2. Descrever a limitação de memória das redes recorrentes.
  • O3. Explicar o mecanismo de atenção como consulta ponderada por relevância.
  • O4. Justificar por que a arquitetura Transformer substituiu a recorrência na prática.

O problema: a ordem é informação — e a memória se dissolve

"O cachorro mordeu o homem" e "o homem mordeu o cachorro" têm exatamente os mesmos atributos. Contadas as palavras, as duas frases são idênticas. Significam coisas opostas.

Isso quebra a premissa que sustentava todos os modelos até aqui: a de que cada exemplo é uma linha independente numa tabela, e que a ordem das colunas não carrega informação. Em texto, áudio e série temporal, a ordem é o dado. O exemplo não é a palavra: é a palavra no lugar onde ela está, condicionada a tudo que veio antes.

O segundo problema aparece assim que você tenta resolver o primeiro. Suponha uma rede que lê a frase palavra por palavra e vai atualizando um resumo interno do que já leu. Agora dê a ela esta frase: "A conta que a auditoria contratada pelo conselho no ano passado revisou está errada." Para concordar "conta" com "errada", a rede precisa lembrar de uma palavra vista onze posições atrás. Ela não lembra. E o motivo não é falta de capacidade — é o diagnóstico do capítulo 26, o gradiente que morre ao atravessar muitas camadas, aparecendo aqui numa dimensão diferente.

É o mesmo problema, na dimensão tempo. Cada passo da sequência é uma camada a mais no caminho de volta do erro.

De onde isto veio

O aperto. Uma rede recorrente precisa lembrar de algo visto muitos passos atrás, e o gradiente morre no caminho até lá. O erro é multiplicado por um fator a cada passo que retrocede; multiplicações repetidas produzem uma exponencial, e exponencial só faz duas coisas — explode ou some. Some, na maioria das vezes.

O que se fazia antes. Janela fixa: olhar as n palavras anteriores e mais nada (os n-gramas), ou uma rede recorrente que, na prática, só enxergava o passado recente. Nos dois casos a memória tinha um teto, e o teto era baixo.

A virada. Se o erro morre por ser multiplicado a cada passo, então construa um caminho por onde ele não seja multiplicado. É isso que a Long Short-Term Memory (LSTM) faz, apresentada em 1997: um canal de refluxo constante do erro, guarnecido por comportas que decidem o que escrever, o que apagar e o que ler. As comportas são a parte visível; o canal é a parte que resolve.

A ideia reaproveitável. A solução veio do formato da falha, não da tarefa. Ninguém desenhou a LSTM pensando em linguagem — desenhou-se contra uma exponencial. O nome da tarefa é acidente; o formato do defeito é o que orienta a arquitetura. E há prova documental do que se estava perseguindo: o capítulo 4 da tese de Sepp Hochreiter, de 1991, já se chamava "Konstanter Fehlerrückfluß" — refluxo constante do erro. Seis anos entre nomear o problema e conseguir comportá-lo. Se você guardar uma frase deste capítulo, guarde esta: um defeito bem nomeado é meio método.

O nome. Long Short-Term Memory é memória de curto prazo que dura muito — não uma terceira espécie de memória. O oximoro é o argumento inteiro: a rede continua tendo apenas memória de trabalho; o que mudou é quanto tempo ela sobrevive.

O segundo aperto: traduzir. Em 2014, Sutskever, Vinyals e Le publicam o sequence to sequence (seq2seq): uma rede codificadora lê a frase de origem inteira e a comprime num vetor; uma rede decodificadora lê esse vetor e produz a frase de destino. Funciona — e os próprios autores apontam, como uma das contribuições técnicas principais do trabalho, um truque que hoje soa constrangedor: inverter a ordem das palavras da frase de origem. Invertida, a primeira palavra da entrada fica perto da primeira palavra da saída, e o gradiente tem menos passos a atravessar.

É restrição virando forma, como em tantos outros capítulos — só que desta vez a forma é gambiarra confessa. E gambiarra confessa é um sintoma valioso: quando o truque que mais ajuda é encurtar a distância, a distância é o problema.

A virada, segunda parte. Ainda em 2014, Bahdanau, Cho e Bengio nomeiam esse problema com todas as letras — e este é o detalhe mais bonito da história: o resumo do artigo não contém a palavra "attention". O diagnóstico declarado é que "the use of a fixed-length vector is a bottleneck", e a proposta é deixar o modelo "(soft-)search for parts of a source sentence that are relevant". No artigo, o modelo se chama RNNsearch e o vocabulário é o de alinhamento, não o de atenção. O nome que pegou teria vindo de Bengio, em revisão — atribuição corrente, não confirmada.

A terceira virada, e o que ela de fato removeu. Em 2017, Vaswani e colegas propõem uma arquitetura "based solely on attention mechanisms, dispensing with recurrence and convolutions entirely". O motivo declarado é operacional, não representacional: ser "more parallelizable and requiring significantly less time to train" — com 41,8 BLEU obtidos em "3.5 days on eight GPUs".

📖 A leitura que fecha. O que "Attention Is All You Need" eliminou foi a recorrência — não a convolução, e muito menos a atenção. A atenção já existia desde 2014, mas como acessório de uma rede recorrente; 2017 remove o hospedeiro e mantém o acessório. E o ganho anunciado não é de expressividade: é de paralelismo. A recorrência obriga a processar um passo por vez, porque o passo t depende do resultado do passo t−1; a GPU quer todos os passos ao mesmo tempo. É restrição material gerando forma nova outra vez — a mesma mecânica da AlexNet no capítulo 10 e do Playfair no capítulo 22.

Procedência das afirmações desta seção:

Selo Afirmação
O gradiente que some ao longo dos passos é o mesmo diagnóstico do capítulo 26, aplicado à dimensão tempo
O capítulo 4 da tese de Hochreiter (1991) intitula-se "Konstanter Fehlerrückfluß" — o problema estava nomeado seis anos antes da LSTM
✓ᵃ Bahdanau, Cho & Bengio, Neural Machine Translation by Jointly Learning to Align and Translate, arXiv:1409.0473, 01/09/2014 — o resumo não contém a palavra "attention"; fala em fixed-length vector como gargalo, em (soft-)search e no modelo RNNsearch
✓ᵃ Vaswani et al., Attention Is All You Need, arXiv:1706.03762, 12/06/2017 — "dispensing with recurrence and convolutions entirely", "more parallelizable", 41,8 BLEU em "3.5 days on eight GPUs"
A LSTM (1997) como resposta direta ao refluxo constante do erro; a janela fixa (n-gramas) e a RNN de memória curta como o que se fazia antes; o oximoro do nome
Seq2seq (Sutskever, Vinyals & Le, NIPS 2014): a inversão da ordem das palavras da origem apontada pelos autores como contribuição técnica principal
A atribuição do nome "attention" a Bengio — relato de terceiros, não confirmado em primária
📖 A solução veio do formato da falha, não da tarefa — e o corolário: um defeito bem nomeado é meio método
📖 A leitura de que 2017 removeu a recorrência, não a atenção, e de que o ganho é de paralelismo, não de representação

Legenda adicional: ✓ᵃ = o resumo do artigo foi lido literalmente e sustenta a citação; o corpo do artigo não foi lido nesta edição. É mais forte que ✓ᵐ (só metadados) e mais fraco que ✓ (fonte lida).

Fundamentos: a recorrência, o estado oculto e o gradiente que some no tempo

Uma rede neural recorrente (Recurrent Neural Network, RNN) tem uma ideia só: processe um elemento por vez e carregue um estado oculto — um vetor que funciona como resumo do que já foi lido. A cada passo, a rede recebe o elemento atual e o estado anterior, e produz um novo estado. Os pesos são os mesmos em todos os passos: é uma função aplicada repetidamente, não uma rede por posição.

O estado oculto é a memória, e é aí que está tanto a virtude quanto o defeito. A virtude: a rede aceita sequências de qualquer comprimento sem mudar de tamanho. O defeito: tudo o que ela sabe do passado tem de caber naquele vetor, e cada passo novo sobrescreve um pouco do que havia.

Para treinar, o erro precisa voltar por todos os passos até a informação que causou o problema. Cada passo aplica um fator; retroceder k passos multiplica k fatores. Fatores menores que 1 encolhem exponencialmente — em vinte passos, o sinal já é ruído numérico. Na prática, isso significa que a rede aprende as dependências curtas e nunca chega a aprender as longas: não é que ela erre a concordância distante, é que ela nunca recebe sinal suficiente para tentar.

Comportas: o que a LSTM e a GRU acrescentam

A LSTM parte de um estado que atravessa os passos sendo somado, não multiplicado — é o caminho por onde o erro reflui sem encolher. Em volta dele há três decisões, todas aprendidas e todas contínuas (não são chaves liga-desliga, são torneiras):

  • Esquecer — quanto do estado antigo mantenho?
  • Escrever — quanto do que acabei de ver entra no estado?
  • Ler — quanto do estado eu exponho como saída deste passo?

A GRU (Gated Recurrent Unit) é a mesma ideia com menos peças: funde esquecer e escrever numa comporta só e dispensa a separação entre estado interno e saída. Menos parâmetros, treino mais rápido, comportamento parecido na maioria das tarefas. A escolha entre as duas quase nunca é o que decide um projeto — o que decide é se você precisa de recorrência.

Exercício11-e1escolha uma

Uma RNN simples é treinada para classificar avaliações de produto e vai bem em textos curtos, mas erra sistematicamente quando a negação aparece no começo de um parágrafo longo ("Não recomendo… [80 palavras] …o acabamento é bonito"). Qual é o diagnóstico correto?

Do gargalo à atenção: seq2seq e o vetor de tamanho fixo

O seq2seq colocou o problema num formato limpo: codificador lê a entrada e produz um vetor; decodificador lê o vetor e produz a saída. Isso permitiu, pela primeira vez, mapear uma sequência de tamanho n numa sequência de tamanho m sem alinhamento manual.

E expôs um gargalo com nome próprio. Frase de 5 palavras e frase de 50 palavras produzem o mesmo vetor de tamanho fixo. Traduzir passa a ser um exercício de compressão com taxa infinita: tudo o que a origem diz precisa caber num vetor que não cresce. Quanto mais longa a frase, pior a tradução — e o remédio dos autores (inverter a origem) trata a distância, não a compressão.

A atenção troca a compressão por acesso. Em vez de exigir um resumo único, o codificador guarda um vetor por posição da entrada e, a cada palavra que vai gerar, o decodificador pergunta: de quais posições da origem eu preciso agora? A resposta é um conjunto de pesos que somam 1 — quase toda a massa em duas ou três posições, quase nada no resto — e a entrada usada naquele passo é a média ponderada por esses pesos.

Três palavras descrevem o mecanismo, e valem para tudo o que vem depois: a consulta (o que estou procurando agora), as chaves (o que cada posição oferece) e os valores (o que cada posição entrega quando é escolhida). Compare consulta com todas as chaves, transforme as semelhanças em pesos, some os valores ponderados. É uma busca suave: nada é escolhido, tudo é misturado em proporção à relevância — e é justamente por ser suave que ela é derivável, e portanto treinável junto com o resto.

Repare no que foi ganho de graça: o caminho entre a posição 1 da entrada e a posição 50 da saída deixou de ter 50 passos. Tem um.

O Transformer: remover o hospedeiro

Se a atenção já dá acesso direto a qualquer posição, para que serve a recorrência? A resposta de 2017 foi: para nada — e ela custa caro.

A autoatenção (self-attention) aplica o mesmo mecanismo dentro de uma única sequência: cada posição consulta todas as outras posições da mesma frase, inclusive a si mesma. É assim que "errada" encontra "conta" onze palavras atrás sem atravessar onze passos.

Três peças completam a arquitetura:

  • Cabeças múltiplas (multi-head). Vários mecanismos de atenção em paralelo, cada um com sua própria projeção de consultas, chaves e valores. Uma média ponderada só produz uma mistura; várias cabeças permitem que uma posição atenda simultaneamente a relações diferentes — concordância numa cabeça, referência do pronome noutra — sem que uma apague a outra.
  • Codificação posicional. Aqui está a conta a pagar: sem recorrência, nada no modelo sabe a ordem. A autoatenção enxerga um conjunto, não uma sequência — troque as palavras de lugar e ela devolve os mesmos resultados, permutados. Como a ordem é o problema do capítulo, a posição precisa ser reinjetada explicitamente, somada à representação de cada elemento. A recorrência codificava a ordem de graça, no próprio formato; o Transformer paga por ela.
  • Paralelismo. A recorrência é sequencial por definição: o passo t espera o t−1. A autoatenção calcula todas as comparações de uma vez, como uma multiplicação de matrizes — exatamente a operação em que a GPU é boa. Não é que o Transformer aprenda o que a LSTM não aprendia: é que ele cabe no hardware, e por isso pôde ser treinado em dados e tamanhos que a recorrência nunca alcançaria. É a mesma lição do capítulo 10: a restrição material escolhe a arquitetura vencedora.

E o preço. Se cada posição compara-se com todas, o número de comparações cresce com o quadrado do comprimento da sequência. Dobrar o texto quadruplica o custo da atenção. Esse é o limite estrutural que organiza boa parte da pesquisa desde então — e a razão de "janela de contexto" ser uma métrica comercial no capítulo 12, e não um detalhe técnico.

Exercício11-e2responda com um número

Numa camada de autoatenção, cada posição da sequência é comparada com todas as posições. Se o comprimento da sequência passa de 512 para 4096 elementos, por qual fator o número de comparações da atenção é multiplicado?

Responda com um número inteiro.

Tokenização: o texto vira número antes de qualquer coisa

Nada disso opera sobre letras. Antes de qualquer arquitetura, o texto é cortado em tokens — pedaços do tamanho de uma palavra curta, um prefixo, um sufixo — e cada token vira um índice, que vira um vetor (o embedding do capítulo 03, onde a hipótese distribucional de Harris, de 1954, já dizia que o significado de uma palavra está na companhia que ela mantém).

A escolha do corte é uma decisão de representação com consequências que ninguém revisita depois. Cortar em palavras inteiras produz vocabulário gigante e nenhuma resposta para a palavra nunca vista. Cortar em caracteres resolve isso e alonga a sequência — e comprimento, na seção anterior, tem preço quadrático. Os esquemas de subpalavra ficam no meio: palavras comuns viram um token só, palavras raras se decompõem em pedaços conhecidos.

Duas consequências práticas que voltam para morder: idiomas mal representados no vocabulário gastam mais tokens para dizer a mesma coisa — e, como se cobra por token e o custo cresce com o comprimento, a mesma frase sai mais cara em português que em inglês. E tarefas que dependem de olhar dentro da palavra (contar letras, rimar, soletrar) são difíceis não por falta de inteligência do modelo, mas porque a letra não é uma unidade que ele enxerga.

Exercício11-e3responda com suas palavras

Um colega diz: "Atenção é só uma forma de dar mais memória ao modelo — no fundo é uma LSTM melhorzinha." Explique por que essa leitura está errada, usando (a) o que a atenção substitui, (b) o que ela custa e (c) o que o artigo de 2017 de fato removeu.

Síntese — o que levar

  • A ordem é informação. O exemplo não é o elemento: é o elemento na posição em que está. Isso quebra a premissa de independência que sustentava os capítulos anteriores.
  • A RNN carrega um estado oculto — memória de tamanho fixo que é sobrescrita a cada passo.
  • O gradiente que some no tempo é o mesmo diagnóstico do capítulo 26: cada passo é uma camada a mais no caminho de volta do erro.
  • A ideia exportável: a solução veio do formato da falha, não da tarefa. A LSTM foi desenhada contra uma exponencial, não contra a linguagem. Um defeito bem nomeado é meio método — e o nome ("refluxo constante do erro") veio seis anos antes da arquitetura.
  • LSTM e GRU somam um caminho por onde o erro reflui sem encolher, com comportas contínuas para esquecer, escrever e ler. Aliviam o teto de memória; não o eliminam.
  • Seq2seq transformou tradução em codificar → decodificar, e revelou o gargalo do vetor de tamanho fixo. O truque de inverter a frase de origem é gambiarra confessa — e sintoma de que o problema era distância.
  • Atenção = acesso, não compressão. Consulta, chaves e valores; pesos que somam 1; média ponderada. O caminho entre duas posições distantes passa a ter um passo.
  • O Transformer removeu a recorrência, não a atenção. A atenção existia desde 2014 como acessório de uma RNN; 2017 tirou o hospedeiro. O motivo declarado foi paralelismo — a mesma restrição material que decidiu a visão computacional no capítulo 10.
  • Sem recorrência, ninguém sabe a ordem: por isso a codificação posicional existe. A recorrência codificava ordem de graça; aqui se paga por ela.
  • O preço da atenção é quadrático no comprimento. Dobrar o texto quadruplica o custo — e é daí que vem o preço da janela de contexto no capítulo 12.
  • Tokenização é uma decisão de representação, não um detalhe de pré-processamento: define o vocabulário, o comprimento da sequência, o custo por frase e o que o modelo simplesmente não consegue enxergar.

Verificação

  1. Explique, com um exemplo do seu próprio domínio (não de texto), por que tratar os registros como independentes destrói informação — e o que exatamente se perde ao embaralhar a ordem.
  2. Descreva a limitação de memória de uma RNN e diga por que ela não se resolve aumentando o tamanho do estado oculto. Em seguida, explique o que a atenção muda nesse quadro: o que ela substitui e o que ela cobra.
  3. Um colega propõe voltar a usar uma LSTM num projeto novo "porque consome menos". Que argumentos a favor e contra você apresenta, e qual característica do problema decidiria a escolha?