diff --git a/examen_final.md b/examen_final.md index 0b446c7..2f896cd 100644 --- a/examen_final.md +++ b/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)})$