28
Comprendre et utiliser les word embeddings en´ edicte Pierrejean Universit´ e Toulouse Jean Jaur` es - CLLE-ERSS

Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Comprendre et utiliser les word embeddings

Benedicte Pierrejean

Universite Toulouse Jean Jaures - CLLE-ERSS

Page 2: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 3: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Semantique Distributionnelle et

Espaces Vectoriels

Page 4: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 5: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 6: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 7: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Operations mathematiques

https://blog.acolyer.org/2016/04/21/the-amazing-power-of-word-vectors/

• vecteur(king) - vecteur(man) + vecteur(woman) =

vecteur(queen)

5

Page 8: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Analogies

Mikolov et al., 2013

6

Page 9: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 10: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 11: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 12: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 13: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Word Embeddings

Page 14: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 15: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

word2vec (Mikolov et al., 2013)

• Rapide a entraıner

• Facilement accessible (code C, librairie python gensim,

vecteurs pre-entraınes etc.)

12

Page 16: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

word2vec : CBOW

Prediction de la probabilite qu’un mot apparaisse etant donne les

mots qui l’entourent (contexte)

Mikolov et al., 201313

Page 17: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

word2vec : Skip-Gram with Negative Sampling (SGNS)

Prediction des contextes a partir d’un mot cible

Mikolov et al., 2013

14

Page 18: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 19: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Utilisation des embeddings

Nombre d’articles scientifiques sur arXiv ayant le mot “embedding”

dans leur titre

16

Page 20: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 21: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Autres etudes

• Corpus diachroniques (Hamilton et al., 2016)

• Projet Evolex (Gaume et al., 2018)

18

Page 22: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Entraıner des word embeddings avec

gensim

Page 23: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 24: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 25: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 26: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

Visualisation des word embeddings

Page 27: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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

Page 28: Comprendre et utiliser les word embeddingsw3.erss.univ-tlse2.fr/UETAL/2018-2019/Tuto-embeddings.pdf · cos(chien;abricot) = 2 1 + 2 0 + 0 5 p 22 + 22 + 02 p 12 + 02 + 52 = 2 p 8 p

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