representaciÓn de palabras como vectores (word vector

Post on 22-Jul-2022

6 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

REPRESENTACIÓN DE PALABRAS COMO VECTORES(WORD VECTOR REPRESENTATIONS)

SEMINARIO DE APRENDIZAJE PROFUNDO APLICADO AL PROCESAMIENTO DE LENGUAJE NATURAL

2016

¿QUÉ TAREAS QUEREMOS HACER?

• Clasificación

• Recuperación de información (information retriveal)

• Traducción

• Reconocimiento de voz (speech recognition)

• Análisis de sentimiento (Sentiment analisys)

• Otros NER, SRL, POS, etc…

¿CÓMO LO HACEMOS?

Entrada (texto)

Algoritmo de aprendizaje

Salida

EL PROBLEMA….

• La computadora no entiende

palabras.

• Podemos enumerar todas las

palabras del vocabulario V con el

que trabajamos y mapear estas

palabras con números del 1 al |V|.

Palabra Id (w)

Soleado 1

Es 2

Día 3

Un 4

Hoy 5

Vocabulario

Hoy es un día soleado

5 2 4 3 1

PERO….

• Si usamos este enfoque le estamos brindando información que seguramente es

falsa al algoritmo de aprendizaje por lo que puede llegar a resultados

erróneos.

• PRINCIPALES PROBLEMAS

• Distancia entre palabras

• Relación de orden entre palabras

ONE-HOT ENCODING

• Utilizamos vectores de tamaño |V|

• Utilizamos la representación que mapea una palabra a un número

• El vector (one-hot vector) que la palabra con un determinado id, es un vector lleno

de ceros salvo en la posición id donde contiene un 1.

• De esta forma tenemos vectores ortogonales que mantienen la distancia y no tienen

un orden implícito.

• Siguiendo el ejemplo anterior:

Día (id=3)

Soleado (id=1)

0 0 1 0 0

1 0 0 0 0

PROBLEMAS CON ONE-HOT ENCODING

• Dimensión muy alta (high-dimensional)

• La dimensión de los vectores es igual al tamaño del vocabulario

• Seguramente decenas o cientos de miles

• Los problemas

• Posibilidad de sobreajuste (Overfitting).

• Millones de entradas pueden significar millones de parámetros a ajustar

• Computacionalmente costoso

• No todas las operaciones se pueden realizar con matrices dipersas (ej reconstrucción en autoencoders)

• No agrega información

• Evita asunciones falsas por parte del algoritmo de aprendizaje, pero no aporta información verdadera acerca

de relaciones entre las palabras

WORD EMBEDDING

• Cada palabra se representa con un vector

• Vectores “densos”

• Usualmente de dimensión entre 50 y 1000

• Auto-aprendidos

• Palabras semánticamente similares tienen representaciones similares o

“cercanas”.

EJEMPLO

UN POCO DE HISTORIA…

• El término “word embedding”, nace en 2003 en un trabajo de Bengio et al.

• Los primero en demostrar la utilidad de “word embeddings” pre-entrenados

fueron Collobert y Weston en 2008

• En 2014 Mikolov et al. liberaron word2vec, lo que tuvo un gran impacto y

popularizó este método

• Decenas de trabajos se han realizado basados en word2vec, muchos de ellos

alcanzando el estado del arte para el área que trataban.

WORD EMBEDDINGS - PRINCIPALES MÉTODOS

• Latent Semantic Indexing (Deerwester et al., ’88).

• Neural Net Language Models (NN-LMs) (Bengio et al., ’06)

• Convolutional Nets for tagging (SENNA) (Collobert & Weston, ’08).

• Supervised Semantic Indexing (Bai et al, ’09).

• Wsabie (Weston et al., ’10).

• Recurrent NN-LMs (Mikolov et al., ’10).

• Recursive NNs (Socher et al., ’11).

• Word2Vec (Mikolov et al., ’13).

• Paragraph Vector (Le & Mikolov, ’14).

MODELADO DEL LENGUAJE

• Un modelo de lenguaje es un modelo probabilístico que asigna

probabilidades a cualquier secuencia de palabras p(w1, ... ,wT).

• Modelado de lenguaje es la tarea de aprender un modelo de lenguaje que asigna altas

probabilidades a oraciones bien formadas.

• Desempeña un papel crucial en los sistemas de traducción de reconocimiento de voz y de

la máquina

A smart person

Una persona inteligente

A person smart

MODELO DE N-GRAMA

• Un n-grama es una secuencia de n palabras

• Unigramas (n=1): “es”, “una”, “secuencia”, etc.

• Bigramas (n=2): [“es”, “una”], [“una”, “secuencia”], etc.

• Trigramas (n=4): [“es”, “una”, “secuencia”], [ “una”, “secuencia”, “de”], etc.

• Permiten hacer una predicción estadística del próximo elemento de cierta

secuencia de elementos sucedida hasta el momento.

• Los recuentos de n-gramas son obtenidos de un corpus de entrenamiento.

PROBLEMAS CON EL MODELO DE N-GRAMA

• Problema: Data sparsity

• Queremos un “n” grande para que el modelo sea realista

• Pero… para valores grandes de “n”, es probable que un n-grana no haya sido

observado en el corpus de entrenamiento.

• Podemos intentar “suavizar” los recuentos

• Combinar count(w1 , w2 , w3 , w4), count(w2 , w3 , w4), count(w3 , w4), and count(w4) para

estimar p(w4 |w1, w2, w3)

• Esto resuelve el problema tan solo en parte

HIPÓTESIS DISTRIBUCIONAL

• La hipótesis distribucional (Distributional Hypothesis), en lingüística se deriva

de la teoría semántica de uso del lenguaje, es decir

• Las palabras que son utilizadas y aparecen en contextos iguales tienden a tener

significados similares.

“words that are used and occur in the same contexts tend to purport similar meanings.”

Harris, Z. (1954). Distributional structure

• Conocerás una palabra por la compañía que mantiene.

‘You shall know a word by the company it keeps’. Firth, J.R. (1957). A synopsis of linguistic

theory 1930-1955

MODELO DE LENGUAJE DE REDES NEURONALES

• Modelar la probabilidad

p(wt | wt−(n−1) , ... ,wt−1)

Mediante una red neuronal

• Podremos aprender representaciones de

palabras que permitan un mapeo para n-

gramas que no han sido observados.

• Para generar una probabilidad se utiliza

una capa softmax

Classic neural language model (Bengio et al., 2003)

MODELO DEL LENGEUAJE DE REDES NEURONALES

• Potencialmente puede generalizar a contextos que no han sido observados en

el conjunto de entrenamiento.

• Ejemplo: P(“comiendo” | “el”, ”gato”, ”está”)

Imaginemos que el 4-grama [“el”, “gato”, “está”, ”comiendo” ] no está en el corpus de

entrenamiento, pero [“el”, “perro”, “está”, ”comiendo” ] sí lo está.

Si las representaciones de “gato” y “perro” son similares, entonces la red neuronal

puede ser capaz de generalizar al caso del “gato”

Las redes neuronales pueden aprender representaciones de palabras similares para

estas palabras basado en otro 4-gramas como:

[“el”, “gato”, “está”, ” durmiendo” ]

[“el”, “perro”, “está”, ”durmiendo” ]

WORD2VEC

• Herramienta para el cálculo de las representaciones de palabras distribuidas y

continuas.

• Presentado en “Efficient Estimation of Word Representations in Vector Space.”

Mikolov et al. (2013) - Google

• ¿Deep learning?

• Sin capas ocultas…

• 2 algoritmos

• Modelo CBOW (continuous bag of words)

• Red neuronal de una capa

• Modelo Skip-gram

WORD2VEC

• Diferencias con enfoques anteriores (como NNLM)

• Elimina la capa oculta no lienal

• Utiliza una ventana (toma como contexto el pasado y el futuro)

• La capa de proyección se comparte para todas las entradas

• Utiliza métodos de optimización como “negative sampling”

WORD2VEC – ESTRUCTURA GENERAL

https://iksinc.wordpress.com/tag/continuous-bag-of-words-cbow/

WORD2VEC – ESTRUCTURA GENERAL (EJEMPLO)

• Supongamos que tenemos el corpus:

• “the dog saw a cat”, “the dog chased the cat”, “the cat climbed a tree”

• Usamos vectores de dimensión tres (3 neuronas en la capa oculta)

• Por lo tantos las matrices WI and WO serán de 8×3 y 3×8 respectivamente

• Inicializamos los valores para las matrices de forma aleatoria

WI =

WO =

WORD2VEC – ESTRUCTURA GENERAL (EJEMPLO 2)

• Nos interesa aprender la relación entre las palabras “cat” y “climbed”

• O sea queremos que la red neuronal muestre con alta probabilidad “climbed” cuando la

palabra “cat” es la entrada de la red.

• Utilizamos one-hot encoding para representar las palabras.

• El vector de entrada correspondiente a la palabra “cat” es [0 1 0 0 0 0 0 0]t

• El vector objetivo correspondiente a la palabra “climbed” es [0 0 0 1 0 0 0 0 ]t

• Ht = XtWI = [-0.490796 -0.229903 0.065460]

• Ht coincide con la 3er fila de la matriz WI

WORD2VEC – ESTRUCTURA GENERAL (EJEMPLO 3)

• La salida de la red (del tamaño del vocabulario) es

• HtWO = [0.100934 -0.309331 -0.122361 -0.151399 0.143463 -0.051262 -

0.079686 0.112928]

• Siendo que lo que queremos calcular es la probabilidad Pr(wordk|wordcontext) para

k=1,..,|V|

• Para esto word2vec utiliza softmax que se puede calcular de la siguiente forma:

• activation(n) representa la salida de la n-esima neurona de la capa de salida

WORD2VEC – ESTRUCTURA GENERAL (EJEMPLO 4)

• Por lo tanto las probabilidades para las neuronas de la capa de salida:

[ 0.143073, 0.094925, 0.114441, 0.111166, 0.149289, 0.122874, 0.119431, 0.144800 ]

• Dado el vector objetivo [0 0 0 1 0 0 0 0 ]t, el vector de error se puede calcular

fácilmente restando el vector de probabilidades al vector objetivo.

• Luego simplemente mediante backpropagation se propaga el error hacia atrás y

se ajustan los valores.

• Al final la matriz WI contiene los vectores que representan las palabras.

SKIP-GRAM AND CBOW MODELS

Efficient Estimation of Word Representations in Vector Space by Tomas Mikolov, et al.

MODELO CBOW

• Dado un contexto (una ventana de palabras), busca predecir una palabra

objetivo (o palabra actual).

• Ej. Dados wi-2, wi-1, wi+1, wi+2 wi

• Tres capas

• Capa de entrada

• Capa de proyección

• Capa de salida

• Se llama “Continuous bag-of-words” ya que no tiene en cuenta el orden de

las palabras,

MODELO CBOW

• En este caso tenemos C palabras en el contexto que

se corresponden con C entradas.

ℎ =1

𝐶𝑊 𝑥1 + 𝑥2 +⋯+ 𝑥𝐶 =

1

𝐶(𝑣𝑤1 + 𝑣𝑤2 +⋯+ 𝑣𝑤𝑐)

• Donde C es el número de entradas, x1,…,xC son las

entradas, y vw1,…,vwC son los vectores de w que

corresponden a cada palabra

• Al ajustar los pesos en el backpropagation debemos

recordar que hicimos esta modificaciónword2vec Parameter Learning Explained - Xin Rong

MODELO SKIP-GRAM

• Dada una palabra intenta predecir el contexto en el que aparecerá.

• Ej. Dado wi wi-2, wi-1, wi+1, wi+2

• Tres capas

• Capa de entrada

• Capa de proyección

• Capa de salida

• Mikolov recomienda su uso junto a Negative Sampling ya que da mejores

resultados que CBOW en tareas similares.

MODELO SKIPGRAM

• En este caso tenemos C palabras en el contexto

que se corresponden con C salidas.

• Se calcula una salida para cada palabra de

contexto. Se utiliza el mismo W’ (WO), pero se

calcula el softmax para cada palabra.

• Se utiliza:

• Luego se calcula el vector de error para cada

palabra, y se suman los errores.word2vec Parameter Learning Explained - Xin Rong

OPTIMIZANDO WORD2VEC

• Hierarchical softmax – Huffman Tree

• Evita el cálculo de la probabilidad para todas las palabras del lenguaje.

• Sub-sampling de palabras frecuentes

• Algunas palabras como (“un”, “el”, en”, “y”,…) aparen mucho (incluso cientos de milllones

de veces) pero no aportan mucha información.

• Negative Sampling

• Para la fórmula p(c | w) = v_c * v_w/sum(v_c1 * v_w). Evita el cálculo de todos los

posibles conextos en denominador (sum) eligiendo unos pocos de forma aleatoria.

ALGUNAS PROPIEDADES INTERESANTES

https://www.tensorflow.org/versions/r0.7/tutorials/word2vec/index.html

ALGUNAS PROPIEDADES INTERESANTES

• Captura relaciones sintácticas y

semánticas de una forma sencilla

• vector(”King”) - vector(”Man”) +

vector(”Woman”)

Da como resultado un vector muy

cercano a vector(“Queen”)

WORD2VEC RESULTADOS

• Simplifica la arquitectura con respecto a otros modelos que se venían

utilizando hasta el momento

• Agrega optimizaciones como “Negative Sampling” que hacen los algorimos

más eficientes

• Gracias a estas optimizaciones permite entrenar el modelo con una gran

cantidad de datos en menor tiempo.

• En los papers se llega a entrenar el algoritmo para 1600 millones de

palabras (1.6 billon)

WORD2VEC RESULTADOS

Relationship pairs in a word embedding. From Mikolov et al. (2013b).

WORD2VEC RESULTADOS

Nótese que la dimensión para NNLM es 100 ya que el

entrenamiento para la dimensión 1000 tardaría mucho

tiempo.

Efficient Estimation of Word Representations in

Vector Space - Mikolov et al.

WEVI - DEMO

• Herramienta para visualizar el

mecanismo básico de trabajo de

word2vec

• Aprende vectores de palabras

utilizando word2vec (el mecanismo

más básico) en un pequeño

vocabulario.

• Puede ayudar a entender el modelo

• https://ronxin.github.io/wevi/

ALGUNAS APLICACIONES - TRADUCCIONES

• Representaciones de números

y animales en vectores de

palabras. A la izquierda en

inglés, a la derecha español.

• Los vectores fueron

proyectados a 2 dimensiones.

Se puede ver que en ambos

casos hay una estructura

similar, lo que indica que es

podría ser posible aprender

un mapeo lineal de un

espacio a otro.

Exploiting Similarities among Languages for Machine Translation – Mikolov et al.

ALGUNAS APLICACIONES - IMÁGENES

• Reconocer imágenes nunca vistas

• (generalizar desde objetos conocidos)

• En este caso se entrenó la red con imágenes

conocidas como auto, caballo, perro.

• Se le mostró a la red la imagen de un gato y

la red la convirtió en un vector cercano a

gato (y a perro)

• Se le mostró la imagen de un camión y la

convirtió en un vector cercano a camión

Zero-Shot Learning Through Cross-Modal Transfer – Socher et al.

ALGUNAS APLICACIONES – DESCRIBIR IMÁGENES

• Show and tell. Intenta describir

automáticamente el contenido de

una imagen.

Show and Tell: A Neural Image Caption Generator – Vinyals et al

ALGUNAS APLICACIONES – SHOW AND TELL

OTRAS APLICACIONES

• Dependency parsing

• Named entity recognition

• Document classification

• Sentiment Analysis

• Paraphrase Detection

• Word Clustering

• Machine Translation

GLOVE (GLOBAL VECTORS)

• Metodos basados en conteo

• Entrenamiento más rápido

• Uso eficiente de estadísticas

• Principalmente utilizado para capturar

similitud de palabras

• Da importancia desproporcionada a

conteos grandes

• Métodos de predicción directa

• Escala con el tamaño del corpus

• Uso ineficiente de estadísticas

• Mejora la performance en situaciones

no vistas

• Puede capturar patrones complejos

más allá de la similitud de palabras

GLOVE

• Metodo basado en conteo

• Reune las ventajas de ambos mundos

• Entrenamiento rápido

• Escala a grandes corpus

• Buen desempeño incluso para corpus pequeños y para vectores pequeños

• Toma como base que la estadística de la ocurrencia de palabras es la

principal fuente de información disponible para aprender representaciones

de palabras mediante métodos de aprendizaje no supervisado

GLOVE – IDEA BASE

• Utiliza una matriz de coocurrencias.

• Cuenta palabras en el contexto de

una palabra objetivo.

• Calcula la relación entre

probabilidades de una palabra

dadas otras dos que se quieren

relacionar.

GloVe: Global Vectors for Word Representation

Pennington et. Al.

GLOVE – IDEA BASE (EJEMPLO)

• Si la palabra k está relacionada a “ice” pero no a “steam”, en el ejemplo

k = “solid”, la relación p(solid|ice)/p(solid|steam) será grande (mucho

mayor que 1).

• Si la palabra k está relacionada a “steam” pero no a “ice”, en el ejemplo

k = “gas”, la relación p(gas|ice)/p(gas|steam) será pequeña (mucho

menor que 1).

• En cambio si la palabra k no está relacionada con ninguna o si está

relacionada con ambas de forma similar, la relación debería ser cercana

a 1.

RESULTADOS

• frog

• frogs

• toad

• litoria

• leptodactylidae

• rana

• lizard

• eleutherodactylus

Vecinos cercanos a “frog”

http://nlp.stanford.edu/projects/glove/

GLOVE – RESULTADOS - NÚMEROS

GloVe: Global Vectors for Word Representation Pennington et. Al.

PREGUNTAS

• Comentarios ?

• Ideas locas ?

top related