Universidade Técnica de Lisboa Instituto Superior Técnico Recuperação de Informação The Anatomy of a Large-Scale Hypertextual Web Search Engine Sergey Brin and Lawrence Page Adriano Kaminski Sanches Prof. Dr. Pável Calado Novembro de 2007 Contéudo Introdução Características do Sistema Trabalhos Relacionados Anatomia do Sistema Resultados e Desempenho Conclusão Contexto 1998 Conteúdo da Internet Crescendo 2 Soluções existentes: Índices mantidos por humanos Buscadores automáticos Necessidade de Soluções de Busca Introdução Resultado? = googol = 10100 Introdução Protótipo de um motor de busca de larga escala Objectivo principal: Aumentar a qualidade dos resultados em busca na internet Em Novembro de 2007, somente 1 dos 4 maiores motores de busca conseguiam se achar Objectivo secundário: Acompanhar o rápido crescimento da internet, sendo escalável Introdução 1993 --» 1.5% .com 1997 --» 60% .com Motores de busca: universidade »» empresas Empresas guardavam segredos dos buscadores Ausência de material científico sobre o tema Google --» preencher essa lacuna Características do Sistema Duas importantes características: PageRank Trazendo Ordem para a Web Uso dos Links (ãncoras) Características do Sistema PageRank A importância de uma página --» popularidade Colectou-se todos os links da coleção (origem e destino) Criou-se um mapa de links --»518 milhões de hyperlinks Para cada página De onde vem Para onde vai Características do Sistema Cálculo do PageRank: “Vamos assumir que a Página A tenha as páginas T1..Tn que apontam para ela Parametro D é um damping factor (entre 0 e 1) C(A) é o número de links que saem de A PR(A) = (1-d) + d(PR(T1)/C(T1)+…+PR(Tn)/C(Tn)” Características do Sistema Cálculo do PageRank: Se uma Página A é muito citada --» PR(A) ↑ Se uma Página A é citada por páginas populares --» PR(A) ↑ Características do Sistema Ãncoras de Texto: Levar em consideração textos das ãncoras casos que ãncoras dizem mais que a própria página ãncoras são valiosas para documentos que não podem ser indexados: imagens, programas, banco de dados… Na coleção de 24 milhões de páginas -» 259 milhões de ãncoras indexadas Características do Sistema Outras características: Armazena localização de cada palavra no texto Armazena detalhes visuais (tamanho da fonte, estilo) Toda a coleção rastreada da internet é armazenada em repositórios próprios Trabalhos Relacionados Trabalhos de pesquisa na Web? Poucos Internet Cresceu -» Pesquisa aberta diminuiu Pesquisa comercial apenas Trabalhos de pesquisa em colecções controladas? Muita pesquisa em Recuperação de Informação Serve para a web? web != colecções controladas O “Very Large Corpus” do TREC de 1996 tinha um benchmark de 20 GB, google tinha 147 GB O usuário não precisa refinar a busca Anatomia do Sistema Anatomia do Sistema Repositório Lista sequencial de todas páginas comprimidas Compressão utilizada, meio termo entre velocidade e taxa de compressão zlib 3 para 1 é armazenado o docID, tamanho, e URL também (além do documento comprimido) é o suficiente para reconstruir as páginas armazenadas. Índice de documentos Mantém informações sobre cada página Índice sequencial Estado do documento, ponteiro para o repositório, checksum do documento e varias estatísticas Anatomia do Sistema Lexicon Dicionário de 14 milhões de palavras Tamanho reduzido 293 MB Lista de Hit Lista com a ocorrência de uma palavra particular, incluindo posição, tamanho da fonte e informação se maiúscula ou minúscula Ocupa grande parte dos dados Informações úteis para calcular PageRank Anatomia do Sistema Forward Index Lista com todos os Hits de cada palavra de cada documento Índice invertido Forward Index ordenada por palavras Cada palavra no Lexicon tem um ponteiro para a lista de ocorrências desta palavra em cada documento neste índice Dois índices: 1 com as ocorrências de palavras apenas nas ãncoras e títulos de páginas outro completo com todas as ocorrências Anatomia do Sistema Buscando Páginas na WEB Parte mais sensível, pois depende de factores externos Apenas 1 URLserver alimenta os vários robôs de busca Tipicamente utilizado 3 robôs Implementado em Python Cada robô mantém 300 conexões ao mesmo tempo Chega a buscar 100 páginas web por segundo Problemas com mails/telefonemas Anatomia do Sistema Indexando a WEB Separação das palavras (Parse dos Tokens) Flex Indexando documentos nos Barrels Cada Palavra é convertida em uma wordID que será utilizada no Lexicon Cada ocorrência da wordID no documento corrente é traduzida para um hit list e escrito no índice. Problemas com paralelização: Lexicon Estático, lista extra com palavras novas Indexando a lista invertida Transforma a lista indexada, que esta ordenada por ocorrência de palavras dentro de cada documento, em uma lista sequencial com as ocorrências de cada palavra em todos os documentos Anatomia do Sistema Buscas por palavra-chave Objectivo principal: aumentar a qualidade dos resultados Entretanto, sistema com capacidade de crescer 1. 2. 3. 4. 5. 6. 7. 8. Separe a query Converta as palavras em wordIDs Vá para o início da lista de índice invertido pequeno de cada palavra da query Percorra a lista até achar um documento que case todos os termos Compute o rank desse documento Se está no final da lista pequena e teve poucos resultados, percorra a lista grande e vá para o passo 4 Se não está no final de qualquer lista, vá para o passo 4 Ordene os elementos que casaram os termos e mostre por ordem de importância Resultados e Desempenho Qualidade das respostas -» subjetivos Superou barreiras que concorrentes não atingiam Números mais apurados necessitam de um teste extensivo e independente Storage Statistics Web Page Statistics Number of Web Pages Fetched 24 million Number of Urls Seen 76.5 million Number of Email Addresses 1.7 million Number of 404's 1.6 million Total Size of Fetched Pages 147.8 GB Compressed Repository 53.5 GB Short Inverted Index 4.1 GB Full Inverted Index 37.2 GB Lexicon 293 MB Temporary Anchor Data (not in total) 6.6 GB Document Index Incl. Variable Width Data 9.7 GB Links Database 3.9 GB Total Without Repository 55.2 GB Total With Repository 108.7 GB Initial Query Same Query Repeated (IO mostly cached) Quer y CPU Tim e(s) Total Time (s) CPU Time(s) Total Time(s) al gore 0.09 2.13 0.06 0.06 vice presi dent 1.77 3.84 1.66 1.80 hard disks 0.25 4.86 0.20 0.24 searc h engin es 1.31 9.63 1.16 1.16 Conclusão Google é um sistema completo de busca Primeiro objectivo alcançado (melhorar a qualidade das respostas a uma query) Para chegar neste resultado -» novas técnicas PageRank, ãncoras, proximidade Com algumas simples mudanças Google suporta maior número de dados (escalável) Conclusão Trabalhos Futuros Muito tem a ser feito Melhorar a eficiência das buscas para 100 milhões de páginas Cache de query subindices updates proxy caches Adicionar buscas com operadores booleanos Contexto do usuário … http://www.google.com/options/index.html Muito Obrigado! Universidade Técnica de Lisboa Instituto Superior Técnico Recuperação de Informação The Anatomy of a Large-Scale Hypertextual Web Search Engine Sergey Brin and Lawrence Page Adriano Kaminski Sanches Prof. Dr. Pável Calado Novembro de 2007