Les couches d'intégration dans Keras sont entraînées comme n'importe quelle autre couche dans votre architecture réseau: elles sont réglées pour minimiser la fonction de perte en utilisant la méthode d'optimisation sélectionnée. La principale différence avec les autres couches est que leur sortie n'est pas une fonction mathématique de l'entrée. Au lieu de cela, l'entrée de la couche est utilisée pour indexer une table avec les vecteurs d'intégration [1]. Cependant, le moteur de différenciation automatique sous-jacent n'a aucun problème pour optimiser ces vecteurs afin de minimiser la fonction de perte ...
Donc, vous ne pouvez pas dire que la couche Embedding dans Keras fait la même chose que word2vec [2]. N'oubliez pas que word2vec fait référence à une configuration réseau très spécifique qui essaie d'apprendre une intégration qui capture la sémantique des mots. Avec la couche d'intégration de Keras, vous essayez simplement de minimiser la fonction de perte, donc si, par exemple, vous travaillez avec un problème de classification des sentiments, l'intégration apprise ne capturera probablement pas la sémantique complète des mots mais seulement leur polarité émotionnelle ...
Par exemple, l'image suivante tirée de [3] montre l'incorporation de trois phrases avec une couche Keras Embedding entraînée à partir de zéro dans le cadre d'un réseau supervisé conçu pour détecter les titres de clickbait (à gauche) et les incorporations word2vec pré-entraînées (à droite). Comme vous pouvez le voir, les incorporations de word2vec reflètent la similitude sémantique entre les phrases b) et c). Inversement, les incorporations générées par la couche d'intégration de Keras peuvent être utiles pour la classification, mais ne capturent pas la similitude sémantique de b) et c).
Cela explique pourquoi lorsque vous disposez d'un nombre limité d'échantillons de formation, il peut être judicieux d'initialiser votre couche d'intégration avec des poids word2vec , donc au moins votre modèle reconnaît que "Alpes" et "Himalaya" sont des choses similaires, même si elles ne ne se produisent pas dans les phrases de votre jeu de données d'entraînement.
[1] Comment fonctionne la couche Keras 'Embedding'?
[2] https://www.tensorflow.org/tutorials/word2vec
[3] https://link.springer.com/article/10.1007/s10489-017-1109-7
REMARQUE: En fait, l'image montre les activations du calque après le calque Embedding, mais pour cet exemple, cela n'a pas d'importance ... Voir plus de détails dans [3]