Word Embeddings:
Introdução, Motivação e
Exemplos
Seminário LINE/LUDES - Junho 2017
Felipe Almeida
1
Estrutura da palestra
● Motivação
● Modelos de Linguagem
● Redes Neurais
● Redes Neurais para Modelos de Linguagem
● Embeddings
● Visualização
● Word2Vec
● Casos de Uso
● Trabalhos Futuros
● Recursos
2
Motivação
● Precisamos de boas representações de palavras para tarefas de
NLP
○ Vetores one-hot dimensionalidade muito alta
○ Vetores one-hot não ajudam na generalização
3
Motivação
● Precisamos de boas representações de palavras para tarefas de
NLP
○ Vetores one-hot dimensionalidade muito alta
○ Vetores one-hot não ajudam na generalização
● Hipótese distribucional (Distributional Hypothesis)
○ Palavras têm significados parecidos se são usadas em contextos
parecidos.
4
Modelos de Linguagem
● Modelos de linguagem (language model) são modelos que predizem a
próxima palavra, dado um conjunto de palavras.
5
Modelos de Linguagem
● Modelos de linguagem (language model) são modelos que predizem a
próxima palavra, dado um conjunto de palavras.
● Exemplo:
○ “O gato corre atrás do _______”
○ Será que a próxima palavra é:
■ “rato” ?
■ “cachorro” ?
■ “carro” ?
6
Modelos de Linguagem
● Modelos de linguagem (language model) são modelos que predizem a
próxima palavra, dado um conjunto de palavras.
● Exemplo:
○ “O gato corre atrás do _______”
○ Será que a próxima palavra é:
■ “rato” ?
■ “cachorro” ?
■ “carro” ?
● Modelos de linguagem são usados para coisas como processamento de
voz, autocorreção de ortografia, etc. 7
Redes Neurais
● É um modelo de representar features e a interação entre input e
output.
8
Redes Neurais
● É um modelo de representar features e a interação entre input e
output.
● Em cada nó, é aplicada uma função de ativação (sigmóide,
tangente hiperbólica, etc) ao produto interno do valor de cada nó
da camada anterior e a matriz de pesos.
9
Redes Neurais
● É um modelo de representar features e a interação entre input e
output.
● Em cada nó, é aplicada uma função de ativação (sigmóide,
tangente hiperbólica, etc) ao produto interno do valor de cada nó
da camada anterior e a matriz de pesos.
● O treinamento se dá por backpropagation, i.e. se compara o
resultado previsto como resultado real, calcula-se as derivadas
parciais para cada peso e os pesos são atualizados.
10
Fonte: http://cs231n.github.io/neural-networks-1/ 11
12
Redes Neurais para Modelos de Linguagem
● Redes Neurais foram aplicadas para treinar modelos de linguagem
em 2001
○ É um treinamento não-supervisionado, ou seja, é feito com dados não
rotulados
○ Teve performance maior do que o estado-da-arte de então para
modelos de linguagens baseados em n-gramas
○ Mas era muito lento pra treinar
13
Redes Neurais para Modelos de Linguagem
● Redes Neurais foram aplicadas para treinar modelos de linguagem
em 2001
○ É um treinamento não-supervisionado, ou seja, é feito com dados não
rotulados
○ Teve performance maior do que o estado-da-arte de então para
modelos de linguagens baseados em n-gramas
○ Mas era muito lento pra treinar
● O contexto de uma palavra (ou seja, palavras que a precedem) é
usado para prever a próxima palavra
14
15
16
Embeddings
● Um pouco depois de se começar a usar redes neurais para
modelos de linguagem, percebeu-se se que era mais interessante
colocar uma camada adicional -linear, de tamanho fixo- entre o
vetor de features de cada palavra e as camadas da rede
○ Para reduzir a dimensionalidade dos vetores de palavras
○ E ter representações de tamanho fixo
17
Embeddings
● Um pouco depois de se começar a usar redes neurais para
modelos de linguagem, percebeu-se se que era mais interessante
colocar uma camada adicional -linear, de tamanho fixo- entre o
vetor de features de cada palavra e as camadas da rede
○ Para reduzir a dimensionalidade dos vetores de palavras
○ E ter representações de tamanho fixo
● Essa camada foi chamada de Embedding Layer
18
Embeddings
● Um pouco depois de se começar a usar redes neurais para
modelos de linguagem, percebeu-se se que era mais interessante
colocar uma camada adicional -linear, de tamanho fixo- entre o
vetor de features de cada palavra e as camadas da rede
○ Para reduzir a dimensionalidade dos vetores de palavras
○ E ter representações de tamanho fixo
● Essa camada foi chamada de Embedding Layer
● Logo percebeu-se que a projeção de cada palavra nessa camada
tinha um significado semântico também. 19
20
Embeddings
● Ou seja, depois de projetada na camada de Embedding, cada
palavra vira um vetor em um espaço vetorial.
○ Neste espaço, a proximidade entre vetores representa proximidade de
padrão de uso
○ Ou seja, palavras que são usadas no mesmo contexto ficam próximas
umas das outras.
21
Embeddings
● Ou seja, depois de projetada na camada de Embedding, cada
palavra vira um vetor em um espaço vetorial.
○ Neste espaço, a proximidade entre vetores representa proximidade de
padrão de uso
○ Ou seja, palavras que são usadas no mesmo contexto ficam próximas
umas das outras.
● Em 2010, foi identificado que embeddings poderiam ser usados
para melhorar resultados de praticamente todas as tarefas normais
de NLP, como tagueamento POS, SRL, NER, classificação de
textos, etc.
22
Embeddings
● Em 2013, foi feito um estudo sobre a semântica desses vetores
(chamados de Word Embeddings) e foi descoberto que eles eram tão
bons que se podia até fazer operações aritméticas com eles.
23
Embeddings
● Em 2013, foi feito um estudo sobre a semântica desses vetores
(chamados de Word Embeddings) e foi descoberto que eles eram tão
bons que se podia até fazer operações aritméticas com eles.
● Exemplo: a operação aritmética
Embedding(“king”) - Embedding(“man”) + Embedding(“woman”)
Dá como resultado
Embedding(“queen”)
24
25
Fonte:https://nlp.stanford.edu/projects/glove/
26
Fonte:https://nlp.stanford.edu/projects/glove/
27
Fonte:https://deeplearning4j.org/word2vec
28
Embeddings
● Definição de um word embedding:
○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho
fixo, que representa uma palavra.
29
Embeddings
● Definição de um word embedding:
○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho
fixo, que representa uma palavra.
● Distribuído: cada conceito é representado por mais de uma
feature. Isso diminui a dimensionalidade necessária.
30
Embeddings
● Definição de um word embedding:
○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho
fixo, que representa uma palavra.
● Distribuído: cada conceito é representado por mais de uma
feature. Isso diminui a dimensionalidade necessária.
● Denso: não esparso.
31
Embeddings
● Definição de um word embedding:
○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho
fixo, que representa uma palavra.
● Distribuído: cada conceito é representado por mais de uma
feature. Isso diminui a dimensionalidade necessária.
● Denso: não esparso.
● Contínuo: não binário, possibilita fácil generalização.
32
Embeddings
● Definição de um word embedding:
○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho
fixo, que representa uma palavra.
● Distribuído: cada conceito é representado por mais de uma
feature. Isso diminui a dimensionalidade necessária.
● Denso: não esparso.
● Contínuo: não binário, possibilita fácil generalização.
● De tamanho fixo: é importante que todas as palavras sejam
projetadas no mesmo espaço para que possam ser comparadas
33
Word2Vec
● O Word2Vec (2013) foi uma forma especialmente eficiente de
treinar Word Embeddings
34
Word2Vec
● O Word2Vec (2013) foi uma forma especialmente eficiente de
treinar Word Embeddings
● O principal problema das abordagens anteriores era que os
modelos eram lentos.
○ Por causa do componente não-linear das redes neurais
○ Por causa da função softmax no fim de cada rede, que precisava
calcular, para cada sequência (contexto) do conjunto de treinamento,
a probabilidade de cada outra palavra do vocabulário
35
Word2Vec
● O Word2vec implementou uma série de otimizações que tinham
sido sugeridas em trabalhos anteriores e criou algumas
otimizações próprias
36
Word2Vec
● O Word2vec implementou uma série de otimizações que tinham
sido sugeridas em trabalhos anteriores e criou algumas
otimizações próprias
● A ideia era fazer uma rede bem simples que fosse rápida para
treinar. E compensar a simplicidade do modelo treinando com
MUITOS dados.
○ Confirmando a máxima segundo a qual treinar um modelo simples
com mais dados em geral é melhor que um modelo complexo com
menos dados
37
Word2Vec
● O modelo Word2vec é uma rede neural linear, com apenas uma
camada.
38
Word2Vec
● O modelo Word2vec é uma rede neural linear, com apenas uma
camada.
● Word2vec não é deep learning.
39
Word2Vec
● O modelo Word2vec é uma rede neural linear, com apenas uma
camada.
● Word2vec não é deep learning.
● Atualmente (2017), já há outros modelos que são melhores/mais
rápidos para treinar do que o Word2vec.
40
Casos de uso
● Embeddings podem ser usados em lugar de (ou como
complemento a) features de palavras, como vetores one-hot.
41
Casos de uso
● Embeddings podem ser usados em lugar de (ou como
complemento a) features de palavras, como vetores one-hot.
● Embeddings podem ser usados em qualquer tarefa onde seja
necessário representar palavras por features.
42
Trabalhos futuros
● Como compor word embeddings para formar embeddings de
coisas como frases, parágrafos e até documentos inteiros?
43
Trabalhos futuros
● Como compor word embeddings para formar embeddings de
coisas como frases, parágrafos e até documentos inteiros?
● Como tunar embeddings para tarefas específicas, como análise de
sentimentos?
44
Trabalhos futuros
● Como compor word embeddings para formar embeddings de
coisas como frases, parágrafos e até documentos inteiros?
● Como tunar embeddings para tarefas específicas, como análise de
sentimentos?
● Como melhorar a generalização para gerar embeddings de
palavras raras, que não estavam presentes no conjunto de
treinamento?
45
Trabalhos futuros
● Embeddings podem ajudar na tradução?
○ Projetar duas frases em diferentes línguas em um espaço comum e
depois comparar os vetores?
46
Trabalhos futuros
● Embeddings podem ajudar na tradução?
○ Projetar duas frases em diferentes línguas em um espaço comum e
depois comparar os vetores?
● Como podemos usar a generalização proporcionada pelos word
embeddings para melhorar o resultado de outras tarefas de NLP?
47
Trabalhos futuros
● Embeddings podem ajudar na tradução?
○ Projetar duas frases em diferentes línguas em um espaço comum e
depois comparar os vetores?
● Como podemos usar a generalização proporcionada pelos word
embeddings para melhorar o resultado de outras tarefas de NLP?
● Podemos usar embeddings para melhorar o resultado de tarefas
de RI, como busca?
48
Trabalhos futuros
● Que outras coisas podem ser transformadas em embedings?
○ Item2Vec
○ World2Vec
49
Recursos
● Lista com vários modelos com embeddings pré-treinados
○ http://ahogrammer.com/2017/01/20/the-list-of-pretrained-word-embed
dings/
○ O modelo FastText é um dos melhores atualmente (2017), e tem
embeddings pré-treinados em várias línguas (incluindo português):
https://github.com/facebookresearch/fastText/blob/master/pretrained-v
ectors.md
● Keras blog: Como usar embeddings pré-treinados para
classificação de texto com redes convolucionais
50

Word embeddings introdução, motivação e exemplos

  • 1.
    Word Embeddings: Introdução, Motivaçãoe Exemplos Seminário LINE/LUDES - Junho 2017 Felipe Almeida 1
  • 2.
    Estrutura da palestra ●Motivação ● Modelos de Linguagem ● Redes Neurais ● Redes Neurais para Modelos de Linguagem ● Embeddings ● Visualização ● Word2Vec ● Casos de Uso ● Trabalhos Futuros ● Recursos 2
  • 3.
    Motivação ● Precisamos deboas representações de palavras para tarefas de NLP ○ Vetores one-hot dimensionalidade muito alta ○ Vetores one-hot não ajudam na generalização 3
  • 4.
    Motivação ● Precisamos deboas representações de palavras para tarefas de NLP ○ Vetores one-hot dimensionalidade muito alta ○ Vetores one-hot não ajudam na generalização ● Hipótese distribucional (Distributional Hypothesis) ○ Palavras têm significados parecidos se são usadas em contextos parecidos. 4
  • 5.
    Modelos de Linguagem ●Modelos de linguagem (language model) são modelos que predizem a próxima palavra, dado um conjunto de palavras. 5
  • 6.
    Modelos de Linguagem ●Modelos de linguagem (language model) são modelos que predizem a próxima palavra, dado um conjunto de palavras. ● Exemplo: ○ “O gato corre atrás do _______” ○ Será que a próxima palavra é: ■ “rato” ? ■ “cachorro” ? ■ “carro” ? 6
  • 7.
    Modelos de Linguagem ●Modelos de linguagem (language model) são modelos que predizem a próxima palavra, dado um conjunto de palavras. ● Exemplo: ○ “O gato corre atrás do _______” ○ Será que a próxima palavra é: ■ “rato” ? ■ “cachorro” ? ■ “carro” ? ● Modelos de linguagem são usados para coisas como processamento de voz, autocorreção de ortografia, etc. 7
  • 8.
    Redes Neurais ● Éum modelo de representar features e a interação entre input e output. 8
  • 9.
    Redes Neurais ● Éum modelo de representar features e a interação entre input e output. ● Em cada nó, é aplicada uma função de ativação (sigmóide, tangente hiperbólica, etc) ao produto interno do valor de cada nó da camada anterior e a matriz de pesos. 9
  • 10.
    Redes Neurais ● Éum modelo de representar features e a interação entre input e output. ● Em cada nó, é aplicada uma função de ativação (sigmóide, tangente hiperbólica, etc) ao produto interno do valor de cada nó da camada anterior e a matriz de pesos. ● O treinamento se dá por backpropagation, i.e. se compara o resultado previsto como resultado real, calcula-se as derivadas parciais para cada peso e os pesos são atualizados. 10
  • 11.
  • 12.
  • 13.
    Redes Neurais paraModelos de Linguagem ● Redes Neurais foram aplicadas para treinar modelos de linguagem em 2001 ○ É um treinamento não-supervisionado, ou seja, é feito com dados não rotulados ○ Teve performance maior do que o estado-da-arte de então para modelos de linguagens baseados em n-gramas ○ Mas era muito lento pra treinar 13
  • 14.
    Redes Neurais paraModelos de Linguagem ● Redes Neurais foram aplicadas para treinar modelos de linguagem em 2001 ○ É um treinamento não-supervisionado, ou seja, é feito com dados não rotulados ○ Teve performance maior do que o estado-da-arte de então para modelos de linguagens baseados em n-gramas ○ Mas era muito lento pra treinar ● O contexto de uma palavra (ou seja, palavras que a precedem) é usado para prever a próxima palavra 14
  • 15.
  • 16.
  • 17.
    Embeddings ● Um poucodepois de se começar a usar redes neurais para modelos de linguagem, percebeu-se se que era mais interessante colocar uma camada adicional -linear, de tamanho fixo- entre o vetor de features de cada palavra e as camadas da rede ○ Para reduzir a dimensionalidade dos vetores de palavras ○ E ter representações de tamanho fixo 17
  • 18.
    Embeddings ● Um poucodepois de se começar a usar redes neurais para modelos de linguagem, percebeu-se se que era mais interessante colocar uma camada adicional -linear, de tamanho fixo- entre o vetor de features de cada palavra e as camadas da rede ○ Para reduzir a dimensionalidade dos vetores de palavras ○ E ter representações de tamanho fixo ● Essa camada foi chamada de Embedding Layer 18
  • 19.
    Embeddings ● Um poucodepois de se começar a usar redes neurais para modelos de linguagem, percebeu-se se que era mais interessante colocar uma camada adicional -linear, de tamanho fixo- entre o vetor de features de cada palavra e as camadas da rede ○ Para reduzir a dimensionalidade dos vetores de palavras ○ E ter representações de tamanho fixo ● Essa camada foi chamada de Embedding Layer ● Logo percebeu-se que a projeção de cada palavra nessa camada tinha um significado semântico também. 19
  • 20.
  • 21.
    Embeddings ● Ou seja,depois de projetada na camada de Embedding, cada palavra vira um vetor em um espaço vetorial. ○ Neste espaço, a proximidade entre vetores representa proximidade de padrão de uso ○ Ou seja, palavras que são usadas no mesmo contexto ficam próximas umas das outras. 21
  • 22.
    Embeddings ● Ou seja,depois de projetada na camada de Embedding, cada palavra vira um vetor em um espaço vetorial. ○ Neste espaço, a proximidade entre vetores representa proximidade de padrão de uso ○ Ou seja, palavras que são usadas no mesmo contexto ficam próximas umas das outras. ● Em 2010, foi identificado que embeddings poderiam ser usados para melhorar resultados de praticamente todas as tarefas normais de NLP, como tagueamento POS, SRL, NER, classificação de textos, etc. 22
  • 23.
    Embeddings ● Em 2013,foi feito um estudo sobre a semântica desses vetores (chamados de Word Embeddings) e foi descoberto que eles eram tão bons que se podia até fazer operações aritméticas com eles. 23
  • 24.
    Embeddings ● Em 2013,foi feito um estudo sobre a semântica desses vetores (chamados de Word Embeddings) e foi descoberto que eles eram tão bons que se podia até fazer operações aritméticas com eles. ● Exemplo: a operação aritmética Embedding(“king”) - Embedding(“man”) + Embedding(“woman”) Dá como resultado Embedding(“queen”) 24
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
    Embeddings ● Definição deum word embedding: ○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho fixo, que representa uma palavra. 29
  • 30.
    Embeddings ● Definição deum word embedding: ○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho fixo, que representa uma palavra. ● Distribuído: cada conceito é representado por mais de uma feature. Isso diminui a dimensionalidade necessária. 30
  • 31.
    Embeddings ● Definição deum word embedding: ○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho fixo, que representa uma palavra. ● Distribuído: cada conceito é representado por mais de uma feature. Isso diminui a dimensionalidade necessária. ● Denso: não esparso. 31
  • 32.
    Embeddings ● Definição deum word embedding: ○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho fixo, que representa uma palavra. ● Distribuído: cada conceito é representado por mais de uma feature. Isso diminui a dimensionalidade necessária. ● Denso: não esparso. ● Contínuo: não binário, possibilita fácil generalização. 32
  • 33.
    Embeddings ● Definição deum word embedding: ○ Um word embedding é um vetor distribuído, denso, contínuo, de tamanho fixo, que representa uma palavra. ● Distribuído: cada conceito é representado por mais de uma feature. Isso diminui a dimensionalidade necessária. ● Denso: não esparso. ● Contínuo: não binário, possibilita fácil generalização. ● De tamanho fixo: é importante que todas as palavras sejam projetadas no mesmo espaço para que possam ser comparadas 33
  • 34.
    Word2Vec ● O Word2Vec(2013) foi uma forma especialmente eficiente de treinar Word Embeddings 34
  • 35.
    Word2Vec ● O Word2Vec(2013) foi uma forma especialmente eficiente de treinar Word Embeddings ● O principal problema das abordagens anteriores era que os modelos eram lentos. ○ Por causa do componente não-linear das redes neurais ○ Por causa da função softmax no fim de cada rede, que precisava calcular, para cada sequência (contexto) do conjunto de treinamento, a probabilidade de cada outra palavra do vocabulário 35
  • 36.
    Word2Vec ● O Word2vecimplementou uma série de otimizações que tinham sido sugeridas em trabalhos anteriores e criou algumas otimizações próprias 36
  • 37.
    Word2Vec ● O Word2vecimplementou uma série de otimizações que tinham sido sugeridas em trabalhos anteriores e criou algumas otimizações próprias ● A ideia era fazer uma rede bem simples que fosse rápida para treinar. E compensar a simplicidade do modelo treinando com MUITOS dados. ○ Confirmando a máxima segundo a qual treinar um modelo simples com mais dados em geral é melhor que um modelo complexo com menos dados 37
  • 38.
    Word2Vec ● O modeloWord2vec é uma rede neural linear, com apenas uma camada. 38
  • 39.
    Word2Vec ● O modeloWord2vec é uma rede neural linear, com apenas uma camada. ● Word2vec não é deep learning. 39
  • 40.
    Word2Vec ● O modeloWord2vec é uma rede neural linear, com apenas uma camada. ● Word2vec não é deep learning. ● Atualmente (2017), já há outros modelos que são melhores/mais rápidos para treinar do que o Word2vec. 40
  • 41.
    Casos de uso ●Embeddings podem ser usados em lugar de (ou como complemento a) features de palavras, como vetores one-hot. 41
  • 42.
    Casos de uso ●Embeddings podem ser usados em lugar de (ou como complemento a) features de palavras, como vetores one-hot. ● Embeddings podem ser usados em qualquer tarefa onde seja necessário representar palavras por features. 42
  • 43.
    Trabalhos futuros ● Comocompor word embeddings para formar embeddings de coisas como frases, parágrafos e até documentos inteiros? 43
  • 44.
    Trabalhos futuros ● Comocompor word embeddings para formar embeddings de coisas como frases, parágrafos e até documentos inteiros? ● Como tunar embeddings para tarefas específicas, como análise de sentimentos? 44
  • 45.
    Trabalhos futuros ● Comocompor word embeddings para formar embeddings de coisas como frases, parágrafos e até documentos inteiros? ● Como tunar embeddings para tarefas específicas, como análise de sentimentos? ● Como melhorar a generalização para gerar embeddings de palavras raras, que não estavam presentes no conjunto de treinamento? 45
  • 46.
    Trabalhos futuros ● Embeddingspodem ajudar na tradução? ○ Projetar duas frases em diferentes línguas em um espaço comum e depois comparar os vetores? 46
  • 47.
    Trabalhos futuros ● Embeddingspodem ajudar na tradução? ○ Projetar duas frases em diferentes línguas em um espaço comum e depois comparar os vetores? ● Como podemos usar a generalização proporcionada pelos word embeddings para melhorar o resultado de outras tarefas de NLP? 47
  • 48.
    Trabalhos futuros ● Embeddingspodem ajudar na tradução? ○ Projetar duas frases em diferentes línguas em um espaço comum e depois comparar os vetores? ● Como podemos usar a generalização proporcionada pelos word embeddings para melhorar o resultado de outras tarefas de NLP? ● Podemos usar embeddings para melhorar o resultado de tarefas de RI, como busca? 48
  • 49.
    Trabalhos futuros ● Queoutras coisas podem ser transformadas em embedings? ○ Item2Vec ○ World2Vec 49
  • 50.
    Recursos ● Lista comvários modelos com embeddings pré-treinados ○ http://ahogrammer.com/2017/01/20/the-list-of-pretrained-word-embed dings/ ○ O modelo FastText é um dos melhores atualmente (2017), e tem embeddings pré-treinados em várias línguas (incluindo português): https://github.com/facebookresearch/fastText/blob/master/pretrained-v ectors.md ● Keras blog: Como usar embeddings pré-treinados para classificação de texto com redes convolucionais 50