Upload
others
View
5
Download
0
Embed Size (px)
Citation preview
Comprendre et utiliser les word embeddings
Benedicte Pierrejean
Universite Toulouse Jean Jaures - CLLE-ERSS
Objectifs
• Introduction a la semantique distributionnelle
• Introduction aux word embeddings
• Utilisation de divers outils de developpement
• Manipulation des words embeddings (entraıner un modele,
interroger un modele etc.)
1
Semantique Distributionnelle et
Espaces Vectoriels
Semantique Distributionnelle
Semantique 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
Modeles distributionnels
• Representation du sens des mots sous forme de vecteurs (=
liste de nombres)
Modeles a base de frequences
• Construits a partir des frequences des cooccurences
• Vecteurs peu denses et tres gros
Speech and Language Processing, Jurafsky & Martin, 3rd ed. draft
3
Modeles distributionnels
Modeles predictifs / dense vectors / word embeddings /
plongements de mots
• Vecteurs denses avec peu de dimensions
• Plus facile a integrer dans des modeles de deep learning
https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/
4
Operations mathematiques
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
Similarite et voisins
Cosinus
Speech and Language Processing, Jurafsky & Martin, 3rd ed. draft
• Score cosinus allant de 0 (mots tres differents) a 1 (mots tres
similaires).
• Permet de recuperer les voisins d’un mot donne.
7
Exemple calcul cosinus
petit gris orange
chat 4 3 1
chien 2 2 0
abricot 1 0 5
Calcul de similarite de chat/chien
cos(chat, chien) =4 ∗ 2 + 3 ∗ 2 + 1 ∗ 0√
42 + 32 + 12√
22 + 22 + 02=
14√26√
8= 0.97
Calcul de similarite de chat/abricot
cos(chat, abricot) =4 ∗ 1 + 3 ∗ 0 + 1 ∗ 5√
42 + 32 + 12√
12 + 02 + 52=
9√26√
26= 0.34
8
A vous de jouer !
petit gris orange
chat 4 3 1
chien 2 2 0
abricot 1 0 5
Calcul de similarite 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 similarite de chien/abricot
cos(chien, abricot) =2 ∗ 1 + 2 ∗ 0 + 0 ∗ 5√
22 + 22 + 02√
12 + 02 + 52=
2√8√
26= 0.14
10
Word Embeddings
Quels systemes pour entraıner des word embeddings ?
Differentes methodes
• 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 a entraıner
• Facilement accessible (code C, librairie python gensim,
vecteurs pre-entraınes etc.)
12
word2vec : CBOW
Prediction de la probabilite qu’un mot apparaisse etant donne les
mots qui l’entourent (contexte)
Mikolov et al., 201313
word2vec : Skip-Gram with Negative Sampling (SGNS)
Prediction des contextes a partir d’un mot cible
Mikolov et al., 2013
14
fastText (Bojanowski et al., 2017)
• Motivation : ameliorer les representations vectorielles des
mots pour les langues morphologiquement riches
• Representation vectorielles de n-grams
• Un mot est represente par la somme des vecteurs de ses
n-grams
• Avantage : on peut obtenir une representation 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
Systemes inspires/derives de word2vec
• word2vecf (Levy & Goldberg, 2016) : integration de
dependances syntaxiques dans les contextes utilises 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 tres petits corpus
etc.
17
Autres etudes
• Corpus diachroniques (Hamilton et al., 2016)
• Projet Evolex (Gaume et al., 2018)
18
Entraıner des word embeddings avec
gensim
Pre-requis
Necessaire pour ce cours
• avoir Linux ou Mac
• Python 3
• virtualenv
• avoir cree un environnement virtuel pour ce cours
• avoir installe gensim dans l’environnement virtuel cree
• avoir installe jupyter lab dans l’environnement virtuel
19
Lancer Jupyter Lab
• Activer l’environnement virtuel que vous aviez precedemment
cree grace a la commande :
source chemin env/bin/activate
• Aller dans lequel vous avez place le jupyter notebook utilise
pour ce cours
cd dossier contenant jupyter notebook
• Lancer Jupyter lab
jupyter lab
20
gensim - Fonctions utiles
Recuperer les voisins semantiques d’un mot
model.wv.most similar("cat")
model.wv.most similar("cat", topn=5)
Rang d’un voisin donne pour un mot donne
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
• Methodes de reduction de dimensions (PCA et t-SNE)
• Possibilite 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.,
Peran, 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.
Rehurek, 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