Modèles CBoW et Skip-Gram
Une compréhension de base des réseaux de neurones est recommandée pour ce chapitre. Si vous n'êtes pas familier avec ce sujet, n'hésitez pas à consulter ce cours :
Les architectures CBoW et Skip-gram apprennent les plongements de mots à l'aide d'une structure de réseau de neurones composée des couches suivantes :
- une couche d'entrée ;
- une seule couche cachée ;
- une couche de sortie.
La matrice de poids entre les couches d'entrée et cachée, notée W1 ou E, sert de matrice d'embeddings. Chaque ligne de cette matrice représente un vecteur d'embedding pour un mot correspondant, la i-ème ligne correspondant au i-ème mot du vocabulaire.
Cette matrice contient V (taille du vocabulaire) embeddings, chacun de taille N, une dimension que nous spécifions. Multiplier la transposée de cette matrice (matrice N×V) par un vecteur one-hot encodé (vecteur V×1) permet de récupérer l'embedding pour un mot spécifique, produisant un vecteur N×1.
La deuxième matrice de poids, située entre les couches cachée et de sortie, a une taille de N×V. La multiplication de la transposée de cette matrice (matrice V×N) par le vecteur N×1 de la couche cachée donne un vecteur V×1.
CBoW
Voici un exemple d'utilisation d'un modèle CBoW :
Tout d'abord, la transposée de la matrice d'embeddings est multipliée par les vecteurs one-hot des mots du contexte afin de produire leurs embeddings. Ces embeddings sont ensuite additionnés ou moyennés selon l'implémentation pour former un vecteur unique. Ce vecteur est multiplié par la matrice W2, ce qui donne un vecteur V×1.
Enfin, ce vecteur passe par la fonction d'activation softmax, qui le convertit en une distribution de probabilités, où chaque élément représente la probabilité qu'un mot du vocabulaire soit le mot cible.
Ensuite, la perte est calculée et les deux matrices de poids sont mises à jour afin de minimiser cette perte. Idéalement, la probabilité du mot cible doit être proche de 1, tandis que les probabilités de tous les autres mots tendent vers zéro. Ce processus est répété pour chaque combinaison d’un mot cible et de ses mots de contexte.
Une fois toutes les combinaisons traitées, une époque est terminée. En général, le réseau de neurones est entraîné sur plusieurs époques afin d’assurer un apprentissage précis. Enfin, les lignes de la matrice d’embeddings résultante peuvent être utilisées comme nos embeddings de mots. Chaque ligne correspond à la représentation vectorielle d’un mot spécifique du vocabulaire, capturant efficacement ses propriétés sémantiques au sein du modèle entraîné.
Skip-gram
Examinons maintenant un modèle skip-gram :
Comme vous pouvez le constater, le processus est en grande partie similaire à CBoW. Il commence par la récupération de l’embedding du mot cible, qui est ensuite utilisé dans la couche cachée. Cela est suivi par la production d’un vecteur V×1 dans la couche de sortie. Ce vecteur, obtenu en multipliant l’embedding du mot cible par la matrice de poids de la couche de sortie, est ensuite transformé par la fonction d’activation softmax en un vecteur de probabilités.
Bien que ce vecteur résultant de probabilités soit identique pour tous les mots de contexte associés à un mot cible unique lors d'une seule étape d'entraînement, la perte pour chaque mot de contexte est calculée individuellement.
La perte pour chaque mot de contexte est additionnée, et les matrices de poids sont mises à jour en conséquence à chaque itération afin de minimiser la perte totale. Une fois le nombre d'époques spécifié atteint, la matrice d'embeddings peut être utilisée pour obtenir les embeddings de mots.
En pratique, en particulier avec de grands vocabulaires, la fonction softmax peut être trop coûteuse en calcul. Par conséquent, des approximations telles que l'échantillonnage négatif sont souvent utilisées pour rendre le calcul plus efficace.
1. Remplir les blancs
2. Que représente la première matrice de poids W1 dans le réseau de neurones ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Awesome!
Completion rate improved to 3.45
Modèles CBoW et Skip-Gram
Glissez pour afficher le menu
Une compréhension de base des réseaux de neurones est recommandée pour ce chapitre. Si vous n'êtes pas familier avec ce sujet, n'hésitez pas à consulter ce cours :
Les architectures CBoW et Skip-gram apprennent les plongements de mots à l'aide d'une structure de réseau de neurones composée des couches suivantes :
- une couche d'entrée ;
- une seule couche cachée ;
- une couche de sortie.
La matrice de poids entre les couches d'entrée et cachée, notée W1 ou E, sert de matrice d'embeddings. Chaque ligne de cette matrice représente un vecteur d'embedding pour un mot correspondant, la i-ème ligne correspondant au i-ème mot du vocabulaire.
Cette matrice contient V (taille du vocabulaire) embeddings, chacun de taille N, une dimension que nous spécifions. Multiplier la transposée de cette matrice (matrice N×V) par un vecteur one-hot encodé (vecteur V×1) permet de récupérer l'embedding pour un mot spécifique, produisant un vecteur N×1.
La deuxième matrice de poids, située entre les couches cachée et de sortie, a une taille de N×V. La multiplication de la transposée de cette matrice (matrice V×N) par le vecteur N×1 de la couche cachée donne un vecteur V×1.
CBoW
Voici un exemple d'utilisation d'un modèle CBoW :
Tout d'abord, la transposée de la matrice d'embeddings est multipliée par les vecteurs one-hot des mots du contexte afin de produire leurs embeddings. Ces embeddings sont ensuite additionnés ou moyennés selon l'implémentation pour former un vecteur unique. Ce vecteur est multiplié par la matrice W2, ce qui donne un vecteur V×1.
Enfin, ce vecteur passe par la fonction d'activation softmax, qui le convertit en une distribution de probabilités, où chaque élément représente la probabilité qu'un mot du vocabulaire soit le mot cible.
Ensuite, la perte est calculée et les deux matrices de poids sont mises à jour afin de minimiser cette perte. Idéalement, la probabilité du mot cible doit être proche de 1, tandis que les probabilités de tous les autres mots tendent vers zéro. Ce processus est répété pour chaque combinaison d’un mot cible et de ses mots de contexte.
Une fois toutes les combinaisons traitées, une époque est terminée. En général, le réseau de neurones est entraîné sur plusieurs époques afin d’assurer un apprentissage précis. Enfin, les lignes de la matrice d’embeddings résultante peuvent être utilisées comme nos embeddings de mots. Chaque ligne correspond à la représentation vectorielle d’un mot spécifique du vocabulaire, capturant efficacement ses propriétés sémantiques au sein du modèle entraîné.
Skip-gram
Examinons maintenant un modèle skip-gram :
Comme vous pouvez le constater, le processus est en grande partie similaire à CBoW. Il commence par la récupération de l’embedding du mot cible, qui est ensuite utilisé dans la couche cachée. Cela est suivi par la production d’un vecteur V×1 dans la couche de sortie. Ce vecteur, obtenu en multipliant l’embedding du mot cible par la matrice de poids de la couche de sortie, est ensuite transformé par la fonction d’activation softmax en un vecteur de probabilités.
Bien que ce vecteur résultant de probabilités soit identique pour tous les mots de contexte associés à un mot cible unique lors d'une seule étape d'entraînement, la perte pour chaque mot de contexte est calculée individuellement.
La perte pour chaque mot de contexte est additionnée, et les matrices de poids sont mises à jour en conséquence à chaque itération afin de minimiser la perte totale. Une fois le nombre d'époques spécifié atteint, la matrice d'embeddings peut être utilisée pour obtenir les embeddings de mots.
En pratique, en particulier avec de grands vocabulaires, la fonction softmax peut être trop coûteuse en calcul. Par conséquent, des approximations telles que l'échantillonnage négatif sont souvent utilisées pour rendre le calcul plus efficace.
1. Remplir les blancs
2. Que représente la première matrice de poids W1 dans le réseau de neurones ?
Merci pour vos commentaires !