27 votos

¿Cómo funciona el muestreo negativo en word2vec?

Me he esforzado por entender el concepto de muestreo negativo en el contexto de word2vec. No consigo digerir la idea del muestreo [negativo]. Por ejemplo en los documentos de Mikolov la expectativa muestral negativa se formula como

$$\log \sigma(\langle w,c\rangle ) + k \cdot \mathbb E_{c_N\sim PD}[\log\sigma(\langle w,c_N\rangle)].$$

Entiendo el término de la izquierda $\log \sigma(\langle w,c\rangle)$ pero no puedo entender la idea de muestrear pares palabra-contexto negativos.

40voto

Ivan Puntos 31

La cuestión

El aprendizaje de los vectores de palabras mediante una red neuronal "estándar" plantea algunos problemas. De este modo, los vectores de palabras se aprenden mientras la red aprende a predecir el siguiente palabra dado un ventana de palabras (la entrada de la red).

Predecir la siguiente palabra es como predecir la clase. Es decir, una red de este tipo no es más que un clasificador multinomial (multiclase) "estándar". Y esta red debe tener tantas neuronas de salida como clases haya. Cuando las clases son palabras reales, el número de neuronas es, bueno, enorme .

Una red neuronal "estándar" suele entrenarse con un entropía cruzada función de coste que requiere que los valores de las neuronas de salida representen probabilidades - lo que significa que las "puntuaciones" de salida calculadas por la red para cada clase tienen que ser normalizadas, convertidas en probabilidades reales para cada clase. Este paso de normalización se consigue mediante la función softmax función. Softmax es muy costoso cuando se aplica a una capa de salida enorme.

La solución (a)

Para solucionar este problema, es decir, el costoso cálculo del softmax, Word2Vec utiliza una técnica llamada estimación contrastiva del ruido. Esta técnica fue introducida por [A] (reformulada por [B]) y luego utilizada en [C], [D], [E] para aprender incrustaciones de palabras a partir de textos de lenguaje natural no etiquetados.

La idea básica es convertir un problema de clasificación multinomial (como lo es el problema de predecir el siguiente palabra ) a una clasificación binaria problema. Es decir, en lugar de utilizar softmax para estimar una distribución de probabilidad real de la palabra de salida, se utiliza una regresión logística binaria (clasificación binaria).

Para cada muestra de entrenamiento, el clasificador mejorado (optimizado) recibe una par verdadero (una palabra central y otra que aparece en su contexto) y una serie de $k$ pares corruptos al azar (compuesto por la palabra central y una palabra elegida al azar del vocabulario). Al aprender a distinguir los pares verdaderos de los corruptos, el clasificador acabará aprendiendo los vectores de palabras.

Esto es importante: en lugar de predecir la siguiente palabra (la técnica de entrenamiento "estándar"), el clasificador optimizado simplemente predice si un par de palabras es buena o mala .

Word2Vec ligeramente personaliza el proceso y lo llama muestreo negativo . En Word2Vec, las palabras de las muestras negativas (utilizadas para los pares corruptos) se extraen de una distribución especialmente diseñada, que favorece que las palabras menos frecuentes se extraigan con mayor frecuencia.

Referencias

[A] (2005) - Estimación contrastiva: Entrenamiento de modelos log-lineales con datos no etiquetados

[B] (2010) - Estimación contrastiva del ruido: Un nuevo principio de estimación para modelos estadísticos no normalizados

[C] (2008) - Una arquitectura unificada para el procesamiento del lenguaje natural: Redes neuronales profundas con aprendizaje multitarea

[D] (2012) - Un algoritmo rápido y sencillo para entrenar modelos lingüísticos probabilísticos neuronales .

[E] (2013) - Aprendizaje eficiente de incrustaciones de palabras con estimación contrastiva de ruido .


La respuesta se basa en unas notas mías más antiguas - espero que sean correctas :)

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X