TP 2 – Initiation au PageRank (suite)

publicité
Moteurs de recherche (Master 2)
TP 2 – Initiation au PageRank (suite)
Ce sujet fait suite au TP1, et nous permet d’aborder le cas de graphes plus « réalistes »
que ceux qui ont été vus jusqu’ici. Ceci nous permet d’aboutir à la dernière version académique connue de l’algorithme de PageRank.
1 Cas des graphes périodiques
Le cas d’un graphe dont la matrice est périodique, autrement dit d’un graphe dont le
pgcd de la longueur des circuits est supérieur à 1, se résoud assez facilement. En terme de
surfeur aléatoire, il suffit en fait de supposer qu’à chaque pas, le surfeur peut décider avec
une probabilité quelconque (non nulle) de rester sur la page actuelle.
Exercice 1
1. En quoi cette modification résoud-elle le problème ? Modifiez l’expression vectorielle
du PageRank pour tenir compte de ce cas. Jugez-vous probable que ce cas se produise
en pratique ?
2. Corrigez l’algorithme originel (cf. TP1) en conséquence, puis testez la nouvelle version
sur un graphe fortement connexe à matrice périodique.
3. Cette modification apportera-t-elle une amélioration dans le cas où le graphe n’est pas
fortement connexe ? Le vérifier par l’exemple.
2 Cas des matrices sous-stochastiques
Un graphe décrivant les liens entre des pages web réelles possède la plupart du temps
des puits correspondant à des pages sans liens vers d’autres pages.
La particularité des matrices d’adjacences de graphes possédant des puits est de ne
pas être stochastiques : en effet, les lignes de la matrice correspondant aux sommets de
degré sortant nul ne contiennent que des 0, la somme de leurs éléments ne vaut donc
évidemment pas 1. Il s’agit d’un cas particulier de matrices sous-stochastiques.
Nous avons constaté au TP précédent que l’algorithme d’origine ne permet pas de
traiter le cas de ce type de graphes. Puisque ces graphes apparaissent en pratique, il faut
trouver un moyen de calculer malgré tout un PageRank significatif.
1
2.1 Première tentative : renormalisation
Une première possibilité pour tenter de corriger les résultats obtenus à la question avec
l’algorithme d’origine (cf. TP1) est d’appliquer une correction appelée renormalisation à
chaque itération de l’algorithme. Celle-ci consiste à diviser à chaque étape Rn+1 par sa
norme, ce qui assure qu’à chaque étape, la somme des éléments de Rn+1 vaut 1, et donc
que Rn+1 représente une distribution de probabilité.
Exercice 2
1. Modifiez l’algorithme originel en incluant l’étape de renormalisation et implémentez
votre modification.
2. On vous propose les graphes suivants :
1. V = {1, 2, 3}, E = {(1, 1), (1, 2), (2, 3)}
2. V = {1, 2, 3}, E = {(1, 1), (1, 2), (1, 3), (2, 2), (2, 3)}
3. V = {1, 2, 3}, E = {(1, 2), (1, 3), (2, 3)}
4. V = {1, 2, 3, 4}, E = {(1, 2), (1, 3), (2, 2), (2, 4), (3, 3), (3, 4)}
5. V = {1, 2, 3, 4}, E = {(1, 2), (1, 3), (2, 2), (2, 4), (3, 3)}
Testez l’algorithme avec renormalisation sur ces graphes, et comparez les résultats avec
ceux de l’algorithme originel.
3. Relevez également les résultats obtenus avec différentes distributions initiales (paramètre Z). Quelle caractéristique de ce vecteur est d’après vous essentielle pour pouvoir
espérer un calcul significatif ?
4. Pouvez-vous expliquer ces différents résultats ? Sont-ils entièrement satisfaisants ? Que
penser du sommet n°3 du graphe 5 ?
2.2 Seconde tentative : complétion stochastique
Une autre idée naturelle pour régler le problème des sommets sans successeurs est
la suivante : en gardant l’idée d’un surfeur aléatoire, on peut supposer qu’un utilisateur
atteignant une page sans lien sortant n’a d’autre choix que de choisir une nouvelle page
au hasard1 .
Concrètement, on va chercher à « compléter » la matrice d’adjacence du graphe considéré en remplaçant chaque ligne correspondant à un puits (qui ne contient donc que des
0) par la distribution initiale Z (que l’on choisit en général uniforme). On obtient l’algorithme 1 de PageRank par complétion stochastique.
Exercice 3
1. Testez l’algorithme de PageRank par complétion stochastique sur les graphes fournis à
l’exercice précédent.
2. Quelles différences constatez-vous ? Quelle caractéristique des graphes pose encore
problème ?
3. Pouvez-vous imaginer d’autres moyens d’effectuer une complétion stochastique ?
1
Une approche récente, plus réaliste, consiste à modéliser la touche « retour » du navigateur. Consulter la
bibliographie du cours pour plus de détails.
2
Algorithme 1: PageRank : modèle par complétion stochastique
Data : Une matrice A, une distribution de probabilité Z et un réel ε.
Result : Le vecteur propre principal de probabilité de AT avec une précision ε.
début
R0 = Z
répéter
Rn+1 = AT Rn
µ = kRnk1 − kRn+1k1
Rn+1 = Rn+1 + µZ
δ = kRn+1 − Rnk1
jusqu’à δ < ε
fin
3 Cas des matrices non irréductibles
Pour régler le problème des graphes non fortement connexes (à matrices non irréductibles), Brin et Page ont proposé une utilisation différente de la distribution initiale Z
(appelée dans ce contexte distribution de « zap »).
Cette fois, depuis n’importe quelle page, le surfeur choisit avec une probabilité d fixée
de suivre l’un des liens sortants, et dans tous les autres cas (probabilité 1 − d) de ne suivre
aucun lien mais plutôt de zapper vers une page quelconque suivant la distribution de
probabilité Z. On obtient l’algorithme 2 de PageRank avec facteur zap.
On peut également combiner cette approche avec l’algorithme par complétion stochastique, et obtenir l’algorithme 3 dit « µ-compensé ».
Exercice 4
1. Comment peut-on interpréter l’algorithme 3 en terme de surfeur aléatoire ?
2. Implémentez ces deux algorithmes, puis testez-les sur plusieurs graphes, en prenant
pour Z la distribution uniforme et pour d la valeur 0, 85.
3. Faites ensuite varier Z et d.
4. Dans le cas de l’algorithme 2, est-il correct de dire que le résultat est une distribution
de probabilité ? Comment cela se fait-il ?
5. Comparez attentivement les résultats obtenus. Que remarquez-vous ? Pouvez-vous proposer un moyen plus simple d’obtenir le résultat de l’algorithme 3 à partir de celui de
l’algorithme 2 ?
3
Algorithme 2: PageRank avec facteur zap
Data : Une matrice A, une distribution de probabilité Z, un coefficient de zap
d ∈]0, 1[ et un réel ε.
Result : Le vecteur propre principal de probabilité de AT avec une précision ε.
début
R0 = Z
répéter
Rn+1 = d.AT Rn + (1 − d).Z
δ = kRn+1 − Rnk1
jusqu’à δ < ε
fin
Algorithme 3: PageRank µ-compensé
Data : Une matrice A, une distribution de probabilité Z, un coefficient de zap
d ∈]0, 1[ et un réel ε.
Result : Le vecteur propre principal de probabilité de AT avec une précision ε.
début
R0 = Z
répéter
Rn+1 = d.AT Rn
µ = kRnk1 − kRn+1k1
Rn+1 = Rn+1 + µZ
δ = kRn+1 − Rnk1
jusqu’à δ < ε
fin
4 Conclusion
Nous avons passé en revue plusieurs améliorations de l’algorithme de PageRank de
base vu au TP1, permettant de traiter des graphes plus réalistes. Cependant, pour pouvoir
faire des observations plus poussées et comparer ces différents algorithmes, il serait bon
de travailler avec des graphes de taille plus importante, si possible issus de véritables
parcours du Web.
4
Téléchargement