orthographe
This commit is contained in:
parent
bafaf80420
commit
d1172e6a9a
1 changed files with 167 additions and 167 deletions
334
examen_final.md
334
examen_final.md
|
@ -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)})$
|
||||
|
|
Loading…
Reference in a new issue