100% ont trouvé ce document utile (1 vote)
352 vues63 pages

Word Embedding

Le document décrit les notions clés du traitement automatique du langage naturel (TALN) et de la représentation des textes, notamment le sac de mots, TF-IDF et les n-grammes.

Transféré par

chaima bouhlel
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
352 vues63 pages

Word Embedding

Le document décrit les notions clés du traitement automatique du langage naturel (TALN) et de la représentation des textes, notamment le sac de mots, TF-IDF et les n-grammes.

Transféré par

chaima bouhlel
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Deep Learning

Apprentissage Profond

Dr. Sana Hamdi [email protected]


Représentation des textes
Word Embedding
Introduction

Sana Hamdi 3
Le NLP
Le NLP pour Natural Language Processing ou Traitement Automatique
du Langage Naturel (TALN) est une discipline qui porte essentiellement sur
la compréhension, la manipulation et la génération du langage naturel par
les machines.
Ainsi, le NLP est réellement une branche qui réuni la science informatique et la
linguistique et s'intéresse à la communication entre l'homme et la machine

Sana Hamdi 4
NLP: Applications
Le NLP trouve de nombreuses applications dans la vie de tous les jours:
• Traduction de texte
• Correcteur orthographique
• Résumé automatique d’un contenu
• Classification de texte
• Analyse d’opinion/sentiment
• Prédiction du prochain mot sur smartphone
• Extraction des entités nommées depuis un texte …

Sana Hamdi 5
NLP: Phases
Le NLP est généralement composé de trois grandes étapes:
• Prétraitement : une étape qui cherche à standardiser du texte afin de rendre son
usage plus facile (nettoyage des données de texte : Convertir les mots à leurs racines
(lemmatisation), filtrer les chiffres indésirables, traiter la ponctuation et les
émoticônes et supprimer les mots vides…)
• Représentation du texte comme un vecteur : Cette étape peut être effectuée via
des techniques de sac de mots (Bag of Words) ou Term Frequency-Inverse
Document Frequency (Tf-IdF). On peut également apprendre des représentations
vectorielles (embedding) par apprentissage profond.
• Modélisation : Classification, trouver la phrase la plus similaire…
Sana Hamdi 6
Représentation vectorielle des
textes
Bag of Words
N-grammes
TF-IDF

Sana Hamdi 7
Notions clés
Il est important de bien identifier 4 termes incontournables :
• le corpus : un ensemble de documents (des textes dans notre cas), regroupés dans une
optique ou dans une thématique précise.
• un document : la notion de document fait référence à un texte appartenant au corpus, mais
indépendant des autres textes. Il peut être constitué d'une ou plusieurs phrases, un ou
plusieurs paragraphes.
• un token : le terme token désigne généralement un mot et/ou un élément de ponctuation.
La phrase "Hello World!" comprend donc 3 tokens.
• le vocabulaire : il s'agit de l'ensemble des tokens distincts présents dans l'ensemble du
corpus.

Sana Hamdi 8
9

Bag of words
Bag of Words
• Une représentation par sac de mots (ou bag of words en anglais) classique
est une description de chaque document.
• Chaque document est représenté par un vecteur de la taille du vocabulaire
|V| et on utilisera la matrice composée de l’ensemble de ces N documents
qui forment le corpus comme entrée de nos algorithmes.
• C’est un vecteur de fréquence d'apparition des différents mots utilisés
(Chaque mot se voit affecté le nombre de fois qu'il apparaît dans le
document)

Sana Hamdi 10
Bag of Words: Exemple
Corpus X = [“ earth is the third planet from the sun”, “Jupiter is the largest planet”]
Vocabulaire : {“earth ”:0, “is”:1, “the ”: 2, “third ”: 3, “planet”: 4 , “from”:5, “sun”: 6 ,
“jupiter”:7, “largest ”: 8}
• earth is the third planet from the sun = [ 1,1,2,1,1,1,1,0,0 ]
• Jupiter is the largest planet = [ 0,1,1,0,1,0,0,1,1 ]
 Chaque document est représenté par des nombres appelés features
 Utiliser ces features avec n'importe quel modèle d’apprentissage automatique
Sana Hamdi 11
Bag of Words:

Inconvénients:
- BoW est simple et efficace mais ignore l'ordre des mots dans le texte
 il perd l'information séquentielle.
- Ne pas considérer le contexte (les sens des mots)

Sana Hamdi 12
13

TF-IDF
TF-IDF Features
• Pour chaque mot du document, on considère:
- Term Frequency: 𝑡𝑓𝑖𝑗 =le nombre d'occurrences d’un terme i dans le document j
- Inverse Document Frequency: une mesure de l'importance du terme dans l'ensemble du
corpus  elle vise à donner un poids plus important aux termes les moins fréquents
|𝐷|
𝑖𝑑𝑓𝑖 = log
|{𝑑𝑗 : 𝑡𝑖 ∈ 𝑑𝑗 }|
|D|: nombre total de documents nombre de documents où dans le corpus
|{𝑑𝑗 : 𝑡𝑖 ∈ 𝑑𝑗 }|: le terme 𝑡𝑖 apparaît
Tf-𝒊𝒅𝒇𝒊, 𝒋 = 𝒕𝒇𝒊𝒋 * 𝒊𝒅𝒇𝒊

Sana Hamdi 14
TF-IDF Features
• Phrase 1: « earth is the third planet from the sun »
• Phrase 2: « Jupiter is the largest planet »

.3

Sana Hamdi 15
TF-IDF Features
• Avantages:
- Ce nombre indique l'importance d'un mot pour un document dans un
corpus. Cette importance augmente proportionnellement au nombre de fois
où un mot apparaît dans le document mais compensée par la fréquence du
mot dans le corpus.
- utiliser ces features avec des modèles de classification d'apprentissage
automatique tels que la régression logistique, Naive Bayes, SVM, etc.

Sana Hamdi 16
17

N-gramme
N-gramme
• Un n-gramme est une séquence de n éléments (caractères ou mots)
consécutifs: bi-grammes pour les couples d’éléments, tri-grammes pour les
groupes de 3, etc. Séparer en élément unique est en fait un cas particulier
appelé uni-grammes (Bag of words).
• La probabilité de l'apparition d'un élément en position i ne dépend que
des n-1 éléments précédents:
P(wi|w1,...,wi-1) = P(wi|wi-(n-1), wi-(n-2),..., wi-1)
• Avec n = 3 (cas du tri-gramme), on a P(wi|w1,...,wi-1) = P(wi|wi-2, wi-1)
Sana Hamdi 18
Exemple 1
Pour le corpus d'apprentissage « aabaacaab » :
• avec n=2, il est représenté comme suit: [aa, ab, ba, aa, ac, ca, aa, ab]
• avec n=3, il est représenté comme suit: [aab, aba, baa, aac, aca, caa, aab] avec:

Sana Hamdi 19
Exemple 2
• Pour le corpus: Kairouan ville rouge climat sec
Kairouan ville ocre
ville Kairouan climat chaud sec

Count(w1,...,wi−1, wi)
• P(wi|w1,...,wi-1) = Count(w ,...,wi )
1 −1

• Le nombre et la probabilité d’apparition d’uni-grammes pour chaque mot dans le corpus:


Kairouan ville rouge climat sec ocre chaud
3 3 1 2 2 1 1
3/7 3/7 1/7 2/7 2/7 1/7 1/7
Sana Hamdi 20
Kairouan ville rouge climat sec
Kairouan ville ocre
• Le nombre de bi-grammes est 10: ville Kairouan climat chaud sec

Kairouan ville rouge climat sec ocre chaud


Kairouan 0 2 0 1 0 0 0
Ville 1 0 1 0 0 1 0
Rouge 0 0 0 1 0 0 0
Climat 0 0 0 0 1 0 1
Sec 0 0 0 0 0 0 0
Ocre 0 0 0 0 0 0 0
Chaud 0 0 0 0 1 0 0

Sana Hamdi 21
Kairouan ville rouge climat sec
Kairouan ville ocre
• Les probabilités des bi-grammes sont: ville Kairouan climat chaud sec

Kairouan ville rouge climat sec ocre chaud Total


Kairouan 0 0,67 0 0,33 0 0 0 3
Ville 0,33 0 0,33 0 0 0,33 0 3
Rouge 0 0 0 1 0 0 0 1
Climat 0 0 0 0 0,5 0 0,5 2
Sec 0 0 0 0 0 0 0 0
Ocre 0 0 0 0 0 0 0 0
Chaud 0 0 0 0 1 0 0 1

Sana Hamdi 22
Exemple 2
• 2 inconvénients majeurs:
1. Les mots « sec » et « chaud » n’apparaissent dans aucun bi-gramme, ils ont
une probabilité totale = 0 au lieu de 1.
2. Le modèle ne tient pas compte que le mot « ville » se trouve en début de
phrase et « sec » et « ocre » à la fin.
 On introduit les caractères spéciaux <s> pour début de séquence et </s> et
fin de séquence (ils doivent être ajoutés au vocabulaire V du corpus)

Sana Hamdi 23
<s> Kairouan ville rouge climat sec </s>
<s> Kairouan ville ocre </s>
• Les probabilités des bi-grammes sont: <s> ville Kairouan climat chaud sec </s>

Kairouan ville rouge climat sec ocre chaud </s>


<s> 0,67 0,33 0 0 0 0 0 0
Kairouan 0 0,67 0 0,33 0 0 0 0
Ville 0,33 0 0,33 0 0 0,33 0 0
Rouge 0 0 0 1 0 0 0 0
Climat 0 0 0 0 0,5 0 0,5 0
Sec 0 0 0 0 0 0 0 1
Ocre 0 0 0 0 0 0 0 1
Chaud 0 0 0 0 1 0 0 0
Sana Hamdi 24
25

Cosine Similarity
Cosine similarity
• La similarité cosinus est utilisée souvent pour comparer deux documents.
• Elle donne la similarité de deux vecteurs à n dimensions en déterminant le
cosinus de leur angle.
• Soit deux vecteurs A et B, le cosinus de leur angle θ s'obtient en prenant leur
produit scalaire divisé par le produit de leurs normes.

Sana Hamdi 26
Cosine similarity

Sana Hamdi 27
Word Embedding
One hot Encoding
Word2Vec
FastText

Sana Hamdi 28
Introduction
• Le word embedding (plongement de mots) désigne un ensemble de
méthodes d’apprentissage visant à représenter les mots d’un texte par des
vecteurs de nombres réels.
• Nous allons explorer différentes méthodes pour représenter un mot sous
forme d’un vecteur :
 Méthode 1 : One Hot Encoding
 Méthode 2 : Word2vec
 Méthode 3 : FasText

Sana Hamdi 29
30

One Hot Encoding


One Hot Encoding
1 2 3 4 5 6 7 8
I ate an apple and played the piano I 1 0 0 0 0 0 0 0
1 2 3 4 5 6 7 8 ate 0 1 0 0 0 0 0 0
Position de chaque mot dans le vocabulaire an 0 0 1 0 0 0 0 0
apple 0 0 0 1 0 0 0 0
Le one-hot embedding matrix pour l’exemple est:
and 0 0 0 0 1 0 0 0
played 0 0 0 0 0 1 0 0
the 0 0 0 0 0 0 1 0
piano 0 0 0 0 0 0 0 1
Sana Hamdi 31
One Hot Encoding

• La représentation vectorielle la plus classique des mots.


• Une dimension est allouée pour chaque mot du vocabulaire.
• Chaque mot du vocabulaire est représenté comme un vecteur binaire avec
toutes ses valeurs nulles à l’exception de l’index du mot.

Sana Hamdi 32
Problèmes du One Hot Encoding
• Malédiction de la dimensionnalité: la plupart de la matrice est occupée par des
zéros, donc les données utiles deviennent rares.
Imaginons que nous ayons un vocabulaire de 50 000. (Il y a environ un million de mots
en anglais.) Chaque mot est représenté avec 49 999 zéros et un seul 1, et nous avons
besoin de 50 000 au carré = 2,5 milliards d'unités d'espace mémoire!!!
• Difficulté d'extraire des significations: Chaque mot est isolé et chaque mot
contient un seul 1 et N-1 zéros où N est le nombre de dimensions.
Si notre vocabulaire comportait « orange », « banane » et « pastèque », nous pouvons
voir la similitude entre ces mots, mais avec les vecteurs one-hot, tous les mots sont à
distance égale les uns des autres.
Sana Hamdi 33
34

Word2vec
Word2vec
• Word2vec est un groupe de modèles utilisé pour le plongement lexical (word
embedding).
• Ces modèles ont été développés par une équipe de recherche chez Google sous la
direction de Tomas Mikolov.
• Ce sont des ANN à deux couches entraînés pour reconstruire le contexte
linguistique des mots.
• Deux architectures ont été initialement proposées pour apprendre les Word2vec, le
modèle de CBOW (continuous bag of words) et le modèle skip-gram
Sana Hamdi 35
Word2vec
• Une condition préalable à tout réseau de neurones ou à toute technique
d'entraînement supervisé est d'avoir des données d'entraînement étiquetées.
• Comment entraînez-vous un réseau de neurones pour prédire l'inclusion de mots
lorsque vous n'avez aucune donnée étiquetée, c'est-à-dire des mots et l'inclusion de
mots correspondante ?
Fake task
Nous ne nous intéresserons pas aux entrées et aux sorties de ce réseau, le but est
simplement d'apprendre les poids de la couche cachée qui sont les "vecteurs de mots"
que nous essayons d'apprendre.
Sana Hamdi 36
Skip-gram

Sana Hamdi 37
Skip-gram
• Cette méthode est utilisée pour prédire des mots de contexte (ou des mots
environnants) étant donné un mot courant dans la même phrase.
• Le modèle Skip-gram prend chaque mot du grand corpus comme entrée et la
couche cachée, utilisant les poids d'intégration, prédit les mots de contexte.
• Fake task: étant donné un mot, nous essaierons de prédire ses mots voisins.
Nous allons définir un mot voisin par la taille de la fenêtre (l'emplacement de
contexte maximal : un hyper-paramètre).

Sana Hamdi 38
Variables à utiliser
1. Le dictionnaire des mots uniques présent dans notre dataset ou texte. Ce dictionnaire est
connu sous le nom de vocabulaire représenté par « V ».
2. N est le nombre de neurones présents dans la couche cachée.
3. La taille de la fenêtre est l'emplacement de contexte maximal auquel les mots doivent
être prédits. La taille de la fenêtre est notée c. Si la taille de la fenêtre est de 2, alors nous
allons prédire les mots à l'emplacement du contexte (t-2), (t-1), (t+1) et (t+2).
4. La fenêtre contextuelle est le nombre de mots à prédire qui peuvent apparaître dans la
plage du mot donné. La valeur d'une fenêtre contextuelle est le double de la taille de la
fenêtre qui est 2*c et est représentée par k. Pour c = 2, la valeur de la fenêtre contextuelle
est 4.
Sana Hamdi 39
Variables à utiliser
5. La dimension d'un vecteur d'entrée est égale à |V|. Chaque mot est encodé
à l'aide d'un one hot encoding.
6. La matrice de poids pour la couche cachée (W) est de dimension [|V|, N].
7. Le vecteur de sortie de la couche cachée est H[N].
8. La matrice de poids entre la couche cachée et la couche de sortie (W') est de
dimension [N,|V|].
9. Le produit scalaire entre W' et H nous donne un vecteur de sortie U[|V|].

Sana Hamdi 40
Algorithme
1. The words are converted into a vector using one hot encoding. The dimension of these vectors is [1,|v|]
2. The word w(t) is passed to the hidden layer from |v| neurons.
3. Hidden layer performs the dot product between weight vector W[|v|, N] and the input vector w(t). In
this, we can conclude that the (t)th row of W[|v|, N] will be the output(H[1, N]).
4. Remember there is no activation function used at the hidden layer so the H[1,k] will be passed directly to
the output layer.
5. Output layer will apply dot product between H[1, N] and W’[N, |v|] and will give us the vector U.
6. Now, to find the probability of each vector we’ll use the softmax function. As each iteration gives output
vector U which is of one hot encoding type.
7. The word with the highest probability is the result and if the predicted word for a given context position is
wrong then we’ll use backpropagation to modify our weight vectors W and W’

Sana Hamdi 41
La fonction Softmax

• wc,j est le jème mot prédit sur la cème position de contexte ;


• wO,c est le mot réel présent sur la position du cème contexte ;
• wI est le seul mot d'entrée ;
• uc,j est la jème valeur dans le vecteur U lors de la prédiction du mot pour la cème
position de contexte.

Sana Hamdi 42
Fonction de perte
• On vise à maximiser la probabilité de prédire wc,j sur la cème position de
contexte, on peut représenter la fonction de perte L comme :

Sana Hamdi 43
Exemple

Sana Hamdi 44
CBOW

Sana Hamdi 45
CBOW

• Il entraîne le réseau de neurones pour prédire un mot en fonction de son


contexte, c’est à dire les mots avant/après dans une phrase.
• Dans le modèle CBOW, les entrées, qui sont les représentations distribuées
du contexte (ou des mots environnants) sont combinées pour prédire le mot
au milieu.

Sana Hamdi 46
Sana Hamdi 47
Skip-gram CBOW

Sana Hamdi 48
CBOW vs Skip-gram

Sana Hamdi 49
CBOW vs Skip-gram

• Skip-gram fonctionne bien avec de petits datasets et peut mieux représenter


des mots moins fréquents.
• CBOW est plus simple et s'entraîne plus rapidement que Skip-Gram et peut
mieux représenter les mots les plus fréquents.

Sana Hamdi 50
Exemple

Sana Hamdi 51
Entrainer le modèle à déterminer les mots
manquants

Word embedding

Sana Hamdi 52
Sana Hamdi 53
Sana Hamdi 54
Sana Hamdi 55
Sana Hamdi 56
Sana Hamdi 57
Sana Hamdi 58
Sana Hamdi 59
60

fastText
fastText
• fastText est une autre méthode de plongement de mots qui est une extension du
modèle word2vec.
• Au lieu d'apprendre directement les vecteurs des mots, fastText représente chaque
mot sous la forme d’un n-gramme de caractères,
• Exemple: le mot artificiel avec n =3, est représenté par:
<ar, art, rti, tif, ifi, fic, ici, ial, al>, où < et > indiquent le début et fin du mot.
 Cela aide à saisir le sens des mots plus courts et permet aux représentations
de comprendre les suffixes et les préfixes.

Sana Hamdi 61
Avantages
• fastText fonctionne bien avec des mots rares. Ainsi, même si un mot n'a pas été vu
pendant l’apprentissage, il peut être décomposé en n-grammes pour obtenir ses
embeddings.
• Word2vec et GloVe ne fournissent aucune représentation vectorielle pour les mots
qui ne figurent pas dans le dictionnaire modèle. C'est un énorme avantage de cette
méthode.
• En raison de sa capacité à représenter les mots comme des combinaisons de sous-
mots, FastText est plus robuste aux fautes de frappe et aux erreurs de saisie dans les
données, ce qui lui permet de mieux gérer les bruits dans les données textuelles.

Sana Hamdi 62
Conclusion
Pour récapituler, on peut transformer un texte en ses features soit :
• En utilisant une représentation de comptage creuse: fréquence d’apparition
du mot dans un document, ou vecteur tf-idf d’un document, etc.
• En utilisant une représentation de mots type word2vec dense, dans laquelle
le mot possède une représentation dans un espace qui le positionne en
fonction des mots adjacents.

Sana Hamdi 63

Vous aimerez peut-être aussi