L'anatomie d'un moteur de recherche - ( The Anatomy of a Large-Scale Hypertextual Web Search Engine Sergey Brin and Lawrence Page ) - UNIGE
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
L'anatomie d'un moteur de recherche ( The Anatomy of a Large-Scale Hypertextual Web Search Engine Sergey Brin and Lawrence Page ) Cours d'algorithmes pour le Web Christophe Haenggeli 7 janvier 2003
Plan de la présentation Partie A : Préliminaires Partie C : Google aujourd'hui 1. Contexte 1. Matériel et réseau 2. Les auteurs 2. Quelques chiffres Partie B : Présentation de l'article 3. Questions 1. Introduction 2. Caractéristiques du système 3. Composants du système 3.1 Aperçu de l'architecture 3.2 Structures de données 3.3 Crawling 3.4 Indexation 3.5 Recherche 4. Résultats et performances 5. Conclusions
A 1. Contexte L'article présente un prototype de moteur de recherche: celui du fameux Google. Ecrit en 1998 par S. Brin et L. Page. Peu de recherches dans ce domaine, à l' époque. Première description détaillée et publique d' un moteur. Croissance rapide du Web et manque criant d' un outil de recherche efficace.
A 2. Les auteurs Sergey Brin: 29 ans, né à Moscou, diplômé en mathématiques et informatiques de université du Maryland, co-fondateur et l' président de Google Lawrence Page: 30 ans, né au Michigan, ingénieur informaticien diplômé de l' université du Michigan, co-fondateur et président de Google Ils se sont rencontrés à l' Université de Stanford et ont collaborés ensemble au prototype de Google, durant leur doctorat.
B 1. Introduction - Généralités Pourquoi un nouveau moteur de recherche ? - Expansion très rapide du Web aussi bien que du nombre d'utilisateurs => croissance du nb. de requêtes. - Défauts des annuaires: - subjectifs - construction et maintenance coûtent cher - ne couvrent pas tous les domaines - Défaut des moteurs (basés sur les « keywords »): - trop de résultats et de mauvaise qualité Pourquoi l' appeler Google ? Prononciation anglaise de «googol» qui signifie 10100
B 1. Introduction – Scalabilité • 1994 : 110'000 pages indexées et 1500 requêtes/jour. • 1997 : 100 mios pages indexées et 20 mios requêtes/jour. • 2000 (prévisions): >1 mia pages indexées et >100 mios requêtes/jour. Google devra être scalable pour pouvoir croître avec le web. Ceci nécessite: - technique de «crawling» rapide. - utilisation efficace de l' espace de stockage. - le système d' indexation doit traiter efficacement des centaines de GB. - les requêtes doivent être traitées très rapidement. La difficulté de ces tâches croit en même temps que le Web...
B 1. Introduction – Buts • Améliorer la qualité des moteurs de recherche. - la complétude n' est pas le seul facteur de qualité - les liens significatifs sont noyés parmis les autres - les gens regardent que les 10 premiers résultats => On a besoin de plus de précision. Solution: utiliser l' information hypertextuelle (structure et textes des liens). • Construire une architecture pouvant servir de base à de nouvelles recherches. - autre moteurs sont fermés (domaine commercial) - peu de publications sur les détails techniques
B 2. Caractéristiques – PageRank Le graphe du Web est une ressource importante, inutilisée par les moteurs existants ! => Google utilise cette structure de liens pour calculer un indice de qualité de chaque page Web. Le PageRank : - mesure objective de l'importance d'une page correspondant idée subjective que les gens ont de la popularité d' bien à l' une page Web. - excellent pour donner des priorités aux résultats de recherche par mots-clés. - une des caractéristiques les plus importantes de Google (NB: la technique et le nom de PageRank sont protégés par un brevet: US Patent 6,285,999).
B 2. Caractéristiques – PageRank (2) Principe de base: Si une page A fait un lien vers une page B, alors c' est que la page A juge que la page B est suffisamment importante pour mériter d' être proposée aux visiteurs. Calcul du PR: PR(B) = (1-d) + d ( PR(A1)/N(A1) + ... + PR(An)/N(An) ) où: N(Ai) : nb. Liens sortants de la page Ai d : facteur de «découragement» du surfeur aléatoire • Se calcule en utilisant un algorithme itératif. • Calcul facile et rapide: le PR de 26 mios de pages se calcule en quelques heures avec une machine standard.
B 2. Caractéristiques – PageRank (3) Interprétation de la formule: • L'augmentation de PR(B) est d' autant plus importante que le PR(A) est élevé. • L'augmentation de PR(B) est d' autant plus importante que la page A a peu de liens sortants. => Il vaut mieux avoir un seul lien entrant, mais de bonne qualité que beaucoup de liens entrants insignifiants. Illustration du calcul simplifié du PR.
B 2. Caractéristiques – Autres A) Google associe l' ancre (texte du lien) avec la page pointée. Avantages: • L'ancre fournit souvent une description plus précise de la page que la page elle-même. • Cela permet d'indexer des pages Web inaccessibles à un «crawler» (informations non-textuelles). Google utilise cette technique principalement dans le but d' améliorer la qualité des résultats. B) Google stocke toutes les pages HTML indexées !
B 3. Composants – Aperçu architecture Crawler: reçoivent les URL' s du serveur d' URL et téléchargent les pages. Serveur de stockage: reçoit les pages, les compresse et les stocke dans le repository. Indexeur: lit le repository et parse les documents, chaque document est transformé en un ensemble de hits qui sont stockés dans les barrels. Il crée aussi le lexique et le fichier des ancres. Solveur d' URL: fait la conversion URL relatives -> URL absolues, génère la BD de liens utilisée pour calculer les PR. Chercheur: exécuté par un serveur web, utilise le lexique, l' index et le PR pour répondre aux requêtes.
B 3. Composants – Structure de données Repository: Contient le code HTML de toutes les pages web. Stocke pour chaque page son docID, sa longueur, son URL et son contenu HTML. (53.5 GB = 147.8 GB non-compressé) Lexique: Il contient 14 mios de mots, implémenté en 2 parties: une liste des mots et une table de hachage de pointeurs vers l' index des documents. (293 MB) Liste des hits: Liste des occurrences d' un mot dans un document. Stocke la position, taille de police et casse du hits (2 octets). Remarque: Accès disque lents (~10ms) => Google est optimisé pour éviter autant que possible les accès disque.
B 3. Composants – Structure de données(2) Forward Index: - Stocké dans les Forward Barrels. - Trié selon les docID Reverse Index: - Représente toutes les occurences des mots de tous les documents - Utilise les même barrels que Forward Index, mais triés différement - Trié selon les wordID - Pointé par le lexique - Stocké dans les Inverted Barrels
B 3. Composants – Crawling Le crawler est l' application la plus délicate car elle interagit avec des centaines de milliers de serveurs web => Il doit être très robuste et testé avec attention ! • Google utilise un système distribué comprenant 3 crawlers. • Chaque crawler gère ~300 connexions simultanément. • Le système récupère ~600KB de données par seconde (~100 pages web). • Génère des appels téléphoniques et des mails de webmaster...
B 3. Composants – Indexing Parser: - Doit supporter une énorme quantité d'erreurs potentielles dans les pages web (robustesse) et doit être rapide. => Développer un parser pour le web est une tâche conséquente. Indexer les documents: - Après le parsing, chaque document est encodé dans les barrels. - Ajout du mot dans le lexique (+ calcul du wordID). - Les occurences de chaque mot sont transformées en listes de hits. - Ecriture des listes de hits dans les Forward Barrels. Trier: Chacun des Forward Barrels est trié pour générer les Inverted Barrel (l' un après l' autre).
B 3. Composants – Recherche But: Fournir des résultats de qualités de manière efficace La partie intéressante de la recherche est bien sûr le calcul du rang des documents résultat de la recherche: • Google conserve beaucoup plus d'informations sur les pages web que les autres moteurs, notamment dans la liste de hits et surtout utilise le fameux PageRank. • Combiner toutes ces infos en une seule valeur est difficile... • La fonction de ranking a beaucoup de paramètres, choisir la bonne valeur pour ces paramètres est un art abstrait.
B 4. Résultats La mesure la plus importante pour un moteur de recherche est la qualité de ses résultats. Selon l'expérience (des auteurs), Google produit de meilleurs résultats que les autres moteurs de recherches commerciaux... NdT: Comme exemple, ils fournissent le résultat d'une recherche avec «bill clinton» et expliquent pourquoi il est bon !
B 4. Résultats - Beaucoup de résultats pointent vers www.whithouse.gov, c' est exactement ce qu' on s' attend à voir. Ceci est l' effet du PageRank. - Pas de résultats concernant un autre Bill ou un autre Clinton, c' est dû à l' importance donnée à la proximité des occurences. Il est clair qu' un vrai test de qualité devrait être une étude complète de différents cas d'utilisation. NdT: Par manque de place pour une étude détaillées, les auteurs invitent le lecteur à essayer Google lui-même !
B 4. Performances Stockage: Google nécessite ~110GB pour stocker ses données. Système: - le crawling: il faut ~ 9 jours pour télécharger les 26 mios de pages. - l' indexation : se fait simultanément au crawling et dure le même temps. - le tri: se fait en parallèle avec 4 noeuds et dure 24 h. Recherche: - Optimiser la rapidité des recherches n'est pas un but majeur de ce travail... - La version actuelle répond à la plupart des requêtes en 1 à 10 secondes (sans optimisations). - L' intention est d' optimiser Google pour qu' il soit capable de répondre à des centaines de requêtes par seconde.
B 4. Conclusions Le but principal qui était de fournir des résultats de haute qualité en utilisant différentes techniques (PR, texte des ancres, informations de proximité) semble avoir été atteint. Cependant, il reste une grande quantité de points à améliorer ou à ajouter pour le rendre efficace, complet et facilement extensible.
C 1. Matériel et réseau Google utilise plus de 10' 000 serveurs. Ce sont de simples PC à base de processeurs Intel tournant sous RedHat Linux. Ces serveurs sont répartis dans 7 centres de données différents. L'index, qui représente maintenant plusieurs tera octets (1012) de données, est découpé en morceaux et réparti sur des clusters de 40 noeuds. L'index est mis à jour environ une fois par mois, il faut environ 4 jours pour que les centres recoivent le nouvel index.
C 2. Quelques chiffres Google a une part de marché de 50 % des recherches effectuées sur le web. Google indexe plus de 3 mias de documents. Google traite environ 150 mios de requêtes par jour, soit 1700/sec. La société Google emploie plus de 200 employés dans le monde.
C 3. Questions Deux questions en guise de conclusion: • La qualité de Google est avérée et son succès populaire est total, mais jusqu' à quand ? • Ecrasera-t-il toutes concurrences ou se fera-t-il doubler ?
Vous pouvez aussi lire