Traitement des langues naturelles & Représentations 

Télécharger le fichier pdf d’un mémoire de fin d’études

Auto-Encoder

Une des approches neuronales dans le cas non-supervisé est l’Auto-Encodeur. Cette approche permet d’opérer une réduction de dimension, induisant une nouvelle métrique sur les données. Les Auto-Encodeurs sont également utilisés pour dé-bruiter les données ou pour les visualiser, soit directement en fixant k = 2 ou 3 (Hinton and Salakhutdinov, 2006), soit en phase préalable d’une visualisation t-SNE (Maaten and Hinton, 2008).
Un auto-encodeur suit le principe suivant. Soit x 2 RD la représentation initiale d’un objet (e.g. le vecteur tf-idf d’un document ou l’ensemble des pixels d’une image). Une fonction f appelée « encodeur » envoie x sur f (x) = y dans Rk, avec k un hyperparamètre du modèle (la dimension de la couche intermédiaire), habituellement k << D. Une autre fonction g appelée « décodeur » envoie y sur une représentation de même dimension que la dimension initiale g (y) = z où f et g sont optimisées pour minimiser l’erreur de reconstruction au sens des moindres carrés L (x; z) = kx zk22 par descente de gradient.
Dans le cas où f et g comprennent une seule couche cachée, les fonctions sont données par :
f (x) = (W x + b)
g (y) = (W 0y + b0)
où W 2 RD k, W 0 2 Rk D et b 2 Rd un vecteur de biais. est une fonction d’activation non-linéaire. Dans le cas dit des poids liés, W 0 = W T est imposé (Vincent et al., 2008), réduisant ainsi le nombre de paramètres et contraignant le modèle, minimisant ainsi le risque de sur-apprentissage. Dans le cas d’une fonction d’activation linéaire ( (x) = x) avec une seule couche, la compression apprise par un Auto-Encodeur avec k neurones sur la couche cachée approxime la projection sur les k premiers axes (vecteurs propres) d’une analyse par composantes principales (Bourlard and Kamp, 1988).
Denoising Auto-Encoder
Une représentation plus robuste est obtenue en bruitant l’entrée de l’auto-encodeur (Vincent et al., 2008). Soit x~ une représentation obtenue à partir de x en ajoutant un bruit Gaussien ou en annulant des coordonnées aléatoires (bruit de type « dropout »). L’auto-encodeur est optimisé pour minimiser la perte par rapport à l’entrée originelle x. L(x; z) = kx zk22 avec z = g (f (x~)).
L’approche Denoising Auto-Encoder impose que le gradient de l’encodeur soit (quasi) nul au voisinage des points considérés (Vincent et al., 2008), ce qui agit comme une régularisation et prévient le phénomène de sur-apprentissage.
Dans le cas d’un auto-encodeur profond (stacked auto-encoder), l’encodeur comme le décodeur font intervenir plusieurs couches neuronales (Vincent et al., 2010). L’objectif est d’obtenir une représentation plus abstraite et plus riche au niveau des couches intermédiaires, souvent de plus faible dimension ; la représentation est toujours donnée par y = f (x). Cette approche a notamment obtenu de très bons résultats dans le contexte de l’analyse de sentiment (Glorot et al., 2011).
Optimisation d’un réseau de neurones et hyperparamètres
Les méthodes d’optimisation des réseaux de neurones sont un aspect crucial dans notre étude. Nous décrivons ici les principales techniques utilisées lors de l’entraînement d’un réseau de neurones.
Descente de gradient
La descente de gradient, formulée pour les réseaux de neurones (Rumelhart et al., 1986), vient de l’optimisation fonctionnelle. En effet, tout réseau de neurones représente une fonction différentiable en tout point : la descente de gradient peut alors s’appliquer. Il s’agit de minimiser la fonction objectif ‘ (dépendant du problème) sur l’ensemble des données d’entraînement, en modifiant les paramètres internes du modèle. Cela peut être obtenu en calculant le gradient sur l’ensemble des données. Cependant, cette opération étant coûteuse, nous séparons habituellement l’ensemble d’en-traînement en une partition aléatoire, où chaque partie est appelé batch. Les paramètres du modèle sont enfin mis à jour suivant le gradient calculé sur les éléments du batch X, nous avons ainsi i+1 =  i r‘ i (X)
Ici X correspond aux données du batch, au pas d’apprentissage (learning rate) et r‘ i (X) est la moyenne des gradients de f paramétré par i aux points de X. Cette mise à jour est facilement calculée par back-propagation de l’erreur, dont une présentation peut-être trouvée dans (LeCun et al., 1998b).
La stochasticité de cette descente de gradient est apportée par les batch. De plus, une taille de batch faible (entre 2 et 32 éléments par batch) confère une plus grande stabilité pour l’intervalle du pas d’apprentissage, c’est à dire que l’intervalle de valeurs du pas d’apprentissage garantissant une convergence du réseau est plus large (Keskar et al., 2016; Masters and Luschi, 2018).
Momentum
De nombreuses améliorations sont apportées à cette descente de gradient stochastique, dont la première est l’ajout d’un momentum qui vise à lisser le gradient. Cela accélère non seulement la convergence mais stabilise également l’apprentissage, augmentant la robustesse de la convergence par rapport au pas d’apprentissage (Sutskever et al., 2013). En posant zi la variation des paramètres à l’étape i, la mise à jour des poids s’écrit :
zi+1 =  zi (1 )r‘ i (X)
i+1 =  i +  zi
Ici 2 [0; 1] est un paramètre contrôlant la force du momentum. Ainsi, plus est proche de 1, plus le momentum est élevé, si = 0 nous retrouvons la descente de gradient classique.
Adam
Une méthode récente appréciée et utilisée par la communauté est la méthode Adam (Kingma and Ba, 2014) dont la robustesse est discutée par Ruder (2016).
Hyperparamètres
Fonctions d’activations
Les fonctions d’activations les plus usitées sont, dans l’ordre chronologique :
— sigmoïde, x 7!1+1e x
— tanh, x 7!ex  e x ex+e x
— ReLU (Rectified linear units), x 7!max(0; x) (He et al., 2015).
Les fonctions sigmoide et tanh soufrent de saturation dans les régions extrêmes, où leur gradient est proche de zéro, ce qui rend inactifs ces neurones qui restent collés à 1 ou à 0 durant tout l’apprentissage.
La ReLU est au coeur des récents succès des réseaux profonds. En effet, il y a moins de problèmes de disparition du gradient car son gradient est soit de zéro pour les valeurs négatives, soit de 1 pour les valeurs positives.
Initialisation
L’initialisation des poids du réseau peut également jouer un rôle critique durant l’apprentissage. En effet, certains choix d’initialisation aboutissent à des performances médiocres (Sutskever et al., 2013). Deux méthodes d’initialisation sont populaires. La première est appelée Glorot (Glorot and Bengio, 2010a), où les poids initiaux sont tirés par une loi normale centrée en 0 de déviation standard 2 , dont la valeur absolue est tronquée à 1, où f anin est le nombre de neurones entrant fanin+fanout du neurone et f an out le nombre de neurones sortant du neurone. Cette initialisation permet de contrôler la distribution des valeurs de la sortie, remédiant ainsi au problème de saturation des fonctions d’activation. La seconde méthode d’initialisation appelée He (He et al., 2015) est très proche de l’initialisation Glorot. Elle utilise une déviation standard de q , jugée plus robuste pour les fonctions d’activation de type ReLU.

Dropout

Le dropout (Hinton et al., 2012; Srivastava et al., 2014) est une méthode pour prévenir le sur-apprentissage. Pour chaque exemple d’entraînement présenté au réseau, chaque unité cachée est aléatoirement fixée à 0 avec une certaine probabilité p. Le dropout permet de prévenir la co-adaptation des neurones, la contribution d’un neurones s’ajoutant a celle d’un ensemble aléatoire de neurones de la même couche, chaque neurone est encouragé à apporter une contribution utile et indépendante des autres.
Lors de la prédiction, tous les neurones sont actifs et leur valeur est multipliée par 1 p. En contre partie, le dropout augmente généralement le temps d’apprentissage par un facteur deux ou trois.
Normalisation par batch
Il est recommandé de normer et centrer les données en entrée du réseau de neurones pour éviter l’évanescence et/ou l’explosion du gradient. Cependant, les couches cachées ne sont pas normalisées, ce qui peut amener ces inconvénients.
La normalisation par batch (Ioffe and Szegedy, 2015) permet d’étendre les bénéfices de la nor-malisation au niveau de chaque couche cachée.
Dans ce cas, l’entrée de chaque neurone est indépendamment normalisée, pour avoir une moyenne de zéro sur l’ensemble des données d’apprentissage et une variance de un. Ici, la moyenne et la variance sont estimées sur l’ensemble d’entraînement. Expérimentalement, la normalisation par batch permet, sur des données comme ImageNet, de réduire d’un ordre de grandeur le temps d’entraînement ainsi que d’améliorer le score de prédiction 1. Cette technique est maintenant une des composantes standard des méthodes d’optimisation des réseaux de neurones.
Recherche d’hyperparamètres
La performance d’un algorithme d’apprentissage en général dépend de ses hyperparamètres. La recherche d’hyperparamètres manuelle, par essai-erreur pose des problèmes de reproductibilité et de passage à l’echelle. La méthode historique fondée sur la recherche des hyperparamètres selon une grille de valeurs croît de manière exponentielle avec le nombre d’hyperparamètres et chaque expérience peut être coûteuse en temps de calcul. Cette recherche par grille peut mener à de médiocres performances comparativement à une recherche aléatoire (random search) (Bergstra and Bengio, 2012), où chaque valeur est tiré indépendamment suivant une distribution. En effet, prenons en exemple un cas d’optimisation lorsque seulement certains hyperparamètres sont cruciaux pour le modèle (comme le pas d’apprentissage) et que d’autres n’ont pas d’influence (comme parfois l’ajout de Dropout)
— Dans le cas de la recherche en grille, chaque hyperparamètre est traité avec la même intensité. En particulier, à un pas d’apprentissage fixé, toutes les valeurs de Dropout sont testées (inutilement) ;
— contrairement à la recherche aléatoire, lors de chaque nouvel essai, une valeur différente pour le pas d’apprentissage et pour la valeur de Dropout sont essayées. Ainsi, un hyperparamètre non influent ne pénalise pas la recherche aléatoire.
De plus, une recherche aléatoire explore une plus grande diversité de valeurs dans chaque dimen-sion définie par les hyperparamètres, et dispose ainsi de plus de liberté pour trouver de meilleures régions de l’espace.
Cependant, la recherche purement aléatoire peut être « malchanceuse » et ne tirer qu’un ensemble de valeurs laissant certaines régions inexplorées. Ainsi, des méthodes quasi-aléatoires telles que des séquences de discordance faibles (Low Discrepancy Sequences) sont proposées pour remédier à ce problème (Bousquet et al., 2017). Notons également qu’il existe une recherche active autour de la recherche automatique d’hyperparamètres (Kotthoff et al., 2017; Guyon et al., 2015).
Surapprentissage
Le surapprentissage (overfitting) intervient lorsque la complexité du modèle (typiquement son nombre de couches ; ou le nombre de neurones dans la couche intermédiaire) est trop élevée par rapport aux données disponibles (Vapnik, 1998). Le signe du surapprentissage est que les perfor-mances sur les données d’apprentissage sont bien meilleures que les performances en test. Plusieurs méthodes sont mises en place pour éviter ce phénomène ; les plus populaires sont les suivantes :
— réduire le nombre de paramètres du modèle ;
— ajouter un terme de régularisation à la fonction objectif, e.g. par l’ajout d’une pénalité de type L1 ou L2 sur les paramètres du modèle (nommé régularisation « ridge » (Hoerl and Kennard, 1970) ou « lasso » (Tibshirani, 1996) dans le cas de la régression linéaire) ;
— la validation croisée (Kohavi et al., 1995) ;
— arrêter l’apprentissage avant la convergence (early stopping) si l’erreur de généralisation augmente.
— masquer aléatoirement l’activation de certains neurones pendant l’entraînement (dropout) ou masquer certaines connections (dropconnect) (Wan et al., 2013) ;
— la normalisation par batch.
Implémentation
Le gain récent de popularité des réseaux de neurones a mené lors des dernières années aux déve-loppement de nombreuses bibliothèques logicielles. La communauté d’utilisateurs enrichit continuel-lement cette base. Parmi les bibliothèques les plus populaires, figurent TensorFlow (Abadi et al., 2016), Keras (Chollet et al., 2015), Torch (Collobert et al., 2011a) (ainsi que sa version python PyTorch (Paszke et al., 2017)), CNTK (Seide and Agarwal, 2016) et Theano (Theano Develop-ment Team, 2016). Développées par les acteurs académique et industrielles, ces bibliothèques sont utilisées par tous.
Permettant de prototyper des modèles rapidement, les opérations bas niveaux, telles que les produits matriciels ou les calculs de gradients sont aisément accessibles et manipulables. Par ailleurs, ces bibliothèque implémentent rapidement les avancées de l’état de l’art.

Traitement des langues naturelles & Représentations

Ce document concerne le filtrage collaboratif dans le domaine de l’emploi, où les objets (offres d’emploi) et les utilisateurs sont décrits par des documents. Ce chapitre se focalise ainsi sur la représentation de textes en langage naturel pour le filtrage collaboratif, à l’exclusion des nombreuses autres applications du traitement des langues naturelles 1. Ce chapitre est en particulier consacré à la représentation continue des documents en langage naturel, plongeant un texte dans Rd où d est un hyper-paramètre spécifiant la taille de la représentation (usuellement entre 50 et 300). Un tel plongement dans un espace métrique définit de fait une distance entre documents. Cela permet l’utilisation de système de recommandation à base de mémoire, décrit au chapitre suivant (Section 3).
Après avoir décrit les prétraitements génériques des documents (Section 2.1), ce chapitre détaille plusieurs méthodes de représentations non-supervisées de documents en distinguant deux familles de méthodes : les approches fondées sur les sacs de mots (Section 2.2) et celles fondées sur les modèles de langue (Section 2.3). Ce chapitre s’achève sur les méthodes de réduction de dimensionalité et de visualisation (Section 2.4). Dans la suite, nd désigne le nombre de documents du corpus considéré.

Représentation vectorielle – Sac de mots

La phase suivant la phase de nettoyage dans l’approche présentée associe une représentation vectorielle à une suite de termes. Deux approches sont distinguées. La première considère des sacs de mots (ou sacs de termes), où l’ordre des termes n’est pas pris en compte. La deuxième approche, que nous décrivons avec les modèles de langue (Section 2.3), garde l’information séquentielle des phrases. Dans l’approche « sac de mots » un ensemble de nd documents, appelé corpus, est représenté par une matrice « documents termes » notée D, où une ligne correspond à un document et une colonne à un terme 3. La cellule i; j de cette matrice représente le nombre d’occurrences du terme j dans le document i (ou bien une valeur binaire de présence du terme dans le document). Cette matrice est très clairsemée. Ainsi dans le contexte de Qapa 4 la fraction des cellules non nulles est de .8 % .
Projection LSA
Une réponse à cette limitation consiste à effectuer une réduction de dimension de l’espace du vocabulaire. L’une des approches les plus étudiées consiste à factoriser la matrice D selon une dé-composition en vecteurs singuliers (SVD). Cette approche proposée par Deerwester et al. (1990) 6, est appelée analyse sémantique latente (LSA, Latent Semantic Analysis ou LSI, Latent Semantic Indexing) ; elle détermine une représention dense de faible dimension pour les documents. L’hypo-thèse sous-jacente de LSA est que la dimensionalité « intrinsèque » des documents est faible (quelques centaines) comparée à la taille du vocabulaire (en dizaines de milliers). D’autre part, ainsi que men-tionné ci-dessus, le langage naturel souffre des deux phénomènes de synonymie (différents termes peuvent avoir le même sens) et de polysémie (un même terme peut avoir deux sens différents). La LSA, compressant les documents dans un espace de taille réduite, permet de remédier au premier phénomène : si deux termes peuvent être utilisés de manière similaire, et donc avec les mêmes contextes, la réduction de dimensionalité les projettera tous deux sur des vecteurs proches. Cette réduction de dimensionalité a également pour effet de définir une représentation dense (non clair-semée) des termes.

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction 
1 Réseaux de neurones 
1.1 Modèle de réseaux
1.1.1 Perceptron multi-couches
1.1.2 Auto-Encoder
1.1.3 Denoising Auto-Encoder
1.2 Optimisation d’un réseau de neurones et hyperparamètres
1.2.1 Descente de gradient
1.2.1.1 Momentum
1.2.1.2 Adam
1.2.2 Hyperparamètres
1.2.2.1 Fonctions d’activations
1.2.2.2 Initialisation
1.2.2.3 Dropout
1.2.2.4 Normalisation par batch
1.2.2.5 Recherche d’hyperparamètres
1.2.2.6 Surapprentissage
1.2.2.7 Implémentation
2 Traitement des langues naturelles & Représentations 
2.1 Prétraitements usuels
2.2 Représentation vectorielle – Sac de mots
2.2.1 Sac de mots
2.2.2 tf-idf
2.2.3 Projection LSA
2.2.4 LDA
2.3 Modèle de langue
2.3.1 Représentation des mots (words embedding)
2.3.1.1 Des mots aux documents
2.3.2 Au delà des modèles de langues
2.4 Réduction de dimensionalité
2.4.1 t-SNE
3 Système de recommandation 
3.1 Introduction
3.1.1 Définitions
3.2 Les méthodes de recommandations
3.2.1 Filtrage collaboratif
3.2.1.1 À base de modèle
3.2.1.2 À base de mémoire, orientée objet
3.2.1.3 Limites du filtrage collaboratif
3.2.2 À base de contenu
3.2.2.1 À base de modèle
3.2.3 Méthodes hybrides, méthodes d’ensembles
3.3 Évaluer un système de recommandation
3.3.1 Mesure de précision : prédire la note
3.3.2 Mesure de support de décision : score de classification
3.3.3 Mesure de rang
3.3.4 Autres mesures
4 Description des données 
4.1 Introduction
4.2 Jeux de données
4.2.1 CiteUlike
4.2.2 ResSys
4.2.3 Qapa
4.2.4 ABG
5 Analyse des données 
5.1 Qualité de R
5.1.1 Qualité du filtrage collaboratif
5.1.2 Graphe des interactions et petit monde
5.2 Qualité des documents
5.2.1 Comparaisons de tf-idf, LSA, LDA et Doc2Vec
5.2.2 Appariement direct offre – CV
5.2.3 Recommandation à base de mémoire
5.3 Analyse Qapa par métiers
5.3.1 Cartographie des offres et des métiers
6 Réseaux Siamois LaJam 
6.1 Apprentissage de métrique
6.1.1 Approche linéaire : Distance de Mahalanobis
6.1.2 Approche non-linéaire : les Réseaux Siamois
6.1.2.1 Discussion
6.2 Modèle LaJam
6.3 Expériences préliminaire sur le rouleau Suisse
6.4 LaJam
6.4.1 Protocole expérimental
6.4.2 Démarrage à chaud
6.4.3 Démarrage à froid
6.5 Discussion
7 Challenge RecSys 
Conclusion 
A Collaborative Local Embedding (CLE) : Distorsion locale de la représentation
A.1 Locally Linear Embedding
A.2 Distorsion
A.3 Modèle CLE
A.3.1 Résultats
B Différence d’orientation entre objet et utilisateur
C Données Qapa
D Données ABG

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *