¿Cuáles son la bolsa continua de palabras y arquitecturas de salto de gramo?

Ambas arquitecturas describen cómo la red neuronal “aprende” las representaciones de palabras subyacentes para cada palabra. Dado que el aprendizaje de representaciones de palabras es esencialmente no supervisado, necesita alguna forma de “crear” etiquetas para entrenar el modelo. Skip-gram y CBOW son dos formas de crear la “tarea” para la red neuronal: puede pensar en esto como la capa de salida de la red neuronal, donde creamos “etiquetas” para la entrada dada (que depende de la arquitectura) .

Para las dos descripciones a continuación, suponemos que la palabra actual en una oración es [math] w_i [/ ​​math].

CBOW : La entrada al modelo podría ser [matemáticas] w_ {i-2}, w_ {i-1}, w_ {i + 1}, w_ {i + 2} [/ matemáticas], las palabras anteriores y siguientes de la palabra actual en la que estamos La salida de la red neuronal será [math] w_i [/ ​​math]. Por lo tanto, puede pensar en la tarea como ” predecir la palabra dado su contexto
Tenga en cuenta que la cantidad de palabras que usamos depende de su configuración para el tamaño de la ventana.

Saltar-gramo : la entrada al modelo es [matemática] w_i [/ ​​matemática], y la salida podría ser [matemática] w_ {i-1}, w_ {i-2}, w_ {i + 1}, w_ { i + 2} [/ matemáticas]. Entonces la tarea aquí es ” predecir el contexto dado una palabra “. Además, las palabras más distantes tienen menos peso al muestrearlas al azar. Cuando define el parámetro de tamaño de ventana, solo configura el tamaño máximo de ventana. El tamaño real de la ventana se elige aleatoriamente entre 1 y el tamaño máximo para cada muestra de entrenamiento, lo que resulta en palabras con la distancia máxima observada con una probabilidad de 1 / c, mientras que las palabras directamente al lado de la palabra dada siempre se observan (!). (corrección gracias a Christina Korger )

De acuerdo con Mikolov:

Skip-gram: funciona bien con una pequeña cantidad de datos de entrenamiento, representa bien incluso palabras o frases raras.
CBOW: varias veces más rápido para entrenar que el salto de gramo, precisión ligeramente mejor para las palabras frecuentes
Esto puede ser aún más complicado si considera que hay dos formas diferentes de entrenar los modelos: el softmax jerárquico normalizado y el muestreo negativo no normalizado. Ambos funcionan de manera muy diferente.

lo que tiene sentido ya que con el salto de gramo, puede crear muchas más instancias de entrenamiento a partir de una cantidad limitada de datos, y para CBOW, necesitará más, ya que está condicionando el contexto, lo que puede ser exponencialmente enorme.

El modelo de bolsa de palabras se usa para representar una colección desordenada de palabras como un vector. Uno de los usos más comunes es la clasificación simple de documentos, un ejemplo de esto podría ser la tarea de clasificar un correo electrónico como spam. En este ejemplo, el modelo BOW solo nos proporciona un método para representar un correo electrónico en una forma simple (llamada vector de características) que podemos presentar a un clasificador. En el modelo BOW, esta forma simple es solo un histograma de la aparición de cada palabra en el texto (correo electrónico). Entonces, continuando con este ejemplo de correo electrónico, imagine que se nos dan dos correos electrónicos que no modelaremos (representaremos en una forma más simple) usando el modelo BOW:

“Hola Fred, ¿cómo estuvo la pizza?”
Y
“Hola Fred, oferta de pizza: dos por uno”

Entonces, lo primero que hacemos es crear un vocabulario, que en este caso sería:
{Hola, Fred, cómo, fue, la pizza, oferta, dos, por uno}
Luego, utilizando este vocabulario, creamos un histograma para cada correo electrónico; que es un recuento ordenado de cada una de las palabras en el vocabulario, en el correo electrónico.

Lo que daría:
[1,1,1,1,1,1,0,0,0,0]
Y
[1,1,0,0,0,1,1,1,1,1]
Estos vectores ahora se pueden usar para entrenar un clasificador o para una amplia gama de aplicaciones, por ejemplo, ahora puede calcular fácilmente alguna medida de cuán simulares son los correos electrónicos al considerar que los vectores tienen puntos en un espacio de 10 dimensiones y calcular su distancia euclidien .

Disculpas por el terrible ejemplo, no había anticipado lo tedioso que sería escribir una respuesta usando un teléfono 🙂 si aún es difícil de entender o si lo he simplificado demasiado, intentaré editar mi respuesta mañana desde mi computadora portátil.

PD: describir un vector de características como una forma más simple es extremadamente simple, pero funciona para esta explicación. Ah, y en cuanto al modelo skip-gram, lo siento, no he oído hablar de él.

Del ejemplo de Jono, la frase “Hola Fred, ¿cómo estuvo la pizza?” se convierte en:
Bolsa continua de palabras: 3 gramos {“Hola Fred cómo”, “Fred cómo estuvo”, “Cómo estuvo el”, …}
Saltar-gramo 1-saltar 3-gramos: {“Hola Fred cómo”, “Hola Fred fue”, “Fred cómo estuvo”, “Fred cómo”, …}
Observe que “Hola Fred fue” salta sobre “cómo”.
Esos son el significado general de CBOW y skip gram. En este caso, el salto de gramo es 1 salto de n-gramos.

Mayor simplificación:

CBOW: El gato comió _____. Complete el espacio en blanco, en este caso, es “comida”.

Saltar-gramo: ___ ___ ___ comida. Completa el contexto de la palabra. En este caso, es “El gato comió”

Tenga en cuenta que esta es una simplificación excesiva importante para el propósito de una introducción, los matices reales, como el muestreo negativo, son las contribuciones verdaderamente apreciadas de Word2Vec y le recomiendo que los estudie.

También hay algunos ejemplos excelentes en este documento que incluyen algunas de las motivaciones de usar saltos de gramos en comparación con n-gramos continuos que pueden incluir problemas de escasez de datos:

Página en ed.ac.uk