¿Cómo funciona el muestreo negativo en word2vec?

19

He estado tratando de entender el concepto de muestreo negativo en el contexto de word2vec. No puedo digerir la idea del muestreo [negativo]. Por ejemplo en los documentos de Mikolov, la expectativa de muestreo negativa se formula como

Iniciar sesiónσ(w,C)+kmiCnortePAGre[Iniciar sesiónσ(-w,Cnorte)].

Entiendo el término izquierdo , pero no puedo entender la idea de muestrear pares negativos de contexto de palabras.Iniciar sesiónσ(w,C)

Upendra Kumar
fuente
44
Es ridículo cuán dispersa es la documentación para word2vec. Encontrará las derivaciones de muestreo negativas aquí: arxiv.org/pdf/1402.3722v1.pdf
Alex R.
Revisé la explicación que usted mencionó y entendí las matemáticas detrás de esto. Pero no puedo digerir la intuición detrás del muestreo.
Upendra Kumar el
Relacionado: stackoverflow.com/a/27864657
ameeba dice Reinstate Monica

Respuestas:

27

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 a partir 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 una cantidad de pares corruptos al azark (que consisten 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 sin etiquetar

[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 .


La respuesta se basa en algunas notas antiguas mías, espero que sean correctas :)

turdus-merula
fuente
2
Usted ha mencionado, "in Word2Vec, the words for the negative samples (used for the corrupted pairs) are drawn from a specially designed distribution, which favours less frequent words to be drawn more often". Me pregunto si esto es correcto. Porque algunas otras fuentes dicen que las palabras más frecuentes se muestrean como muestras negativas. Essentially, the probability for selecting a word as a negative sample is related to its frequency, with more frequent words being more likely to be selected as negative samples.
Tyler 傲 来 国 主
Por cierto, ¿cuál es la razón para elegir entre palabras frecuentes altas o bajas como muestras negativas? ¿El muestreo aleatorio de palabras sin contexto no es lo suficientemente bueno?
Tyler 傲 来 国 主
@Tyler 傲 来 国 主 Según tengo entendido, las palabras menos frecuentes son más informativas, ya que tienden a ser específicas del contexto. Las palabras más frecuentes tienden a asociarse con muchas otras palabras más (tome el ejemplo extremo "the"). Esto hace que las palabras poco frecuentes sean "más difíciles" de entender correctamente (se aprende más rápido) y también reduce la posibilidad de elegir una palabra que en realidad no sea una muestra negativa (ya que con grandes corpus, verificar esto es costoso y a menudo se omite).
drevicko
@drevicko Las palabras menos frecuentes son más informativas, pero las palabras menos frecuentes como muestras negativas son menos informativas. Según la teoría de la información, cuanto mayor es la probabilidad, menor es la autoinformación. El evento de palabras frecuentes como muestras negativas para una palabra objetivo dada debería ser de menor probabilidad, lo que significa mayores cantidades de información.
Tyler 傲 来 国 主