The Anatomy of a Large-scale Hypertextual web search...

Post on 19-Sep-2020

4 views 0 download

Transcript of The Anatomy of a Large-scale Hypertextual web search...

The Anatomy of a Large-scale The Anatomy of a Large-scale Hypertextual web search engineHypertextual web search engine

Sergey Brin & Lawrence PageSergey Brin & Lawrence Page

Exposé de Moteur de rechercheExposé de Moteur de rechercheDEA IFA 2004-2005DEA IFA 2004-2005

Leborgne FabienLeborgne Fabien

PlanPlan

■ Introduction.Introduction.■ Caractéristiques.Caractéristiques.■ Architecture.Architecture.■ Composants.Composants.■ Conclusion.Conclusion.

ContexteContexte

■ L'article:L'article:– Daté de 1998.Daté de 1998.– Signé par Serge Brin & Lawrence Page.Signé par Serge Brin & Lawrence Page.

■ Peu de recherche dans ce domaine.Peu de recherche dans ce domaine.■ Première description détaillé d'un moteur.Première description détaillé d'un moteur.■ Yahoo, altavista,... manque évident.Yahoo, altavista,... manque évident.

Pourquoi Google?Pourquoi Google?

■ Expansion rapide ( pages &utilisateurs)Expansion rapide ( pages &utilisateurs)– =>croissance du nbr de requêtes=>croissance du nbr de requêtes– =>difficulté pour trouver ce que l'on cherche=>difficulté pour trouver ce que l'on cherche

■ Recherche avec arborescence:Recherche avec arborescence:– Critères subjectifs.Critères subjectifs.– Coûte cher (construction & maintenance).Coûte cher (construction & maintenance).– Impossible de couvrir tous les sujets.Impossible de couvrir tous les sujets.

■ Recherche avec Moteur de Recherche:Recherche avec Moteur de Recherche:– Trop de résultats non voulus.Trop de résultats non voulus.– Annonceurs (tromperie volontaire)Annonceurs (tromperie volontaire)

■ Google = « googol » = 10^100Google = « googol » = 10^100

Passage à l'échellePassage à l'échelle

■ Augmentation du nombre de pagesAugmentation du nombre de pages■ 1994 -> 110,000 pages1994 -> 110,000 pages■ 1997 -> 2,000,000 à 100,000,000 docs1997 -> 2,000,000 à 100,000,000 docs■ prévision 2000 -> x,000,000,000 de docs.prévision 2000 -> x,000,000,000 de docs.

■ Augmentation du nombre de requêtesAugmentation du nombre de requêtes■ 1994 ->WWW Worm 1500 par jour1994 ->WWW Worm 1500 par jour■ 1997 -> altavista 20 millions par jour1997 -> altavista 20 millions par jour

■ Google devra supporter cette croissance.Google devra supporter cette croissance.– EfficacitéEfficacité– RapiditéRapidité

Comment passer à l'échelleComment passer à l'échelle

■ Efficacité:Efficacité:– Technique d'exploration (crawl) rapide.Technique d'exploration (crawl) rapide.– Utilisation efficace de l'espace de stockage.Utilisation efficace de l'espace de stockage.– Indexation rapide.Indexation rapide.– Réponse rapide aux requêtes.Réponse rapide aux requêtes.

Qualité des résultatsQualité des résultats

■ Précision de la recherche.Précision de la recherche.– PageRank.PageRank.– Utilisation des Ancres.Utilisation des Ancres.– Proximité des termes.Proximité des termes.– Détails de présentation (taille & style de police)Détails de présentation (taille & style de police)

PageRank (1/2)PageRank (1/2)

■ Méthode de calcul de l'intérêt d'une pageMéthode de calcul de l'intérêt d'une page– intérêt subjectif calculé à partir de critères objectifs.intérêt subjectif calculé à partir de critères objectifs.

■ La grande innovation de google.La grande innovation de google.■ Utilise l'arborescence des pages.Utilise l'arborescence des pages.■ Classement des pages pertinent.Classement des pages pertinent.

PageRank (2/2)PageRank (2/2)

■ Principe de base:Principe de base:– Formule:Formule:

■ PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))PR(A) = (1-d) + d (PR(T1)/C(T1) + ... + PR(Tn)/C(Tn))

– L'importance d'une page est déterminé par L'importance d'une page est déterminé par l'importance des pages qui pointe vers elle.l'importance des pages qui pointe vers elle.

■ Algo itératif.Algo itératif.

Les ancresLes ancres

■ Principe:Principe:– Association du texte du lien avec la page Association du texte du lien avec la page

pointé.pointé.■ Avantages:Avantages:– Description préciseDescription précise– Pages non-crawlable (image, archive, ...)Pages non-crawlable (image, archive, ...)

ArchitectureArchitecture

■ Serveur d'url.Serveur d'url.■ Explorateur (crawler).Explorateur (crawler).■ Serveur de stockage.Serveur de stockage.■ Indexeur.Indexeur.■ Solveur d'url.Solveur d'url.■ chercheur(searcher).chercheur(searcher).■ Pagerank.Pagerank.■ Repository.Repository.■ Lexique.Lexique.■ AncreAncre■ lexiquelexique

Composants (1/4)Composants (1/4)

■ Serveur d'urls:Serveur d'urls:– Transmission des listes d'urls aux Transmission des listes d'urls aux

crawlercrawler

■ Explorateur(crawler):Explorateur(crawler):– Exploration des pages.Exploration des pages.– Envoi des pages au serveur de Envoi des pages au serveur de

stockage.stockage.■ +sieurs distribués+sieurs distribués

■ Serveur de stockage:Serveur de stockage:– Compression des pages Compression des pages – Sauvegarde dans le repositorySauvegarde dans le repository– Nouvelle page associée à un docID.Nouvelle page associée à un docID.

Composants (2/4)Composants (2/4)

■ Indexeur:Indexeur:– Lecture dans la repository.Lecture dans la repository.– Décompression des documents.Décompression des documents.– Parsing des pages.Parsing des pages.– Conversion des pages en « hit Conversion des pages en « hit

list » (liste d'occurences).list » (liste d'occurences).– Distribution des « hits » dans les Distribution des « hits » dans les

« barrels » de façon partiellement « barrels » de façon partiellement triée.triée.

– Parsing des url et envoie des Parsing des url et envoie des informations dans les ancres.informations dans les ancres.

– Création du lexique.Création du lexique.

Composants(3/4)Composants(3/4)

■ Solveur d'url:Solveur d'url:– Lecture des ancres.Lecture des ancres.– Conversion Conversion

url relative -> url absolueurl relative -> url absolue– Génère la BD de liens utilisé Génère la BD de liens utilisé

pour le PageRank.pour le PageRank.

■ Chercheur:Chercheur:– Exécuté par un serveur web.Exécuté par un serveur web.– Utilise:Utilise:

■ LexiqueLexique■ IndexIndex■ PageRankPageRank

Composant (4/4)Composant (4/4)

■ Trieur:Trieur:– Création de l'index inverseCréation de l'index inverse

■ Triage par wordIDTriage par wordID– Duplication de la mémoire. (cf. indexation)Duplication de la mémoire. (cf. indexation)

Structure de données (1/4)Structure de données (1/4)

■ Repository:Repository:– Contient les pages HTMLContient les pages HTML– Utilise ZlibUtilise Zlib

■ RapideRapide■ Ratio 3 to 1 (bzip = 4 to 1)Ratio 3 to 1 (bzip = 4 to 1)

– Entrée préfixé par DocID , length, URLEntrée préfixé par DocID , length, URL

Structure de données (2/4)Structure de données (2/4)

■ Lexique:Lexique:– 14 millions de mots.14 millions de mots.– Liste de mot + table de hachage de pointeur.Liste de mot + table de hachage de pointeur.– Stockage en mémoire vive (~256MB).Stockage en mémoire vive (~256MB).

Structure de données(3/4)Structure de données(3/4)

■ Hit listsHit lists– Informations:Informations:

■ PositionPosition■ Taille policeTaille police■ CapitalisationCapitalisation

– Dans les barrels, sur 2 octets.Dans les barrels, sur 2 octets.– Type:Type:

■ Plain -> textePlain -> texte■ Fancy ->url, titre, texte ancre, meta-tagFancy ->url, titre, texte ancre, meta-tag

– Ancre -> url (avec docID)Ancre -> url (avec docID)

Structure de données(4/4)Structure de données(4/4)

■ Forward Index:Forward Index:– Pour chaque documentPour chaque document

■ Ensemble des wordid et Ensemble des wordid et de leurs hits.de leurs hits.

– Trié par docidTrié par docid

■ Reverse index:Reverse index:– Trié par wordidTrié par wordid

Challenge (crawling)Challenge (crawling)

■ Interagit avec des centaine de serveurs.Interagit avec des centaine de serveurs.– Robuste!Robuste!

■ Le crawler de Google:Le crawler de Google:– Système distribué avec 3 crawlersSystème distribué avec 3 crawlers– ~300 connexions simultanées.~300 connexions simultanées.– ~600KB /sec~600KB /sec– Appels téléphonique & mailAppels téléphonique & mail

Challenge (indexing)Challenge (indexing)

■ Parser.Parser.– Support des erreurs dans les pages.Support des erreurs dans les pages.– RapideRapide

■ Indexer les documents.Indexer les documents.– Rapidité.Rapidité.– Structures compactes.Structures compactes.– Ajout de mots.Ajout de mots.

■ Trier.Trier.– Génération de l'index inverse.Génération de l'index inverse.

RésultatsRésultats

■ PageRank:PageRank:– Site officiel « .gov »Site officiel « .gov »

■ Proximité des termesProximité des termes– Pas d'autre billPas d'autre bill

■ Subjectivité du résultatSubjectivité du résultat

PerformancePerformance

■ Espace.Espace.– Nécessite ~100GBNécessite ~100GB

■ Rapidité.Rapidité.– Réponse entre 1 et 10 secondes:Réponse entre 1 et 10 secondes:

■ Sans optimisation (cache, algorithme)Sans optimisation (cache, algorithme)

■ Le buts n'était pas d'améliorer la rapidité mais la Le buts n'était pas d'améliorer la rapidité mais la qualité des résultats.qualité des résultats.

ConclusionConclusion

■ GoogleGoogle– Passage à l'échelle.Passage à l'échelle.

■ Difficile avec l'évolution du web.Difficile avec l'évolution du web.

– Qualité de la recherche.Qualité de la recherche.■ PageRank, texte des ancres, proximité des PageRank, texte des ancres, proximité des

termes...termes...

– Rapide et efficace.Rapide et efficace.

Amélioration possibleAmélioration possible

■ Mise en cache des réponses des requêtes.Mise en cache des réponses des requêtes.■ Meilleur allocation du disqueMeilleur allocation du disque■ Meilleurs algorithmes.Meilleurs algorithmes.■ Machine dédiée.Machine dédiée.■ ......■ Ajout d'opérateurAjout d'opérateur (AND, OR, Négation, restriction (AND, OR, Négation, restriction

de la recherche, ...)de la recherche, ...)

■ ......

Google aujourd'huiGoogle aujourd'hui

BibliographieBibliographie

■ Sergey Brin, Lawrence Page. Sergey Brin, Lawrence Page. The Anatomy of a Large-The Anatomy of a Large-scale Hypertextual web search engine. scale Hypertextual web search engine. Mars 1998.Mars 1998.

■ Ian Rogers.Ian Rogers. The Google Pagerank Algorithm. The Google Pagerank Algorithm.■ Heting Chu, Marilyn Rosenthal. Heting Chu, Marilyn Rosenthal. Search Engines for the Search Engines for the

World Wide Web: A Comparative Study and Evaluation World Wide Web: A Comparative Study and Evaluation Methodology. Methodology. Octobre 1996.Octobre 1996.