Olivier Guibé Historique et motivation La démarche Matrices PageRank
Comment Google classe les pages web ?
Olivier Guibé
LMRS -- Université de Rouen
30 minutes pour comprendre -- 25 mars 2013
Olivier Guibé
Historique et motivation
La démarche Matrices PageRank
Google : une entreprise
à l'initiative de deux étudiants Sergey Brin et Larry Page
• fondée en 1998
• depuis 2000 vente de publicités
• cotation en bourse depuis 2004
• une recherche Google pour en savoir plus :) Aujourd'hui
• nombre d'employés : plus 50 000 en 2011
• nombre de serveurs/PC : plus de 900 000 (2011)
• activité de recherche importante
Olivier Guibé
Historique et motivation
La démarche Matrices PageRank
Une des clefs de cette réussite
PageRank
ou un algorithme de tri des pages web
qui est, la plupart du temps, pertinent.
Olivier Guibé
Historique et motivation
La démarche Matrices PageRank
Que fait un moteur de recherche ?
L'utilisateur lance une requête : mots clés cherchés.
Le moteur de recherche exécute
..
1 liste des pages contenant les mots clés
..
2 tri par ordre de pertinence
..
3 affichage des résultats Il y a donc plusieurs aspects dont
• modélisation mathématique : comment définir/calculer la pertinence ? (personne n'est chargée de lire toutes les pages web !)
• ressource informatique : stockage, traitement d'une quantité énorme d'informations
Nous allons donner deux mauvais choix de calcul de pertinence et le
Olivier Guibé
Historique et motivation
La démarche Matrices PageRank
Le WEB
Contenu hétérogène :
des pages sur tous les sujets existants, aucune centralisation, très peu de structure.
Des contributions multiples et variées qui changent tous les jours.
Point commun :
pages HTML, HyperText Markup Language, avec desliens les reliant les unes aux autres. Un fichierHTMLest plus ou moins un fichier texte avec des balises, ce qui permet aux « robots » de lire, repérer les mots clefs.
Olivier Guibé
Historique et motivation
La démarche Matrices PageRank
Le point commun
L'idée est de travailler sur le fait qu'il y a des liens reliant les pages les unes aux autres. La première chose à faire :
• numéroter toutes les pages :P1,P2, etc
Comme le but est de définir un critère « pertinence de la page » il faudra distinguer «P1contient un lien qui pointe surP2» et «P2
contient un lien qui pointe surP1».
• si lapagePjcontient un lien vers la pagePion matérialise cela par uneflèchePj −→Pi.
Olivier Guibé
Historique et motivation
La démarche Matrices PageRank
Voici le résulat
200 pages web !
1 2
3 4
5 6
7
8 9
10
11 12
13 14
15 16
17 18 19 20 21
22
23 25 24
26 27
28
29 30
31
32 33
34 35
36 37 39 38
40 41 42
43 44
45 46
48 47 49 50
51 53 52
54 55 56 58 57
59 60
61
62
63
6465 66 67 69 68 70
71
72 73
74 75 76
77 78
79
80 81
82 83
84 85 86 87
88 89
90 91
92
93 94 95
96 97 98
99 100 101 102
103 104
105 107 106 108 109
110111
112
113
114 115
116 117
118 119
120 121 122
123 124 125 126
127 128
129 130
131
132 133 134
135 136
137 138139 140
141 142 143
144 146 147 145
148
149 150
151 152
153 154
155 156
157 158
159 160
161
162
163 164
165
166 167
168 169
170 171
172
173 174
175
176 177
178
179
180
181 182 183
184 185 186 187
188
189
190 191
192 193
194 195
196
198 197
199
200
Olivier Guibé
Historique et motivation
La démarche Matrices PageRank
La réalité (ou presque)
Les chiffres sont difficiles à vérifier, il y a des pages « vides » ou générées automatiquement, sans contenu, etc.
• plus de 600 millions de sites
• quelque mille milliards de pages
• il y a aussi des pages non indexées
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Le point commun
Traduisons en terme degrapheun Web à 12 pages !
1 2
3 4 6 5
7 8 9
10
11 12
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Une autre disposition
1 2
3 4 6 5
7 8 9
10
11 12
devient
1
2 3 4
5
6 7 8 9
10
12 11
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Quelques explications
La structure de notre graphe est la suivante 1→2,3,4,5 ; 2→1,3 ; 3→1,4 ; 4→1,2 ; 5→6,8 ; 6→7 ; 7→5 ; 8→7,9 ; 9→5,10,11,12 ; 10→9,11 ; 11→9,12 ; 12→9,10.
ParmiP1,P2,P3etP4, la pageP1semble être une référence.
ParmiP9,P10,P11etP12, la pageP9semble être une référence.
De la structureP5,P6,P7etP8,P7est la plus citée mais avec un lien de P7surP5.
Finalement commeP1etP9, reconnues comme importantes, pointent surP5, on proposeP5comme page la plus pertinente.
1
2 3 4
5
6 7 8 9
10
11
12
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Définir un score
Le but est de trouver une méthode,un algorithmequi calcule la pertinence de chaque page.
On peut représenterla pertinencepar un nombre ou un score positif avec la convention que plus le score est grand plus la page est
« importante ».
Évidemment on peut discuter très longtemps sur «qu'est qu'une page importante, pertinente ?».
Le fait est que Google a semblé/semble encore répondre de façon satisfaisante aux requêtes des utilisateurs.
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Idée naïve : compter les liens
Idée
Une page importante est une page qui reçoit beaucoup de liens Le score de la pagePiest la somme du nombre de liens qui pointent surPi, ou encore le nombre de « votes ». Rappelons notre web : 1→2,3,4,5 ; 2→1,3 ; 3→1,4 ; 4→1,2 ; 5→6,8 ; 6→7 ; 7→5 ; 8→7,9 ; 9→5,10,11,12 ; 10→9,11 ; 11→9,12 ; 12→9,10.
Calcul des scores :
P1:3; P2:2; P3:2; P4:2; P5:3; P6:1; P7:2; P8:1; P9:4; P10:2; P11:2; P12:2.
La page 9 arrive en premier, suivie de 1 et 5.
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Idée naïve : bilan
Calcul de la pertinence par le nombre de « votes ».
Avantage
Très simple à calculer Inconvénient
Si tout le monde est d'accord pour placer la page 5 en premier, cette méthode ne correspond pas à notre classement « ressenti ».
Inconvénient ++
Très facile de manipuler ; il suffit de créer des pages web qui pointent vers son site pour augmenter artificiellement son score !
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Idée naïve : bilan
Calcul de la pertinence par le nombre de « votes ».
Avantage
Très simple à calculer
Inconvénient
Si tout le monde est d'accord pour placer la page 5 en premier, cette méthode ne correspond pas à notre classement « ressenti ».
Inconvénient ++
Très facile de manipuler ; il suffit de créer des pages web qui pointent vers son site pour augmenter artificiellement son score !
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Idée naïve : bilan
Calcul de la pertinence par le nombre de « votes ».
Avantage
Très simple à calculer Inconvénient
Si tout le monde est d'accord pour placer la page 5 en premier, cette méthode ne correspond pas à notre classement « ressenti ».
Inconvénient ++
Très facile de manipuler ; il suffit de créer des pages web qui pointent vers son site pour augmenter artificiellement son score !
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Idée naïve : bilan
Calcul de la pertinence par le nombre de « votes ».
Avantage
Très simple à calculer Inconvénient
Si tout le monde est d'accord pour placer la page 5 en premier, cette méthode ne correspond pas à notre classement « ressenti ».
Inconvénient ++
Très facile de manipuler ; il suffit de créer des pages web qui pointent vers son site pour augmenter artificiellement son score !
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
avec par exemple
1
2 3 4
5
6 7 8 9
10 11 12 13 14
15 16
17 18
19
20 21
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
nouvelle idée : pondération
1
2 3 4
5
6 7 8 9
10 11 12
Pour minimiser l'impact des pages qui contiennent beaucoup de liens, on ajoute une pondération au « vote » : lapage 2contient2liens qui pointent vers lespages 1 et 3.
Lapage 2« vote donc » pour la pagepage 1pour1/2.
Total
• Page 1 : 1/2+1/2+1/2=3/2
• Page 9 : 1/2+1/2+1/2+1/2=2
• Page 5 : 1/4+1+1/4=3/2
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Pondération : bilan
En fait c'est une méthode qui a les mêmes avantages et surtout les mêmes inconvénients (facile de manipuler un classement) :
1
2 3 4
5
6 7 8 9
10 11 12 13 14
15 16
17 18
19
20 21
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
L'idée qui a fait ses preuves
« Une page est importante si beaucoup de pages importantes la citent »
Traduction
Le vote d'une page pour une autre dépend en plus de son score ! Désignons pars1le score deP1,s2celui deP3, etc.
1
2 3 4
5
6 7 8 9
10 11 12 s1= s2
2 +s3
2 +s4
2 =??
Olivier Guibé Historique et motivation La démarche
Matrices PageRank
Continuons
1
2 3 4
5
6 7 8 9
10 11 12
On obtient donc beaucoup d'équations ! s1= s2
2 +s3
2 +s4
2 s9=s12
2 +s11
2 +s10
2 +s8
2 s5= s1
4 +s7+s9
4 . . .
Olivier Guibé Historique et motivation La démarche Matrices PageRank
12 équations qui se mettent sous la formeAs=savecAla matrice
0 1/2 1/2 1/2 0 0 0 0 0 0 0 0
1/4 0 0 1/2 0 0 0 0 0 0 0 0
1/4 1/2 0 0 0 0 0 0 0 0 0 0
1/4 0 1/2 0 0 0 0 0 0 0 0 0
1/4 0 0 0 0 0 1 0 1/4 0 0 0
0 0 0 0 1/2 0 0 0 0 0 0 0
0 0 0 0 0 1 0 1/2 0 0 0 0
0 0 0 0 1/2 0 0 0 0 0 0 0
0 0 0 0 0 0 0 1/2 0 1/2 1/2 1/2
0 0 0 0 0 0 0 0 1/4 0 0 1/2
0 0 0 0 0 0 0 0 1/4 1/2 0 0
0 0 0 0 0 0 0 0 1/4 0 1/2 0
Olivier Guibé Historique et motivation La démarche Matrices PageRank
et l'inconnue ests, le vecteur des scores, possédant douze coordonnées
s=
s1
s2
s3
... s12
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Outils
• les matrices
• analyse numérique matricielle, calcul scientifique
Olivier Guibé Historique et motivation La démarche Matrices PageRank
..
..
a11 a12.. . . ... a1n..
..
a21 a22.. . . ... a2n..
....
. ..... . .... .....
..
a a.. . . ... a..
.
.
.
En image
. .
..
x1
..
x2
....
. ..
xn
.
.
.
x: vecteurnlignes
.
..
y1
. . y2
....
. ..
yn
.
.
.
a21×x1
.
a22×x2
.
a2n×xn
. +
.
+… +
.
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Résultats
La résolution (à l'aide d'un logiciel de calcul) donne :
• score deP1:4.6 10−15
• score deP6,P8,P10,P11etP12:0.25
• score deP5etP9:0.51
• score deP7:0.38
• les autres :très peu Classement
P5etP9>P7>Pipouri∈ {6,8,10,11,12}
Le score deP1est tout de même étonnant.
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Nouvelle idée : bilan
Avantage
Respecte presque le classement intuitif Inconvénients
• À la main, c'est vite difficile (voire impossible) pour calculer ce classement.
• Page 1 très mal classée tout de même
Outils nécessaires
Nous aurons besoin de l'informatique et des mathématiques
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Nouvelle idée : ne pas tomber dans un trou noir !
1
2 3 4
5
6 7 8 9
10 11 12 13
La page 13est une page ne contenant aucun lien.
On peut vérifier
• score de la page 13 égal à 1
• les autres à zéro est une solution !
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Nouvelle idée : ne pas tomber dans un trou noir !
1
2 3 4
5
6 7 8 9
10 11 12 13
La page 13est une page ne contenant aucun lien.
Interprétation
Le surfeur qui arrive à la page 13 ne peut plus en sortir puisque la page 13 n'a pas de lien externe.
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Solution : ajouter du hasard
Le modèle traduit un comportement très prévisible du surfeur. Il clique sur les liens d'une page pour aller sur une autre.
On peut considérer que notre comportement serait plutôt : au bout de quelques pages visitées je vais aller sur une page qui n'a rien à voir ou très peu avec les précédentes.
Traduction
On autorise un saut vers unepage aléatoire(n'importe quelle page du web) avec unefaible probabilité.
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Traduction mathématique
• une des pages référencées pariavec la probabilitéαet la pondération
• une page quelconque de façon équiprobable(1−α)/N
• on travaille surB=αA+ (1−α)1
NJoùJest la matrice ne contenant que des 1. On prendraα=.85.
Le mathématicien est content !
Il existe un unique vecteurr(de norme 1) vérifiantBr=r. (théorème de Perron-Frobenius)
Score
• Page 1 : 0.076
• Pages 5 : 0.152
• Page 7 : 0.111
• Page 9 : 0.138
• Page 6 et 8 : 0.077
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Calcul : ce qu'il ne faut pas faire
La matrice étant de très grande taille, il y a des obstacles :
• stockage de la matrice
• temps de calcul : il ne faut pas attendre 10 jours (ou plus) pour une recherche
Des chiffres
Résoudre un système linéaire (ce qui est presque équivalent à notre problème) pour une matrice de taillennécessite de l'ordre den3 opérations. Pour une matrice de taille 10 millions (ce qui est moins que toutes les pages web) et avec une puissance de 1pétaFLOPS (1015 opérations par seconde) il faudrait de l'ordre 106secondes soit 11 jours.
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Comment faire ?
Plutôt que de chercher « la solution » on peut chercher à l'approcher, c'est moins coûteux et cela est en général suffisant.
Observons sous l'oeil des probabilités et acceptons de découper le surfeur en petits morceaux via unemarche aléatoiresur le graphe des pages web
1
2 3 4
5
6 7 8 9
10 11 12
..
1 Temps 0 : surfeur sur la page 1 : probabilité 1
..
2 Temps 1 : surfeur sur la page 2, 3, 4, 5 avec la probabilité
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Explications
1
2 3 4
5
6 7 8 9
10 11 12
..
1 Temps 0 : surfeur sur la page 1 ; probabilité 1 On mélange les deux effets
• la page 1 contient 4 liens (pages 2, 3, 4 et 5) : même probabilité d'aller sur une des 4 pages
• le hasard : de la page 1 on peut aller sur une autre page avec une faible probabilité(1−α)/N(avecα=.85)
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Itérons le processus
n 1 2 3 4 5 6 7 8 9 10 11 12
0 1 0 0 0 0 0 0 0 0 0 0 0
1 .0125 .225 .225 .225 .225 .0125 .0125 .0125 .0125 .0125 .0125 .0125 2 .2994 .1108 .1108 .1108 .0284 .1081 .0284 .1081 .0338 .0205 .0205 .0205 3 .1537 .1232 .1232 .1232 .1075 .0246 .1504 .0246 .0846 .0284 .0284 .0284 ...
10 .0941 .0608 .0608 .0608 .1642 .0744 .0975 .0744 .1191 .0647 .0647 .0647 20 .0775 .0507 .0507 .0507 .1510 .0779 .1108 .0779 .1369 .0719 .0719 .0719 30 .0762 .0499 .0499 .0499 .1524 .0772 .1111 .0772 .1381 .0727 .0727 .0727 50 .0761 .0498 .0498 .0498 .1524 .0773 .111 .0773 .1381 .0728 .0728 .0728
Observations
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Explication
Du point de vue probabiliste, sous certaines conditions, l'itération du processus « converge »
vers un état d'équilibre, une « mesure invariante par le processus markovien »
Cet état d'équilibre correspond au score cherché.
Du point de vue analyste, les itérations correspondent à calculer Bx,BBx,BBBx, etc, et
Bnconverge vers un point fixe deB.
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Stockage
Une matrice est un tableau. Une première idée de stockage
• on stocke tout
• besoin :n×n« cases » mémoire
Pour notre cas, ce n'est pas optimal, c'est même très gourmand car
• il y a énormément de zéro dans la matrice relatif aux liens
• dans notre cas : 25 valeurs non nulles pour 144 valeurs ! La matrice relatif aux liens est ditecreuse. D'où un stockage particulier
• on stocke(i,j)valeur non nulle à lignei/colonnej
• pour notre cas si la pagePicontient un lien vers la pagePjavec la pondération de vote
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Matrice creuse en image
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Optimisations
La structure creuse deA(même siBn'est pas creuse) et la méthode itérative (quelques astuces) font que le calcul du PageRank est très raisonnable en temps et en coût mémoire. Depuis l'algorithme a été amélioré
• minimisation du « Google bombing » (l'ajout de nombreux liens vers une page web augmente le score de cette dernière)
• plus de pertinence
• des choses publiées
• des choses secrètes : remplacer la matriceJ(toute page web au hasard) par une autre matrice
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Influence de α
À partir deA, la matrice « des liens », la méthode du PageRank consiste à chercher la solution deBs=savecB=αA+ (1−α)J/N.
Comment est choisi le paramètreα? C'est un compromis entre
• grande valeur deα: processus converge lentement (par exemple pourα=.99 plus de 80 itérations pour 3 décimales)
• petite valeur deα: processus converge très rapidement
• petite valeur deα: les liens comptent moins que le hasard (pour α=.3 on aP9>P5>P1maisP6moins bien classée que P2,3,4,10,11,12)
• grande valeur deα: liens comptent plus que le hasard
Olivier Guibé Historique et motivation La démarche Matrices PageRank
Ce que vous avez évité
Cette « nouvelle idée » (classement récursif) associée au côté
« aléatoire » est le modèlePageRank:
• Google « bombing » ou bombardement Google (tester « Trouver Chuck Norris » ou « site très moche » ; il y a des exemples plus politiques)
• Google punit : blacklistage (disparition temporaire voire définitive d'un site dans le référencement)
• tout se passe bien
• comment rendre robuste le classement
• on utilise les matrices, l'algèbre linéaire, les marches aléatoires sur les graphes, le théorème du point fixe, etc
• du point de vue informatique comment gérer une telle quantité de données, les algorithmes de calcul (certains sont secrets), etc
Olivier Guibé Historique et motivation La démarche Matrices PageRank