33
1/33 Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références Application du deep learning à la traduction automatisée soutenance de stage Alex AUVOLAT Montreal Institute for Learning Algorithms sous l’encadrement de Yoshua Bengio et Pascal Vincent Avril - Août 2014 Application du deep learning à la traduction automatisée Alex AUVOLAT

Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

  • Upload
    lethuy

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

1/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Application du deep learningà la traduction automatisée

soutenance de stage

Alex AUVOLATMontreal Institute for Learning Algorithms

sous l’encadrement de Yoshua Bengio et Pascal Vincent

Avril - Août 2014

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 2: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

2/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Plan

1 Généralités sur le deep learning

2 Modèles de traduction

3 Optimisation du softmax

4 Compétition Kaggle

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 3: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

3/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Section 1

Généralités sur le deep learning

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 4: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

4/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Introduction

Deep learning : réseaux de neurones, sous un nouveau nomUne méthode de base : la backpropagation (rétropropagationdu gradient)Variations sur les architectures de réseaux utilisés : profondeur,largeur, récurrent, convolutionnelCapacité d’entraîner des réseaux très larges

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 5: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

5/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Fonctions paramétriques

Les réseaux de neurones sont une classe de fonctionsparamétriques :

fθ : X → Y

θ : vecteur de tous les paramètres de la fonctionfθ peut être pensée comme un graphe de calcul (Theano),c’est-à-dire comme une composition de fonctions élémentaires

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 6: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

6/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Neurones artificiels

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 7: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

7/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Neurones artificiels

oj = ϕ (x1w1j + x2w2j + · · ·+ xnwnj + bj)

Paramètres :wij : poidsbj : biais

Hyperparamètre :ϕ : fonction d’activation, généralement non-linéaire

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 8: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

8/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Couches de neurones

Tous les neurones d’une couche ont les mêmes entrées, donc lecalcul est essentiellement une multiplication matricielle :

o = ϕ (Wx + b)

W : matrice de poidsb : vecteur de biaisϕ : fonction d’activation point par point

Intérêt : une multiplication matricielle peut être parallélisée trèsrapidement sur un GPU.

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 9: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

9/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Modèles profonds

Un modèle avec une couche cachée peut approximer n’importequelle fonctionDans certains cas, rajouter des couches permet de diminuerexponentiellement le nombres de neurones requis pour calculerune certaine fonctionProblèmes de gradients qui explosent ou qui disparaissent,partiellement résolu avec la fonction d’activationϕ(x) = max(0, x)

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 10: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

10/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Mesure d’erreur

Dans le cas de l’apprentissage supervisé, on dispose d’un ensembleT de couples (x , y) qui servent à entraîner le modèle.On définit une mesure d’erreur, ou fonction de coût :

L =∑

(x ,y)∈T

l(fθ(x), y)

Classification : fθ(x) est une distribution de probabilité sur lesclasses,

l(fθ(x), y) = −log(fθ(x)y )

Régression :l(fθ(x), y) = ||fθ(x)− y ||22

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 11: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

11/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Descente de gradient

On adapte itérativement les paramètres θ en suivant le gradientdescendant du coût :

θ ← θ + λ∇θL

λ : taux d’apprentissage, à choisir avec précision.Descente de gradient stochastique (SGD) : on utilise un seulexemple pour calculer le gradient :

θ ← θ + λ∇θl(fθ(x), y)

Généralement on utilise une SGD avec un minibatch d’environ 100exemples.Alternatives : momentum, AdaDelta, Adam, . . .

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 12: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

12/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Avec Theano, la backprop c’est magique

Avec Theano, pas besoin de calculer de gradients manuellement.

Étant donné le graphe de calcul de la fonction originale, Theanocalcule automatiquement l’expression symbolique pour les gradients.

Cela permet de se concentrer sur l’architecture du modèle enfaisant complètement abstraction de la backpropagation.

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 13: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

13/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Réseaux récurrents

Un réseau récurrent permet de traiter des entrées/sorties delongueur arbitraire :

...

Correspond à la primitive scan dans Theano.

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 14: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

14/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Section 2

Modèles de traduction

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 15: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

15/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Génération séquentielle avec un réseau récurrent

...

x1 x2 xT

h1 h2 hT

x2 x3 xT+1

Entraînement : les xi sont une phrase qui existe, issue du dataset.Exploitation : on choisit un mot à chaque étape selon ladistribution xi , qui devient l’entrée suivante xi .

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 16: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

16/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Modèle encodeur-décodeur simple

On utilise un réseau récurrent pour encoder la phrase dans unereprésentation de taille fixe, puis on utilise un autre réseaurécurrent pour générer la traduction :

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 17: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

17/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Modèle encodeur-décodeur simple

Limitation : la phrase entière ne peut en général pas êtrereprésentée dans un vecteur C de taille fixe.

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 18: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

18/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Modèle avec mécanisme d’attention

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 19: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

19/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Modèle avec mécanisme d’attention

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 20: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

20/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Section 3

Optimisation du softmax

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 21: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

21/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Couche de sortie : opération softmax

La couche de sortie doit donner un vecteur de probabilité surl’ensemble des mots. On utilise un softmax pour normaliser :

o = softmax(Wx + b)

softmax(a)i =eaj∑N

k=1 eak

oj =eWjx+bj∑N

k=1 eWkx+bk

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 22: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

22/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Optimisation

En général la dimension de sortie est très grande (taille duvocabulaire, plusieurs centaines de milliers de mots)Même pour calculer une seule valeur, on doit calculer leproduit matriciel en entierApproximation : dans le dénominateur, un grand nombre determes sera négligeables devant les quelques termes dominants

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 23: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

23/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Maximum inner product search

Il faut trouver quels termes seront dominants dans ledénominateurCela correspond à trouver les termes qui maximisent Wkx + bk

C’est un problème de maximum inner product search

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 24: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

24/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Solution

On peut approximer MCSS (maximum cosine similarity search)avec un clustering k-means sphériqueOn peut transformer MIPS en MCSS en rajoutant descomposantesOn peut donc trouver approximativement les termesdominants avec une méthode de clustering

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 25: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

25/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Résultats

L’approche clustering est plus précise que d’autres basées sur deshash LSH (locality-sensitive hashing)

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 26: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

26/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Utilisation

Exploitation du modèle : cela permet de trouver rapidementles p meilleurs candidatsEntraînement du modèle : en approximant le dénominateur dusoftmax, l’entraînement peut être accéléréMise en pratique : ça ne fonctionne pas encore

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 27: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

27/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Section 4

Compétition Kaggle

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 28: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

28/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Description du problème

Problème : prédire la destination d’un taxi à partir du début de sontrajet

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 29: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

29/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Entrées

trajectoire : un point GPStoutes les 15 secondesmétadonnées du trajet :

ID clientID stand taxiID taxiheure de début du trajet

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 30: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

30/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Solution gagnante

embeddings

...

trajectory prefix metadatadate, client, ...

hidden layer

softmax

destination prediction

centroid (ci )1≤i≤C

clusters

(ei )i

(pi )i

y

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 31: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

31/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Amélioration

embeddings

trajectory prefix metadata

date, client, ...

hidden layer

...

...h h h h

...h h h h

...

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 32: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

32/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Conclusion

On peut adapter les réseaux de neurones à n’importe quelproblèmeBeaucoup moins de travail manuel (feature engineering, choixde modèle) qu’avec du machine learning classiqueEt des résultats meilleurs !

Application du deep learning à la traduction automatisée Alex AUVOLAT

Page 33: Application du deep learning à la traduction automatisée ... · Généralités sur le deep learningModèles de traductionOptimisation du softmaxCompétition KaggleRéférences Papiers

33/33

Généralités sur le deep learning Modèles de traduction Optimisation du softmax Compétition Kaggle Références

Papiers

Alex Auvolat and Pascal Vincent.Clustering is efficient for approximate maximum inner productsearch.arXiv preprint arXiv :1507.05910, 2015.

Alexandre de Brébisson, Étienne Simon, Alex Auvolat, PascalVincent, and Yoshua Bengio.Artificial neural networks applied to taxi destinationprediction.arXiv preprint arXiv :1508.00021, 2015.

Application du deep learning à la traduction automatisée Alex AUVOLAT