Sequência para sequência (seq2seq) é uma arquitetura de rede neural, introduzida em 2014, que mapeia uma sequência de entrada para uma sequência de saída de comprimento potencialmente diferente, usando um par de redes acopladas: um codificador que comprime a entrada em uma representação de comprimento fixo, e um decodificador que gera a sequência de saída a partir dessa representação, um elemento por vez. O seq2seq estabeleceu o padrão codificador-decodificador que se tornou fundamental para a tradução automática neural e motivou diretamente o desenvolvimento do mecanismo de atenção e, posteriormente, da arquitetura transformador.
Arquitetura
Na formulação original, tanto o codificador quanto o decodificador são implementados como redes neurais recorrentes, mais comumente usando unidades LSTM para mitigar os problemas de gradiente desaparecendo de designs recorrentes mais simples. O codificador processa uma sequência de entrada, como uma frase em um idioma de origem, um token por vez, atualizando um estado oculto interno, e passa seu estado oculto final ao decodificador como um resumo de toda a entrada. O decodificador então gera tokens de saída um por vez, de forma autorregressiva, usando sua própria saída anterior como entrada para prever o próximo token, continuando até produzir um marcador designado de fim de sequência.
Origens
A arquitetura foi introduzida no artigo de 2014 "Sequence to Sequence Learning with Neural Networks" por Ilya Sutskever, juntamente com Oriol Vinyals e Quoc Le, na Google, demonstrando resultados fortes em tradução automática inglês-francês usando um codificador-decodificador LSTM de múltiplas camadas. Uma formulação intimamente relacionada foi publicada aproximadamente na mesma época por Kyunghyun Cho e colegas, que também introduziram a unidade recorrente gated como uma alternativa simplificada à LSTM dentro do mesmo quadro codificador-decodificador.
Integração do mecanismo de atenção
Uma limitação chave do design seq2seq original era sua dependência de um único vetor de comprimento fixo para resumir toda a sequência de entrada, o que degradava o desempenho em frases mais longas, pois a informação era comprimida e perdida. Esse gargalo motivou Dzmitry Bahdanau e colegas a introduzir o mecanismo de atenção em 2015, permitindo que o decodificador olhasse de volta para todos os estados ocultos do codificador e ponderasse dinamicamente quais partes da entrada eram mais relevantes ao gerar cada token de saída, melhorando substancialmente a qualidade da tradução em sequências longas e estabelecendo a atenção como um componente padrão dos modelos de sequência.
Legado
O seq2seq com atenção tornou-se a arquitetura dominante para sistemas de tradução automática neural, incluindo a mudança do Google Translate em 2016 para um sistema totalmente neural, antes que os componentes recorrentes fossem finalmente removidos por completo na arquitetura transformador de 2017, cujo título "Attention Is All You Need" referencia diretamente o mecanismo que a pesquisa seq2seq mostrou ser tão eficaz. O enquadramento geral codificador-decodificador que o seq2seq estabeleceu, mapeando uma sequência para outra, permanece conceitualmente central para o processamento de linguagem natural moderno, sustentando tarefas desde sumarização até geração de código, mesmo que os blocos de construção recorrentes da arquitetura original tenham sido quase inteiramente superados por designs de aprendizado profundo baseados em atenção.