Como funciona o seq2seq - Amazon SageMaker

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Como funciona o seq2seq

Normalmente, uma rede neural para sequence-to-sequence modelagem consiste em algumas camadas, incluindo:

  • Uma camada de incorporação. Nessa camada, a matriz de entrada, que é codificada por tokens de entrada em uma forma esparsa (por exemplo, codificação one-hot), é mapeada para uma camada de recurso densa. Isso é necessário porque um vetor de características de alta dimensão é mais capaz de codificar informações sobre um determinado token (palavra para corpora de texto) do que um vetor simples. one-hot-encoded Também é uma prática padrão inicializar essa camada de incorporação com um vetor de palavras pré-treinado, como FastTextou Glove, ou inicializá-la aleatoriamente e aprender os parâmetros durante o treinamento.

  • Uma camada de codificador. Depois que os tokens de entrada são mapeados em um espaço de recurso altamente dimensional, a sequência é passada por uma camada de codificador para compactar todas as informações da camada de incorporação de entrada (de toda a sequência) em um vetor de recurso de comprimento fixo. Normalmente, um codificador é feito de redes do tipo RNN, como a memória de longo a curto prazo (LSTM) ou a unidade recorrente fechada (GRU). (O blog de Christopher Olah explica a LSTM em detalhes.)

  • Uma camada de decodificador. A camada de decodificador pega esse vetor de recurso codificado e produz a sequência de tokens de saída. Essa camada também é geralmente criada com arquiteturas (LSTM e GRU).

O modelo inteiro é treinado em conjunto para maximizar a probabilidade da sequência de destino tendo em conta a sequência de origem. Este modelo foi introduzido pela primeira vez por Sutskever et al. em 2014.

Mecanismo de atenção. A desvantagem de uma estrutura de codificador e decodificador é que o desempenho do modelo diminui à medida que o comprimento da sequência de origem aumenta, devido ao limite de quantidade de informações que o vetor de recurso codificado de comprimento fixo pode conter. Para enfrentar esse problema, em 2015, Bahdanau et al. propuseram o mecanismo de atenção. Em um mecanismo de atenção, o decodificador tenta encontrar o local na sequência do codificador onde poderiam estar as informações mais importantes e usa essas informações e as palavras decodificadas anteriormente para prever o próximo token na sequência.

Para obter mais detalhes, consulte o whitepaper Effective Approaches to Attention-based Neural Machine Translation, de Luong, et al., que explica e simplifica cálculos para vários mecanismos de atenção. Além disso, o whitepaper Google's Neural Machine Translation System: Bridging the Gap between Human and Machine Translation, de Wu, et al., descreve a arquitetura do Google para tradução automática, que usa conexões de salto entre camadas de codificadores e decodificadores.