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

50
Word Embeddings: Introdução, Motivação e Exemplos Seminário LINE/LUDES - Junho 2017 Felipe Almeida 1

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

Page 1: Word embeddings  introdução, motivação e exemplos

Word Embeddings: Introdução, Motivação e ExemplosSeminário LINE/LUDES - Junho 2017

Felipe Almeida

1

Page 2: Word embeddings  introdução, motivação e exemplos

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

Page 3: Word embeddings  introdução, motivação e exemplos

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

Page 4: Word embeddings  introdução, motivação e exemplos

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

Page 5: Word embeddings  introdução, motivação e exemplos

Modelos de Linguagem

● Modelos de linguagem (language model) são modelos que predizem a próxima palavra, dado um conjunto de palavras.

5

Page 6: Word embeddings  introdução, motivação e exemplos

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

Page 7: Word embeddings  introdução, motivação e exemplos

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

Page 8: Word embeddings  introdução, motivação e exemplos

Redes Neurais

● É um modelo de representar features e a interação entre input e output.

8

Page 9: Word embeddings  introdução, motivação e exemplos

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

Page 10: Word embeddings  introdução, motivação e exemplos

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

Page 11: Word embeddings  introdução, motivação e exemplos

Fonte: http://cs231n.github.io/neural-networks-1/ 11

Page 12: Word embeddings  introdução, motivação e exemplos

12

Page 13: Word embeddings  introdução, motivação e exemplos

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

Page 14: Word embeddings  introdução, motivação e exemplos

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

Page 15: Word embeddings  introdução, motivação e exemplos

15

Page 16: Word embeddings  introdução, motivação e exemplos

16

Page 17: Word embeddings  introdução, motivação e exemplos

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

Page 18: Word embeddings  introdução, motivação e exemplos

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

Page 19: Word embeddings  introdução, motivação e exemplos

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

Page 20: Word embeddings  introdução, motivação e exemplos

20

Page 21: Word embeddings  introdução, motivação e exemplos

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

Page 22: Word embeddings  introdução, motivação e exemplos

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

Page 23: Word embeddings  introdução, motivação e exemplos

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

Page 24: Word embeddings  introdução, motivação e exemplos

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éticaEmbedding(“king”) - Embedding(“man”) + Embedding(“woman”)Dá como resultadoEmbedding(“queen”)

24

Page 25: Word embeddings  introdução, motivação e exemplos

25

Page 26: Word embeddings  introdução, motivação e exemplos

Font

e: h

ttps:

//nlp

.sta

nfor

d.ed

u/pr

ojec

ts/g

love

/

26

Page 27: Word embeddings  introdução, motivação e exemplos

Font

e: h

ttps:

//nlp

.sta

nfor

d.ed

u/pr

ojec

ts/g

love

/

27

Page 28: Word embeddings  introdução, motivação e exemplos

Font

e: h

ttps:

//dee

plea

rnin

g4j.o

rg/w

ord2

vec

28

Page 29: Word embeddings  introdução, motivação e exemplos

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

Page 30: Word embeddings  introdução, motivação e exemplos

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

Page 31: Word embeddings  introdução, motivação e exemplos

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

Page 32: Word embeddings  introdução, motivação e exemplos

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

Page 33: Word embeddings  introdução, motivação e exemplos

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

Page 34: Word embeddings  introdução, motivação e exemplos

Word2Vec

● O Word2Vec (2013) foi uma forma especialmente eficiente de treinar Word Embeddings

34

Page 35: Word embeddings  introdução, motivação e exemplos

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

Page 36: Word embeddings  introdução, motivação e exemplos

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

Page 37: Word embeddings  introdução, motivação e exemplos

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

Page 38: Word embeddings  introdução, motivação e exemplos

Word2Vec

● O modelo Word2vec é uma rede neural linear, com apenas uma camada.

38

Page 39: Word embeddings  introdução, motivação e exemplos

Word2Vec

● O modelo Word2vec é uma rede neural linear, com apenas uma camada.

● Word2vec não é deep learning.

39

Page 40: Word embeddings  introdução, motivação e exemplos

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

Page 41: Word embeddings  introdução, motivação e exemplos

Casos de uso

● Embeddings podem ser usados em lugar de (ou como complemento a) features de palavras, como vetores one-hot.

41

Page 42: Word embeddings  introdução, motivação e exemplos

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

Page 43: Word embeddings  introdução, motivação e exemplos

Trabalhos futuros

● Como compor word embeddings para formar embeddings de coisas como frases, parágrafos e até documentos inteiros?

43

Page 44: Word embeddings  introdução, motivação e exemplos

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

Page 45: Word embeddings  introdução, motivação e exemplos

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

Page 46: Word embeddings  introdução, motivação e exemplos

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

Page 47: Word embeddings  introdução, motivação e exemplos

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

Page 48: Word embeddings  introdução, motivação e exemplos

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