Modèles neuronaux pour le traitement des langues

21
Modèles neuronaux pour le traitement des langues Matthieu Labeau LIMSI-CNRS 3 février, 2016

Transcript of Modèles neuronaux pour le traitement des langues

Page 1: Modèles neuronaux pour le traitement des langues

Modèles neuronaux pour le traitement deslangues

Matthieu Labeau

LIMSI-CNRS

3 février, 2016

Page 2: Modèles neuronaux pour le traitement des langues

Plan

Introduction aux réseaux de neuronesMotivationsPerceptron multi-coucheModèle de langue neuronal

Autres modèles neuronaux

Page 3: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Introduction aux réseaux de neuronesMotivationsPerceptron multi-coucheModèle de langue neuronal

Autres modèles neuronaux

Page 4: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Motivations

Complexifier un modèle trop simple ?

I Le perceptron ne permet de classifier que des donnéeslinéairement séparable : c’est trop restrictif.

I Exemple classique : tenter d’apprendre, avec unperceptron, les fonctions logique OR, AND, et XOR.

Page 5: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Motivations

Extraire les bonnes features ?

I Dans le cas de la classification, la relation entre nosdonnées et la classe à prédire n’est clairement pas linéaire.

I On a pu voir qu’extraire de bonnes features est essentiel,surtout quand le modèle utilisé est trop simple.

I L’extraction de ces features dépend du domaine danslequel on travaille : que faire sans accès à desconnaissances sur ce domaine ?

Page 6: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Motivations

Motivation biologique

I Comparaison entre un neurone biologique et mathématique - lespoids contrôlent l’influence des autres neurones, et la fonctiond’activation réduit la sortie à 0 ou à 1 selon le dépassement d’unseuil.

Page 7: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Perceptron multi-couche

Approximateur universel

I ’Empiler’ deux perceptrons permet de représenter desclasses non-séparables linéairement - l’idée date de la findes années 50.

I On peut voir la/les couches inférieures commeapproximant des fonctions d’extraction de features, et lacouche supérieur comme approximant la classification.

I Universal Approximation Theorem : Un simple réseau deneurones avec une couche cachée peut représentern’importe quelle fonction continue sur un compact de Rn.Cependant, ces fonctions sont-elles apprenables ?

Page 8: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Perceptron multi-couche

Architecture

I Exemple d’un réseau de neurones à une couche cachée.

Page 9: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Perceptron multi-couche

Algorithme d’apprentissage ?

I Cependant, la fonction objectif à minimiser est maintenantbeaucoup plus complexe, puisqu’elle dépend de l’empilement deplusieurs perceptrons. Un algorithme comme celui duperceptron ne fonctionnerait que pour la couche extérieure.

I La solution, la backpropagation, a été inventée dans les années60 et implémentée dans les années 70.

Page 10: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Perceptron multi-couche

Backpropagation

I Il s’agit, lorsqu’une erreur est faite par le réseau, de la propageren arrière (back ) pour corriger chacune des contributions despoids des couches inférieures à cette erreur.

I Le graphe computationnel représente la fonction suivante :

Cy (σ(Wσ(Ux + c) + b), y)

Page 11: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Perceptron multi-couche

I On calcule les gradients de la fonction objectif par rapportaux paramètres des couches ’inférieures’ en utilisant lesgradients par rapport aux paramètres des couches’supérieures’ :

∂Cy

∂MatSum=∂Cy

∂σ

∂σ

∂MatSum

I Un algorithme d’optimisation (traditionellement, ladescente de gradient stochastique - SGD) utilise cesinformations pour minimiser la fonction objectif.

Page 12: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Modèle de langue neuronal

Représentation des mots

I On revient maintenant à notre problème initial : calculer laprobabilité d’un mot en fonction des n− 1 précédents, c’està dire calculer

P(wi |w i−11 ) = P(wi |w i−1

i−n+1)

I Puisqu’on fournit à un réseau des entrées sous forme devecteurs de features, comment représenter nos mots ?

I La première idée sera d’utiliser de donner à chaque mot duvocabulaire une dimension - et donc d’utiliser des vecteursone-hot :

wi = [0,0, ...,0, 1︸︷︷︸i-ème mot

, ...,0]T ∈ {0,1}|V |

Page 13: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Modèle de langue neuronal

Hypothèse distributionelle

I D’abord proposée par Bengio et al, 2003: A neuralprobabilistic Language Model

I L’idée est de représenter chaque mot par un vecteur. Cesvecteurs sont des paramètres qui seront appris en mêmetemps que le reste du réseau.

I Cela permet de généraliser : deux mots qui ont descontextes similaires auront des vecteurs proches.

The cat is walking in the bedroom

The dog is running in the room

Intuitivement, le réseau apprendra des représentationsproche pour ’cat’ et ’dog’.

Page 14: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Modèle de langue neuronal

Word Embeddings

I (a) Représentation sparse - features binaires, très hautedimension

I (b) Représentation dense - Chaque mot est représenté par unvecteur - pas d’encodage explicite des features. La dimension est(en général) basse.

Page 15: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Modèle de langue neuronal

Visualisation

I De Turian et al, 2010 : représentation de mots appriseavec t-SNE.

I Les mots similaires sont clairement groupés ensembles.

Page 16: Modèles neuronaux pour le traitement des langues

Introduction aux réseaux de neurones

Modèle de langue neuronal

Architecture

I C(wi) est le vecteur représentant le i-ème mot du vocabulaire.I Les mots du contexte sont concaténés et passent par une couche

cachée, dont la fonction d’activation est la tangente hyperbolique.I La couche de sortie a pour fonction d’activation softmax, qui

permet de transformer les scores de sortie de chaque mot enprobabilités, en les normalisant.

Page 17: Modèles neuronaux pour le traitement des langues

Autres modèles neuronaux

Introduction aux réseaux de neuronesMotivationsPerceptron multi-coucheModèle de langue neuronal

Autres modèles neuronaux

Page 18: Modèles neuronaux pour le traitement des langues

Autres modèles neuronaux

Word2Vec

I Modèle (en quelque sorte) neuronal qui permet d’obtenirdes représentations vectorielles pour les mots d’un textede façon non-supervisée.

I Très populaire grâce aux relations quasi-algébriques quiexistent entre les vecteurs attribués à certains mots :

I Disponible librement en projet google.

Page 19: Modèles neuronaux pour le traitement des langues

Autres modèles neuronaux

Réseaux récurrents

I Les réseaux récurrents reprennent l’état caché précédent encompte pour calculer l’état caché présent.

I Ils sont parfaitement adaptés à la structure de séquence -naturelle dans le langage.

I Difficiles à entrainer, ils ont fait l’objet de nombreusesaméliorations - notamment pour étendre leur capacité àmémoriser des informations (GRU, LSTM) et sont depuisquelques années très utilisés.

Page 20: Modèles neuronaux pour le traitement des langues

Autres modèles neuronaux

Neural Machine Translation

I Très récent, ce domaine de recherche réduit la traductionautomatique à un réseau de neurones, constitué d’un réseaurécurrent, qui encode les données, et d’un réseau récurrent quiles décode dans une autre langue.

I Améliorés pour prendre en compte certains concepts commel’alignement entre les séquences et les correspondances entreleurs mots, certains modèles rejoignent les performances dessystèmes statistiques usuels.

Page 21: Modèles neuronaux pour le traitement des langues

Références

I Introduction to Neural Network - cs231n from StanfordUniversity

I Natural Language Understanding with DistributedRepresentation, Kyunghyun Cho

I A Primer on Neural Network Models for Natural LanguageProcessing, Yoav Goldberg