Você está na página 1de 57

Jose Adenaldo S.

Bittencourt Junior
AI Engineering at Deep Learning
Brasil
joseadenaldo@gmail.com

Mecanismos de
Atenção

Setembro de 2018
O que é Neural Machine Translation

• Neural Machine Translation é uma forma de fazer Machine Translation com


uma única rede neural.
• A arquitetura utilizada para isso é chamada de sequence-to-sequence
(seq2seq) e utiliza duas RNNs, pertencendo a família dos encoders-
decoders.
Vantagens da NMT

Comparado aos métodos tradicionais, NMT tem várias vantagens:


• Melhor performance
- Mais fluído, com melhor uso do contexto e da similaridade entre
frases.
• Uma única rede neural para ser otimizada do início ao fim
- Sem subcomponentes para serem otimizados individualmente
• Requer menos esforço humano
- Mesmo método para todos os pares de línguas
- Sem criação de features individuais
Desvantagens de NMT

• NMT é menos interpretável e difícil de debugar.


• NMT é difícil de controlar
- Por exemplo, não é possível especificar regras e diretrizes para tradução
Métrica para Machine Translation (MT)

BLEU (Bilingual Evaluation Understudy)


• BLEU compara a tradução feita pela máquina a uma ou várias traduções
realizadas por humanos, calculando um score de similaridade baseado na
precisão nos n-grams ( geralmente até 3-grams ou 4-grams).

• BLEU é útil, mas imperfeito:


- Há várias maneiras válidas de traduzir uma frase.
- Assim, uma boa tradução pode ter um BLEU score baixo pois pode ter uma
baixa sobreposição de n-grams com a tradução humana.
Avanço da MT ao longo do tempo

Fonte: http://www.meta-net.eu/events/meta-forum-2016/slides/09_sennrich.pdf
NMT: A maior estória de sucesso de NLP com Deep Learning

NMT saiu de uma atividade de pesquisa de nicho em 2014 para se tornar o


método padrão em 2016.
• 2014: Primeiro artigo sobre seq2seq foi publicado
• 2016: Google Translate troca SMT por NMT

Sistemas SMT (Statistical Machine Translation), construídos por centenas de


engenheiros durante vários anos, foram superados por sistemas NMT treinados
por um punhado de engenheiros em alguns meses.
E NMT continua avançando

NMT é a tarefa mais emblemática em NLP com Deep Learning.


• A pesquisa em NMT foi pioneira em muitos das inovações recentes em NLP
com Deep Learning.
• Em 2018, a pesquisa em NMT continua a prosperar:
- Pesquisadores já criaram várias melhorias para a arquitetura seq2seq
original.
- Mas uma melhoria é tão importante que é o novo padrão, o novo
˜feijão com arroz˜ :

Atenção
seq2seq: problema do gargalo/bottleneck problem
seq2seq: problema do gargalo/bottleneck problem

A arquitetura mostrada no slide anterior tem algum problema?


seq2seq: problema do gargalo/bottleneck problem
Atenção

• Atenção fornece uma solução para o problema do gargalo.


• Ideia Principal: Em cada passo do decoder, foca numa pedaço específico da
sequência inicial.
Primeiro, vamos mostrar com ibagens (sem equações), depois mostraremos as
equações.
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção
seq2seq com atenção e alinhamento
Atenção nas equações

• Os hidden states dos encoders são dados por


• Em cada passo t, nós tempos os hidden states do decoder
• Então, obtemos os escores de atenção para esse t:

• Depois, passamos por uma softmax para obtermos a distribuição de atenção


(attention distribution) para esse passo (distribuição de probabilidade com soma
1):
Atenção nas equações

• Depois usamos para realizar a soma ponderada do hidden state do encoder e


obtermos a saída da atenção (attention output)

• Finalmente, concatenamos a saída da atenção com o hidden state do decoder


e procedemos como no modelo sem atenção do seq2seq.
Atenção no código

Como isso fica em código?


Atenção no código

Como isso fica em código?


Atenção no código
Atenção no código
Atenção nas vantagens

• Atenção melhora significativamente a performance em NMT.


• Resolve o problema do gargalo/bottleneck problem.
- Decoder consegue olhar diretamante na sequência do encoder, passando por cima do
gargalo.
• Atenção ajuda com o problema do vanishing gradiente.
- Fornece atalho para estados mais distantes.
• Atenção nos dá alguma interpretabilidade.
- Pela distribuição de atenção, conseguimos ver no que o decoder estava focando.
- A rede aprende o alinhamento sozinha de graça.
seq2seq é versátil

• seq2seq tem mil e uma utilidades (além de MT)


• Muitas tarefas de NLP podem ser realizadas com seq2seq:
-Sumarização (texto grande -> texto curto)
-Diálogo (fala anterior -> próxima fala2)
-Geração de código (linguagem natural -> código em python)
Atenção: técnica geral de Deep Learning

• Atenção pode ser aplicada em várias arquiteturas (não apenas seq2seq) para
várias tarefas diferentes.
Definição mais geral de Atenção: Dado um conjunto de valores e uma
consulta, a atenção é uma técnica para calcular uma soma ponderada dos
valores, dependente da consulta.
• Podemos dizer que a consulta presta atenção nos valores.
• Por exemplo, no modelo seq2seq + atenção, cada hidden state do decoder
presta atenção nos hidden states do encoder.
Atenção: técnica geral de Deep Learning

Intuição:
• A soma ponderada é um resumo seletivo das informações contidas nos valores,
em que a consulta determina quais valores devem ser o foco.
• Atenção é uma maneira de obter uma representação de tamanho fixo de um
conjunto arbitrário de representações (os valores), dependente de alguma
outra representação (a consulta).
Variantes de mecanismos de Atenção

• Nós temos alguns valores e uma consulta


• Atenção sempre envolve o cálculo da saída da atenção
a partir dos escores de atenção ,da seguinte maneira:

• No entanto, existem várias maneiras de calcular


Variantes de mecanismos de Atenção

• Existem várias maneiras de calcular os escores de atenção a partir


dos valores e da consulta :

• Atenção com produto escalar:


- Essa é a versão que vimos antes. Assumimos d1=d2

• Atenção multiplicativa:
- é uma matriz de pesos.
Variantes de mecanismos de Atenção

• Atenção aditiva:
- são matrizes de pesos.
- é um vetor de peso
Self-attention - Mecanismos de Atenção

• A auto-atenção (self-attention), chamada também de intra-atenção (intra-


attention), é um mecanismo de atenção que relaciona diferentes posições
de uma única sequência, a fim de calcular uma representação da
sequência.
• A auto-atenção tem sido usada com sucesso em várias tarefas, incluindo
compreensão de leitura, sumarização, vinculação textual, etc.
EssAI – Exemplo Prático

Justificativa:
▪ Custo da avaliação de redação por aluno no ENEM é de R$15,88 (no ENEM de
2015), com 6,54 milhões de redações, com custo total de 104 milhões.
▪ Milhões de estudantes que se preparam para o ENEM não tem a oportunidade de
receber uma orientação sobre sua escrita.
▪ Tempo gasto para correção de redação é muito elevado.
Solução:
• Sistema que utiliza redes neurais profundas para realizar a avaliação automática
de redações no modelo do ENEM. Fornece a nota da redação para o aluno.
EssAI – Exemplo Prático (Equações)

(Escores de atenção, e)

(Distribuição de atenção)

(Saída de atenção, a)

(Saída da Rede)
• Baseado no mecanismo de self-attention descrito em Attention-based lstm for aspect-
level sentiment classification. Yequan Wang, Minlie Huang, Li Zhao, and Xiaoyan Zhu.
2016.
EssAI – Exemplo Prático (Arquitetura)

Arquitetura com LSTM e atenção.


EssAI – Exemplo Prático

Frases associadas a sua distribuição de atenção, alfa. Maiores pesos: quarta e quinta.
EssAI – Exemplo Prático

5-grams com maior escore de atenção.


5-grams destacados são os mais relevantes para os exemplos.
Transformers: Attention is All you Need
Transformers: Motivação

• A computação sequencial impede a paralelização.


• Apesar das GRUs e LSTMs, os RNNs ainda precisam de mecanismos de atenção
para lidar com dependências de longo alcance - o comprimento do caminho para
computação co-dependente entre estados cresce com a sequência.
• Mas se a atenção nos dá acesso a qualquer estado ... talvez não precisemos das
RNN?
Transformer: Visão Geral

• Seq2seq.
• Tarefa: tradução automática com corpus paralelo.
• Prever cada palavra traduzida.
• A função custo / erro final é um erro padrão
de entropia cruzada no topo de um classificador
softmax.
• Vamos definir novas camadas de atenção para
os Transformers
Transformer: Visão Geral
Transformer: Dot Product Attention

• Entradas: uma consulta q e um conjunto de pares de chaves valores (k-v) para


uma saída.
• Consulta, chaves, valores e saída são todos vetores.
• A saída é a soma ponderada dos valores, onde:
O peso de cada valor é calculado por um produto interno de consulta chave
correspondente
• Consultas e chaves possuem mesma dimensionalidade dk valor dv.
Transformer: Dot Product Attention
Transformer: Multi Head Attention
Transformer: Multi Head Attention

• Os vetores de entrada são as consultas, chaves e valores.


• Primeiro faz-se o mapeamento de Q, K, V em h espaços de dimensões inferiores
utilizando matrizes W.
• Em seguida, aplique atenção, concatene as saídas e passe pela camada linear.
Transformer: Bloco Completo

Cada bloco tem duas subcamadas:


• Multi-head attention
• MLP com 2 camadas (com RELU)
Cada um desses dois passos também possui:
• Conexão residual e LayerNorm: LayerNorm(x + Sublayer (x))

Layernorm altera a entrada para ter média 0 e variância 1,


por camada e por ponto de treinamento (adicionando mais dois parâmetros, média
e desvio padrão).
Transformer: Visualização
Transformer: Visualização
Transformer: Resultado MT
Obrigado!!

Jose Adenaldo Santos Bittencourt Junior


joseadenaldo@gmail.com

Você também pode gostar