Chaînes de Markov : matrice de transition, distribution stationnaire et PageRank
La propriété de Markov, la matrice de transition et l’évolution d’une distribution sur un modèle météo, la distribution stationnaire et le théorème ergodique, l’analyse des voyelles de Markov appliquée au Máj de Mácha, PageRank et la génération de texte.
Série Bases de l’IA Partie 38 sur 52
- Carte de l’intelligence artificielle : qu’est-ce qui est quoi et comment tout s’emboîte
- Brève histoire de l’intelligence artificielle : de Turing aux modèles de langage
- Données, modèle, entraînement, inférence : les notions de base sur un seul exemple
- Lire la notation mathématique : symboles, indices, sommes et quantificateurs
- Ensembles et relations : les briques dont sont faites les définitions en IA
- Fonctions et applications : pourquoi tout modèle d’IA est une fonction
- Logique et démonstrations : les règles selon lesquelles on raisonne en IA
- Graphes et arbres : la structure sur laquelle reposent la recherche et les réseaux de neurones
- Algèbre linéaire pour l’apprentissage automatique : vecteurs, matrices et pourquoi l’IA multiplie surtout
- Dérivées, gradient et règle de dérivation en chaîne : comment un modèle sait dans quelle direction apprendre
- Descente de gradient : comment un modèle apprend
- Qu’est-ce que la probabilité : du lancer de dé aux axiomes de Kolmogorov
- Probabilité conditionnelle et théorème de Bayes : comment réviser une estimation quand on apprend du nouveau
- Variable aléatoire et fonction de répartition : une seule fonction qui dit tout de la loi
- Fonction de densité et fonction de masse : pourquoi une variable continue a une probabilité nulle en chaque point
- Espérance, variance et covariance : où se situe une loi, quelle est sa largeur et ce qui varie avec quoi
- Panorama des lois de probabilité : Bernoulli, binomiale, Poisson, uniforme, normale et exponentielle
- Loi des grands nombres et théorème central limite : pourquoi les moyennes sont si prévisibles
- Statistique et estimation de paramètres : maximum de vraisemblance, MAP et intervalles de confiance
- Théorie de l’information : entropie, entropie croisée et divergence KL — d’où viennent les fonctions de perte
- Recherche dans l’espace d’états : BFS, DFS, UCS et A* en animations
- Jeux et adversaires : minimax, élagage alpha-bêta et Monte Carlo tree search
- Satisfaction de contraintes : backtracking, propagation de contraintes et AC-3 sur un sudoku et une carte des régions tchèques
- Logique et systèmes à base de connaissances : chaînage avant et arrière, résolution et systèmes experts
- Planification : STRIPS, monde des blocs, heuristiques par relaxation et planification dans les agents IA
- Recherche locale et recuit simulé : un voyageur de commerce à travers les chefs-lieux de région tchèques
- Algorithmes génétiques : population, croisement, mutation et sélection sur un sac à dos de randonnée
- Stratégies d’évolution et programmation génétique : de la règle du cinquième à la loi de Kepler
- Optimisation par colonies de fourmis : comment une piste de phéromone trouve un chemin court
- Optimisation par essaim de particules : inertie, expérience propre et expérience de l’essaim
- Neuroévolution : faire évoluer les poids et la forme des réseaux de neurones, et l’algorithme NEAT
- Ensembles flous et fonctions d’appartenance : comment écrire « un peu chaud »
- Logique floue et probabilité : pourquoi « un peu chaud » ne veut pas dire « probablement chaud »
- Logique floue : t-normes, implications et règles SI–ALORS
- Commande floue : Mamdani et Sugeno, du ventilateur au pendule inversé sur un chariot
- Clustering flou : l’algorithme fuzzy c-means et les points entre les clusters
- Systèmes neuro-flous (ANFIS) : des règles floues qui apprennent à partir des données
- Chaînes de Markov : matrice de transition, distribution stationnaire et PageRank
- Modèles de Markov cachés : l’algorithme de Viterbi et le casino malhonnête
- Réseaux bayésiens : pourquoi l’herbe est mouillée et ce que cela implique pour l’arroseur
- Le filtre de Kalman : comment estimer, à partir de mesures imprécises, où se trouve une voiture et à quelle vitesse elle roule
- Types d’apprentissage automatique : supervisé, non supervisé, semi-supervisé et plus
- Prompts, contexte et RAG : comment donner au modèle les bonnes informations
- Autoencodeurs variationnels (VAE) : de nouvelles images à partir d’un espace latent continu
- Réseaux antagonistes génératifs (GAN) : le faussaire contre le détective
- Modèles de diffusion : comment une image naît du bruit pur
- Processus de décision markoviens : états, actions, récompenses et équations de Bellman
- Q-learning et DQN : apprendre la valeur des actions, du tableau au réseau de neurones
- Policy gradient et PPO : apprendre directement la politique
- Comment fonctionne un agent IA : un modèle de langage en boucle avec des outils
- Programmer avec des agents IA : consigne, tests et vérification
- Évaluation et sécurité des systèmes d’IA : comment mesurer et comment surveiller
Programme complet de la série 52 sur 83 sujets publiés
- Ce qu’est la propriété de Markov et comment une matrice de transition décrit toute la chaîne.
- Pourquoi une chaîne irréductible se stabilise sur sa distribution stationnaire, quel que soit son point de départ.
- Comment PageRank est né des chaînes de Markov et ce qu’elles ont en commun avec les modèles de langage.
Utile à connaître avant : Probabilité conditionnelle et théorème de Bayes : comment réviser une estimation quand on apprend du nouveau, Algèbre linéaire pour l’apprentissage automatique : vecteurs, matrices et pourquoi l’IA multiplie surtout
En 1913, le mathématicien russe Andreï Markov était penché sur l’Eugène Onéguine de Pouchkine et faisait une chose qu’un spécialiste de la littérature aurait jugée barbare : il comptait combien de fois une voyelle est suivie d’une autre voyelle. Il voulait montrer que la loi des grands nombres vaut aussi pour des événements qui dépendent les uns des autres — et il inventa au passage un modèle qui classe aujourd’hui les pages dans les moteurs de recherche, prévoit la météo, génère du texte et se trouve à l’origine de toute une famille d’algorithmes d’intelligence artificielle. Cette partie ouvre le module consacré aux modèles probabilistes.
Elle fait suite aux parties Probabilité conditionnelle et théorème de Bayes et Algèbre linéaire pour l’apprentissage automatique.
1. Un processus sans mémoire
Définition — chaîne de Markov
Une suite de variables aléatoires X0, X1, X2, … à valeurs dans un ensemble fini d’états S est une chaîne de Markov si, pour tout t et tous les états, elle vérifie la propriété de Markov
P(Xt+1 = j | Xt = i, Xt−1, …, X0) = P(Xt+1 = j | Xt = i).
Si cette probabilité ne dépend pas de t, la chaîne est dite homogène.
L’avenir ne dépend que du présent, pas du chemin par lequel on y est arrivé. Qui connaît l’état d’aujourd’hui sait de demain tout ce qu’on peut en savoir — l’histoire n’ajoute plus rien. C’est une simplification, mais très utile : au lieu de tout le passé, il suffit de retenir une seule valeur.
Ce qu’apporte la propriété de Markov se voit sur la probabilité d’une trajectoire entière. En général, la règle de la chaîne la décompose en un produit de probabilités conditionnelles qui dépendent chacune de tout le passé. La propriété de Markov raye de chaque condition tout sauf le dernier état :
P(X0 = x0, …, XT = xT) = π0(x0) · ∏t=1T P(xt | xt−1)
- P(X0 = x0, …)
- probabilité que la chaîne passe exactement par cette suite d’états
- π0(x0)
- distribution initiale — la matrice ne dit pas d’où la chaîne part ; cette donnée doit venir de l’extérieur
- ∏t=1T
- produit sur les pas — les pas s’enchaînent et chacun doit « réussir », c’est pourquoi on multiplie
- P(xt | xt−1)
- probabilité de transition d’un pas, c’est-à-dire l’élément de la matrice de transition à la ligne xt−1 et à la colonne xt — grâce à la propriété de Markov, elle ne dépend que de l’état précédent, pas de toute l’histoire ; sans elle, on aurait ici P(xt | x0, …, xt−1)
2. La matrice de transition
Définition — matrice de transition
Une chaîne homogène à n états est déterminée par sa matrice de transition P = (pij), où pij = P(Xt+1 = j | Xt = i). La matrice est stochastique : pij ≥ 0 et chaque ligne a pour somme 1.
Une ligne de la matrice, c’est « ce qui arrivera demain si aujourd’hui c’est ceci ». Sa somme doit valoir un, parce que demain, il faut bien qu’il se passe quelque chose.
Un modèle météo jouet à trois états : après une journée de soleil, il refait soleil avec une probabilité de 0,6, il y a des nuages avec 0,3 et il pleut avec 0,1 ; après une journée nuageuse, 0,3 / 0,4 / 0,3 ; après une journée de pluie, 0,2 / 0,4 / 0,4. Sous forme de graphe :
La même information sous forme de matrice — la ligne est la météo d’aujourd’hui, la colonne celle de demain :
| Aujourd’hui ↓ / demain → | soleil | nuages | pluie | somme de la ligne |
|---|---|---|---|---|
| soleil | 0,6 | 0,3 | 0,1 | 1 |
| nuages | 0,3 | 0,4 | 0,3 | 1 |
| pluie | 0,2 | 0,4 | 0,4 | 1 |
Exemple — probabilité d’une trajectoire
Aujourd’hui, il fait soleil (π0 = (1 ; 0 ; 0)). Quelle est la probabilité que les trois jours suivants soient soleil, nuages, pluie ? D’après la formule de la trajectoire
P = 1 · psoleil→soleil · psoleil→nuages · pnuages→pluie = 1 · 0,6 · 0,3 · 0,3 = 0,054.
Soit 5,4 %. La somme sur les 33 = 27 triplets de jours possibles vaut 1 — précisément parce que chaque ligne de la matrice a pour somme 1.
3. Comment la distribution évolue
Théorème — distribution après n pas
Si πt est le vecteur ligne de la distribution de Xt, alors πt+1 = πt P, et donc πt = π0 Pt. L’élément (i, j) de la matrice Pn est la probabilité de passer de i à j en n pas.
S’il fait soleil aujourd’hui, la distribution de demain est (0,6 ; 0,3 ; 0,1). Celle d’après-demain est la moyenne des lignes de la matrice pondérée par cette distribution — (0,47 ; 0,34 ; 0,19). Chaque jour, une multiplication par la matrice, rien de plus.
πt+1(j) = ∑i πt(i) · pij
- πt+1(j)
- probabilité que demain soit dans l’état j — une composante du nouveau vecteur ligne
- ∑i
- somme sur tous les états d’aujourd’hui — on peut arriver en j depuis n’importe où et ces chemins s’excluent mutuellement, donc leurs probabilités s’additionnent (formule des probabilités totales)
- πt(i)
- à quel point il est probable que nous soyons en i aujourd’hui — le poids du chemin passant par i
- pij
- probabilité de passer de i à j — d’après la propriété de Markov, il suffit de connaître l’état d’aujourd’hui
Exemple — la distribution d’après-demain
Demain (après une journée de soleil aujourd’hui), π1 = (0,6 ; 0,3 ; 0,1). Pour après-demain, composante par composante — une colonne de la matrice multipliée par le vecteur π1 :
- soleil : 0,6 · 0,6 + 0,3 · 0,3 + 0,1 · 0,2 = 0,36 + 0,09 + 0,02 = 0,47,
- nuages : 0,6 · 0,3 + 0,3 · 0,4 + 0,1 · 0,4 = 0,18 + 0,12 + 0,04 = 0,34,
- pluie : 0,6 · 0,1 + 0,3 · 0,3 + 0,1 · 0,4 = 0,06 + 0,09 + 0,04 = 0,19.
La somme vaut de nouveau 1. Dans trois jours, la même démarche donne (0,422 ; 0,353 ; 0,225).
Chose intéressante : au bout d’une semaine environ, peu importe qu’il fasse soleil ou qu’il pleuve aujourd’hui. Les deux distributions se rejoignent aux mêmes valeurs et ne changent plus. La chaîne a « oublié » où elle avait commencé.
Théorème — à quelle vitesse la chaîne oublie
Si la matrice P à n états a n valeurs propres distinctes 1 = λ1, λ2, …, λn et si |λk| < 1 pour k ≥ 2, alors toute distribution initiale se décompose sur les vecteurs propres à gauche et
πt = π + a2λ2tu2 + … + anλntun,
où π est la distribution stationnaire. L’écart à π décroît donc comme |λ2|t, où λ2 est la deuxième plus grande valeur propre en valeur absolue.
πt ≈ π + a2u2 · λ2t
- πt
- distribution après t jours
- π
- distribution stationnaire — elle correspond à la valeur propre 1, qui ne change pas quand on l’élève à une puissance ; c’est pourquoi c’est la seule partie qui survit
- a2u2
- écart initial dans la direction du deuxième vecteur propre — c’est seulement ici que se manifeste le point de départ de la chaîne (soleil ou pluie) ; pour la composante soleil, il est positif pour un départ ensoleillé et négatif pour un départ pluvieux
- λ2t
- chaque jour, l’écart est multiplié par λ2 — c’est la vitesse d’oubli ; les autres termes, aux |λ| plus petits, disparaissent encore plus vite, c’est pourquoi on peut les omettre
Exemple — valeurs propres de la matrice météo
La somme des valeurs propres est la trace de la matrice, 0,6 + 0,4 + 0,4 = 1,4, et leur produit est le déterminant, qui vaut 0,01. Une valeur propre est 1 (les lignes ont pour somme 1), donc les deux autres vérifient λ2 + λ3 = 0,4 et λ2λ3 = 0,01. Ce sont les racines de λ2 − 0,4λ + 0,01 = 0 :
λ2,3 = 0,2 ± √0,03 = (2 ± √3)/10, soit λ2 ≈ 0,373 et λ3 ≈ 0,027.
Pour un départ ensoleillé, l’écart de la probabilité du soleil à sa valeur stationnaire 0,393 vaut après 3, 4 et 5 jours 0,0286 ; 0,0107 ; 0,0040 — environ 0,373 fois plus petit chaque jour. Au bout d’une semaine, il vaut 0,0006, et −0,0005 pour un départ pluvieux : les deux débuts ne diffèrent qu’à la quatrième décimale. L’écart est divisé par cent en ln 0,01 / ln 0,373 ≈ 4,7 jours.
4. La distribution stationnaire
Définition — distribution stationnaire
Une distribution π est stationnaire si π P = π — autrement dit, π est un vecteur propre à gauche de la matrice P pour la valeur propre 1.
Définition — chaîne irréductible et apériodique
Notons pij(n) l’élément (i, j) de la matrice Pn, c’est-à-dire la probabilité de passer de i à j en n pas.
- La chaîne est irréductible si, pour tous états i, j, il existe n ≥ 1 tel que pij(n) > 0.
- La période de l’état i est d(i) = pgcd{n ≥ 1 : pii(n) > 0} — le plus grand commun diviseur des longueurs de tous les chemins qui reviennent en i. Si d(i) = 1, l’état est apériodique ; dans une chaîne irréductible, tous les états ont la même période.
La météo est les deux d’emblée : tous les éléments de P sont positifs (n = 1 suffit) et pii > 0, donc le retour est possible en 1 pas et la période vaut 1. En revanche, une chaîne à deux états qui les alterne régulièrement (p12 = p21 = 1) est irréductible, mais de période 2 : pour le départ (1 ; 0), π0Pt saute indéfiniment entre (1 ; 0) et (0 ; 1), bien que la distribution stationnaire (½ ; ½) existe.
Théorème — théorème ergodique pour les chaînes finies
Si une chaîne finie est irréductible (on peut aller de chaque état à chaque état) et apériodique, elle a une unique distribution stationnaire π et, pour toute distribution initiale, π0 Pt → π. De plus, la proportion du temps que la chaîne passe dans l’état j tend avec probabilité 1 vers πj, et le temps moyen de retour en j vaut 1/πj.
Si, de chaque météo, on peut tôt ou tard arriver à chaque autre et que la chaîne ne tourne pas en rond selon un cycle régulier, elle se stabilise sur une seule distribution — et cela indépendamment du début. La distribution stationnaire dit en même temps quelle part des jours aura chaque météo sur une longue période.
Pour notre modèle, la distribution stationnaire vaut exactement (24/61 ; 22/61 ; 15/61) ≈ (0,393 ; 0,361 ; 0,246) : à long terme, il fait soleil 39 % des jours, il y a des nuages 36 % des jours et il pleut 25 % des jours. Après une journée de pluie, on attend la pluie suivante en moyenne 1/0,246 ≈ 4,07 jours.
Exemple — la distribution stationnaire de la météo à la main
On cherche π = (a ; b ; c) tel que πP = π. Colonne par colonne de la matrice :
- a = 0,6a + 0,3b + 0,2c, donc 4a = 3b + 2c,
- b = 0,3a + 0,4b + 0,4c,
- c = 0,1a + 0,3b + 0,4c, donc 6c = a + 3b.
Les équations sont dépendantes (en additionnant les trois, on obtient a + b + c = a + b + c), on laisse donc de côté celle du milieu. De la troisième, a = 6c − 3b ; en substituant dans la première, 24c − 12b = 3b + 2c, donc b = 22c/15 et a = 6c − 66c/15 = 24c/15. Le rapport est a : b : c = 24 : 22 : 15, et la condition a + b + c = 1 donne
π = (24/61 ; 22/61 ; 15/61) ≈ (0,393 ; 0,361 ; 0,246).
Le temps moyen de retour à la pluie vaut 1/πpluie = 61/15 ≈ 4,07 jours.
Et la simulation d’une trajectoire aléatoire montre le théorème ergodique en action :
| Simulation | soleil | nuages | pluie |
|---|---|---|---|
| 30 jours | 0,533 | 0,333 | 0,133 |
| 1 an (365 jours) | 0,411 | 0,356 | 0,233 |
| 10 ans (3 650 jours) | 0,401 | 0,360 | 0,239 |
| distribution stationnaire | 0,393 | 0,361 | 0,246 |
La simulation tire chaque jour séparément selon la ligne de l’état du jour : un nombre aléatoire u dans [0, 1) est comparé aux sommes cumulées de la ligne. Après une journée de soleil, u < 0,6 mène au soleil, 0,6 ≤ u < 0,9 aux nuages et le reste à la pluie :
stav = soleil
for den in 1 … N:
u = nombre aléatoire dans [0, 1)
j = 0
while u ≥ P[stav][j]: # soustrais les probabilités jusqu’à ce que u « tombe » dans une case
u = u − P[stav][j]
j = j + 1
stav = j
počet[stav] += 1
podíly = počet / N # d’après le théorème ergodique → π
La distribution stationnaire elle-même se calcule sans tirage, par multiplications répétées par la matrice :
import numpy as np
P = np.array([[0.6, 0.3, 0.1],
[0.3, 0.4, 0.3],
[0.2, 0.4, 0.4]])
pi = np.ones(3) / 3
for _ in range(100): # méthode de la puissance itérée : π ← π P
pi = pi @ P
print(pi.round(3)) # [0.393 0.361 0.246]
5. Markov, Onéguine et Máj
Markov a parcouru les 20 000 premières lettres d’Eugène Onéguine et a marqué chacune comme voyelle ou consonne. Les voyelles représentaient 43,2 %. Si les lettres se suivaient indépendamment, une voyelle suivrait une voyelle aussi dans 43,2 % des cas. Markov n’en a pourtant compté que 12,8 %, contre 66,3 % après une consonne. Les lettres dépendent les unes des autres — et pourtant, la proportion de voyelles dans un long texte converge de façon fiable. C’était sa preuve que la loi des grands nombres n’a pas besoin de l’indépendance.
Refaisons-le sur la première strophe de Máj (« Mai »), le poème de Karel Hynek Mácha (« Byl pozdní večer – první máj… », « C’était le soir, le premier mai… »). Elle compte 311 lettres, dont 37,6 % de voyelles. Estimation de la matrice de transition à partir des effectifs des paires :
| Après… | voyelle | consonne |
|---|---|---|
| une voyelle | 0,051 | 0,949 |
| une consonne | 0,575 | 0,425 |
La strophe ne contient que 6 paires de voyelles consécutives — le tchèque aime les alterner avec des consonnes encore plus que le russe. Et la distribution stationnaire de cette chaîne donne 37,7 % de voyelles : la chaîne estimée à partir du texte se « stabilise » pratiquement sur la proportion réellement présente dans le texte (seules la première et la dernière lettre font la différence).
p̂ij = nij / ∑k nik
- p̂ij
- estimation de la probabilité de transition — le chapeau indique qu’il s’agit d’un nombre calculé à partir des données, et non de la vraie valeur
- nij
- nombre de fois où, dans le texte, j a suivi directement i — on compte les paires de lettres voisines, car une chaîne de Markov ne regarde qu’un pas en arrière
- ∑k nik
- nombre de fois où i a été suivi de n’importe quoi — la division fait que la ligne a pour somme 1, comme l’exige une matrice stochastique
Exemple — effectifs des paires dans la première strophe
311 lettres donnent 310 paires voisines. Voyelle–voyelle 6, voyelle–consonne 111, consonne–voyelle 111, consonne–consonne 82. D’où
p̂voy→voy = 6/117 = 0,051, p̂voy→con = 111/117 = 0,949, p̂con→voy = 111/193 = 0,575, p̂con→con = 82/193 = 0,425.
Une chaîne à deux états a une distribution stationnaire donnée par une formule simple :
πvoy = pcon→voy / (pvoy→con + pcon→voy)
- πvoy
- proportion de voyelles à long terme
- pcon→voy
- flux vers les voyelles — plus on passe souvent d’une consonne à une voyelle, plus il y a de voyelles
- pvoy→con
- flux sortant des voyelles — plus on quitte vite une voyelle, moins il y en a
Exemple — Máj et Onéguine d’après la formule
Máj : πvoy = 0,575 / (0,949 + 0,575) = 0,377. Plus précisément : il y a autant de transitions voyelle→consonne que consonne→voyelle (111), donc πvoy = (111/193) / (111/117 + 111/193) = 117/310. La proportion réelle de voyelles est 117/311 — elle ne diffère que par le dénominateur, car la dernière lettre de la strophe (« r ») ne commence aucune paire.
Onéguine : à partir des nombres de Markov (voyelle après voyelle 12,8 %, donc voyelle→consonne 87,2 % ; voyelle après consonne 66,3 %), on obtient πvoy = 0,663 / (0,872 + 0,663) = 0,432 — exactement les 43,2 % de voyelles que Markov avait comptés directement.
6. PageRank : le surfeur aléatoire
En 1998, Sergey Brin et Larry Page, les fondateurs de Google, ont proposé une façon de classer les pages web par importance. Ils ont imaginé un surfeur qui clique au hasard sur les liens et se sont demandé : sur quelles pages passera-t-il le plus de temps ?
Définition — PageRank
Soit une page i avec ki liens sortants. Avec une probabilité d (en général 0,85), le surfeur aléatoire clique sur l’un des liens choisi uniformément au hasard ; sinon, il saute sur l’une quelconque des N pages :
pij = (1 − d)/N + d/ki si i a un lien vers j, sinon (1 − d)/N.
Le PageRank est la distribution stationnaire de cette chaîne. Les sauts garantissent que la chaîne est irréductible et apériodique.
Une page importante est une page vers laquelle pointent des pages importantes. La définition semble circulaire, mais la distribution stationnaire la résout : c’est exactement « combien de temps j’y passerai si je clique indéfiniment ». Le saut occasionnel n’importe où empêche le surfeur de rester coincé dans une boucle de pages.
En tête se trouve C (0,374), vers laquelle pointe presque chaque page. A est plus intéressante : elle n’a qu’un seul lien entrant et pourtant elle est deuxième (0,342) — parce que ce lien vient de C et que C ne pointe nulle part ailleurs. B, vers laquelle seule A pointe, reçoit la moitié du poids de A (0,171). Les pages D, E et F, qui se lient surtout entre elles, restent autour de 0,04. Le vrai PageRank calculait la même chose pour des milliards de pages, par la méthode de la puissance itérée.
L’équation π = πP écrite pour une seule page donne la forme connue du PageRank :
PR(j) = (1 − d)/N + d ∑i→j PR(i) / ki
- PR(j)
- PageRank de la page j — la proportion du temps que le surfeur y passe ; la somme sur toutes les pages vaut 1
- (1 − d)/N
- contribution des sauts aléatoires — chaque page la reçoit à parts égales, même celle vers laquelle rien ne pointe ; grâce à elle, la chaîne est irréductible et apériodique
- d
- probabilité que le surfeur clique sur un lien au lieu de sauter ailleurs — 0,85 dans l’article original de Brin et Page
- ∑i→j
- somme uniquement sur les pages qui pointent vers j — un lien est un « vote » pour la page cible
- PR(i) / ki
- le vote de la page i pèse autant que i elle-même est importante, et il se partage entre ses ki liens — une page avec des milliers de liens n’en donne que peu à chacun
Exemple — vérification de A, B et C
Pour N = 6 et d = 0,85, on a (1 − d)/N = 0,025. Vers A ne mène que le lien depuis C, qui n’a qu’un seul lien (kC = 1) ; vers B, seulement celui depuis A, qui en a deux :
- PR(A) = 0,025 + 0,85 · 0,37351 / 1 = 0,34248,
- PR(B) = 0,025 + 0,85 · 0,34248 / 2 ≈ 0,1706,
- PR(C) = 0,025 + 0,85 · (PR(A)/2 + PR(B)/1 + PR(D)/2 + PR(E)/3 + PR(F)/1) = 0,025 + 0,85 · 0,41001 = 0,37351.
Les valeurs de la méthode de la puissance itérée vérifient l’équation — c’est ainsi qu’on reconnaît que l’itération a convergé.
PR = [1/N] * N # commence uniformément
repeat:
nové = [(1 − d)/N] * N # sauts aléatoires
for i in stránky:
if i n’a pas de liens: # impasse : saute n’importe où
nové[j] += d · PR[i]/N pour tout j
else:
for j in odkazy[i]:
nové[j] += d · PR[i]/k_i
PR = nové
until PR ne change presque plus
7. Chaînes, texte et modèles de langage
Une chaîne dont les états sont des lettres peut servir à générer. À partir des paires de lettres de la première strophe de Máj, on estime ce qui suit chaque lettre, puis on tire au sort. Voici à quoi ressemblent 90 caractères :
lal kou lasvavzvný dnkyl plásnětičaskol dnou ta javu snáscezepráro pl h jin trů bo kylalav
Du charabia — mais un charabia qui « sonne tchèque » : il alterne voyelles et consonnes, a des mots courts et des syllabes comme « lás » ou « kol ». Claude Shannon a fait la même expérience en 1948 avec l’anglais et a montré qu’avec un contexte plus long (triplets de lettres, paires de mots), le texte paraît de plus en plus naturel.
Exemple — la ligne « l » du modèle de bigrammes
On met le texte de la strophe en minuscules et on remplace la ponctuation par un espace. La lettre « l » y est suivie 31 fois d’un autre caractère : 13 fois d’un espace, 7 fois de « a », 6 fois de « á », 2 fois de « o » et une fois chacun de « i », « h », « u ». D’après la formule d’estimation, on a donc
P(espace | l) = 13/31 ≈ 0,42, P(a | l) = 7/31 ≈ 0,23, P(á | l) = 6/31 ≈ 0,19, P(o | l) = 2/31 ≈ 0,06 et les autres 1/31 ≈ 0,03.
La génération fait ensuite la même chose que la simulation de la météo : elle tire le caractère suivant selon la ligne du caractère courant. Après « l », le mot touche le plus souvent à sa fin — « byl », « lhal », « kol », « bol ».
Définition — modèle n-gramme
Un modèle n-gramme prédit le symbole suivant d’après les n − 1 précédents : P(wt | wt−n+1, …, wt−1). C’est une chaîne de Markov dont l’état est formé des n − 1 derniers symboles.
On peut « allonger » la mémoire d’une chaîne en mettant davantage de passé dans l’état. Un modèle de langage avec une fenêtre de contexte est formellement lui aussi une chaîne de Markov : son état est tout le texte de la fenêtre. La différence, c’est que les états sont astronomiquement nombreux ; les probabilités de transition ne sont donc pas dans un tableau, mais calculées par un réseau de neurones.
Exemple — combien d’états a un modèle n-gramme
Avec un vocabulaire de V symboles, un modèle n-gramme a |V|n−1 états et |V| probabilités dans chaque ligne. La strophe de Máj utilise 32 caractères différents (lettres et espace) :
- bigrammes (n = 2) : 32 états, une matrice 32 × 32 = 1 024 nombres — plus que la strophe n’a de caractères, si bien que la plupart d’entre eux valent zéro ;
- trigrammes : 322 = 1 024 états et plus de 32 mille nombres — la strophe ne contient pas du tout la plupart des paires de lettres et leurs lignes restent vides ;
- un modèle de langage avec un vocabulaire de 50 000 tokens et une fenêtre de 1 000 tokens : 50 0001 000 ≈ 104 699 états.
C’est pourquoi un contexte plus long exige soit des données gigantesques, soit un modèle qui ne lit pas les probabilités dans un tableau, mais les estime par une fonction — un réseau de neurones.
8. Où mènent les chaînes de Markov
- Modèles de Markov cachés — et si l’on ne voyait pas l’état, mais seulement ses manifestations ? C’est le sujet de la prochaine partie.
- Processus de décision markoviens : ils ajoutent des actions et des récompenses ; l’apprentissage par renforcement repose sur eux.
- Méthodes de Monte-Carlo par chaînes de Markov (MCMC) : elles construisent une chaîne dont la distribution stationnaire est celle dont on veut tirer des échantillons — typiquement la distribution a posteriori en statistique bayésienne. Le critère de Metropolis de la partie sur le recuit simulé est précisément une telle chaîne.
9. Résumé
- Une chaîne de Markov n’a pas de mémoire : l’état suivant ne dépend que de l’état actuel. Elle est décrite par une matrice de transition stochastique P.
- La distribution évolue par multiplication par la matrice, πt = π0 Pt.
- Une chaîne irréductible et apériodique se stabilise sur une unique distribution stationnaire π = π P, indépendamment du début ; pour la météo, (0,393 ; 0,361 ; 0,246).
- Markov a mis en évidence la dépendance des lettres sur Onéguine ; dans Máj, une voyelle ne suit une voyelle que dans 5 % des cas.
- Le PageRank est la distribution stationnaire du surfeur aléatoire ; les modèles n-grammes comme les modèles de langage actuels sont des chaînes de Markov à grand état.
Envie de mettre la main à la pâte ? Demandez à un agent IA de construire un modèle de bigrammes de mots à partir de tout Máj ou de vos propres e-mails et d’en générer des phrases — puis essayez les trigrammes.
Vous voyez les choses autrement ? Écrivez à support@coden-app.com.