Comprendre et utiliser les word embeddings - CLLE-ERSS
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Comprendre et utiliser les word embeddings Bénédicte Pierrejean Université Toulouse Jean Jaurès - CLLE-ERSS
Objectifs • Introduction à la sémantique distributionnelle • Introduction aux word embeddings • Utilisation de divers outils de développement • Manipulation des words embeddings (entraı̂ner un modèle, interroger un modèle etc.) 1
Sémantique Distributionnelle et Espaces Vectoriels
Sémantique Distributionnelle Sémantique distributionnelle Des mots apparaissant dans contextes similaires ont des sens proches (Harris, 1954) “You shall know a word by the company it keep”, (Firth, 1957) Principe de l’approche distributionnelle Speech and Language Processing, Jurafsky & Martin, 3rd ed. draft 2
Modèles distributionnels • Représentation du sens des mots sous forme de vecteurs (= liste de nombres) Modèles à base de fréquences • Construits à partir des fréquences des cooccurences • Vecteurs peu denses et très gros Speech and Language Processing, Jurafsky & Martin, 3rd ed. draft 3
Modèles distributionnels Modèles prédictifs / dense vectors / word embeddings / plongements de mots • Vecteurs denses avec peu de dimensions • Plus facile à intégrer dans des modèles de deep learning https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/ 4
Opérations mathématiques https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/ • vecteur(king) - vecteur(man) + vecteur(woman) = vecteur(queen) 5
Analogies Mikolov et al., 2013 6
Similarité et voisins Cosinus Speech and Language Processing, Jurafsky & Martin, 3rd ed. draft • Score cosinus allant de 0 (mots très différents) à 1 (mots très similaires). • Permet de récupérer les voisins d’un mot donné. 7
Exemple calcul cosinus petit gris orange chat 4 3 1 chien 2 2 0 abricot 1 0 5 Calcul de similarité de chat/chien 4∗2+3∗2+1∗0 14 cos(chat, chien) = √ √ = √ √ = 0.97 42 2 2 2 2 +3 +1 2 +2 +0 2 26 8 Calcul de similarité de chat/abricot 4∗1+3∗0+1∗5 9 cos(chat, abricot) = √ √ = √ √ = 0.34 42 2 2 2 2 +3 +1 1 +0 +5 2 26 26 8
A vous de jouer ! petit gris orange chat 4 3 1 chien 2 2 0 abricot 1 0 5 Calcul de similarité de chien/abricot 9
A vous de jouer ! petit gris orange chat 4 3 1 chien 2 2 0 abricot 1 0 5 Calcul de similarité de chien/abricot 2∗1+2∗0+0∗5 2 cos(chien, abricot) = √ √ = √ √ = 0.14 22 2 2 2 2 +2 +0 1 +0 +5 2 8 26 10
Word Embeddings
Quels systèmes pour entraı̂ner des word embeddings ? Différentes méthodes • word2vec (Mikolov et. al, 2013) • Continuous Bag of Words (CBOW) • Skip-Gram with Negative Sampling (SGNS) • fastText (Bojanowski et al., 2017) • Embeddings de n-grams • Glove (Pennington et al., 2014) 11
word2vec (Mikolov et al., 2013) • Rapide à entraı̂ner • Facilement accessible (code C, librairie python gensim, vecteurs pré-entraı̂nés etc.) 12
word2vec : CBOW Prédiction de la probabilité qu’un mot apparaisse étant donné les mots qui l’entourent (contexte) 13 Mikolov et al., 2013
word2vec : Skip-Gram with Negative Sampling (SGNS) Prédiction des contextes à partir d’un mot cible Mikolov et al., 2013 14
fastText (Bojanowski et al., 2017) • Motivation : améliorer les représentations vectorielles des mots pour les langues morphologiquement riches • Représentation vectorielles de n-grams • Un mot est représenté par la somme des vecteurs de ses n-grams • Avantage : on peut obtenir une représentation pour un mot qui n’existait pas dans le corpus d’entraı̂nement • 2 algorithmes : Skip-Gram et CBOW 15
Utilisation des embeddings Nombre d’articles scientifiques sur arXiv ayant le mot “embedding” dans leur titre 16
Systèmes inspirés/dérivés de word2vec • word2vecf (Levy & Goldberg, 2016) : intégration de dépendances syntaxiques dans les contextes utilisés pour entraı̂ner les embeddings • Dict2vec (Tissier et al., 2017) : utilisation de dictionnaires pour entraı̂ner des embeddings • Nonce2vec (Herbelot & Baroni, 2017) : apprentissage de nouveaux mots sur très petits corpus etc. 17
Autres études • Corpus diachroniques (Hamilton et al., 2016) • Projet Evolex (Gaume et al., 2018) 18
Entraı̂ner des word embeddings avec gensim
Pré-requis Nécessaire pour ce cours • avoir Linux ou Mac • Python 3 • virtualenv • avoir créé un environnement virtuel pour ce cours • avoir installé gensim dans l’environnement virtuel créé • avoir installé jupyter lab dans l’environnement virtuel 19
Lancer Jupyter Lab • Activer l’environnement virtuel que vous aviez précédemment créé grâce à la commande : source chemin env/bin/activate • Aller dans lequel vous avez placé le jupyter notebook utilisé pour ce cours cd dossier contenant jupyter notebook • Lancer Jupyter lab jupyter lab 20
gensim - Fonctions utiles Récupérer les voisins sémantiques d’un mot model.wv.most similar("cat") model.wv.most similar("cat", topn=5) Rang d’un voisin donné pour un mot donné model.wv.rank("cat", "dog") Calcul du score cosinus entre 2 mots model.wv.similarity("cat", "dog") Analogies model.wv.most similar(positive=["woman", "king"], negative=["man"]) 21
Visualisation des word embeddings
Embedding Projector - Tensorflow • Interface qui permet de visualiser des embeddings • Méthodes de réduction de dimensions (PCA et t-SNE) • Possibilité de charger ses propres vecteurs • http://projector.tensorflow.org/ 22
References Bojanowski, P., Grave, E., Joulin, A., and Mikolov, T. (2016). Enriching Word Vectors with Subword Information. In Emnlp, volume 91, pages 28–29. Gaume, B., Tanguy, L., Fabre, C., Ho-Dac, L.-M., Pierrejean, B., Hathout, N., Farinas, J., Pinquier, J., Danet, L., Péran, P., De Boissezon, X., and Jucla, M. (2018). Automatic analysis of word association data from the Evolex psycholinguistic tasks using computational lexical semantic similarity measures. In 13th International Workshop on Natural Language Processing and Cognitive Science (NLPCS), Krakow, Poland. Hamilton, W. L., Leskovec, J., and Jurafsky, D. (2016). Diachronic Word Embeddings Reveal Statistical Laws of Semantic Change. In Acl 2016, pages 1489–1501. Jurafsky, D. and Martin, J. H. (2018). Vector Semantics. In Speech and Language Processing, volume Draft of September 23, 2018. Mikolov, T., Chen, K., Corrado, G., and Dean, J. (2013a). Efficient Estimation of Word Representations in Vector Space. In ICLR Workshop. Mikolov, T., Sutskever, I., Chen, K., Corrado, G., and Dean, J. (2013b). Distributed Representations of Words and Phrases and their Compositionality. In arXiv:1310.4546 [cs, stat]. arXiv: 1310.4546. Pennington, J., Socher, R., and Manning, C. D. (2014). GloVe: Global Vectors for Word Representation. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), pages 1532–1543. Řehůřek, R. and Sojka, P. (2010). Software Framework for Topic Modelling with Large Corpora. In Proceedings of the LREC 2010 Workshop on New Challenges for NLP Frameworks, pages 45–50, Valletta, Malta. ELRA. Tissier, J., Gravier, C., and Habrard, A. (2017). Dict2vec: Learning Word Embeddings using Lexical Dictionaries. In Proceedings of the 2017 Conference on Empirical Methods in Natural Language Processing, pages 254–263, Copenhagen, Denmark. 23
Vous pouvez aussi lire