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 W1 o E, funciona como la matriz de incrustaciones. Cada fila de esta matriz representa un vector de incrustación para una palabra correspondiente, donde la fila i coincide con la palabra i en el vocabulario.
Esta matriz contiene V (tamaño del vocabulario) incrustaciones, cada una de tamaño N, una dimensión que especificamos. Multiplicar la transpuesta de esta matriz (matriz de N×V) por un vector codificado one-hot (vector de V×1) recupera la incrustación para una palabra específica, produciendo un vector de N×1.
La segunda matriz de pesos, entre las capas oculta y de salida, tiene un tamaño de N×V. Multiplicar la transpuesta de esta matriz (matriz de V×N) por el vector de la capa oculta de N×1 da como resultado un vector de V×1.
CBoW
A continuación, un ejemplo de uso de un modelo 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 W2, resultando en un vector de V×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.
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:
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×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.
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.
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 W1 en la red neuronal?
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla