Objectifs du chapitre
À la fin de ce chapitre, vous serez capable de:
- expliquer pourquoi l'on réduit la dimension d'un jeu de données — visualiser, compresser, débruiter, échapper à la malédiction de la dimension — et ce que l'on accepte de perdre en le faisant;
- calculer la matrice de covariance d'un nuage centré et lire, dans ses valeurs propres et ses vecteurs propres, les directions et les quantités de variance du nuage;
- démontrer que la première composante principale est le vecteur propre de la plus grande valeur propre, que la variance qu'elle capte vaut , et que maximiser la variance projetée revient à minimiser l'erreur de reconstruction;
- projeter et reconstruire des données, choisir un nombre de composantes à partir de la part de variance expliquée, et décider s'il faut standardiser d'abord;
- obtenir l'ACP par la décomposition en valeurs singulières, justifier et énoncer le théorème d'Eckart–Young;
- appliquer l'idée de factorisation à une matrice de notes incomplète par moindres carrés alternés et à des plongements de mots, calculer une similarité cosinus, et dire ce que les méthodes linéaires, et les cartes comme t-SNE, ne montrent pas.
Pourquoi réduire la dimension
Les jeux de données fictifs des chapitres précédents avaient une ou deux caractéristiques, pour que chaque calcul se vérifie à la main; les chapitres 10 et 11 ont déjà rencontré des images, et le chapitre 7 des points en dimension 20 et au-delà. Les données réelles ont souvent beaucoup de caractéristiques: une image de pixels en gris est un vecteur de 784 nombres, un questionnaire de satisfaction en compte cinquante, un document décrit par les mots qu'il contient en compte autant que le vocabulaire — des dizaines de milliers. Le chapitre 7 a montré ce que coûte cette abondance à une méthode fondée sur des distances: en grande dimension, sur des points uniformes, le plus proche voisin est presque aussi loin que le plus lointain. Il a aussi indiqué la nuance qui sauve la situation: les données réelles n'occupent presque jamais tout l'espace. Les images plausibles de chiffres manuscrits forment une toute petite partie de l'ensemble des tableaux de 784 nombres; les réponses à cinquante questions sont gouvernées par quelques attitudes de fond. La dimension apparente est grande, la dimension utile est petite.
Réduire la dimension (dimensionality reduction), c'est chercher une représentation des mêmes exemples avec nombres au lieu de , beaucoup plus petit que , en perdant le moins d'information possible. Dans ce chapitre, désigne donc le nombre de composantes gardées; ce n'est ni le nombre de voisins du chapitre 7, ni le nombre de groupes du chapitre 12. C'est un problème non supervisé (chapitre 1): il n'y a pas d'étiquette, seulement le nuage des , et c'est sa propre forme qui décide de ce qui est important. On le fait pour quatre raisons, qui ne demandent pas toutes la même chose.
- Visualiser. Un écran a deux dimensions. Représenter cinquante caractéristiques par deux coordonnées bien choisies permet de voir des groupes, des tendances, des exemples aberrants, avant tout modèle.
- Compresser. Ranger nombres par exemple au lieu de réduit la mémoire et le temps de calcul de tout ce qui suit: une recherche de voisins en au lieu de par requête (chapitre 7).
- Débruiter. Si le signal vit dans quelques directions et le bruit dans toutes, ne garder que les premières écarte une bonne partie du bruit.
- Préparer un modèle. Des caractéristiques très corrélées rendent les coefficients d'une régression instables (chapitre 2); quelques combinaisons non corrélées les remplacent avantageusement, au prix de leur interprétation.
Ce chapitre développe la méthode linéaire de référence, l'analyse en composantes principales (principal component analysis, ACP, PCA en anglais), sous ses deux lectures — la direction de plus grande variance et le sous-espace qui reconstruit le mieux les données —, puis son calcul par la décomposition en valeurs singulières. Il montre ensuite que la même idée, «approcher un grand tableau par le produit de deux petits», sert à recommander des films et à représenter des mots par des vecteurs. Il se termine par les limites des méthodes linéaires et par un regard d'ensemble sur le cours.
Dans lesquelles de ces situations une réduction de dimension non supervisée, comme l'ACP, est-elle un bon premier réflexe? (Plusieurs réponses possibles.)
Plusieurs réponses possibles
Centrer les données et mesurer leur dispersion
Pour fixer les idées, nous suivrons un nuage de dix points dans le plan. Ce sont des données fictives, construites pour le cours: dix étudiants, et leurs points à deux examens notés sur 60, l'analyse () et l'algèbre linéaire ().
| Étudiant | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| Analyse | 33 | 37 | 34 | 39 | 41 | 38 | 40 | 46 | 45 | 47 |
| Algèbre | 31 | 29 | 33 | 33 | 32 | 36 | 40 | 37 | 40 | 39 |
Les moyennes valent et . Le point moyen est le centre de gravité du nuage, et la première chose que fait l'ACP est de s'y placer: on travaille sur les . La raison est simple: la réduction de dimension cherche à décrire comment les exemples les uns des autres, et ce qu'ils ont en commun — la moyenne — se range à part, en nombres une fois pour toutes. Le centrage ne fait rien perdre.
La matrice est symétrique, puisque , et semi-définie positive: pour tout vecteur , . Ces deux propriétés vont tout faire. Elle est la version empirique de la matrice de covariance d'un vecteur aléatoire (Probabilités et statistique, chapitre 7), et l'on y retrouve la convention de ce cours: on divise par , comme pour l'écart type de la standardisation aux chapitres 3 et 7.
La figure 13.1 montre ce que disent les valeurs propres. Le nuage est allongé, et la longueur de chaque flèche est l'écart type des données dans sa direction: les étudiants s'étalent sur environ points le long du niveau général et sur points seulement le long du profil. Les deux axes sont perpendiculaires, et ils ne sont ni horizontaux ni verticaux: aucune des deux notes, prise seule, ne décrit la direction principale du nuage. C'est pourquoi le dessin respecte la même échelle sur les deux axes; avec des échelles différentes, l'angle droit cesserait de paraître droit.
Projeter sur une direction
Réduire le nuage à une dimension, c'est choisir une droite et remplacer chaque point par sa position sur cette droite. Fixons d'abord la droite passant par le point moyen, de direction unitaire .
Le score est la coordonnée de l'exemple le long de la droite: c'est le nombre unique qui remplace ses coordonnées. La reconstruction est ce qu'on peut retrouver de l'exemple à partir de ce seul nombre, et l'erreur de reconstruction ce qu'on a perdu. Les scores sont centrés: , si bien que leur variance est bien la moyenne de leurs carrés. Elle se calcule directement à partir de :
La variance d'un nuage dans une direction est donc une forme quadratique en cette direction (Algèbre linéaire, chapitre 11). Pour le nuage des examens et , elle vaut : 21 à l'horizontale (, la variance de l'analyse), 14 à la verticale.
Il y a deux façons raisonnables de choisir . La première: garder le plus de variance possible, pour que les scores séparent les exemples autant que les données d'origine. La seconde: perdre le moins possible, c'est-à-dire rendre l'erreur de reconstruction moyenne la plus petite possible. Le théorème suivant dit qu'elles sont une seule et même exigence.
Démonstration. Posons . Par définition, , et ce vecteur est orthogonal à :
Le vecteur est donc la somme de deux vecteurs orthogonaux, et , et le théorème de Pythagore (Algèbre linéaire, chapitre 7) donne . On fait la moyenne sur : le membre de gauche donne (définition 13.1), et le premier terme de droite donne par (13.3). Comme ne dépend pas de , maximiser l'un des deux termes de droite revient à minimiser l'autre.
Ce théorème est le cœur géométrique de l'ACP, et c'est un théorème de Pythagore. Chaque point est à une certaine distance du point moyen; la droite partage le carré de cette distance en une part «le long» de la droite, que le score conserve, et une part «à travers», que la reconstruction perd. La somme ne dépend pas de la droite. Tourner la droite ne fait que déplacer de la variance d'un compartiment à l'autre — et l'explorateur 13.1 vous laisse le faire.
Faites tourner la droite autour du point moyen. Chaque étudiant est projeté orthogonalement sur elle: la variance des projections et l'erreur de reconstruction moyenne (le carré moyen des segments tiretés) varient en sens contraire, et leur somme reste à 35, la variance totale. La variance projetée culmine à vers 36,87°, exactement là où l'erreur touche son minimum . Le second curseur choisit un étudiant et montre son triangle rectangle.
Partez de l'angle 0°: la droite est horizontale, la variance projetée vaut 21 — celle de l'analyse seule — et l'erreur 14, celle de l'algèbre. En tournant, la variance projetée monte jusqu'à 30 vers 36,87°, puis redescend jusqu'à 14 à la verticale, et à 126,87° elle touche son minimum 5. La somme affichée ne bouge jamais de 35, et le second curseur montre pourquoi: pour chaque étudiant, le carré de sa distance au point moyen se partage en , quelle que soit la direction.
On a supposé que la droite passe par le point moyen. C'est sans perte: pour une direction fixée et une droite quelconque, l'erreur moyenne vaut l'erreur de la droite parallèle passant par augmentée du carré de la distance de à la droite — c'est l'identité (1.5) du chapitre 1 appliquée à la partie orthogonale à des vecteurs . La meilleure droite passe donc toujours par le point moyen, comme la meilleure constante est la moyenne.
Sur le nuage des examens, de covariance , quelle est la variance projetée sur la direction unitaire , en points²?
La première composante principale
Il reste à trouver la meilleure direction. Pour deux caractéristiques, on pourrait dériver par rapport à . En dimension , il faut un argument qui ne dépende pas de la dimension, et c'est le théorème spectral qui le fournit.
Une telle base existe toujours: est symétrique réelle, et le théorème spectral (Algèbre linéaire, chapitre 11) garantit qu'elle est diagonalisable dans une base orthonormée, à valeurs propres réelles. Comme est semi-définie positive, ses valeurs propres sont de plus positives ou nulles: . Le vecteur propre n'est défini qu'au signe près — convient aussi —, si bien que deux logiciels peuvent rendre des composantes de signes opposés: ce n'est pas une erreur, mais il faut s'en souvenir avant d'interpréter un signe.
Démonstration. Décomposons dans la base orthonormée des vecteurs propres: avec . Comme la base est orthonormée, . Par linéarité, , puis, encore par orthonormalité,
La variance projetée est donc une moyenne pondérée des valeurs propres, de poids de somme 1. Une moyenne pondérée ne dépasse pas le plus grand de ses termes: , ce qui est (13.5). Pour , on a et sinon, et la borne est atteinte: . Enfin, si , l'égalité s'écrit , somme de termes positifs, qui impose pour tout , donc . La dernière affirmation découle du théorème 13.1.
Le quotient s'appelle le quotient de Rayleigh, et le théorème dit qu'il est compris entre et ; c'est le même argument qui, au chapitre 3, encadrait la courbure d'une fonction quadratique entre les valeurs propres extrêmes de sa hessienne. Sur le nuage des examens, la démonstration se lit en clair: une direction quelconque mélange le niveau général (variance 30) et le profil (variance 5), dans les proportions et , et sa variance est la moyenne de 30 et de 5 avec ces poids. Aucun mélange ne fait mieux que 30.
Les scores sur se calculent sans racine carrée, puisque est rationnel: pour l'étudiant 1, . Les dix scores valent
leur moyenne est nulle et la moyenne de leurs carrés vaut . Les scores sur valent , et la moyenne de leurs carrés vaut : c'est l'erreur de reconstruction moyenne, puisqu'en dimension 2 ce qu'on perd en projetant sur est exactement la composante sur . La reconstruction de l'étudiant 1 est , à point de son vrai couple . La figure 13.2 montre aussi le prix de la réduction: les étudiants 2, , et 3, , ont le même niveau général et des profils opposés — le premier meilleur en analyse, le second en algèbre —, et une seule composante ne les distingue plus.
En pratique, on ne résout pas une équation caractéristique de degré : on calcule les vecteurs propres par une méthode itérative. La plus simple est la puissance itérée (Algèbre linéaire, chapitre 9): on part d'un vecteur quelconque, on le multiplie par , on le normalise, et l'on recommence. Écrit dans la base propre, un vecteur devient après multiplications ; la composante sur l'emporte sur les autres d'un facteur , et le vecteur normalisé converge vers dès que et . Sur le nuage des examens, l'erreur est divisée par à chaque itération.
Complétez covariance(points), qui renvoie la matrice de covariance empirique (division par ) d'une liste de points de dimension , et puissance_iteree(S, iterations), qui part du vecteur dont toutes les composantes valent 1, le multiplie par S et le normalise iterations fois, puis renvoie le couple (valeur propre, vecteur unitaire), la valeur propre étant . Le programme retrouve la première composante principale du nuage des examens.
Plusieurs composantes
Une seule composante suffit rarement. On cherche alors un sous-espace de dimension , et la réponse prolonge naturellement le théorème 13.2: après , la direction de plus grande variance parmi celles qui sont orthogonales à est , qui capte (exercice 13.5), et ainsi de suite.
Nous admettons l'optimalité parmi tous les sous-espaces: elle repose sur une inégalité due à Ky Fan, dont la démonstration demande un argument d'entrelacement des valeurs propres qui dépasse ce chapitre. Le reste se vérifie directement: l'exercice 13.5 établit les valeurs et pour le sous-espace des vecteurs propres, et le théorème 13.1 s'étend sans changement, avec la même preuve par Pythagore, à la projection orthogonale sur un sous-espace. La matrice est le projecteur orthogonal sur l'espace engendré par les colonnes de (Algèbre linéaire, chapitre 7), et les coordonnées de la projection dans la base .
Deux propriétés des composantes méritent d'être retenues. Elles sont non corrélées: la covariance empirique des scores et vaut pour . L'ACP remplace donc des caractéristiques corrélées par des caractéristiques qui ne le sont plus — ce qui guérit la colinéarité du chapitre 2. Et elles sont : les deux premières composantes d'une ACP sont les mêmes qu'on en garde deux ou dix, si bien qu'on peut calculer quelques composantes et décider ensuite combien en garder.
L'égalité des deux dénominateurs vient de ce que la trace d'une matrice est la somme de ses valeurs propres; elle dit que les composantes, ensemble, expliquent toute la variance, ce qui est le théorème 13.3 pour . Sur le nuage des examens, %.
Pour voir un vrai choix de , il faut plus de deux caractéristiques. Construisons un jeu fictif dont nous connaissons la structure: 200 élèves passent six épreuves — analyse, algèbre, physique, français, allemand, anglais. Chaque élève a deux aptitudes cachées, l'une «quantitative» et l'autre «langagière», tirées selon une loi normale; chaque note est une combinaison de ces aptitudes, plus un bruit propre à l'épreuve. On standardise les six notes et l'on calcule toutes les valeurs propres par puissance itérée, en retirant à chaque étape la composante trouvée — c'est la déflation: a les mêmes vecteurs propres que , avec la valeur propre remplacée par 0, et la puissance itérée trouve alors la suivante.
import math
import random
random.seed(13)
eleves = []
for _ in range(200):
f1 = random.gauss(0, 1) # aptitude «quantitative», non observée
f2 = random.gauss(0, 1) # aptitude «langues», non observée
b = [0.6 * random.gauss(0, 1)
lambda1 = 2.8437 part 0.474 cumul 0.474
lambda2 = 1.8439 part 0.307 cumul 0.781
lambda3 = 0.4211 part 0.070 cumul 0.851
lambda4 = 0.3278 part 0.055 cumul 0.906
lambda5 = 0.2965 part 0.049 cumul 0.955
lambda6 = 0.2670 part 0.045 cumul 1.000
Les données étant standardisées, chaque note a une variance 1 et la variance totale vaut 6. Deux valeurs propres se détachent, et , qui expliquent ensemble % de la variance; les quatre suivantes sont petites et proches les unes des autres, entre et . C'est exactement la structure que nous avions cachée: deux aptitudes, et du bruit. Nous avons vérifié ces six valeurs par une seconde méthode, une diagonalisation de Jacobi par rotations, qui donne les mêmes quatre décimales.
Combien de composantes garder? Il n'y a pas de réponse universelle, mais trois règles d'usage, à combiner avec du jugement.
- Un seuil de variance expliquée. On garde le plus petit tel que dépasse un seuil fixé d'avance, souvent 90 % ou 95 %. Le seuil est arbitraire; il convient quand l'objectif est la compression.
- Le coude. On cherche sur le diagramme des valeurs propres l'endroit où la décroissance s'aplatit: au-delà, chaque composante n'apporte plus que la part de bruit habituelle. Ici, le coude est net après la deuxième composante.
- La règle de Kaiser, pour des données standardisées: garder les composantes de valeur propre supérieure à 1, la moyenne, c'est-à-dire celles qui expliquent plus qu'une caractéristique d'origine. Elle donne ici .
Quand la réduction prépare un modèle supervisé, le meilleur critère n'est aucun des trois: on traite comme un hyperparamètre et on le choisit par validation croisée sur la performance du modèle (chapitres 5 et 6). Ce qui compte alors n'est pas la variance conservée mais l'erreur de validation obtenue.
Sur les six épreuves fictives de la figure 13.3, combien de composantes faut-il garder, au minimum, pour expliquer au moins 90 % de la variance totale?
Standardiser ou non
L'ACP cherche les directions de plus grande variance, et la variance dépend des unités. Une caractéristique mesurée en francs a une variance un million de fois plus grande que la même mesurée en milliers de francs; rien n'a changé dans le monde, mais l'ACP la verra un million de fois plus importante. C'est le même phénomène que pour les distances du -PPV au chapitre 7, et il appelle la même réponse: quand les caractéristiques ont des unités différentes, on les standardise — on centre chaque colonne et on la divise par son écart type — avant l'ACP. La covariance des données standardisées est la matrice de corrélation, de diagonale unité.
Faut-il donc toujours standardiser? Non. Quand toutes les caractéristiques sont dans la même unité et que leurs écarts de variance ont un sens — les points de nos deux examens, les intensités des pixels d'une image, les températures de plusieurs stations —, la standardisation gonflerait des caractéristiques presque constantes, souvent du bruit, au même rang que les autres. On garde alors la covariance. La règle pratique: même unité et variances comparables, on peut garder la covariance; unités différentes, on standardise.
Une équipe veut réduire 40 caractéristiques, mesurées dans des unités différentes, à quelques composantes avant d'entraîner un classifieur, sans fuite de données. Remettez les étapes dans l'ordre.
Glissez les éléments pour les mettre dans le bon ordre
- Calculer la matrice de covariance de l'entraînement standardisé et ses premiers vecteurs propres
- Standardiser l'entraînement avec ces statistiques
- Projeter le test avec les moyennes, les écarts types et les directions de l'entraînement, puis l'évaluer une seule fois
- Calculer moyennes et écarts types des 40 caractéristiques sur l'entraînement
- Choisir le nombre de composantes par validation croisée, en refaisant standardisation et ACP dans chaque pli
- Mettre de côté l'ensemble de test
La décomposition en valeurs singulières
Calculer puis ses vecteurs propres est correct, mais ce n'est pas ainsi que procèdent les bibliothèques. Elles factorisent directement la matrice centrée par la décomposition en valeurs singulières, vue au chapitre 12 d'Algèbre linéaire.
Démonstration. Comme est orthogonale, , et
La matrice est diagonale , de coefficients . On a donc écrit avec orthogonale et diagonale de coefficients : c'est une diagonalisation de dans une base orthonormée. Ainsi , ce qui donne les directions et (13.9), et l'ordre est le même puisque est croissante sur les réels positifs. Enfin, la matrice des scores a pour coefficient le score , c'est-à-dire , dont la colonne est .
Sur le nuage des examens, les valeurs singulières de la matrice centrée sont et , et l'on retrouve et . Pourquoi passer par la SVD, si le résultat est le même? Parce que former du problème (Algèbre linéaire, chapitre 12): les petites valeurs singulières, élevées au carré, tombent sous la précision des nombres flottants et se perdent, alors que la SVD les calcule directement sur . Et parce que la SVD donne en une fois les directions et les scores .
La SVD dit aussi ce que vaut la meilleure approximation de rang faible d'un tableau, et c'est la clé de la suite du chapitre. Écrite colonne par colonne, est une somme de matrices de rang 1, rangées par importance décroissante. Tronquer la somme après termes donne , dont la ligne est exactement la reconstruction centrée de (13.6).
Ce théorème, publié par Carl Eckart et Gale Young en 1936, est énoncé au chapitre 12 d'Algèbre linéaire; nous l'admettons. Il redit le théorème 13.3 dans le langage des matrices — par (13.9), , fois l'erreur de reconstruction moyenne —, mais il dit aussi davantage: la troncature de la SVD est la meilleure approximation de rang parmi les matrices de ce rang, et pas seulement parmi les projections. Sur les examens, la meilleure matrice de rang 1 laisse une erreur , la somme des dix de la figure 13.2.
Factorisation matricielle et recommandation
La SVD approche un tableau complet par un produit de deux tableaux minces. Beaucoup de tableaux réels sont incomplets: une plateforme de films connaît la note qu'un utilisateur a donnée aux quelques films qu'il a vus, pas aux milliers d'autres. Recommander, c'est deviner les cases vides. L'idée qui a dominé ce problème depuis la fin des années 2000 est de supposer que le tableau complet est, à peu près, de rang faible: quelques goûts de fond — l'action, le drame, la comédie, des dimensions que personne ne nomme — expliquent l'essentiel des notes.
On ne peut pas simplement appliquer la SVD: elle exige un tableau complet, et remplir les cases vides par une valeur arbitraire — zéro, la moyenne — fait apprendre ce remplissage autant que les vraies notes. La régularisation est indispensable: avec paramètres par utilisateur et peu de notes chacun, les vecteurs s'ajusteraient exactement aux quelques notes observées et prédiraient n'importe quoi ailleurs — le surapprentissage du chapitre 6 sous une forme nouvelle.
Le coût (13.11) n'est pas convexe en ensemble, à cause du produit . Mais il l'est en quand est fixé, et réciproquement. C'est l'idée des moindres carrés alternés (alternating least squares, ALS): à fixé, le coût se sépare en un problème par utilisateur, qui est une régression ridge (chapitre 6) dont les «caractéristiques» sont les vecteurs des objets qu'il a notés et les «étiquettes» ses notes, de solution
où est l'ensemble des objets notés par ; puis on fixe et l'on met à jour chaque par la formule symétrique. Chaque demi-étape minimise exactement par rapport à un bloc de variables, donc ne peut pas augmenter — le même argument que pour les deux étapes de Lloyd au chapitre 12 —, et comme , la suite des coûts converge. Elle peut converger vers un minimum local: l'initialisation compte, comme pour les -moyennes.
Il faut lire ces prédictions avec la prudence du chapitre 5. Rien ne garantit qu'elles soient justes: les six cases sont inconnues par construction, et la seule façon d'évaluer une méthode de recommandation est de masquer des notes connues, de les prédire et de mesurer l'erreur. Un autre modèle donne d'autres valeurs: la question 13.6 ajuste un modèle de rang 1 sur les notes centrées et trouve par exemple 4,58 pour la case (U2, F2) au lieu de 3,52. Et deux difficultés propres au domaine restent entières. Le démarrage à froid (cold start): un nouvel utilisateur n'a noté aucun film, son vecteur ne peut pas être appris, et il faut d'autres informations pour commencer. Et les notes manquantes ne manquent pas au hasard: on note surtout les films qu'on a choisi de voir, donc qu'on pensait aimer, et le modèle apprend sur un échantillon biaisé — un cas du biais d'échantillonnage du chapitre 1.
On ajuste un modèle de rang 1 sur les notes de l'exemple 13.3, après leur avoir retiré la moyenne des notes connues: avec des nombres et . Complétez mise_a_jour(notes, fixes, gamma), qui renvoie pour chaque ligne de notes le nombre , les sommes portant sur les seules cases observées (celles qui ne valent pas None), f étant le facteur fixe de la colonne. C'est la formule (13.12) pour . Le programme alterne utilisateurs et films cinquante fois et prédit les six notes manquantes.
Plonger des mots dans un espace vectoriel
Comment donner à un programme le sens d'un mot? La représentation la plus directe est le vecteur indicateur (one-hot, chapitre 1): avec un vocabulaire de 50 000 mots, chaque mot est un vecteur de 50 000 coordonnées dont une seule vaut 1. Elle a deux défauts. Elle est énorme, et surtout elle est muette: deux vecteurs indicateurs distincts sont toujours orthogonaux, si bien que «chat» est aussi loin de «chien» que de «camion». Il faut une représentation où la géométrie reflète le sens.
L'idée qui le permet est ancienne et linguistique: c'est l'hypothèse distributionnelle, que le linguiste britannique John Rupert Firth résumait en 1957 par la formule souvent citée «you shall know a word by the company it keeps»: deux mots qui apparaissent dans les mêmes contextes ont des sens voisins. On compte donc, sur un grand corpus de textes, combien de fois chaque mot apparaît près de chaque mot de contexte, et l'on obtient une matrice de cooccurrences, énorme et creuse. La factoriser à rang faible, c'est exactement ce que nous venons de faire: chaque mot reçoit un vecteur dense de nombres — quelques centaines en pratique —, qu'on appelle son plongement (embedding).
On compare des plongements par leur cosinus plutôt que par leur distance parce que la norme d'un vecteur de mot reflète en bonne partie la fréquence du mot, pas son sens: un mot fréquent accumule de grands comptes. Le cosinus ne regarde que la direction.
En 2013, Tomas Mikolov et ses collègues ont publié word2vec (Efficient Estimation of Word Representations in Vector Space), une méthode qui n'écrit jamais la matrice de cooccurrences: elle apprend directement les vecteurs, par descente de gradient stochastique (chapitre 3), en entraînant un modèle très simple à prédire les mots du contexte à partir d'un mot (skip-gram) ou un mot à partir de son contexte (CBOW). Le lien avec ce chapitre a été établi l'année suivante par Omer Levy et Yoav Goldberg (Neural Word Embedding as Implicit Matrix Factorization, 2014): la variante skip-gram avec échantillonnage négatif factorise implicitement une matrice d'informations mutuelles entre mots et contextes, décalée d'une constante. Méthode neuronale et factorisation explicite sont deux chemins vers le même objet.
Ces vecteurs ont rendu célèbre une observation: des différences de vecteurs semblent encoder des relations. Le vecteur serait proche de . Reproduisons-la sur des vecteurs jouets de dimension 4, pour l'illustration — leurs coordonnées se lisent comme «royauté», «personne», «masculin» et «nourriture», ce qui n'est jamais le cas des coordonnées d'un vrai plongement:
| Mot | roi | reine | homme | femme | prince | pomme | palais |
|---|---|---|---|---|---|---|---|
| royauté | 0,8 | 0,7 | 0 | 0,1 | 0,6 | 0 | 0,7 |
| personne | 0,5 | 0,5 | 0,9 | 0,9 | 0,6 | 0 | 0 |
| masculin | 0,3 | −0,3 | 0,3 | −0,3 | 0,3 | 0 | 0 |
| nourriture | 0 | 0,1 | 0,1 | 0 | 0 | 1 | 0,1 |
Le vecteur cible vaut . Ses cosinus avec les sept mots, rangés, valent: reine , roi , palais , prince , femme , homme , pomme . «Reine» arrive en tête — et c'est la question 13.7 qui le programme.
Complétez cosinus(a, b), qui renvoie la similarité cosinus (13.13) de deux vecteurs, et analogie(a, b, c, vecteurs), qui renvoie le mot dont le vecteur a le plus grand cosinus avec vecteurs[a] - vecteurs[b] + vecteurs[c], en excluant les trois mots a, b et c. Le programme reprend les vecteurs jouets du texte.
Les plongements ont dépassé les mots. Les vecteurs et de la factorisation matricielle sont des plongements d'utilisateurs et de films; on plonge de même des images, des produits, des molécules, et l'on cherche des objets semblables par le cosinus. Avec des millions de vecteurs de plusieurs centaines de dimensions, cette recherche est la recherche de plus proches voisins du chapitre 7, en grande dimension: elle se fait par les méthodes approchées évoquées à la fin de ce chapitre-là. Les transformeurs du chapitre 11 partent eux aussi d'une table de plongements, une ligne fixe par jeton; ce sont les sorties de leurs couches d'attention qui dépendent du contexte, si bien qu'un même mot y est représenté par un vecteur différent dans chaque phrase.
Les limites des méthodes linéaires
L'ACP cherche un sous-espace: une droite, un plan, un hyperplan. Elle échoue dès que la structure des données est courbe. Prenez des points régulièrement répartis sur un cercle. Ils ne dépendent que d'un seul paramètre, l'angle: leur dimension intrinsèque est 1. Pourtant, leur matrice de covariance vaut — pour points équidistants sur un cercle de rayon —, ses deux valeurs propres sont égales, et toute droite capte exactement la moitié de la variance. L'ACP ne voit aucune direction privilégiée et ne peut réduire ce nuage à une dimension sans en perdre la moitié. Les données réelles sont souvent ainsi: les images d'un même objet sous différents angles, les phrases qui disent la même chose de diverses façons, forment des surfaces courbes de faible dimension, des , plongées dans un grand espace.
Trois familles de méthodes vont au-delà. L'ACP à noyau (kernel PCA) applique l'astuce du noyau du chapitre 9: elle fait une ACP dans l'espace des caractéristiques sans jamais le calculer, en diagonalisant la matrice de Gram centrée . Les auto-encodeurs, définis au chapitre 11, sont des réseaux de neurones entraînés à reconstruire leur entrée en passant par une couche étroite; on sait qu'un auto-encodeur linéaire entraîné par la perte carrée retrouve le sous-espace des premières composantes principales — l'ACP est leur cas linéaire —, et les non-linéarités leur permettent de suivre des variétés courbes. Enfin, des méthodes de visualisation comme t-SNE (van der Maaten et Hinton, 2008) et UMAP (McInnes, Healy et Melville, 2018) placent les points dans le plan de façon à préserver leurs voisinages: deux points proches dans l'espace d'origine restent proches sur la carte.
Une équipe projette 10 000 cellules décrites par 2 000 mesures avec t-SNE et observe trois îlots, dont deux très éloignés du troisième et l'un deux fois plus étalé que les autres. Quelles conclusions sont légitimes à ce stade? (Plusieurs réponses possibles.)
Plusieurs réponses possibles
Ce que le cours a construit
Ce chapitre est le dernier, et il est l'occasion de regarder le chemin parcouru. Treize chapitres ont présenté des dizaines de méthodes; elles reposent sur un nombre étonnamment petit d'idées, que l'on retrouve presque toutes dans ce chapitre.
Un tableau, une perte, une optimisation. Le chapitre 1 a posé le cadre: un tableau de exemples et caractéristiques, un modèle qui est une famille de fonctions, une perte qui dit ce que coûte une erreur, et l'entraînement comme minimisation du risque empirique. Presque tout ce qui a suivi en est une instance. La régression linéaire (chapitre 2) minimise une perte carrée, la régression logistique (chapitre 4) une entropie croisée, les machines à vecteurs de support (chapitre 9) une perte charnière régularisée, les réseaux de neurones (chapitres 10 et 11) toutes ces pertes à la fois sur des modèles beaucoup plus souples. Même les méthodes non supervisées ont leur perte: l'inertie pour les -moyennes (chapitre 12), l'erreur de reconstruction pour l'ACP, le coût (13.11) pour la factorisation. Quand vous rencontrerez une méthode nouvelle, demandez-vous d'abord quel est son modèle, quelle est sa perte et comment on l'optimise: la réponse la situera presque toujours.
L'algèbre linéaire est le langage commun. Les moindres carrés du chapitre 2 sont une projection orthogonale de sur l'espace des colonnes de ; l'ACP est une projection orthogonale des exemples sur un sous-espace choisi à partir de seul. La descente de gradient du chapitre 3 converge à une vitesse fixée par les valeurs propres de la hessienne, et la standardisation l'accélère en les égalisant; l'ACP lit dans les valeurs propres de la répartition de la variance. La ridge du chapitre 6 rend inversible en relevant ses plus petites valeurs propres, et l'on peut montrer qu'elle rétrécit le plus les coefficients dans les directions principales de faible variance — celles que l'ACP jetterait. Le même théorème spectral sert partout.
Optimiser, et savoir quand on a trouvé le bon minimum. La descente de gradient (chapitre 3) est l'outil universel; la convexité dit quand elle trouve le minimum global — moindres carrés, régression logistique, SVM — et son absence explique les minima locaux des réseaux de neurones, des -moyennes et de la factorisation matricielle. L'optimisation alternée est revenue trois fois: les deux étapes de Lloyd et l'algorithme EM au chapitre 12, les moindres carrés alternés dans ce chapitre. Pour Lloyd et pour les moindres carrés alternés, l'argument est le même: chaque étape minimise exactement par rapport à un bloc de variables, donc le coût ne monte jamais. Pour EM, la monotonie vient d'ailleurs: d'une minoration de la log-vraisemblance par l'inégalité de Jensen (théorème 12.6), que chaque étape relève.
L'erreur d'entraînement ment, et toute la méthodologie en découle. Le théorème 1.1 a montré que le risque empirique n'estime honnêtement le risque réel que pour un prédicteur choisi indépendamment des données. D'où l'ensemble de test consulté une seule fois, la validation croisée, les fuites de données (chapitre 5) — et, dans ce chapitre, l'ACP ajustée sur l'entraînement seul. D'où aussi le compromis biais–variance (chapitre 6), qui règle le degré d'un polynôme, le de la ridge, le des voisins (chapitre 7), la profondeur d'un arbre, le nombre de caractéristiques tirées à chaque nœud d'une forêt et le nombre d'itérations du boosting (chapitre 8), la largeur d'un noyau gaussien (chapitre 9), l'arrêt précoce d'un réseau (chapitre 10) et le nombre de composantes quand l'ACP prépare un modèle (chapitre 13). Un hyperparamètre se choisit sur des données que l'entraînement n'a pas vues. Sans étiquettes, ce recours manque: le nombre de groupes du chapitre 12 se choisit sur les mêmes données, par le coude ou la silhouette, et c'est une raison de plus de le tenir pour une hypothèse.
La représentation compte autant que le modèle. Les caractéristiques polynomiales du chapitre 2, la standardisation des chapitres 3 et 7, les noyaux du chapitre 9, les couches cachées des chapitres 10 et 11, et enfin les composantes principales et les plongements de ce chapitre sont autant de façons de changer de représentation pour qu'un modèle simple réussisse. L'apprentissage profond a ceci de particulier qu'il apprend la représentation en même temps que le modèle; les plongements de mots en sont un exemple, et les modèles de langage du chapitre 11 en sont le prolongement.
Les données ne sont pas neutres. Le chapitre 1 a nommé les biais d'échantillonnage, d'étiquetage, de substitution et de rétroaction. Ils sont revenus sous d'autres formes: le taux de base qui ruine une précision (chapitre 5), les notes manquantes qui ne manquent pas au hasard et les associations stéréotypées des plongements dans ce chapitre. Une méthode d'apprentissage reproduit fidèlement ce que contiennent ses données, y compris ce qu'on aurait préféré qu'elle n'apprenne pas, et aucune métrique moyenne ne le révèle à elle seule.
Ce cours a laissé de côté des pans entiers du domaine: l'apprentissage par renforcement, nommé au chapitre 1; l'inférence causale, qui répond aux questions que la corrélation d'un coefficient ne tranche pas (chapitre 2); les modèles probabilistes graphiques; les séries temporelles, où l'hypothèse i.i.d. tombe par construction; la théorie de l'apprentissage, qui borne l'écart entre risque empirique et risque réel pour toute une classe de modèles. Vous avez maintenant les outils pour les aborder: un tableau, une perte, une optimisation, une évaluation honnête — et l'habitude de demander, devant chaque résultat, sur quelles données il a été mesuré.
Synthèse
- On réduit la dimension pour visualiser, compresser, débruiter ou préparer un modèle, en représentant chaque exemple par nombres au lieu de . L'ACP centre les données, calcule la covariance empirique (symétrique, semi-définie positive) et projette sur ses vecteurs propres. Ici, désigne une valeur propre, et non plus le coefficient de régularisation du chapitre 6.
Un nuage a pour matrice de covariance . Quelle est sa plus grande valeur propre ?
Exercices
Vous pouvez afficher le corrigé directement sous chaque énoncé après avoir cherché la solution.
On considère les quatre points , , et du plan (données fictives).
- Calculez le point moyen et la matrice de covariance empirique (division par ).
- Calculez les valeurs propres de et un vecteur propre unitaire pour chacune.
On considère deux caractéristiques de variances , et de covariance , de coefficient de corrélation .
On note la matrice centrée du nuage des examens, dont les lignes sont les écarts de l'exemple 13.1.
- Sans calculer la SVD, déduisez de l'exemple 13.1 et du théorème 13.4 les valeurs singulières et de .
Deux utilisateurs ont noté trois objets; deux notes manquent (données fictives):
Soit la matrice de covariance empirique d'un nuage de , de valeurs propres et de vecteurs propres orthonormés .
Références
- Hastie, T., Tibshirani, R. et Friedman, J., The Elements of Statistical Learning, Springer, 2ᵉ éd., 2009, section 14.5 (composantes principales, courbes et surfaces principales).
- Bishop, C. M., Pattern Recognition and Machine Learning, Springer, 2006, chap. 12 (variables latentes continues: ACP sous ses deux formulations, ACP probabiliste et à noyau).
- Goodfellow, I., Bengio, Y. et Courville, A., Deep Learning, MIT Press, 2016, chap. 2 (décomposition propre, SVD, et l'ACP dérivée comme exemple d'algèbre linéaire).
- Pearson, K., «On lines and planes of closest fit to systems of points in space», Philosophical Magazine, 1901.
- Mikolov, T., Chen, K., Corrado, G. et Dean, J., «Efficient Estimation of Word Representations in Vector Space», 2013 (l'article qui introduit word2vec).
- Koren, Y., Bell, R. et Volinsky, C., «Matrix Factorization Techniques for Recommender Systems», IEEE Computer, 2009.