¿Explicación intuitiva de la pérdida de estimación de contraste de ruido (NCE)?


32

Leí sobre NCE (una forma de muestreo de candidatos) de estas dos fuentes:

Escritura de Tensorflow

Papel original

Alguien me puede ayudar con lo siguiente:

  1. Una explicación simple de cómo funciona NCE (encontré lo anterior difícil de analizar y comprender, por lo que algo intuitivo que conduzca a las matemáticas presentadas allí sería genial)
  2. Después del punto 1 anterior, una descripción naturalmente intuitiva de cómo esto es diferente del muestreo negativo. Puedo ver que hay un ligero cambio en la fórmula pero no puedo entender las matemáticas. Tengo una comprensión intuitiva del muestreo negativo en el contexto de word2vec: elegimos al azar algunas muestras del vocabulario Vy actualizamos solo aquellas porque |V|es grande y esto ofrece una aceleración. Por favor corrija si está equivocado.
  3. ¿Cuándo usar cuál y cómo se decide? Sería genial si pudiera incluir ejemplos (posiblemente aplicaciones fáciles de entender)
  4. ¿Es NCE mejor que el muestreo negativo? ¿Mejor de qué manera?

Gracias.


puede ser mi publicación puede ayudar. nanjiang.quora.com/Noise-contrastive-Estimation y luego experimente con theano se puede encontrar en mi github.com/jiangnanHugo/language_modeling. Espero que mi comprensión sea correcta.
jiangnan hugo

Respuestas:


27

Tomado de esta publicación: https://stats.stackexchange.com/a/245452/154812

La cuestión

Hay algunos problemas con el aprendizaje de los vectores de palabras usando una red neuronal "estándar". De esta manera, los vectores de palabras se aprenden mientras la red aprende a predecir la siguiente palabra dada una ventana de palabras (la entrada de la red).

Predecir la siguiente palabra es como predecir la clase. Es decir, dicha red es solo un clasificador multinomial (multiclase) "estándar". Y esta red debe tener tantas neuronas de salida como clases hay. Cuando las clases son palabras reales, la cantidad de neuronas es, bueno, enorme.

Una red neuronal "estándar" generalmente se entrena con una función de costo de entropía cruzada 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 deben normalizarse, convertirse en probabilidades reales para cada clase. Este paso de normalización se logra mediante la función softmax. Softmax es muy costoso cuando se aplica a una gran capa de salida.

La (a) solución

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

La idea básica es convertir un problema de clasificación multinomial (como es el problema de predecir la siguiente palabra) en un problema de clasificación binaria. Es decir, en lugar de utilizar softmax para estimar una verdadera distribución de probabilidad 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 un par verdadero (una palabra central y otra palabra que aparece en su contexto) y un número de kk pares corruptos al azar (que consiste en la palabra central y una palabra elegida al azar del vocabulario). Al aprender a distinguir los pares verdaderos de los corruptos, el clasificador finalmente aprenderá la palabra vectores.

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 bueno o malo.

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

Referencias

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

[B] (2010) - Estimación de contraste de 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 simple para entrenar modelos de lenguaje neural probabilístico .

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


3

Honestamente, no hay una forma intuitiva de entender por qué la pérdida de NCE funcionará sin comprender profundamente sus matemáticas. Para comprender las matemáticas, debe leer el documento original.

k

(X,y)ykk

Δsθ0 0(w,h)=sθ0 0(w,h)-Iniciar sesiónkPAGSnorte(w)

PAGSnorte(w)

knortenorte=k

Los documentos originales de NCE omitieron mucho las derivaciones de la prueba, por lo que es realmente difícil de entender NCE. Para entender las matemáticas sobre NCE más fácilmente, tengo una publicación de blog sobre esto que anota las matemáticas de los documentos de NCE:

https://leimao.github.io/article/Noise-Contrastive-Estimation/ .

La universidad de segundo año o superior debería poder entenderlo.


1

Básicamente, esto es seleccionar una muestra de la distribución verdadera que consiste en la clase verdadera y algunas otras etiquetas de clase ruidosas. Luego tomando el softmax sobre él.

Esto se basa en el muestreo de palabras de distribución verdadera y distribución de ruido.

Aquí la idea básica es entrenar el clasificador de regresión logística que puede separar las muestras obtenidas de la distribución verdadera y la muestra obtenida de la distribución del ruido. Recuerde Cuando hablamos de las muestras obtenidas de la distribución verdadera, estamos hablando de una sola muestra que es la clase verdadera obtenida de la distribución del modelo.

Aquí he explicado sobre la pérdida de NCE y cómo difiere de la pérdida de NCE.

Estimación de contraste de ruido: Solución para el costoso Softmax.


1
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden volverse inválidas si la página vinculada cambia.
tuomastik

0

En palabras simples, el NCE es solo una función de pérdida de clasificación de etiquetas múltiples con solo 1 etiqueta positiva y k negativas.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.