Pagerank para Ordenação de Resultados em Ferramenta de Busca na Web Leandro Zulian Gallina1, Roberto Rosa Júnior1 1 Instituto de Informática – Universidade Federal do Rio Grande do Sul (UFRGS) Porto Alegre – RS – Brazil {lzgallina,rsrjunior}@inf.ufrgs.br Abstract. This survey presents PageRank, a page ranking algorithm used by Google to order search results. Presented in 1998 by Lawrence Page and Sergey Brin, PageRank counts the number of links that point to a given Web page to discover its importance, added by a weight attribution dependent on the sites that point to that page. This avoids manipulation on the search engine results. It also references a second work where the authors bring a method of using Multi-resolution Community-based Popularity in order to improve precision on ranking results of queries. Resumo. Esta survey apresenta o PageRank, algoritmo de ranking de paginas da Web utilizado pelo Google para ordenação de resultados. Apresentado em 1998 por Lawrence Page e Sergey Brin, o PageRank é baseado na contagem de links que apontam para determinada pagina da Internet e aplica a ponderação de pesos para evitar que mecanismos mal intencionados enganem o motor de busca. Também faz referência a um trabalho onde os autores apresentam uma metodologia que usa comunidades como fator de multiresolução para formar rankings de maior precisão para buscas na Web. 1. Introdução A Internet cria muitos desafios para a área de Information Retrieval. Ela contém um número muito grande de documentos, estimado na casa das dezenas de bilhões de páginas. Motores de busca na Internet precisam lidar com o fato de que estas páginas contêm informações muito diversas, além das buscas serem realizadas por usuários inexperientes. Adicionalmente, muitas páginas são criadas com o intuito de enganar motores de busca e privilegiar seus resultados. Quando os primeiros motores de busca na Internet começaram a surgir, havia a impressão na comunidade da World Wide Web que um bom motor de busca seria aquele que fosse capaz de indexar o maior número possível de páginas disponíveis na Internet. No entanto, o número cada vez maior de documentos na Internet levou a um ponto que, em 1997, havia se tornado impossível pesquisar na rede sem algum tipo de ranking. Enquanto o número de documentos indexados havia aumentado, a capacidade do usuário de olhar para os documentos retornados continuava a mesma. O interesse do usuário final de um motor de busca limita-se aos primeiros dez resultados encontrados, ou no máximo às primeiras dezenas. Na medida em que o tamanho da Internet crescia, tornavam-se cada vez mais necessárias ferramentas de alta precisão de busca. A noção de documentos relevantes devia limitar-se somente aos melhores documentos de todos já que pode haver milhares ou até milhões de documentos com alguma relevância para qualquer busca digitada. A ferramenta de busca deve retornar somente os documentos com a máxima relevância possível mesmo que isto diminua o recall do sistema em si. Com base nestas necessidades, Brin e Page criaram o PageRank [Page 1998]. Esta ferramenta aproveita-se do fato de que, ao contrário de documentos de texto, a Internet é composta por hipertexto que providencia informação auxiliar sobre as suas páginas, como a estrutura dos links que compõem a Internet. O PageRank cria um ranking de importância global para cada página da Internet. Este ranking é usado para atribuir pesos aos escores de relevância retornados pelo motor de busca do Google [Brin 1998]. Adicionalmente, o serviço do Google Directory retorna documentos encontrados em ordem determinada especificamente pelo PageRank. 2. PageRank A análise de citações acadêmicas é uma área de estudos com extensa literatura, e já estabelecida na época em que o PageRank foi criado. O uso de contagem de citações é uma maneira bastante fiel de encontrar artigos científicos relevantes. Técnicas de contagem de backlinks – links que apontam para uma determinada página – estavam surgindo na década de 1990. No entanto, a simples contagem de backlinks não é tão fiel quanto a contagem de citações acadêmicas; enquanto artigos científicos são rigorosamente revisados, páginas da Internet são criadas livres de qualquer sistema de controle ou custo. Com um programa simples, muitas páginas podem ser criadas artificialmente, incrementando a contagem de backlinks para determinadas páginas. Técnicas de obter atenção para páginas da Internet evoluem com intenções de publicidade e lucro. Torna-se necessária uma ferramenta mais elaborada do que a simples contagem de backlinks. 2.1. Estrutura de Links da Internet As páginas da Internet possuem links que apontam para outras páginas, conhecidos como forward links. Os links que apontam para uma determinada página são chamados de backlinks. Enquanto nem todos os backlinks de uma página são conhecidos, ao obter uma página da Internet é possível saber todos os forward links que ela possui. De maneira geral, páginas com um grande número de backlinks podem ser consideradas mais importantes do que aquelas com menos backlinks. A inovação do PageRank vem de casos em que a contagem de citações não reflete a noção de importância que os usuários estão procurando. Por exemplo, se uma página possui um link de um portal como o Yahoo para ela, mesmo que este seja o único backlink desta página, é um backlink altamente importante. Esta página deve aparecer no ranking em uma posição mais alta do que outras páginas com muitos links porém de lugares obscuros. O PageRank é uma tentativa de aproximar a importância de uma página através da estrutura de links. Assim, o PageRank é definido da seguinte maneira: uma página possui um ranking alto se a soma dos rankings de seus backlinks é alta. Esta definição serve tanto para o caso de uma página com muitos backlinks como para o caso de um página com poucos backlinks muito importantes. 2.2. Algoritmo do PageRank O PageRank forma uma distribuição probabilística sobre todas as páginas da Web, de forma que soma dos PageRanks de todas as páginas da Web será sempre 1. O algoritmo do PageRank pode ser aplicado para uma coleção de documentos de qualquer tamanho. Suponha um conjunto de quatro páginas da Internet, A, B, C e D. A aproximação inicial do PageRank seria distribuída igualmente entre os quatro documentos. Assim, os quatro documentos iniciam o algoritmo com PageRank igual a 0,25. Se as páginas B, C e D possuírem links para A, cada uma passaria um PageRank de 0,25 para A. Agora, suponha que a página B possui um link para C, e a página D possui links para as outras três páginas. A figura 1 representa a relação entre as quatro páginas. B C A D Figura 1. Quatro páginas da Web com links O valor do PageRank passado a partir de cada página é distribuído igualmente entre os forward links da página. Assim, a página B passaria um PageRank de 0,125 para A e outros 0,125 para C. A página D passaria um terço de seu PageRank para A: Considerando que a função L retorna o número de forward links de uma determinada página, o PageRank de A pode ser indicado como: De maneira geral, dada uma página u, sendo Bu o conjunto de páginas que apontam para u, o PageRank da página u pode ser expresso como o somatório do valor do PageRank de cada página v que aponta para v dividido pelo número de links que parte da página v: O modelo do PageRank é baseado na suposição de um “web surfer aleatório”. Este personagem navegaria na Internet clicando em links sucessivos aleatoriamente. Eventualmente, ele fica “entediado” com a página que está vendo e pula para outra página da Internet escolhida aleatoriamente. Para modelar a probabilidade do web surfer ficar entediado, é usado um fator de amortização d que assume valores entre 0 e 1. Normalmente, o valor d é fixo em 0,85. No caso, este valor representa a probabilidade de 85% do web surfer clicar em um link na página que está vendo, contra 15% de probabilidade de escolher outra página aleatoriamente para começar a navegar novamente. O fator de amortização d é incluído na fórmula do PageRank da seguinte maneira, considerando que N é o número total de documentos na coleção, e que A possui links de B, C, D... : Esta fórmula é calculada recursivamente, porém pode começar com qualquer conjunto de documentos até a fórmula convergir. O Google recalcula os valores de PageRank cada vez que busca a Internet com seus crawlers e reconstrói seu índice. Na medida em que o número total de documentos indexados pelo Google aumenta, a aproximação inicial do PageRank para cada documento diminui. Considera-se que a convergência é alcançada quando a variação do PageRank entre a iteração atual e a iteração anterior alcança valores abaixo de determinado limiar. A convergência é alcançada de forma relativamente veloz, sendo que em seus experimentos iniciais os autores alcançaram a convergência para 322 milhões de links em 52 iterações. A convergência para a metade destes links é alcançada em 45 iterações. Este fato mostra a boa escalabilidade do algoritmo, considerando que conforme a coleção de documentos cresce o número de iterações necessárias para a convergência aumenta linearmente na proporção do logaritmo do número de documentos. 2.3. Personalização do PageRank O fator de amortização d é um componente importante do algoritmo do PageRank. Através de experimentações, os autores chegaram ao valor de 0,85 como sendo aquele que apresenta melhor desempenho para uma grande coleção de documentos como a Internet. No entanto, esta abordagem resulta em eventuais links recebendo um ranking demasiadamente alto. Como exemplo, podemos citar avisos de copyright e listas de mailing contendo alto número de links entre seus documentos. Nestes casos, o fator de amortização d poderia assumir um valor mais alto, assim efetivamente diminuindo o PageRank das páginas envolvidas. Por outro lado, em experimentos onde o valor do fator de amortização d era reduzido para determinados sites, verificou-se que as home pages destes sites obtinham PageRank mais altos, seguidas pelos forward links destas home pages. Estes experimentos mostram que é possível usar o fator de amortização para construir motores de busca personalizados, os quais poderiam ser baseados, por exemplo, nos “Favoritos” do navegador do usuário. 3. Aplicações do PageRank 3.1. Predição de Backlinks Uma das possíveis aplicações do PageRank está em determinar quais serão os backlinks de uma página. Em [CGMP98] é apresentado o trabalho do crawler do Google, que deve sempre tentar buscar os melhores documentos antes para a partir deles navegar para as páginas para as quais eles apontam. Através de experimentos, os autores descobriram que o PageRank oferece uma melhor estimativa de futuras contagens de backlinks do que as próprias contagens de backlinks. 3.2 PageRank Multi-resolucional Outra possível aplicação do PageRank é o uso do PageRank com multi-resolução. Como o PageRank leva em consideração todos os documentos presentes na Web para calcular seu escore (popularidade), o resultado é uma medida generalizada sobre a popularidade dos documentos. Podemos exemplificar isso usando dois cenários: • Cenário 1: você pergunta a um grupo de pessoas, aleatoriamente, na esquina das ruas Andradas com Borges de Medeiros, no centro de Porto Alegre, sobre onde comprar CD’s. Em sua maioria respondem que procure a loja Multisom. Se você estiver procurando, por exemplo, o primeiro álbum do Ramones, há uma boa chance de a loja Multisom não ser relevante para sua busca. • Cenário 2: imagine que dentre estas pessoas exista um pequeno grupo de colecionadores de CDs, e que todos estes indiquem lojas de CD’s usados. Essa indicação provavelmente terá uma maior relevância que a do grupo generalizado. Park e Ramamohanarao [Ramamohanarao 2007] introduzem a idéia do uso de PageRank com multi-resolução, baseado na popularidade das páginas dentro de uma dada comunidade. Ou seja, cada documento recuperado tem seu escore calculado baseando-se em uma determinada comunidade. O conjunto de documentos recuperados por uma determinada consulta, relacionada a uma determinada comunidade, é ordenado pelos escores baseados na popularidade que as páginas recuperadas pela consulta possuem perante essa comunidade. Usando o método proposto em seu trabalho, os autores conseguiram ampliar em 11% de precisão comparado ao PageRank tradicional. O escore de popularidade de Park e Ramamohanarao é baseado em comunidades. Os autores apresentam um método que pode ser usado para melhorar a classificação dos resultados de buscas na Web. Estes escores são dinamicamente gerados a partir de hiperlinks e armazenados para que sejam usados no momento da consulta. Neste artigo, apresentam: • Como calcular um conjunto de multi-resolucional baseado em comunidades • Uma prova de que na pior resolução o método apesenta resultados iguais ao PageRank • Como selecionar uma lista de escores baseadas na consulta do usuário. A análise do uso da listas geradas pelo método foi aplicada ao problema de busca de informação na Web. Foram realizados experimentos em uma coleção contendo 25 milhões de documentos Web. Entrentanto, o método pode ser aplicado para mineração de dados quaisquer que usem correlação entre os documentos. 3.3 Comunidades como nível de resolução Uma comunidade Web é um conjunto de páginas que contém hiperlinks em comum. Quanto maior este nível de similaridade, mais restrita é a comunidade. No menor nível de similaridade, temos toda a Web como uma comunidade só. No nível mais alto, temos cada página como sua própria comunidade. Portanto, ajustando o nível de similaridade, ajustamos a resolução da comunidade. Até agora, as ferramentas de busca na Web aplicam apenas a resolução mais baixa (que abrange toda a Web) para auxiliar na precisão dos resultados. Este é o caso do Google que, ao usar PageRank, trata cada hiperlink como um voto para a página que está referenciando. Usando estes votos pode-se calcular a popularidade de qualquer página. O Google usa exatamente essa popularidade para ordenar seus resultados em uma busca. Portanto para cada busca, a página mais popular (mais referenciada) perante toda a Web obterá a melhor classificação. Isso apresenta um resultado bom para consultas genéricas, na qual a comunidade global apresenta conhecimento adequado. Para uma consulta mais específica, não apresentará boa aplicabilidade. Para estes casos, os escores obtidos em uma comunidade especializada resultariam em uma ordenação melhor dos resultados. Isso pode ser facilmente notado o diagrama da figura 2. Nota-se que cada página contém exatamente um link que a referencia. O escore de popularidade de cada página será o mesmo, na medida em que o PageRank levará em consideração todo o conjunto de documentos. Para melhores resultados, seria mais interessante usar uma lista de PageRank para cada comunidade, sendo assim a e b populares dentro de uma comunidade, enquanto c e d populares dentre a outra comunidade. Figura 2. Um exemplo onde PageRank não é útil A tabela abaixo mostra o resultado da aplicação do método apresentado no artigo em comparação com o PageRank. Em sua menor resolução, o método tem resultados equivalentes ao PageRank. Este resultado é obtido a partir da aplicação de um método de fatoração matricial chamado SNMF (Symmetric Non-negative Matrix Factorisation) a uma matriz contendo os links dos documentos. Tabela 1. Comparativo entre PageRank e o Método multi-resolucional. Podemos notar que o SNMF-2 traz duas listas de escores de popularidade, uma mostrando alta popularidade para páginas a e b e a segunda mostrando alta popularidade para c e d. Assim podemos ver que existem duas comunidades no conjunto exemplificado na figura acima, produzindo o ranking relativo a cada comunidade. As primeiras duas listas no SNMF-3 mostram alta popularidade para as páginas c e d, enquanto a terceira alta popularidade para a e b. No SNMF-4, duas lista resultam alta popularidade para a e b e duas para as paginas c e d. Os experimentos do artigo foram realizados sobre a coleção GOV2Web, contendo 25 milhões de documentos Web, para verificar como o método poderia ser usado para recuperar documentos mais relevantes a uma consulta. Chegou-se a um resultado com aumento de 11% na precisão comparado ao PageRank. 4. Conclusão O algoritmo PageRank calcula um escore de popularidade para cada documento na Web. Este escore é medido observando-se outras páginas que os referenciam através de hiperlinks. O conjunto de escores de popularidade é pré-computado e armazenado, para que, quando uma consultada for realizada, os resultados sejam rapidamente ordenados. Para o PageRank, a popularidade é a medida de confiança na informação presente no resultado da consulta. Infelizmente, este escore é independente da consulta, pois usam uma base de conhecimento global. Por este fato PageRank é mais eficiente quando aplicado a consultas genéricas. Foi visto que existe um outro método, generalizado a partir do PageRank, que utiliza multi-resolução de listas de Rank, representando escores de popularidade dentro de diferentes comunidades de páginas Web. Para consultas de conhecimento específico, esta metodologia pode vir a ser utilizada em ferramentas de busca, dependendo da demanda por tal diferencial. References Brin, S. and Page L. (1998) “The anatomy of a large-scale hypertextual Web search engine”, In: Computer Networks and ISDN Systems, 30 (1–7), pages 107–117, Elsevier, EUA. Cho J., Garcia-Molina, H. and Page, L. (1998) “Efficient crawling through url ordering”, In: Proceedings of the Seventh International World Wide Web Conference, Elsevier Sciences, Australia. Page, L., Brin, S., Motwani, R. and Winograd, T. (1998) “The PageRank Citation Ranking: Bringing Order to the Web”, Technical report, Stanford DLT Project, EUA. Park, A. F. L. and Ramamohanarao, K. (2007) “Mining web multi-resolution community-based popularity for information retrieval”, In: Proceedings of the 2007 ACM Conference on Information and Knowledge Management, pages 545 – 552.