Modelos CBOW y Skip-gram
Desliza para mostrar el menú
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 única 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 del vocabulario.
Esta matriz contiene V (tamaño del vocabulario) incrustaciones, cada una de tamaño N, una dimensión que se especifica. 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 N×1 de la capa oculta da como resultado un vector de V×1.
CBoW
Ahora, observe 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 dependiendo de 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éndose en una distribución de probabilidad, donde cada elemento representa la probabilidad de que una palabra del vocabulario sea la palabra objetivo.
Después, se calcula la pérdida y ambas matrices de pesos se actualizan para minimizar esta pérdida. Idealmente, se desea que la probabilidad de la palabra objetivo sea cercana a 1, mientras que las probabilidades de todas las demás palabras tiendan a cero. Este proceso se repite para cada combinación de una palabra objetivo y sus palabras de contexto.
Una vez que se han procesado todas las combinaciones, se completa una época. Normalmente, la red neuronal se entrena durante varias épocas para asegurar 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 efectivamente sus propiedades semánticas dentro del modelo entrenado.
Skip-gram
Ahora veamos un modelo skip-gram:
Como puedes observar, 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, es transformado por 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 único paso de entrenamiento, la pérdida para cada palabra de contexto se calcula de manera individual.
La pérdida de 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