Uploaded by Timothée LEFEBVRE

fiche revision LNP

advertisement
Fiche Langage naturel
Created
@18 janvier 2024 00:33
Tags
Cours 0 Introduction et objectifs
En bref : La LNP est un domaine de l'informatique qui vise à reproduire tout ce que
les humains savent faire avec le langage via un par un ordinateur.
La classification de textes consiste à étiqueter un texte donné à l'aide d'étiquettes
prédéfinies.
Exemples : actualités, finances, sports, voitures, internet, etc. Un exemple simple,
mais utile
simple mais utile est la classification SPAM/NON SPAM
Par essence,
le regroupement de textes est la version non supervisée de la classification
Objectif = segmenter un texte ou un corpus en différentes parties, mais celles-ci
n'ont pas d'étiquette prédéfinie.
Un thème (topic) est un ensemble de mots fortement corrélés les uns aux autres
En supposant qu'un document est lié à plusieurs thèmes on a :
Cette expansion bayésienne s'avère plus efficace que l'utilisation directe des mots.
Objectif = comprimer un texte tout en minimisant la perte de son sens
Tâche très difficile, car elle nécessite une compréhension approfondie du texte.
Fiche Langage naturel
1
Deux grandes familles de méthodes :
extractives et abstractives
Méthodes extractives :
Extraire les phrases importantes du texte et laisser les autres de côté.
- Utilisation d’une
fonction de notation est nécessaire pour classer l'importance des phrases. LSA
fonction pour Latent semantic analysis
Méthodes abstraites :
Analyser l'information sémantique de chaque phrase du texte
Produire des phrases plus courtes et entièrement nouvelles ayant le même sens.
Les différentes étapes de la traduction
1. Preprocessing (tokenisation) :
extraction des parties textuelles des docs qui sont plus riche (Latex,
HTML…)
Fiche Langage naturel
2
Normaliser les mots, corriger les fautes de frappes, suppressions de la
ponctuation, des majuscules…
2. Intégration des mots (word embeddings) :
rapprocher les mots proches et les représenter par des vecteurs proches
dans l'espace vectoriel dense
Remplacer un mot par un synonyme avec une distorsion minimale ?
3. Détection de sujets, classification de textes, analyse de sentiments + ancienne
technique, empruntée à la réduction de la dimensionnalité
4. Traduction
Cours 1 : Prétraitement
La tokenisation consiste à diviser un morceau de données d'entrée en éléments
atomiques utiles, appelés unités lexicales, tout en rejetant tout le reste.
Les différentes étapes du prétraitement :
1. Tokenization / normalization :
segmente les données en "tokens", ou unités lexicales. Celles-ci
comprennent des sous-mots, des mots ou des phrases.
Transforme certaines séquences compliqué en séquences plus simple. Ex :
Hellooooo → hello
supprime les données non utilisable
2. Suppression des mots vides :
suppression de tous les mots qui n'ont pas ou peu de sens. de sens.
Exemples : the, of , a, an, at, on, in, which
3. Lemmatization and stemming :
Lemmatization : Ramène les mots à leurs formes de base comme les verbes
et les adjectifs. Ex : giving→give
stemming : regrouper les variantes d'un mot en une seul racine pas
forcément réel. Ex : giving → giv
Rappel sur les expressions régulières
Fiche Langage naturel
3
Alphabet (Σ) : Ensemble de symboles.
Langage sur Σ : Sous-ensemble de la puissance de Σ.
Langage rationnel : Soit le langage vide (
où a
∅), soit un langage de la forme {a},
∈ Σ, soit un langage de la forme L∗, L + R, ou L.R, et rien d'autre.
L + R : Langage dont les mots sont l'union des mots de L et R.
L.R : Langage dont les mots sont obtenus en concaténant toutes les paires
possibles de mots de L et R.
Ln : Langage puissance n de L, noté L.L...L.
L∗ : Union de tous les langages puissance de L. La notation ∗ est appelée l'étoile
de Kleene.
Exemple
Soient L = {a, b} et R = {b, c}
L + R = {a, b, c}
L.R = {ab, ac, bb, bc}
L2 = L.L = {aa, ab, ba, bb}
L∗ = {a, b, c, aa, ab, ba, bb, aaa, baa, bba, aab, abb, bab, bbb, ... }
Exemples :
L'ensemble des nombres entiers est un langage rationnel.
L'ensemble des dates au format jj/mm/aaaa est un langage rationnel.
Contre-exemples :
L'ensemble des expressions algébriques correctement parenthésées n'est pas
un langage régulier.
L'ensemble des palindromes sur l'alphabet latin n'est pas un langage régulier.
Toutes les expressions régulières ont leur pendant en language rationel
Diviser des mots en sous-mots pour faciliter l'indexation et la recherche peut-être
intéréssant
Fiche Langage naturel
4
Il est fréquent que des affixes de mots existants soient mélangés pour créer un
nouveau mot comme picture + élément → pixel
Byte pair encoding : L'algorithme fusionne les données en identifiant les paires
d'octets les plus courantes. Ce processus se répète jusqu'à ce que la fusion ne
soit plus possible, soit parce qu'il n'y a plus de paires fréquentes, soit parce que tous
les nouveaux mots sont crées.
exemple : à gauche step 1 et à droite step 6
CCL : résultat nul car la paire dominante était “we”
Modèle de langage unigramme
Considéron V comme un vocabulaire, les probabilités p(x) sont inconnues pour
chaque x
∈ V, mais supposées indépendantes.
Par conséquent, la probabilité de toute séquence x = (x1, ..., xM ) est simplement le
produit de toutes les p(x_i) soit :
M
P (x) = ∏ p(xi )
​
​
i=1
Exemple
Supposons que nous ayons un vocabulaire V composé des lettres de l'alphabet,
avec les probabilités suivantes pour chaque lettre : p(a)=0.3, p(b)=0.2, p(c)=0.1
Considérons la séquence X={a,b,b,c}. La probabilité de cette séquence selon le
modèle serait le produit des probabilités individuelles des lettres :
P(X)=p(a)×p(b)×p(b)×p(c)=0.3×0.2×0.2×0.1
Fiche Langage naturel
5
Donc, P(X)=0.0012P(X)=0.0012.
Si X est une séquence d'entrée, la segmentation (cad la sous séquence) la plus
probable x∗ de X est alors donnée par :
x∗ = arg x∈S (X ) maxP (x)(1)
​
où S(X ) est l'ensemble de toutes les segmentations possibles.
∈
L'expression arg⁡x S(X)max⁡P(x) signifie que l'on cherche l'ensemble des
segmentations x (appartenant à l'ensemble S(X) des segmentations possibles) pour
lesquelles la probabilité P(x) est maximale.
Un document D est constitué de phrases X^1, X^2,…
Alors, les p(xi ) sont ceux qui maximisent la vraisemblance
∣D∣
V = ∑ log(P (X s ))(2)
​
s=1
Ce problème ne peut pas être résolu car dans la vie, on ne connait jamais V. On suit
donc la méthode Kudo
Méthode Kudo :
1. Choose an reasonably large enough seed vocabulary V from the corpus
2. Répéter les opérations suivantes jusqu'à ce que V atteigne la taille souhaitée :
a. Estimer les p(xi ) en maximisant (équation 2)
b. calculer loss_i = réduction de L induite par la suppression de la séquence x_i
de V
c. Trie les x_i par loss_i et garder le meilleure pourcentage comme nouveau V
Cours 2 : Word embeddings - notions clés
Introduction aux Word Embeddings
Les embeddings de mots sont des vecteurs de nombres réels qui
représentent des mots dans un espace vectoriel.
Fiche Langage naturel
6
L'objectif est de capturer le sens, l'utilisation, et la relation entre les mots de
manière numérique.
Comment représenter les mots ?
La représentation traditionnelle inclut des matrices de contingence et la
normalisation TF-IDF (Term Frequency-Inverse Document Frequency).
tf(t, d) = log(1 + f(t, d))
where f (t, d) = number of times term t appears in document d
idf(t) = log(N + 1/1 + nt )
​
tfidf = tf(t, d)idf(t)
Ces méthodes permettent de représenter les mots en vecteurs en se basant sur
leur fréquence dans les documents, mais elles ne capturent pas bien les
relations sémantiques entre les mots.
Latent Semantic Indexing (LSI)
LSI est une technique pour extraire et représenter le sens des mots en réduisant
la dimensionnalité des matrices de termes-documents.
Elle vise à capturer des relations sémantiques plus profondes, mais peut être
limitée par sa linéarité.
Word2Vec
Fiche Langage naturel
7
Word2Vec est une méthode spécifique pour entraîner des embeddings de
mots qui capturent des relations sémantiques et syntaxiques.
Il existe deux architectures Word2Vec : CBOW (Continuous Bag of Words) et
Skip-Gram.
CBOW :
Objectif : Prédire un mot cible à partir du contexte environnant.
Fonctionnement : CBOW utilise le contexte entourant un mot cible pour
prédire ce mot. Il considère les mots voisins comme une fenêtre contextuelle
et essaie d'apprendre la probabilité du mot cible étant donné ce contexte.
Architecture : L'architecture CBOW prend les mots du contexte en entrée et
tente de prédire le mot cible en sortie. Le réseau est donc configuré pour
minimiser l'erreur de prédiction.
Skip-Gram :
Objectif : Prédire le contexte environnant à partir d'un mot cible.
Fonctionnement : À l'inverse de CBOW, Skip-Gram prend un mot cible
en entrée et tente de prédire les mots du contexte qui l'entourent. Il
considère chaque mot du contexte comme une cible potentielle.
Architecture : L'architecture Skip-Gram prend un mot cible en entrée et
génère une distribution de probabilité sur les mots du contexte. L'objectif
est de maximiser la probabilité des mots du contexte réels.
Cours 3 : Notes de cours supplémentaires
sur l'apprentissage automatique
Objectif : Permet de traiter des données non linéairement séparables en les
projetant dans un espace de dimension supérieure où elles deviennent
séparables.
Principe : Transformer l'espace des caractéristiques sans calculer explicitement
les coordonnées dans cet espace de dimension supérieure, grâce à une fonction
de noyau (kernel function).
Fiche Langage naturel
8
LDA (Linear Discriminant Analysis)
Objectif : Trouver un axe linéaire de séparation maximisant la distance entre les
moyennes des deux classes tout en minimisant la variance au sein de chaque
classe.
Application : Très utilisé pour la réduction de dimensionnalité et la classification
en apprentissage supervisé.
Kernel LDA
Extension de LDA : Applique le kernel trick à LDA pour permettre la séparation
linéaire dans un espace de caractéristiques de dimension supérieure.
Avantage : Peut séparer efficacement des données qui ne sont pas linéairement
séparables dans leur espace d'origine.
SVC (Support Vector Classification)
Objectif : Trouver l'hyperplan qui sépare le mieux les différentes classes avec
une marge maximale, pour des données linéairement séparables.
Caractéristique : Utilise les vecteurs de support, les données les plus proches
de l'hyperplan de séparation, pour définir la marge.
Non-linear SVC
Extension de SVC : Utilise le kernel trick pour permettre la classification de
données non linéairement séparables.
Principe : Projeter les données dans un espace de dimension supérieure où un
hyperplan linéaire peut les séparer.
Modèles linguistiques neuronaux
Limitations des Réseaux Feed-forward
Définition : Les réseaux feed-forward propagent les informations dans une
seule direction, de l'entrée vers la sortie, sans boucles.
Limitations : Incapables de traiter des séquences de données dans le temps ou
de maintenir un état interne pour gérer des contextes ou des dépendances
temporelles.
Fiche Langage naturel
9
Réseaux d'Elman
Définition : Type de RNN simple où chaque neurone reçoit une entrée des
données actuelles ainsi que des informations de l'état précédent.
Application : Modélisation de séquences, où la connaissance du passé
immédiat est cruciale pour prédire l'élément suivant de la séquence.
Modélisation du Langage avec les RNN
Objectif : Apprendre la probabilité conditionnelle d'observer un mot donné les
mots précédents dans une phrase.
Utilisation : Prédiction de mots, génération de texte, et autres tâches de
traitement du langage naturel (NLP).
Rétropropagation dans le Temps (BPTT)
Concept : Adaptation de la rétropropagation pour les RNN, permettant d'ajuster
les poids en tenant compte des dépendances temporelles.
Défi : Peut conduire à des problèmes de disparition ou d'explosion des
gradients, limitant la capacité du réseau à apprendre de longues dépendances.
Application à la Classification de Texte
Exemple : Analyse de sentiments, où le réseau doit comprendre le contexte
émotionnel d'une phrase ou d'un document pour classer le sentiment comme
positif ou négatif.
Application à la Génération de Texte
Méthode : Après entraînement sur un corpus de texte, le RNN peut générer du
texte lettre par lettre ou mot par mot, imitant le style et la structure du texte
d'origine.
Autres Architectures de RNN
RNN Bidirectionnels : Permettent au réseau d'accéder à des contextes passés
et futurs pour une meilleure compréhension du texte.
RNN Empilés (Stacked) : Superposition de plusieurs couches de RNN pour
augmenter la capacité de modélisation et traiter des informations à différents
niveaux d'abstraction.
Fiche Langage naturel
10
Traitement du langage naturel
1. Rappel sur les réseaux de neurones feedforward
Graphe dirigé acyclique : Le graphe est composé de nœuds V représentant
des neurones ou unités neuronales, et d'arêtes E représentant les connexions
entre ces neurones.
Fonction de poids : La fonction w associe à chaque arête un poids réel,
indiquant l'importance de la connexion entre les neurones correspondants.
Neurones : Les nœuds V correspondent aux neurones. Chaque neurone peut
être considéré comme une fonction différentiable f:X→Y, où X a une dimension n
et Y a une dimension 1.
Fonction d'un neurone : Un neurone prend en entrée soit des données, soit la
sortie d'autres neurones, effectue un calcul sur ces entrées et produit une seule
sortie. La fonction f représente cette transformation.
Notation de la fonction : La fonction f est souvent écrite comme f:X→Y,
indiquant qu'elle prend des entrées de dimension n et produit une sortie de
dimension 1, avec sigma la fonction d’activation.
f(x) = σ(∑ wi gi (x))
​
​
​
i
2. Théorème d'approximation universelle
Le Théorème d'approximation universelle énonce que, sous certaines conditions, un
réseau de neurones à une seule couche cachée peut approximer avec précision
n'importe quelle fonction continue définie sur un sous-ensemble borné de R^n. La
condition essentielle est d'utiliser une fonction d'activation non constante dans la
couche cachée. Ce théorème démontre la puissance expressive des réseaux de
neurones pour représenter une large gamme de fonctions.
3. Entraînement des réseaux de neurones
feedforward
Objectif: Estimer les matrices de poids W de chaque couche.
Données d'entraînement: Ensemble de vecteurs d'entrée x et de sorties
attendues y.
Fiche Langage naturel
11
Fonction de perte: Mesure la différence entre les sorties du réseau et les
sorties attendues.
Descente de gradient stochastique et rétropropagation: Méthodes utilisées
pour minimiser la fonction de perte.
Fiche Langage naturel
12
Download