Utilisateur:Moucrowap/Brouillon
- → N'hésitez pas à publier sur le brouillon un texte inachevé et à le modifier autant que vous le souhaitez.
- → Pour enregistrer vos modifications au brouillon, il est nécessaire de cliquer sur le bouton bleu : « Publier les modifications ». Il n'y a pas d'enregistrement automatique.
Si votre but est de publier un nouvel article, votre brouillon doit respecter les points suivants :
- Respectez le droit d'auteur en créant un texte spécialement pour Wikipédia en français (pas de copier-coller venu d'ailleurs).
- Indiquez les éléments démontrant la notoriété du sujet (aide).
- Liez chaque fait présenté à une source de qualité (quelles sources – comment les insérer).
- Utilisez un ton neutre, qui ne soit ni orienté ni publicitaire (aide).
- Veillez également à structurer votre article, de manière à ce qu'il soit conforme aux autres pages de l'encyclopédie (structurer – mettre en page).
- → Si ces points sont respectés, pour transformer votre brouillon en article, utilisez le bouton « publier le brouillon » en haut à droite. Votre brouillon sera alors transféré dans l'espace encyclopédique.
Le word embedding est une méthode d'apprentissage automatique issue du deep learning se focalisant sur l'apprentissage de mots. Cette technique permet de représenter les mots d'un dictionnaire par des vecteurs afin de faciliter leur analyse sémantique et syntaxique. Ainsi, chaque mot sera représenté par un vecteur de réels et les mots apparaissant dans des contextes similaires auront des vecteurs très proches. Cette nouvelle représentation permet de diminuer considérablement l'espace de dimensionnalité (car on ne stocke plus un dictionnaire entier mais uniquement un espace de vecteurs continus).
Introduction
modifierHistorique
modifierEn 1957, Noam Chomsky définit les concepts de la Grammaire générative et transformationnelle qui établissent les bases de la distinction entre la syntaxe et la grammaire d'une langue, expliquant notamment qu'une même phrase peut avoir deux sens différents selon le pays de la personne qui la prononce. Par exemple, le mot char dans le général prend son char n'a pas du tout la même signification en France qu'au Canada : un tank pour la France, une voiture pour le Canada.
Jerrold Katz, professeur distingué en philosophie et en linguistique à la City University of New York a étendu la notion de sémantique au contexte dans Semantic Theory, donnant l'exemple de la phrase "The bill is large" dans lequel, sans contexte, il est impossible de savoir ce que représente le mot "bill": une facture, une affiche...
Motivations
modifierLes applications qui analysent le langage et étudient les mots d'un vocabulaire existaient avant l'arrivée du word embedding. Néanmoins, un certain nombre d'obstacles limitent les possibilités. Parmi ces obstacles, on trouve notamment le problème de la dimensionnalité (on parle de fléau de la dimension). Un dictionnaire contient, en effet, plusieurs dizaine de milliers de mots différents, la plupart de ces mots peuvent prendre plusieurs formes (au pluriel, au féminin ou avec différentes conjugaisons pour les verbes), le stockage est donc impossible. Le word embedding permet de remplacer l'ensemble de ces mots par un ensemble de réels, ce qui est bien moins coûteux. De plus, pour plus de performance dans les résultats, ces applications demandent une analyse sémantique, qui n'est pas possible avec les techniques précédent le word embedding.
Ainsi que ce soit pour traduire un texte où la définition de Chomsky intervient en prenant en compte la sémantique des phrases dans la langue parlée, ou dans la reconnaissance vocale pour laquelle Katz a amené un point de vue nouveau, le word embedding est encore aujoud'hui le centre de plusieurs sujets de recherches :
- traduction
- analyse de sentiments
- reconnaissance vocale
- substitution lexicale
- dialogue homme-machine en langage naturel
Evolution des techniques
modifierL'analyse du langage a connu plusieurs évolutions dans la recherche à mesure que la linguistique informatique se développait avec les avancées de la recherche. D'abord une approche statistique par la loi de Zipf, qui, à partir d'un corpus de mots conséquents (500000) met en évidence les mots-clefs du texte en calculant la fréquence des mots. Ainsi, il a montré que 10% des mots représentent 70% des occurrences et que 20% des mots représentent 90% des occurrences.
Ensuite, apparaissent les modèles de Markov qui cherchent à prédire l'apparition d'un mot en fonction des mots qui le précèdent : bigramme et trigramme.
L'arrivée des réseaux de neurones ouvrent de nouveaux champs de recherches et permettent d'aborder l'analyse sémantique que ne permettent pas les 2 approches précédentes. Le word embedding bénéficie des réseaux de neurones et offre des perspectives s'améliorant régulièrement.
Principe technique
modifierPrincipe général
modifierL'idée générale est de projeter un ensemble de mots dans un espace continue. Cette projection doit permettre, par exemple, le calcul de:
Plusieurs recherches s’appuient sur des réseaux de neurones artificiels pour construire ces vecteurs. Thomas Mikolov propose, au travers de quelques publications et de word2vec, sa façon de faire.
En considérant un corpus de textes, avec un vocabulaire de mots. Nous pouvons définir un réseau de neurones qui a comme entrée , et comme sortie . Ces vecteurs sont de taille , le énième vecteur possède un unique 1 dans sa énième ligne. Ce que nous voulons calculer est la matrice de taille , la matrice qui est connectée à droite aux entrées et à gauche aux couches cachées, dont la énième ligne code le vecteur du énième mot. est un paramètre d'apprentissage.
La propagation consiste à mettre à jour les différentes couches du réseau. Les couches cachées sont juste une application linéaire des entrées et de la couche . La couche de sortie est calculée grâce à la fonction softmax.
La rétro-propagation quant à elle utilise une fonction de perte , qui spécifie une note suivant la sortie en sachant l'entrée . et sont mis à jour en utilisant la dérivée de .
The Skip-gram model (SG)
modifierLe modèle skip-gram apprend en considérant un mot tiré d'une phrase donnée. Autrement dit pour entraîner le réseau de neurones nous considérons une phrase , on en extrait un mot qui sera notre entrée du réseau . Le reste de la phrase sera notre sortie .
La couche cachée est dans ce cas la somme pondérée de l'entrée par , seuls les éléments non nuls de apportent de l'information, on peut donc montrer que: .
La couche de sortie peut être calculée sur la même idée, on a donc que l'entrée à la -ième valeur du -ième mot est:
Nous pouvons donc appliquer la fonction softmax. qui nous donne
La fonction de perte est définie comme étant .
The Continuous Bag-of-Words (CBOW)
modifierLe modèle Continuous Bag-of-words est l'image inverse du skip-gram modèle. A partir d'un contexte il apprend à reconnaître un mot , l'ensemble est une phrase du langage.
Comme dans le modéle Skip-gram la couche cachée est la somme pondérée de l'entré par , on peut donc montrer que: .
La couche de sortie peut être calculée sur la même idée, on a donc que l'entrée à la -iéme valeur du mot est:
Nous pouvons donc appliquer la fonction softmax qui nous donne
La fonction de perte est définie comme étant .
Performance
modifierLes différentes recherches utilisent 3 valeurs de bases pour effectuer les calculs de performances : le rappel, la précision et la mesure-F1. En raison de la transversalité du word embedding, ces valeurs interviennent de façon différentes dans le calcul des performances en fonction du domaine de recherche concerné. Ainsi, les performances pour une substitution lexicale n'ont que peu de rapport avec les performances pour une traduction.
Le rappel représente la fraction du nombre de résultats pertinents par le nombre total de résultats du word embedding.
La précision représente la fraction du nombre de résultats pertinents du word embedding par le total des résultats pertinents.
La mesure F1 est la moyenne harmonique du rappel et de la précision.
Applications
modifierLe word embedding a ouvert de nouvelles perspectives à travers une réduction de dimensionnalité ainsi qu'une nouvelle vision des mots : une vision sémantique. Un certain nombre d'applications ont ainsi pu voir le jour ou connaitre une amélioration importante. Ci-après quelques exemples de ces applications.
Traduction
modifierApport du word embedding
modifierLes premiers outils de traduction se basent sur des corpus parallèles afin d'apprendre les traductions mot à mot. Cette méthode étant très limitée (par exemple "small" peut être traduit par "petit", "petite", "petites" ou "petits" en fonction du contexte, ce qui n'est pas étudié dans le cas présent), la méthode a évoluée en étudiant les bigrammes ou trigrammes afin de replacer chaque mot dans son contexte. La traduction est ainsi largement améliorée mais reste approximative car il n'y a aucune analyse sémantique des phrases.
L'analyse sémantique est difficilement réalisable à partir des mots seuls. La traduction étant l'étude sémantique des similarités entre deux langages, cela rajoute encore une difficulté. Le word embedding permet une traduction automatique à partir des similarités sémantiques entre les langages.
Méthode
modifierLa traduction avec le word embedding se fait en plusieurs temps :
- word embedding sur chacun des deux langages (apprentissage de la sémantique de chaque langage)
- word embedding bilingue (apprentissage des similarités inter-langages)
Le word embedding bilingue nécessite deux étapes :
- l'initialisation
- l'entrainement
Lors de l'initialisation, le coefficient d'alignement de chaque mot d'un langage avec les mots de l'autre langage est calculé, c'est-à-dire le nombre de fois où chaque mot x est aligné avec chaque mot y (et donc apparaît au même endroit dans les deux textes) par rapport au nombre de fois où le mot x apparaît dans toutes les sources.
On crée ainsi une matrice d'alignement où chaque correspond au coefficient d'alignement du ième mot du premier langage avec le jème mot du deuxième langage.
Enfin, pour l'entrainement, on calcule un vecteur objectif qui se base sur la matrice d'alignement précédemment calculée et sur les apprentissages de chaque langage. Ce vecteur servira de vecteur objectif lors de l'entrainement du word embedding bilingue.
Analyse de sentiments
modifierApport du word embedding
modifierAvec l'arrivée des réseaux sociaux, l'analyse automatique de sentiments (Opinion mining) est devenue un domaine de recherche très étudié, le but étant de déduire si une phrase est plutôt positive, négative ou neutre. Cette analyse est notamment utilisée dans l'analyse de tweets.
Avant l'arrivée du word embedding, l'analyse automatique de sentiments se basait sur une base d'apprentissage annotée entièrement à la main.
Le word embedding apporte donc une véritable aide pour l'analyse de sentiments car il permet d'éviter une partie importante de travail manuel.
Méthode
modifierLe word embedding ne peut pas être utilisé tel quel. Il comporte, en effet, une approche sémantique, or, avec cette approche, les mots "good" et "bad", par exemple, seront très proches alors que l'analyse de sentiment les voudrait opposés. Il faut donc ajouter dans la représentation de chaque mot un apprentissage spécifique aux sentiments.
Pour cela, en plus du word embedding sémantique, s'ajoute un word embedding qui étudie les sentiments dans une phrase ainsi qu'un dernier qui va permettre de mêler ces deux word embedding.
Le word embedding qui permet d'étudier les sentiments se base sur les mêmes éléments qu'un word embedding sémantique, c'est-à-dire le même réseau de neurones. Chaque séquence de mot va être étudiée à l'aide d'une fenêtre glissante, c'est-à-dire qu'on étudie n-gramme par n-gramme. La dernière couche du réseau de neurones, qui se base sur des probabilités conditionnelles, calcule la probabilité totale (pour la somme de tous les n-grammes de la séquence de mots) d'avoir une séquence de mot positive ou négative, cette probabilité donne directement la prédiction voulue.
Le word embedding sémantique ne prend pas en compte les sentiments, tandis que le word embedding de sentiments ne prend pas en compte la sémantique. On peut donc les unifier en considérant une fonction de coût qui correspond à une combinaison linéaire des deux fonctions de coûts.
Pour l'entraînement, la base d'apprentissage se base sur un corpus distant-supervisés grâce à des émoticônes positives et négatives, c'est-à-dire un corpus n'étant pas labellé à la main mais grâce à une heuristique ayant un minimum de connaissance (ici la connaissance de l'heuristique est le sentiment en fonction de quelques émoticônes).
Reconnaissance vocale
modifierApport du word embedding
modifierLes principaux problèmes de la reconnaissance vocale sont : le coût, le temps de collecte et d'annotation des données et la mise à jour des données.
Le word embedding permet de contrer l'ensemble de ces inconvénients.
Méthode
modifierL'utilisation du word embedding se fait ici de deux manières : une première étape permet de reconnaître la phonétique de la phrase, une seconde permet d'apprendre à reconnaître de nouveaux mots.
Lors de la première étape, un flux de parole correspondant à une phrase exprimée par l'utilisateur est donné en entrée. Le word embedding est d'abord entraîné pour trouver le prochain mot d'une phrase à partir d'un corpus de textes. Afin de déterminer chaque mot, le début de la phrase déjà analysée et la phonétique partant du début jusqu'à la fin du mot à analyser est donné en entrée. Cela permet de calculer la probabilité avec un softmax de chaque mot possible à partir de sa phonétique, afin de déterminer le mot le plus probable.
Cette technique n'est, cependant, pas suffisante car les mots détectés doivent exclusivement faire partie des corpus utilisés lors de l'entrainement. Ce problème est réglé par l'ajout d'un deuxième word embedding qui ne travaille pas sur la sémantique mais sur les mots proches phonétiquement. Ce dernier se base sur les ensembles de lettres. Par exemple, le mot "hello" est décomposé comme suit : {h, e, l, o, [h, he, el, lo, o], [he, hel, ell, llo, lo], . . . }. Afin de l’entraîner, deux word embedding phonétiques et un acoustique sont utilisés (voir figure ci-contre). Le flux de parole correspondant à un mot est envoyé en entrée du word embedding acoustique, puis deux mots pouvant correspondre (le bon mot ainsi qu'un mauvais) sont envoyés aux deux autres. Un tel entraînement permet de comprendre d'autres mots et permet d'apprendre les mots proches phonétiquement car leurs vecteurs ainsi calculés sont très proches.
Bibliographie
modifier- Bengio and al. 2003. A Neural Probabilistic Language Model.
- Alex Minnaar blog, http://alexminnaar.com/
- Mikolov and al. 2013. Distributed Representations of Words and Phrases and their Compositionality
- Thomas Mikolov Word2Vec implementation, https://code.google.com/p/word2vec/
- Jerrold J. Katz. 1973. Semanthic theory.
- Will Y. Zou†, Richard Socher, Daniel Cer, Christopher D. Manning. 2013. Bilingual Word Embeddings for Phrase-Based Machine Translation.
- Duyu Tang, Furu Wei, Nan Yang, Ming Zhou, Ting Liu, Bing Qin. 2014. Learning Sentiment-Specific Word Embedding for Twitter Sentiment Classification.
- Emmanuel Ferreira, Bassam Jabaian and Fabrice Lefevre. Univ. of Avignon. 2015. Online adaptative zero-shot learning spoken language understanding using word-embedding.
- Samy Bengio, Georg Heigold. 2014. Word embedding for Speech Recognition.
- Olivier Ferret. Laboratoire Vision et Ingénierie des Contenus. Utiliser un modèle neuronal générique pour la substitution lexicale.
- Killian Janod and al. 2015. Apport de l’information temporelle des contextes pour la représentation vectorielle continue des mots