La función Softmax requerida para normalizar las probabilidades de vectores de palabras para una palabra dada implica la normalización de todo el vocabulario. Esto es computacionalmente prohibitivo en la mayoría de las aplicaciones del mundo real, por lo tanto, se utiliza muestreo negativo. Intuitivamente, esto se puede dividir en una parte “positiva” y “negativa”.
El objetivo de muestreo negativo que se maximiza para word2vec es el siguiente:
[matemáticas] log \ sigma (v_I ^ Tv_o) + \ sum_ {i = 1} ^ k E_ {w_i -> P_v} [\ sigma (-v_ {w_i} ^ Tv_ {w_I})] [/ math]
- ¿Qué tan útil es el aprendizaje profundo para problemas P> N?
- ¿Puedo usar el aprendizaje automático para pronosticar datos de series temporales para puntos de datos discretos dispersos?
- ¿Cómo es usar Theano en Python?
- ¿Cómo se puede aplicar el aprendizaje automático al póker?
- Aprendizaje automático: al construir un modelo de regresión lineal, ¿cómo decido entre variar el grado del polinomio y variar el parámetro de regularización?
Tenga en cuenta que
[matemáticas] \ sigma (-x) = 1- \ sigma (x) [/ matemáticas]
Esto significa que la parte positiva que modela la probabilidad de que la palabra coexista con la palabra de salida se está maximizando. La parte negativa está tratando de minimizar la probabilidad esperada de que una palabra aleatoria coexista con la palabra de entrada, maximizando 1: la probabilidad de hacer exactamente eso.
Esta es la mayor intuición detrás del muestreo negativo y proviene de la estimación contrastante de ruido que dice que un buen modelo debería ser capaz de distinguir los datos del ruido. La parte negativa de esta ecuación modela el ruido en cierto sentido.