Modelos de Rede Neural Recorrente Codificador-Decodificador para Tradução Automática Neural

Modelos de Rede Neural Recorrente Codificador-Decodificador para Tradução Automática Neural

A arquitetura codificador-decodificador para redes neurais recorrentes é o método de tradução automática neural padrão que rivaliza e, em alguns casos, supera os métodos clássicos de tradução automática estatística.

Essa arquitetura é muito nova, tendo sido pioneira apenas em 2014, embora tenha sido adotada como a tecnologia central dentro do serviço de tradução do Google.

Nesta postagem, você descobrirá os dois exemplos seminais do modelo codificador-decodificador para tradução automática neural.

Depois de ler esta postagem, você saberá:

  • A arquitetura de rede neural recorrente codificador-decodificador é a tecnologia central dentro do serviço de tradução do Google.
  • O assim chamado "Modelo Sutskever”Para tradução automática ponta a ponta direta.
  • O assim chamado "Modelo Cho”Que estende a arquitetura com unidades GRU e um mecanismo de atenção.

Comece seu projeto com meu novo livro Deep Learning for Natural Language Processing, incluindo tutoriais passo a passo e a Código-fonte Python arquivos para todos os exemplos.

Vamos começar.

Modelos de Rede Neural Recorrente Codificador-Decodificador para Tradução Automática Neural

Modelos de Rede Neural Recorrente Codificador-Decodificador para Tradução Automática Neural
Foto de Fabio Pani, alguns direitos reservados.

Arquitetura codificador-decodificador para NMT

A arquitetura codificador-decodificador com redes neurais recorrentes tornou-se uma abordagem eficaz e padrão para a tradução automática neural (NMT) e a previsão de sequência para sequência (seq2seq) em geral.

Os principais benefícios da abordagem são a capacidade de treinar um único modelo ponta a ponta diretamente nas sentenças de origem e destino e a capacidade de lidar com sequências de texto de entrada e saída de comprimento variável.

Como evidência do sucesso do método, a arquitetura é o núcleo do serviço de tradução do Google.

Nosso modelo segue com atenção a estrutura comum de aprendizado sequência a sequência. Possui três componentes: uma rede de codificadores, uma rede de decodificadores e uma rede de atenção.

- Sistema de tradução automática neural do Google: Bridging the Gap between Human and Machine Translation, 2016

Neste post, vamos dar uma olhada em dois projetos de pesquisa diferentes que desenvolveram a mesma arquitetura Codificador-Decodificador ao mesmo tempo em 2014 e alcançaram resultados que colocam os holofotes na abordagem. Eles estão:

  • Modelo Sutskever NMT
  • Modelo Cho NMT

Para saber mais sobre a arquitetura, veja a postagem:

Precisa de ajuda com Deep Learning for Text Data?

Faça meu curso intensivo de e-mail gratuito de 7 dias agora (com código).

Clique para se inscrever e também obter uma versão gratuita do Ebook em PDF do curso.

Comece Seu Crash-Course GRÁTIS Agora

Modelo Sutskever NMT

Nesta seção, veremos o modelo de tradução automática neural desenvolvido por Ilya Sutskever, et al. conforme descrito em seu artigo de 2014 “Sequence to Sequence Learning with Neural Networks“. Vamos nos referir a ele como o “Modelo Sutskever NMT“, Por falta de nome melhor.

Este é um artigo importante, pois foi um dos primeiros a introduzir o modelo codificador-decodificador para tradução automática e, de forma mais geral, o aprendizado de seqüência a seqüência.

É um modelo importante no campo da tradução automática, pois foi um dos primeiros sistemas de tradução automática neural a superar um modelo de aprendizado de máquina estatístico básico em uma grande tarefa de tradução.

Problema

O modelo foi aplicado à tradução de inglês para francês, especificamente à tarefa de tradução do WMT 2014.

A tarefa de tradução foi processada uma frase por vez, e um token de final de sequência () foi adicionado ao final das sequências de saída durante o treinamento para significar o final da sequência traduzida. Isso permitiu que o modelo fosse capaz de prever sequências de saída de comprimento variável.

Observe que exigimos que cada frase termine com um símbolo especial de fim de frase “”, que permite ao modelo definir uma distribuição sobre sequências de todos os comprimentos possíveis.

O modelo foi treinado em um subconjunto de 12 milhões de frases no conjunto de dados, composto por 348 milhões de palavras em francês e 304 milhões de palavras em inglês. Este conjunto foi escolhido porque foi pré-tokenizado.

O vocabulário de origem foi reduzido para 160.000 palavras de origem em inglês e 80.000 das palavras de destino em francês mais frequentes. Todas as palavras fora do vocabulário foram substituídas pelo token “UNK”.

Modelo

Uma arquitetura codificador-decodificador foi desenvolvida onde uma seqüência de entrada foi lida por completo e codificada para uma representação interna de comprimento fixo.

Uma rede de decodificadores então usou essa representação interna para enviar palavras até que o token de fim de sequência fosse alcançado. As redes LSTM foram usadas tanto para o codificador quanto para o decodificador.

A ideia é usar um LSTM para ler a sequência de entrada, um passo de tempo de cada vez, para obter uma representação vetorial de dimensão fixa grande e, em seguida, usar outro LSTM para extrair a sequência de saída desse vetor

O modelo final foi um conjunto de 5 modelos de aprendizado profundo. Uma pesquisa do feixe da esquerda para a direita foi usada durante a inferência das traduções.

Representação do modelo codificador-decodificador Sutskever para tradução de texto

Representação do modelo codificador-decodificador Sutskever para tradução de texto
Retirado de “Sequence to Sequence Learning with Neural Networks,” 2014.

Configuração do Modelo

  • As sequências de entrada foram revertidas.
  • Uma camada de incorporação de palavras de 1000 dimensões foi usada para representar as palavras de entrada.
  • Softmax foi usado na camada de saída.
  • Os modelos de entrada e saída tinham 4 camadas com 1.000 unidades por camada.
  • O modelo foi ajustado para 7,5 épocas em que alguma diminuição da taxa de aprendizagem foi realizada.
  • Um tamanho de lote de 128 sequências foi usado durante o treinamento.
  • O recorte de gradiente foi usado durante o treinamento para mitigar a chance de explosões de gradiente.
  • Os lotes eram compostos de frases com aproximadamente o mesmo comprimento para acelerar o cálculo.

O modelo foi ajustado em uma máquina de 8 GPU, onde cada camada foi executada em uma GPU diferente. O treinamento durou 10 dias.

A implementação resultante alcançou uma velocidade de 6.300 (em inglês e francês) palavras por segundo com um tamanho de minibatch de 128. O treinamento levou cerca de dez dias com esta implementação.

Resultado

O sistema obteve uma pontuação BLEU de 34,81, que é uma boa pontuação em comparação com a pontuação inicial desenvolvida com um sistema de tradução automática estatística de 33,30. É importante ressaltar que este é o primeiro exemplo de um sistema de tradução automática neural que superou uma linha de base de tradução automática estatística baseada em frases em um problema de grande escala.

... obtivemos uma pontuação BLEU de 34,81 […] Este é de longe o melhor resultado alcançado pela tradução direta com grandes redes neurais. Para comparação, a pontuação BLEU de uma linha de base SMT neste conjunto de dados é 33,30

O modelo final foi utilizado para pontuar a lista das melhores traduções e melhorar a pontuação para 36,5 o que a aproxima do melhor resultado no momento de 37,0.

Você pode ver um vídeo da palestra associada ao jornal aqui:

[embed]https://www.youtube.com/watch?v=-uyXE7dY5H0[/embed]

Modelo Cho NMT

Nesta seção, veremos o sistema de tradução automática neural descrito por Kyunghyun Cho, et al. em seu artigo de 2014 intitulado “Learning Phrase Representations using RNN Encoder – Decoder for Statistical Machine Translation.” Iremos nos referir a ele como o “Modelo Cho NMT”Modelo por falta de nome melhor.

É importante ressaltar que o modelo Cho é usado apenas para pontuar traduções candidatas e não é usado diretamente para tradução como o modelo Sutskever acima. Embora as extensões ao trabalho para diagnosticar melhor e melhorar o modelo, usem-no diretamente e sozinho para tradução.

Problema

Como acima, o problema é a tarefa de tradução de inglês para francês do workshop WMT 2014.

O vocabulário de origem e de destino foram limitados às 15.000 palavras mais frequentes em francês e inglês, que cobrem 93% do conjunto de dados, e as palavras fora do vocabulário foram substituídas por “UNK”.

Modelo

O modelo usa a mesma abordagem de dois modelos, aqui dando a ele o nome explícito da arquitetura do codificador-decodificador.

… Chamado RNN Encoder – Decoder que consiste em duas redes neurais recorrentes (RNN). Um RNN codifica uma sequência de símbolos em uma representação vetorial de comprimento fixo e o outro decodifica a representação em outra sequência de símbolos.

Descrição da arquitetura codificador-decodificador

Descrição da arquitetura do codificador-decodificador.
Retirado de "Learning Phrase Representations using RNN Encoder – Decoder for Statistical Machine Translation."

A implementação não usa unidades LSTM; em vez disso, uma unidade de rede neural recorrente mais simples é desenvolvida, chamada de unidade recorrente fechada ou GRU.

… Também propomos um novo tipo de unidade oculta que foi motivada pela unidade LSTM, mas é muito mais simples de calcular e implementar.

Configuração do Modelo

  • Uma incorporação de palavras de 100 dimensões foi usada para representar as palavras de entrada.
  • O codificador e o decodificador foram configurados com 1 camada de 1000 unidades GRU.
  • 500 unidades Maxout agrupando 2 entradas foram usadas após o decodificador.
  • Um tamanho de lote de 64 frases foi usado durante o treinamento.

O modelo foi treinado por aproximadamente 2 dias.

Extensões

No artigo “On the Properties of Neural Machine Translation: Encoder-Decoder Approaches,” Cho, et al. investigar as limitações de seu modelo. Eles descobrem que o desempenho se degrada rapidamente com o aumento do comprimento das sentenças de entrada e com o número de palavras fora do vocabulário.

Nossa análise revelou que o desempenho da tradução automática neural sofre significativamente com o comprimento das frases.

Eles fornecem um gráfico útil do desempenho do modelo à medida que o comprimento da frase é aumentado, o que captura a perda graciosa de habilidade com o aumento da dificuldade.

Perda na habilidade do modelo com o aumento do comprimento da frase

Perda na habilidade do modelo com o aumento do comprimento da frase.
Retirado de "On the Properties of Neural Machine Translation: Encoder-Decoder Approaches."

Para resolver o problema de palavras desconhecidas, eles sugerem aumentar drasticamente o vocabulário de palavras conhecidas durante o treinamento.

Eles abordam o problema do comprimento da frase em um artigo de acompanhamento intitulado “Tradução automática neural por aprendizado conjunto para alinhar e traduzir”, no qual propõem o uso de um mecanismo de atenção. Em vez de codificar a sentença de entrada para um vetor de comprimento fixo, uma representação mais completa da entrada codificada é mantida e o modelo aprende a usar para prestar atenção a diferentes partes da entrada para cada saída de palavra pelo decodificador.

Cada vez que o modelo proposto gera uma palavra em uma tradução, ele (soft-) busca um conjunto de posições em uma frase fonte onde as informações mais relevantes estão concentradas. O modelo então prevê uma palavra-alvo com base nos vetores de contexto associados a essas posições de origem e todas as palavras-alvo geradas anteriormente.

Uma riqueza de detalhes técnicos é fornecida no jornal; por exemplo:

  • Um modelo com configuração semelhante é usado, embora com camadas bidirecionais.
  • Os dados são preparados de forma que 30.000 das palavras mais comuns sejam mantidas no vocabulário.
  • O modelo é treinado primeiro com frases de até 20 palavras e, em seguida, com frases de até 50 palavras.
  • Um tamanho de lote de 80 sentenças é usado e o modelo foi ajustado para 4-6 épocas.
  • Uma pesquisa de feixe foi usada durante a inferência para encontrar a sequência de palavras mais provável para cada tradução.

Desta vez, o modelo leva aproximadamente 5 dias para treinar. O código para este trabalho de acompanhamento também está disponível.

Como com o Sutskever, o modelo alcançou resultados dentro do alcance das abordagens estatísticas clássicas baseadas em frases.

Talvez mais importante, a abordagem proposta alcançou um desempenho de tradução comparável à tradução automática estatística baseada em frases existente. É um resultado notável, considerando que a arquitetura proposta, ou toda a família da tradução automática neural, só foi proposta recentemente, neste ano. Acreditamos que a arquitetura aqui proposta é um passo promissor em direção ao melhor ...

Você também pode estar interessado em