Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Modelos CBoW y Skip-Gram | Embeddings de Palabras
Introducción al NLP con Python

Modelos CBoW y Skip-Gram

Desliza para mostrar el menú

Se recomienda tener un conocimiento básico de redes neuronales para este capítulo. Si no estás familiarizado con el tema, puedes explorar este curso:

Tanto las arquitecturas CBoW como Skip-gram aprenden incrustaciones de palabras mediante una estructura de red neuronal que consta de las siguientes capas:

  • una capa de entrada;
  • una sola capa oculta;
  • una capa de salida.

La matriz de pesos entre las capas de entrada y oculta, denotada como W1W^1 o EE, funciona como la matriz de incrustaciones. Cada fila de esta matriz representa un vector de incrustación para una palabra correspondiente, donde la fila ii coincide con la palabra ii en el vocabulario.

Esta matriz contiene VV (tamaño del vocabulario) incrustaciones, cada una de tamaño NN, una dimensión que especificamos. Multiplicar la transpuesta de esta matriz (matriz de N×VN \times V) por un vector codificado one-hot (vector de V×1V \times 1) recupera la incrustación para una palabra específica, produciendo un vector de N×1N \times 1.

Matriz de embeddings

La segunda matriz de pesos, entre las capas oculta y de salida, tiene un tamaño de N×VN \times V. Multiplicar la transpuesta de esta matriz (matriz de V×NV \times N) por el vector de la capa oculta de N×1N \times 1 da como resultado un vector de V×1V \times 1.

CBoW

A continuación, un ejemplo de uso de un modelo CBoW:

CBoW

Primero, la transpuesta de la matriz de embeddings se multiplica por los vectores one-hot de las palabras de contexto para producir sus embeddings. Estos embeddings luego se suman o promedian según la implementación para formar un solo vector. Este vector se multiplica por la matriz W2W^2, resultando en un vector de V×1V \times 1.

Finalmente, este vector pasa por la función de activación softmax, convirtiéndolo en una distribución de probabilidad, donde cada elemento representa la probabilidad de que una palabra del vocabulario sea la palabra objetivo.

Softmax

Luego, se calcula la pérdida y ambas matrices de pesos se actualizan para minimizar dicha pérdida. Idealmente, se busca que la probabilidad de la palabra objetivo sea cercana a 1, mientras que las probabilidades de todas las demás palabras tienden a cero. Este proceso se repite para cada combinación de una palabra objetivo y sus palabras de contexto.

Una vez procesadas todas las combinaciones, se completa una época. Normalmente, la red neuronal se entrena durante varias épocas para garantizar un aprendizaje preciso. Finalmente, las filas de la matriz de embeddings resultante pueden utilizarse como nuestros embeddings de palabras. Cada fila corresponde a la representación vectorial de una palabra específica del vocabulario, capturando de manera efectiva sus propiedades semánticas dentro del modelo entrenado.

Skip-gram

Ahora veamos un modelo skip-gram:

Skip-gram

Como puedes ver, el proceso es en su mayoría similar a CBoW. Comienza recuperando la representación vectorial de la palabra objetivo, que luego se utiliza en la capa oculta. A continuación, se produce un vector de V×1V \times 1 en la capa de salida. Este vector, obtenido al multiplicar la representación de la palabra objetivo con la matriz de pesos de la capa de salida, se transforma mediante la función de activación softmax en un vector de probabilidades.

Note
Nota

Aunque este vector resultante de probabilidades es el mismo para todas las palabras de contexto asociadas a una sola palabra objetivo durante un solo paso de entrenamiento, la pérdida para cada palabra de contexto se calcula individualmente.

La pérdida para cada palabra de contexto se suma, y las matrices de pesos se actualizan en cada iteración para minimizar la pérdida total. Una vez completado el número especificado de épocas, la matriz de representaciones puede utilizarse para obtener los vectores de palabras.

Note
Estudiar más

En la práctica, especialmente con vocabularios grandes, la función softmax puede ser demasiado intensiva computacionalmente. Por lo tanto, se emplean aproximaciones como el muestreo negativo para hacer el cálculo más eficiente.

1. Rellena los espacios en blanco

2. ¿Qué representa la primera matriz de pesos W1W^1 en la red neuronal?

question-icon

Rellena los espacios en blanco

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Haz clic o arrastra y suelta elementos y completa los espacios

question mark

¿Qué representa la primera matriz de pesos W1W^1 en la red neuronal?

Selecciona la respuesta correcta

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 4. Capítulo 2

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 4. Capítulo 2
some-alt