Algoritmo skip-gram with negative sampling

Algoritmo skip-gram with negative sampling

de Rafael Agustin Castelli Ottati -
Número de respuestas: 1

Buenas, en el libro del curso se describe un algoritmo de skip-gram distinto al visto en clase. En particular, se trata el problema como un problema de regresion logísitica sobre una clase binaria (la palabra es o no una palabra de contexto para la palabra objetivo), en vez de entrenar una red neuronal que para cada palabra de contexto de como salida una distribución de probabilidad (que si no me equivoco fue lo que dimos en clase). Me quedaron entonces las 2 siguientes preguntas:

¿Son equivalentes ambos algoritmos?

En el caso del entrenamiento de la red neuronal: ¿Dónde se usan los ejemplos negativos? ¿Cuáles serían los ejemplos etiquetados para aprender?

Saludos,

Rafael.

En respuesta a Rafael Agustin Castelli Ottati

Re: Algoritmo skip-gram with negative sampling

de Luis Chiruzzo -
Hola,

Las dos formulaciones son equivalentes. El libro presenta el algoritmo skip-gram antes de introducir las redes neuronales, así que lo presenta como un problema de regresión logística.

Para ver lo de negative sampling, consideremos que los ejemplos que están en el corpus de entrenamiento son todos ejemplos positivos: si tenego "el perro ladra", a partir de la palabra "perro" voy a actualizar los pesos para que "el" y "ladra" sean más probables. Esto implicaría actualizar todos los pesos de la matriz para hacer ciertas palabras más probables, a costa de que las demás sean un poco menos probables. Para evitar recalcular todos los pesos de toda la matriz con cada ejemplo, Mikolov propuso una alternativa: por cada ejemplo positivo, sorteamos N ejemplos de palabras aleatorias (pocas, entre 5 y 20) y ajustamos solo esos pesos para tener menos probabilidad, en vez de todos. Esta es la técnica de negative-sampling, que termina siendo análoga a tomar como positivos los ejemplos del corpus, y por cada ejemplo positivo crearme N ejemplos negativos aleatorios.

Saludos,
Luis