Aller au contenu
coden

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.

13 minutes Matěj Žalmánek 2026-10-15

Série Bases de l’IA Partie 38 sur 52
  1. Carte de l’intelligence artificielle : qu’est-ce qui est quoi et comment tout s’emboîte
  2. Brève histoire de l’intelligence artificielle : de Turing aux modèles de langage
  3. Données, modèle, entraînement, inférence : les notions de base sur un seul exemple
  4. Lire la notation mathématique : symboles, indices, sommes et quantificateurs
  5. Ensembles et relations : les briques dont sont faites les définitions en IA
  6. Fonctions et applications : pourquoi tout modèle d’IA est une fonction
  7. Logique et démonstrations : les règles selon lesquelles on raisonne en IA
  8. Graphes et arbres : la structure sur laquelle reposent la recherche et les réseaux de neurones
  9. Algèbre linéaire pour l’apprentissage automatique : vecteurs, matrices et pourquoi l’IA multiplie surtout
  10. Dérivées, gradient et règle de dérivation en chaîne : comment un modèle sait dans quelle direction apprendre
  11. Descente de gradient : comment un modèle apprend
  12. Qu’est-ce que la probabilité : du lancer de dé aux axiomes de Kolmogorov
  13. Probabilité conditionnelle et théorème de Bayes : comment réviser une estimation quand on apprend du nouveau
  14. Variable aléatoire et fonction de répartition : une seule fonction qui dit tout de la loi
  15. Fonction de densité et fonction de masse : pourquoi une variable continue a une probabilité nulle en chaque point
  16. Espérance, variance et covariance : où se situe une loi, quelle est sa largeur et ce qui varie avec quoi
  17. Panorama des lois de probabilité : Bernoulli, binomiale, Poisson, uniforme, normale et exponentielle
  18. Loi des grands nombres et théorème central limite : pourquoi les moyennes sont si prévisibles
  19. Statistique et estimation de paramètres : maximum de vraisemblance, MAP et intervalles de confiance
  20. Théorie de l’information : entropie, entropie croisée et divergence KL — d’où viennent les fonctions de perte
  21. Recherche dans l’espace d’états : BFS, DFS, UCS et A* en animations
  22. Jeux et adversaires : minimax, élagage alpha-bêta et Monte Carlo tree search
  23. Satisfaction de contraintes : backtracking, propagation de contraintes et AC-3 sur un sudoku et une carte des régions tchèques
  24. Logique et systèmes à base de connaissances : chaînage avant et arrière, résolution et systèmes experts
  25. Planification : STRIPS, monde des blocs, heuristiques par relaxation et planification dans les agents IA
  26. Recherche locale et recuit simulé : un voyageur de commerce à travers les chefs-lieux de région tchèques
  27. Algorithmes génétiques : population, croisement, mutation et sélection sur un sac à dos de randonnée
  28. Stratégies d’évolution et programmation génétique : de la règle du cinquième à la loi de Kepler
  29. Optimisation par colonies de fourmis : comment une piste de phéromone trouve un chemin court
  30. Optimisation par essaim de particules : inertie, expérience propre et expérience de l’essaim
  31. Neuroévolution : faire évoluer les poids et la forme des réseaux de neurones, et l’algorithme NEAT
  32. Ensembles flous et fonctions d’appartenance : comment écrire « un peu chaud »
  33. Logique floue et probabilité : pourquoi « un peu chaud » ne veut pas dire « probablement chaud »
  34. Logique floue : t-normes, implications et règles SI–ALORS
  35. Commande floue : Mamdani et Sugeno, du ventilateur au pendule inversé sur un chariot
  36. Clustering flou : l’algorithme fuzzy c-means et les points entre les clusters
  37. Systèmes neuro-flous (ANFIS) : des règles floues qui apprennent à partir des données
  38. Chaînes de Markov : matrice de transition, distribution stationnaire et PageRank
  39. Modèles de Markov cachés : l’algorithme de Viterbi et le casino malhonnête
  40. Réseaux bayésiens : pourquoi l’herbe est mouillée et ce que cela implique pour l’arroseur
  41. Le filtre de Kalman : comment estimer, à partir de mesures imprécises, où se trouve une voiture et à quelle vitesse elle roule
  42. Types d’apprentissage automatique : supervisé, non supervisé, semi-supervisé et plus
  43. Prompts, contexte et RAG : comment donner au modèle les bonnes informations
  44. Autoencodeurs variationnels (VAE) : de nouvelles images à partir d’un espace latent continu
  45. Réseaux antagonistes génératifs (GAN) : le faussaire contre le détective
  46. Modèles de diffusion : comment une image naît du bruit pur
  47. Processus de décision markoviens : états, actions, récompenses et équations de Bellman
  48. Q-learning et DQN : apprendre la valeur des actions, du tableau au réseau de neurones
  49. Policy gradient et PPO : apprendre directement la politique
  50. Comment fonctionne un agent IA : un modèle de langage en boucle avec des outils
  51. Programmer avec des agents IA : consigne, tests et vérification
  52. É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 que vous retiendrez
  • 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.

En termes simples

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)
Toute la chaîne est ainsi décrite par une distribution initiale et un seul tableau de transitions.

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.

En termes simples

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 :

0,3 0,1 0,6 soleil 0,3 0,3 0,4 nuages 0,2 0,4 0,4 pluie
Diagramme de transition de la météo

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 →soleilnuagespluiesomme de la ligne
soleil0,60,30,11
nuages0,30,40,31
pluie0,20,40,41
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.

En termes simples

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
Pour tous les j à la fois, c’est le produit du vecteur ligne par la matrice : πt+1 = πtP.
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).

00,51 0246810 jour (jours depuis aujourd’hui) probabilité de l’état P (0–1)
Distribution de la météo jour après jour soleilnuagespluie trait plein : soleil aujourd’huipointillés : pluie aujourd’hui

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.

En termes simples

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 :

Simulationsoleilnuagespluie
30 jours0,5330,3330,133
1 an (365 jours)0,4110,3560,233
10 ans (3 650 jours)0,4010,3600,239
distribution stationnaire0,3930,3610,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…voyelleconsonne
une voyelle0,0510,949
une consonne0,5750,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
La fréquence relative est en même temps l’estimateur du maximum de vraisemblance : de toutes les matrices, c’est elle qui donne au texte observé la plus grande probabilité.
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
La formule découle de l’équilibre des flux : en régime stationnaire, πvoy · pvoy→con = πcon · pcon→voy et πvoy + πcon = 1.
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.

En termes simples

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.

A 0,342 B 0,171 C 0,374 D 0,036 E 0,041 F 0,036
PageRank d’un petit web ; l’aire du disque correspond au PageRank

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.

En termes simples

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.

Un Agent sur votre ordinateur, piloté depuis votre téléphone