orthographe

This commit is contained in:
François Pelletier 2019-12-09 17:47:00 -05:00
parent bafaf80420
commit d1172e6a9a

View file

@ -1,7 +1,7 @@
---
author: François Pelletier
title: Notes de cours - examen final
fig_caption: yes
fig_caption : yes
highlight: pygments
number_sections: yes
toc: yes
@ -12,45 +12,45 @@ fontsize: 12pt
# Extraction d'information
Objectif: obtenir de l'information utile et la structurer.
Objectif : obtenir de l'information utile et la structurer.
Usages:
Usages :
- Compréhension de textes
- Systèmes questions-réponses
- Traductions automatiques
Approches:
Approches :
- À base de règles
- Par apprentissage
## Types d'information:
## Types d'information :
- Quasi structurée: texte préformaté, par exemple un bulletin météo
- Semi structurée: texte en points de forme, par exemple une annonce classée
- Non structurée: texte libre, par exemple un article de nouvelles
- Quasi structurée : texte formaté, par exemple un bulletin météo
- semi-structurée : texte en points de forme, par exemple une annonce classée
- non structurée : texte libre, par exemple un article de nouvelles
## Types d'extraction
- Reconnaissance d'entitées nommées
- Reconnaissance d'entités nommées
- Détection et classification de relations
- Détection et classification d'évènements
## Reconnaissance d'entitées nommées
## Reconnaissance d'entités nommées
**Entité nommée**: Se désigne par un nom propre, une quantité, une date, une marque temportelle ou un montant d'argent. Peuvent être spécifiques au domaine d'application
**Entité nommée **: Se désigne par un nom propre, une quantité, une date, une marque temporelle ou un montant d'argent. Peuvent être spécifiques au domaine d'application.
Objectif: Trouver les entitées nommées et les classer selon leur type.
Objectif : Trouver les entités nommées et les classer selon leur type.
Usages:
Usages :
- Indexation
- Identification de relations
- Résolution de requêtes
- Lien avec une base de connaissances
Exemples de types d'entités nommées:
Exemples de types d'entités nommées :
- Personne
- Marques de commerce
@ -60,72 +60,72 @@ Exemples de types d'entités nommées:
- Argent
- Temps
Enjeux: ambiguité du type des entités. Peuvent appartenir à plusieurs catégories
Enjeux : ambigüité du type des entités. Peuvent appartenir à plusieurs catégories.
### Approches de NER
#### Apprentissage automatique:
#### Apprentissage automatique :
Encodage IOB mot par mot:
Encodage IOB mot par mot :
- **B**eginning (premier jeton de l'entité)
- **I**nside (autres jetons de l'entité)
- **O**utside (ne fait pas partie d'une entité nommée)
- **O**utside (ne fais pas partie d'une entité nommée)
Chaque étiquette a une position et un type, pour un total de $2n+1$ étiquettes possibles.
Étiquetage séquentiel:
Étiquetage séquentiel :
- MEMM/CRF (généralisation de Viterbi)
- bi-LSTM (réseau de neurones récurrent et bidirectionnel)
- HMM (Modèle de Markov caché)
- SVM (Modèle discriminant)
Extraction des attributs des mots:
Extraction des attributs des mots :
- identité, plongement, POS du mot et des voisins
- Étiquette syntaxique du mot, du groupe de mot et des mots voisins
- Étiquette syntaxique du mot, du groupe de mots et des mots voisins
- Mot présent dans un index géographique
- Contient un préfixe ou un suffixe
- Contiens un préfixe ou un suffixe
- Tout en majuscules
- Forme du mot et des voisins
- Forme du mot court et des voisins
- Présente de trait ou de tiret
Portée d'un classificateur MEMM:
Portée d'un classificateur MEMM :
![Diagramme MEMM pour NER](memm-ner.png)
#### Base de règles
Caractéristiques:
Caractéristiques :
- Largement utilisé en pratique
- Fort niveau de précision
Composantes:
Composantes :
- Listes d'entités
- Patrons ou expressions régulière pour reconnaitre des entités potentielles
- Patrons ou expressions régulières pour reconnaitre des entités potentielles
- Patrons pour reconnaitre les environnements où des entités peuvent se trouver
Approche hybride:
Approche hybride :
1. Identifier les attributs:
- Règles pour repérer les entités non-ambigues
- Comparer des sous-chaines avec des entités connues
1. Identifier les attributs :
- Règles pour repérer les entités non ambiguës
- Comparer des sous-chaînes avec des entités connues
- Listes de noms d'entités spécifiques
2. Classificateur de séquence
## Détection et classification de relations
Objectif: capturer les relations sémantiques du domaine d'application, populer une base de données
Objectif : capturer les relations sémantiques du domaine d'application, peupler une base de données
Formes des relations:
Formes des relations :
ENTITÉ - RELATION - ENTITÉ
Types de relations:
Types de relations :
- PERSON-SOCIAL
- Family
@ -185,7 +185,7 @@ Types de relations:
- Wikipedia
- Infobox
- DBPedia
- Représentation structurée de données provenant de Wikipedia
- Représentation structurée de données provenant de Wikipédia
- Freebase
- Personnes, lieux et objets
- Wordnet
@ -199,14 +199,14 @@ Types de relations:
- Utiles pour un domaine spécifique, demande du temps pour la création des règles
- Apprentissage supervisé
- Corpus d'entraînement étiqueté avec des entités et des relations
- Classificateur pour chaque paire d'entités:
- Classificateur pour chaque paire d'entités :
- Vérifier si reliées (modèle 1, exemples positifs et négatifs),
- Puis classifier la relation (modèle 2)
- Régression logistique, Naïve Bayes, SVM
- Attributs:
- Attributs :
- Prémisse (headword)
- Mots précédant M1
- Mots suivant M2
- Mots suivants M2
- Mots entre M1 et M2
- Type d'entité de M1
- Type d'entité de M2
@ -224,13 +224,13 @@ Types de relations:
- On recherche ces patrons et on conserve ceux qui donnent plusieurs résultats
- Semantic drift
- Exemples erronés
- Niveau de confiance:
- Niveau de confiance :
$$
Conf(p) = \frac{hits_p}{finds_p} log(finds_p)
$$
- Niveau de confiance d'un exemple:
- Niveau de confiance d'un exemple :
$$
Conf(t) = 1-\prod_{p \in P}(1-Conf(p))
@ -241,11 +241,11 @@ Types de relations:
- Trouver des phrases avec les entités de cette ressource
- Extraire des exemples d'entraînement
- Classificateur supervisé (avec les mêmes types d'attributs que l'approche supervisée)
- Exemples négatifs: paires d'entités tirés au hasard qui n'apparaissent pas dans les relations
- Avantages: mêmes que ceux des approches précédentes
- Désavantage: Peu de relations pour de nouveaux domaines
- Exemples négatifs : paires d'entités tirées au hasard qui n'apparaissent pas dans les relations
- Avantages : mêmes que ceux des approches précédentes
- Désavantage : Peu de relations pour de nouveaux domaines
- Apprentissage non supervisé
- Patrons syntaxiques pour les relations:
- Patrons syntaxiques pour les relations :
```
V | VP | VW*P
V = verb particle? adv?
@ -253,19 +253,19 @@ Types de relations:
P = (prep|particle|inf. marker)
```
- Segmenter les textes en phrases
- Pour chaque phrase:
- Pour chaque phrase :
- Faire un POS tagging et une analyse syntaxique
- Trouver la plus longue séquence qui satisfait un patron à partir d'un verbe
- Trouver les groupes nominaux à gauche et à droite
- Déterminer un niveau de confiance en fonction de la fréquence des relations
- Avantage: pas besoin de connaître les relations
- Désavantage: On doit les convertir en relations sémantiques pour les stocker. Les relations sont basées sur des verbes, on va manquer les autres types de relations.
- Avantage : pas besoin de connaître les relations
- Désavantage : On doit les convertir en relations sémantiques pour les stocker. Les relations sont basées sur des verbes, on va manquer les autres types de relations.
## Autres extractions
### Extraction d'expressions temporelles
- Similaire à l'extraction d'entitées nommées
- Similaire à l'extraction d'entités nommées
- Doivent être normalisées. Peuvent être absolues, relatives ou sous la forme de durées.
### Détection et classification d'évènements
@ -276,7 +276,7 @@ Types de relations:
# Systèmes questions-réponses
Types de questions:
Types de questions :
- Factuelles (Qui, où) ?
- Complexes (Que pense, Comment) ?
@ -292,7 +292,7 @@ Types de questions:
- Détection du type de réponse
- Formulation de requête pour le moteur de recherche d'information
- Information à extraire de la question:
- Information à extraire de la question :
- Type de réponse
- Focus
- Type de question
@ -300,18 +300,18 @@ Types de questions:
### Extraction des termes de requête
- Termes de requête: pour repérer des passages.
Exclure:
- Termes de requête : pour repérer des passages.
Exclure :
- le mot-question,
- les mots-outils et
- les verbes fréquents
- Taille du corpus: une seule réponse, formulation différente
- Expansion de requête:
- Taille du corpus : une seule réponse, formulation différente
- Expansion de requête :
- variantes morphologiques (mots de la même famille)
- synonymes (provenant d'un thesaurus)
- Reformulation:
- Reformulation :
- Forme affirmative, avec règles de réécriture (phrase ou le mot manquant est la réponse)
- Ex:
- Ex :
```
wh-word did A verb B -> A verb +ed B
Where is A -> A is located in
@ -319,37 +319,37 @@ Exclure:
### Détection du type d'entité de la réponse
- Permet de limiter les passages pertinents et se concentrer sur les bonnes phrases.
- **Limitations**: les types d'entités détectés par les logiciels NER sont limités
- Taxonomie de réponse à deux niveaux: Li&Roth
- Permets de limiter les passages pertinents et se concentrer sur les bonnes phrases.
- **Limitations **: les types d'entités détectés par les logiciels NER sont limités
- Taxonomie de réponse à deux niveaux : Li&Roth
- 6 grandes classes
- 50 sous-classes
Deux approches:
Deux approches :
- Règles manuelles (expressions régulières)
- Classification automatique:
- Classification automatique :
- Annotation des données d'entraînement
- Classification avec ces attributs
- Mots de la question
- POS
- Entités nommées
- Mot principal (headword), du premier groupe nominal après le mot question
- Mot principal (headword), premier groupe nominal après le mot question
### Traitement de passages
- Résultat de la recherche: liste de documents priorisés selon leur similarité
- Problèmes:
- Résultat de la recherche : liste de documents priorisés selon leur similarité
- Problèmes :
- Les documents ne sont pas les meilleures unités
- Les documents en haut de la liste ne contiennent pas nécessairement la réponse
- Solution:
- Découper les extraits des documents (segmantation)
- Solution :
- Découper les extraits des documents (segmentation)
- Section, paragraphe, phrase
- Fenêtre de mots
- Filtrer les extraits qui ne semblent pas contenir de réponse
- Réordonner ces extraits (avec des attributs)
- \# d'entités nommées du bon type
- \# de mots clés de la requête
- \# de mots-clés de la requête
- Plus longue séquence de mots de la question
- Rang du document d'où le passage provient
- Proximité des mots-clés de la requête
@ -358,10 +358,10 @@ Deux approches:
### Extraction de réponses
- Span labeling: identifier la portion du texte qui constitue la réponse
- Approche: NER, retourner la chaîne du bon type
- Span labeling : identifier la portion du texte qui constitue la réponse
- Approche : NER, retourner la chaîne du bon type
- Si la réponse n'est pas une entité nommée, on utilise des règles. Ces règles peuvent être apprises (comme pour l'extraction de relations, par exemple)
- Si plusieurs réponses: on propose les différentes réponses ou on utilise un classificateur
- Si plusieurs réponses : on propose les différentes réponses ou on utilise un classificateur
- Type de la réponse
- Correspondance à un patron
- Distance du mot-clé
@ -378,16 +378,16 @@ $$
## Approche avec des données structurées
- Base de connaissances (entités et relations, dbPedia, Freebase, WordNet). Extraction d'information
- Ex: Siri, Wolfram Alpha
- Ex : Siri, Wolfram Alpha
# Modèles statistiques de traduction automatique
Traduction statistique: difficile de trouver les ressources autrement
Traduction statistique : difficile de trouver les ressources autrement
- Corpus bitextes (même textes dans deux langues)
- Corpus bitextes (mêmes textes dans deux langues)
- Trouver les mots ou les groupes de mots qui vont ensemble
- Parfois difficile d'avoir une bonne traduction, le sens des mots est différent entre les langues.
- **modèle IBM**: Compromis entre **fidélité** et **fluidité**
- **modèle IBM **: Compromis entre **fidélité** et **fluidité**
| Fidélité | Fluidité |
|-----------------------|-------------------------|
@ -395,13 +395,13 @@ Traduction statistique: difficile de trouver les ressources autrement
| même information | respect de la grammaire |
| | qualité du texte |
Mathématiquement:
Mathématiquement :
$$
\hat{T} = argmax_T fidelite(T,S) fluidite(T)
$$
En probabilités, on obtient:
En probabilités, on obtient :
$$
\hat{T} = argmax_T P(T|S) = argmax_T \frac{P(S|T)P(T)}{P(S)} = argmax_T P(S|T)P(T)
@ -415,12 +415,12 @@ où $P(S|T)$ est un modèle de traduction et $P(T)$ un modèle de langue.
## Modèle de langue
- Modèles N-grammes (jusqu'à 5-grammes en anglais)
- Modèles syntaxiques (dépendance plus longues entre les mots)
- Modèle N-grammes (jusqu'à 5-grammes en anglais)
- Modèles syntaxiques (dépendance plus longue entre les mots)
## Modèle de traduction
Permet de quantifier les meilleures traductions pour un segment de phrase ou une phrase complète.
Permets de quantifier les meilleures traductions pour un segment de phrase ou une phrase complète.
### Mots individuels
@ -434,7 +434,7 @@ Permet de quantifier les meilleures traductions pour un segment de phrase ou une
- Inclus aussi des mots individuels
- Donne de meilleurs résultats que des mots individuels
- 3 étapes:
- 3 étapes :
- Regroupes les mots en groupes $E=\bar{e}_1, \bar{e}_2, \ldots$ (segmentation)
- Traduire chaque groupe $\bar{e}$ en $f_i$: $\phi(f_i|\bar{e}_i)$
- Déplacer les groupes
@ -443,35 +443,35 @@ $$
P(F|E) = \prod_{i=1}^I \phi(\bar{f}_i,\bar{e}_i)d(i)\\
$$
- **Distorsion**: Distance à laquelle le groupe est déplacé
- **Probabilité de distortion** $d(i)$ du ieme groupe. Distance entre $a_i$, la position de $f$ généré par $\bar{e}_i$ et $b_{i-1}$, la position de $f$ généré par le groupe précédent $\bar{e}_{i-1}$
- **Distorsion **: Distance à laquelle le groupe est déplacé
- **Probabilité de distorsion** $d(i)$ du ième groupe. Distance entre $a_i$, la position de $f$ généré par $\bar{e}_i$ et $b_{i-1}$, la position de $f$ généré par le groupe précédent $\bar{e}_{i-1}$
$$
d(i)=\alpha^{|a_i-b_{i-1}-1|},\,0<\alpha<1
$$
- **Probabilités de traduction**: $\phi(f_i|\bar{e}_i)$
- **Probabilités de traduction **: $\phi(f_i|\bar{e}_i)$
- Corpus parallèle, avec correspondance entre les groupes de $E$ et $F$
- Maximum de vraisemblance des probabilités
- Compte des fréquences:
- Compte des fréquences :
$$
\bar\phi(f_i|\bar{e}_i) = \frac{count(\bar{f}_i|\bar{e}_i)}{\sum_{\bar{f}}count(\bar{f}_i|\bar{e}_i)}
$$
- Corpus d'alignements de groupes de mots: difficile à construire.
- On utilise les **alignements de mots**: Association des mots sources aux mots cibles dans des phrases parallèles.
- Corpus d'alignements de groupes de mots : difficile à construire.
- On utilise les **alignements de mots **: Association des mots sources aux mots cibles dans des phrases parallèles.
![](traduction-alignement-mots.png)
- Alignement un à plusieurs: Chaque mot cible a un seul mot source. Représentation sous forme de vecteur
- Mots parasites: générés par un mot nul $e_0$
- Alignement un à plusieurs : Chaque mot cible a un seul mot source. Représentation sous forme de vecteur
- Mots parasites : générés par un mot nul $e_0$
- L'algorithme d'alignement donne les paramètres du modèle $P(F,E)$
## Modèle IBM 1
- Approche générative: $E \rightarrow F$
- Choix de la longueur $J$ de $F$: $F=f_1,f_2,\ldots,f_j$
- Approche générative : $E \rightarrow F$
- Choix de la longueur $J$ de $F$ : $F=f_1,f_2,\ldots,f_j$
- Alignement 1 à plusieurs
- Pour chaque position de Fm générer $f_j$ correspondant à $e_{aj}$
@ -479,13 +479,13 @@ $$
- $(I+1)^J$ alignements possibles, incluant le *mot nul*
- Distribution de longueur $\epsilon=P(J|E)$
- Alignements équiprobables:
- Alignements équiprobables :
$$
P(A|E) = P(A|E,J)P(J|E) = \frac{\epsilon}{(I+1)^J}
$$
- Soit $t(f_x,e_y)$ la probabilité de traduire $e_y$ en $f_x$:
- Soit $t(f_x,e_y)$ la probabilité de traduire $e_y$ en $f_x$ :
$$
P(F|E,A) = \prod_{j=1}^J t(f_i,e_{a_j})
@ -504,19 +504,19 @@ $$
- Longueur en mots ou en caractères
- Programmation dynamique
- Modèle simple de traduction
- Retrait des phrases non alignées, fusion des phrases source des alignements qui ont la même phrase dans la destination (n à m, $n,m>0$)
- Retrait des phrases non alignées, fusion des phrases sources des alignements qui ont la même phrase dans la destination (n à m, $n,m>0$)
- Alignement des mots dans les phrases
- Bootstrapping
- Algorithme Expectation-Maximization
- E: probabilité de tous les alignements possibles (paramètres courants du modèle)
- M: réestimer les valeurs de chaque paramètre
- E : probabilité de tous les alignements possibles (paramètres courants du modèle)
- M : réestimer les valeurs de chaque paramètre
- Alignement des groupes de mots
- Application de la symétrie à partir des alignements de mots, en faisant l'intersection des alignements pour $E \rightarrow F$ et $F \rightarrow E$. On ajoute des alignements en utilisant l'union (Algorithme de Och and Ney), avec des critères tels que:
- Application de la symétrie à partir des alignements de mots, en faisant l'intersection des alignements pour $E \rightarrow F$ et $F \rightarrow E$. On ajoute des alignements en utilisant l'union (Algorithme de Och and Ney), avec des critères tels que :
- case vide,
- adjacence,
- probabilité
- Table de traduction: on conserve les groupes de mots pour le décodage
- Table de traduction : on conserve les groupes de mots pour le décodage
## Décodage
@ -526,14 +526,14 @@ $$
argmax_{E \in English} P(F|E)P(E)
$$
- On ne peut enumérer toutes les phrases possibles
- On ne peut énumérer toutes les phrases possibles
- Algorithme d'exploration (stack decoding, A*)
- $f(s) = g(s)+h(s)$: coût actuel (partiel) + coût estimé. Optimal si $h(s)$ ne surestime pas, donc est admissible
- $f(s) = g(s)+h(s)$ : coût actuel (partiel) + coût estimé. Optimal si $h(s)$ ne surestime pas, donc est admissible
![Stack decoding - A*](stack-decoding.png)
- On considère seulement les groupes possibles avec la table de traduction
- Coût actuel $g(s)$: probabilité totale pour les groupes traduits
- Coût actuel $g(s)$ : probabilité totale pour les groupes traduits
$$
cost(E,F) = \prod_{i \in S} \phi(\bar{f}_i,\bar{e}_i) d(a_i-b_{i-1}) P(E)
@ -542,29 +542,29 @@ $$
- Coût futur
- Le coût de traduire les mots restants dans la phrase source
- Très coûteux à évaluer précisément
- Approximation:
- Pas de distortion
- Approximation :
- Pas de distorsion
- Minimiser le produit du modèle de traduction et de langue
- Séquence la plus probable par Viterbi
- Q devient rapidement trop grand
- Recherche par faisceau: on conserve les $k$ solutions les plus prometteurs à chaque étape.
- Recherche par faisceau : on conserve les $k$ solutions les plus prometteuses à chaque étape.
- Difficile de comparer le coût pour un nombre de mots différents
- Solution possible: Une file par nombre de mots traduits
- Solution possible : Une file par nombre de mots traduits
- Multistack
## Évaluation
- Évaluation humaine: la plus fiable
- Évaluation automatique: moins coûteuse
- Évaluation humaine : la plus fiable
- Évaluation automatique : moins coûteuse
- Traductions de référence
- Similarité avec les traductions de référence:
- Différentes mesures: BLEU, NIST, Précision/Rappel, METEOR
- Similarité avec les traductions de référence :
- Différentes mesures : BLEU, NIST, Précision/Rappel, METEOR
### BLEU
- Nombre de n-grammes de différentes tailles en commun avec la traduction de référence.
- Mesure de précision modifiée: Moyenne des précisions pour tous les N-grammes jusqu'à N.
- Clip count: nombre maximum d'apparition d'un mot dans les références (peut être 1). Mesure de référence.
- Mesure de précision modifiée : Moyenne des précisions pour tous les N-grammes jusqu'à N.
- Clip count: nombre maximum d'apparitions d'un mot dans les références (peut être 1). Mesure de référence.
$$
p_n = \frac{\sum_{C \in corpus}\sum_{ngram \in C} count_{clip}(ngram)}{\sum_{C \in corpus}\sum_{ngram \in C} count(ngram)}
@ -574,7 +574,7 @@ $$
p = \sqrt[N]{\prod_{n=1}^N p_n}
$$
- Pénalité pour les phrases courtes:
- Pénalité pour les phrases courtes :
- c = longueur de la traduction
- r = longueur de la phrase de référence ayant le plus grand nombre de n-grammes en commun avec la traduction
@ -584,16 +584,16 @@ $$
# Introduction aux réseaux de neurones
## Trois visions du réseau de neurones:
## Trois visions du réseau de neurones :
- Métaphore de la structure du cerveau. Un neurone est composé de:
- Métaphore de la structure du cerveau. Un neurone est composé de :
- Dendrites
- Noyau
- Axone
- Synapses
- Une cascade de régressions logistiques
- Somme pondérée des valeurs en entrée (signal z)
- Fonction d'activation sigmoide
- Fonction d'activation sigmoïde
- Signal en sortie
$$
@ -601,9 +601,9 @@ $$
$$
- Un large réseau d'opérations simples
- Différentes fonctions d'activation
- sigmoide: $\frac{1}{1-e^{-x}}$
- tanh: $\frac{e^x-e^{-x}}{e^x+e^{-x}}$
- RELU: $max(x,0)$
- sigmoïde : $\frac{1}{1-e^{-x}}$
- tanh : $\frac{e^x-e^{-x}}{e^x+e^{-x}}$
- RELU : $max(x,0)$
## Réseau feedforward
@ -611,14 +611,14 @@ $$
- Plusieurs neurones = plus discriminant
- Plusieurs séparateurs
- Pas de retour en arrière
- Couches:
- Couches :
- Entrée
- Cachées (représentation intermédiaire)
- Sortie
![Un réseau de neurones feedforward](NeuralNetwork.png)
- Notation matricielle:
- Notation matricielle :
$$
\begin{aligned}
@ -642,14 +642,14 @@ On veut minimiser une fonction de perte $L$ à l'aide des poids $w_i$ et des bia
## Utilisation en NLP
Classificateurs supervisés:
Classificateurs supervisés :
- Segmentation de phrases
- Identification de la langue
- Analyse de sentiments (classificateur binaire)
- Extraction de relations
Approches:
Approches :
- Sélection automatique des attributs
- Prétraitement des textes pour construire des attributs
@ -662,20 +662,20 @@ Approches:
- Le classificateur utilisé précédemment est remplacé par un réseau de neurones.
- On fournit un texte brut au réseau et on lui laisse découvrir les bons attributs.
- Une bonne représentation des bots: plongements de mots (*word embeddings*)
- Une bonne représentation des bots : plongements de mots (*word embeddings*)
# Plongements de mots
Représentations d'un mot:
Représentations d'un mot :
- Vecteur one-hot (indicateur 1 sur le mot exact):
- Vecteur one-hot (indicateur 1 sur le mot exact) :
- [0 0 0 0 1 0 0 0 0 ...] (chat)
- Expansion de mots similaires (ex: synonymes et hyperonymes de WordNet):
- Expansion de mots similaires (ex : synonymes et hyperonymes de WordNet) :
- [0,1,...,0,1,0,0,1,...] (animal, chat, félin, mammifère)
- Vecteur de contexte (compte, Positive Pointwise Mutual Information - PPMI)
- [0,1,...,0,1,0,0,1,0,1,0,1,...] (animal, chat, félin, litière, poil, lait, boire)
Inconvénients:
Inconvénients :
- Ces vecteurs sont parfois très longs et contiennent de nombreux 0.
- On veut des vecteurs **courts** et **denses** (Entre 50 et 1000 dimensions).
@ -684,7 +684,7 @@ Inconvénients:
- Les dimensions recoupent des mots différents
- Un peu comme un PCA, mais pour des mots.
Approches possibles:
Approches possibles :
- Réduction de dimensionnalité
- Réseaux de neurones
@ -692,14 +692,14 @@ Approches possibles:
## Réduction de dimensionnalité
- Plusieurs matrices de plus petite dimension
- Matrice mots-contexte décomposée en matrice de mots (plongement de mot) et matrice de contextes (plongement de contexte):
- Matrice mots-contexte décomposée en matrice de mots (plongement de mot) et matrice de contextes (plongement de contexte) :
- $(|v| \times c) = (|V| \times m)(m \times c)$
- Décomposition en valeur singulière
- Latent semantic analysis (LSA)
- 3 matrices: $(|V| \times c) = (|V| \times m) (m \times m) (m \times c)$
- 3 matrices : $(|V| \times c) = (|V| \times m) (m \times m) (m \times c)$
- $X = W \Sigma C$ où $\Sigma$ est une matrice diagonale de valeurs singulières $\sigma_1, \ldots, \sigma_m$. On conserve les lignes et les colonnes pour les $k$ plus grandes valeurs singulières afin de réduire la dimensionnalité.
Avantages:
Avantages :
- Retire l'information moins importante
- Capacité de généralisation
@ -720,7 +720,7 @@ Inconvénients
### CBOW
**CBOW** (Continuous bag of words): Représentation d'un mot cible à partir d'une fenêtre de mots source. Par exemple, prendre 3 mots d'une phrase et tenter de prédire le quatrième.
**CBOW** (Continuous bag of words) : Représentation d'un mot cible à partir d'une fenêtre de mots sources. Par exemple, prendre 3 mots d'une phrase et tenter de prédire le quatrième.
### Skip-gram
@ -733,7 +733,7 @@ Inconvénients
- Assigner des poids aléatoires
- Corpus d'entraînement
- Fenêtre de mots
- One-hot vector pour chaque mot (entrée)
- One hot vector pour chaque mot (entrée)
- Prédire la probabilité des mots de contexte (sortie)
- Calculer l'entropie croisée pour $T$ instances (fonction de coût)
@ -741,7 +741,7 @@ Inconvénients
J = - \frac{1}{T} \sum_{i=1}^T \log\,p(c_i|w_i)
$$
- Corriger les poids (rétro-propagation)
- Corriger les poids (rétropropagation)
$$
w_{ij}^{\prime\,(new)} = w_{ij}^{\prime\,(old)} - \eta \cdot \sum_{c=1}^C(y_{c,j}-t_{c,j}) \cdot h_i
@ -749,13 +749,13 @@ Inconvénients
- Récupérer les plongements (poids des liens vers un mot ou un contexte) et les conserver dans une structure de données
- Similarité de vecteurs de mot $v_j$ et de contexte $c_k$:
- Similarité de vecteurs de mot $v_j$ et de contexte $c_k$ :
- produit scalaire des vecteurs correspondants dans les matrices de poids.
![Embeddings depuis le modèle skip-gram](skip-gram-embeddings.png)
- Avec le modèle Skip-gram, on obtient des probabilités de cooccurences en utilisant un softmax.
- Problème: le dénominateur est couteux à calculer.
- Avec le modèle Skip-gram, on obtient des probabilités de cooccurrence en utilisant un softmax.
- Problème : le dénominateur est coûteux à calculer.
$$
p(w_j|w_k) = \frac{\exp(c_k \cdot v_j)}{\sum_{i \in |V|} \exp(c_i \cdot v_j)}
@ -764,7 +764,7 @@ $$
### Negative sampling
On choisir au hasard des mots qui ne sont pas dans le contexte du mot cible.
On minimise $L(\theta)$:
On minimise $L(\theta)$ :
$$
\begin{aligned}
@ -780,15 +780,15 @@ $$
- Listes de mots similaires
- Par regroupement de mots (clustering)
- Propriétés des embeddings
- Petite fenêtre de mots: représentation syntaxique (catégorie grammaticale)
- Grande fenêtre de mots: représentation lexicale (thème)
- Analogie:
- Petite fenêtre de mots : représentation syntaxique (catégorie grammaticale)
- Grande fenêtre de mots : représentation lexicale (thème)
- Analogie :
```
vecteur(king)-vecteur(man)+vecteur(woman) -> vecteur(queen)
```
- superlatif (strong, stronger, strongest) tous sur le même axe
- Autres plongements:
- Glove (matrice de cooccurences)
- Autres plongements :
- Glove (matrice de cooccurrence)
- FastText (mots et n-grammes de caractères)
- Elmo (plusieurs vecteurs de contexte)
- Bert (plongements contextuels)
@ -800,12 +800,12 @@ $$
- Le réseau de neurones approxime la matrice de probabilités
- L'historique des N-grammes est représenté par des plongements
- Plongements pré-entrainés + N-grammes = prédiction du prochain mot
- Plongements pré-entraînés + N-grammes = prédiction du prochain mot
- On réutilise toujours le même réseau
![Modèle de langue avec réseau de neurones](neural-net-modele-langue.png)
Approche:
Approche :
- Assignation du vecteur de plongement à chaque mot
- Concaténation des vecteurs ($1 \times Nd$)
@ -813,19 +813,19 @@ Approche:
- La dernière couche prédit le scode de chaque mot du vocabulaire.
- Conversion en probabilités avec softmax.
Nouveaux mots:
Nouveaux mots :
- Les mots similaires ont des plongements similaires
- Remplace le lissage
Avantages de l'approche RN:
Avantages de l'approche RN :
- Pas de lissage
- Historique plus long
- Pouvoir prédictif plus élevé pour un même corpus
- Modèles réutilisables pour d'autres tâches
Désavantage:
Désavantage :
- Temps d'entraînement beaucoup plus important
@ -840,33 +840,33 @@ Désavantage:
## Classification de texte (feedforward)
- **Enjeu**: textes de longueurs variables
- **Solution**: continuous bag of words
- **Enjeu **: textes de longueurs variables
- **Solution **: continuous bag of words
$$
\text{CBOW}(f_q,\ldots,f_k) = \frac{1}{k}\sum_{i=1}^k v(f_i)
$$
- **Amélioration**: Utiliser un poids relatif pour chaque mot, par exemple tf*idf
- **Amélioration **: Utiliser un poids relatif pour chaque mot, par exemple tf*idf
$$
\text{WCBOW}(f_q,\ldots,f_k) = \frac{1}{\sum_{i=1}^k a_i}\sum_{i=1}^k v(f_i)
$$
- **Avantages: efficace, bon *baseline* pour évaluer d'autres algorithmes
- **Avantages : efficace, bon *baseline* pour évaluer d'autres algorithmes
## POS tagging et réseaux de neurones (RNN)
Caractéristique du problème du POS tagging:
Caractéristique du problème du POS tagging :
- Une étiquette pour chaque mot, qui dépend aussi des étiquettes précédentes
- La longueur des phrases varie, on ne peut pas utiliser une fentêtre fixe
- L'ordre des mots est important
Besoin: architecture adaptée
Besoin : architecture adaptée
- On a vu précédemment les MEMM qui répondent à ce besoin
- On utilise un réseau de neurones récurrent: l'étiquette $y_t$ dépend du mot $x_t$ et du contexte précédent $h_{t-1}$
- On utilise un réseau de neurones récurrent : l'étiquette $y_t$ dépend du mot $x_t$ et du contexte précédent $h_{t-1}$
![Inférence POS dans un réseau RNN](inference-rnn.png)
@ -874,19 +874,19 @@ Besoin: architecture adaptée
![Architecture du RNN](architecture-rnn.png)
Approches:
Approches :
1. Choisir l'étiquette la plus probable à chaque étape
2. Trouver la meilleure séquence d'étiquettes avec Viterbi (aussi appelé CRF)
- Considère les probabilités de transition $P(tag_t|tag_{t-1})$
Extension:
Extension :
- On aimerait aussi considérer le contexte à droite au lieu de seulement le contexte à gauche.
3. Réseau bidirectionnel. On combine les deux couches cachées $h^{forward}$ et $h^{backward}$ avant de calculer la couche de sortie.
- Problèmes avec l'utilisation des mots:
- Problèmes avec l'utilisation des mots :
- Lexique volumineux = plongement pour tous les mots
- Mots inconnus (fautes, noms propres, autre langue, termes techniques, ...)
@ -897,26 +897,26 @@ Extension:
## Autres applications des RNN
- Modèle de langue: permet d'estimer les probabilités ou encore de faire de la génération de texte
- Modèle de langue : permet d'estimer les probabilités ou encore de faire de la génération de texte
- Classification de texte:
- Classification de texte :
- RNN pour effectuer l'**encodage en un seul vecteur de contexte** $h_n$ de tout le texte
- On peut aussi utiliser un réseau bidirectionnel pour éviter que la classification dépende trop des mots à la fin du texte
- Réseau feedforward pour la classification.
- Entités nommées:
- Entités nommées :
- Plusieurs approches récurrentes
![RNN pour NER](ner-rnn.png)
## Extension des RNN
Problèmes des RNN:
Problèmes des RNN :
- Gradient evanescent (le signal s'atténue rapidement lors de la rétro-propagation)
- Gradient evanescent (le signal s'atténue rapidement lors de la rétropropagation)
- Chaque unité a de l'information locale principalement
- Information distante parfois importante (coréférences par exemple)
- Les poids servent à deux choses:
- Les poids servent à deux choses :
- décision sur le contexte actuel
- propager l'information utile pour les décisions futures
@ -937,7 +937,7 @@ $$
### Long short-term memory (LSTM)
- Mémoire à long terme $c_t$
- 3 portes:
- 3 portes :
- $f$ (forget)
- $i$ (input)
- $o$ (output)
@ -951,13 +951,13 @@ $$
- Encodeur-décodeur
- Un réseau récurrent encore la phraise initiale
- Un autre réseau décode cette phrase
- Sortie du décodeur:
- Sortie du décodeur :
- 1 meilleur (mot le plus probable, vorace, pas de garantie de trouver la traduction la plus probable)
- k meilleur (beam search)
![Encoder-decoder Models (Neubig)](encoder-decoder-translation.png)
- Limitation importante: tout est encodé dans un seul vecteur de longueur fixe
- Limitation importante : tout est encodé dans un seul vecteur de longueur fixe
- On conserve un vecteur pour chaque mot de la phrase source
- On réfère à ces vecteurs pour le décodage
- Les références varient selon le contexte
@ -965,8 +965,8 @@ $$
- Permet de reproduire le principe des alignements
- Score d'attention $a_{ij}$ après normalisation
- Encodage dans des vecteur $h_j$
- Contexte: $c_i = \sum_j a_{ij} \cdot h_j$
- Plusieurs options:
- Contexte : $c_i = \sum_j a_{ij} \cdot h_j$
- Plusieurs options :
- produit scalaire de $h_t^{(e)}$ et $h_t^{(f)}$
- fonction bilinéaire de $h_t^{(e)}$, $W$ et $h_t^{(f)}$
- MLP avec tanh où on calcule $\mathbf{v}^T \tanh(W_f h_t^{(f)} + W_e h_t^{(e)})$