word embeddings introdução, motivação e exemplos
TRANSCRIPT
Word Embeddings: Introdução, Motivação e ExemplosSeminá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éticaEmbedding(“king”) - Embedding(“man”) + Embedding(“woman”)Dá como resultadoEmbedding(“queen”)
24
25
Font
e: h
ttps:
//nlp
.sta
nfor
d.ed
u/pr
ojec
ts/g
love
/
26
Font
e: h
ttps:
//nlp
.sta
nfor
d.ed
u/pr
ojec
ts/g
love
/
27
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-vectors.md
● Keras blog: Como usar embeddings pré-treinados para classificação de texto com redes convolucionais
50