310 likes | 426 Views
PageRank O algoritmo do Google. Renato Assuncao UFMG. What is different about the web? (Kumar). Volume (45 billions – ver http://www.worldwidewebsize.com ) Change (23% per day, dynamic content) Decay (short half-life ) Heterogeneity (HTML, AJAX, pdf , images ) Language variations
E N D
PageRankO algoritmo do Google Renato Assuncao UFMG
What is different about the web? (Kumar) • Volume (45 billions – ver http://www.worldwidewebsize.com) • Change (23% per day, dynamic content) • Decay (short half-life) • Heterogeneity (HTML, AJAX, pdf, images) • Languagevariations • Duplication (exactcopying, near-duplication) • Variablequality • Links (malicious links, 404 (broken link), redirects, dead-ends) • No easy way to evaluate performance
Recuperação de informação na WEB • PRIMEIRO PASSO: • Criar um índice das páginas e de seus conteúdos: • Web crawler • indexar as páginas • recuperar conteúdo • Este índice deve ser constantemente atualizado • SEGUNDO PASSO • Recebe query de usuário • Encontra muitas páginas relevantes • Passa a um algoritmo de PageRank para ordenar e exibir as páginas
Estrutura de Links da web • Webpages sao ligadas • INLinks e OUTlinks • So os outlinks sao criados. • Porque as pessoas criam outlinks? • dar autoridade e aprovação as paginas apontadas • E’ uma indicação (latente) de que o apontador confia na pagina apontada.
Google’s PageRank • Sergey Brin and Larry Page • Comecaram em 1995 enquanto estudantes de PhD em Stanford
O que e’ o rank de uma pagina P? • Seja r(P) o rank da pagina P • r(P) ≥ 0 • Ele e’ uma medida da relevância da pagina na WEB • Quando um procedimento de textmining identificar QUAIS os documentos que parecem relevantes para MINHA BUSCA, eles serão retornados numa dada ordem. • Esta ordem e’ aquela determinada pelos rankings r(P)s das paginas que foram encontradas. • Assim, a ordem de apresentação das paginas depende apenas dos valores de r(P), quanto maior r(P) mais a frente na lista.
O que e’ o rank de uma pagina P? • Seja r(P) ≥ 0 o rank da pagina P • Esta medida • Não depende de nenhuma query especifica • não depende do interesse do usuário que vai fazer a busca • Não depende do tipo de assunto pelo qual ele tem ou não tem interesse • e’ um numero absoluto!! • Ele e’ calculado de antemão e guardado numa tabela.
Como os rankings são usados? • Suponha tabela com um ranking r(P) para cada pagina da web • Os rankings r(P)’s somam 100% • A cada consulta especifica: • Encontramos as paginas que parecem relevantes, um subconjunto de todas as paginas • Pegamos os rankings r(P)’s dessas paginas relevantes • Este e’ apenas um subconjunto dos rankings e NÃO SOMAM 100% • Retornamos as paginas relevantes na ordem dos seus r(P)’s
Como obter o rank r(P)? • Seja r(P) o rank da pagina P • Seja B_P o conjunto de paginas que apontam para P • Isto e’, B_P = conjunto dos nos que levam diretamente a P em um único passo • Para cada pagina Q em B_P, calcule seu rank r(Q) • A indicacao de uma pagina que aponta para poucas outras paginas e’ mais relevante do que a indicacao de uma pagina que aponta para milhares de outras
Procedimento recursivo • Calculo-Definicao de r(P) depende do valor de r(Q) das outras paginas vizinhas. • O r(Q) dessas vizinhas depende do rank r(P). • Dilema do ovo e da galinha: começa com valor inicial fictício para r(P) e itere • Suponha que existam n paginas em toda Web • Comece com 1/n • Itere sucessivamente ate convergir
Iteração matricial • Procedimento iterativo em forma matricial • Seja • Procedimento iterativo em forma matricial • Seja • Então
Iteração matricial • A iteração matricial • Fica reduzida a • Isto é, a j-ésima avaliação do vetor de page rankings é a potência j da matriz P aplicada ao vetor inicial (1º.)
Funciona... Mas como e porque? • Processo iterativo converge ou pode prosseguir indefinidamente? • Sob que circunstancias ou propriedades de P vamos ter convergencia? • Vai convergir para algo que faz sentido no contexto de Web retrieval information? • Converge sempre para um único vetor ou pode convergir para mais de um vetor ? • Depende dos valores iniciais r0(Pi)? • Quanto tempo para convergir?
Passeando aleatoriamente na Web P e’ a matriz de transicao de uma cadeia de Markov P = matriz estocastica: Pij ≥ 0 Linhas somam 1 Estados = nos do grafo Em cada instante, pule para nova pagina escolhendo um link ao acaso
Matriz de transicao Pij = Prob(de ir de i para j em um passo) P2 = PP tambem e’ matriz estocastica elementos não-negativos somando 1 nas linhas P2ij = Prob (de ir de i para j em DOIS passos) Idem para Pk
Autovetores e PageRank • Teorema: • Seja P a matriz n x n de transição de uma cadeia de Markov • Suponha que a cadeia e’ aperiodica e irredutivel • Entao existe um único vetor de dimensao n tal que: • t P = t e t (1,...,1) = 1 • Este vetor e’ chamado de distribuição estacionaria. • ESTE VETOR E’ O RANKING DAS PAGINAS WEB!!!!! • Alem disso, limk Pk = (1,...,1) t • Isto implica que limj jt = limj j-1t P = π0t limj Pj = t
Ajustando P • Matriz P pode NÃO SER uma matriz estocastica • Paginas sem OUTlinks: • Documentos pdf • Imagens • Geram linhas com elementos Pij=0, que somam ZERO • Isto e’, substitua a linha nula por uma linha com todos os valores iguais a 1/numero de paginas na web • Assim, se chegar nesta pagina, pula para uma outra pagina escolhida ao acaso na web.
Outro ajuste na matriz • A matriz modificada para superar as paginas sem links e’ a matriz S. • Precisamos de mais uma modificação. • Existem também regiões quase absorventes que dificultam a convergência para uma dist estacionária • São quase-cliques, grupos fechados de páginas que se interapontam mas que possuem poucas ligações com o resto da web.
Teleportation Solução de Brin and Page: Ocasionalmente, com probab (1- α) o surfista da Web escolhe uma das n páginas da web ao acaso para recomeçar. Seja e = (1,...,1) Em termos matriciais: G α S + (1- α) (1/n) e.et α ≈ 0.85 no Google
PageRank • Com estas modificacoes (isto é, com a matriz G), o algoritmo PageRank encontra os rankings: • E’ o único autovetor π pela esquerda da matriz G que possui autovalor 1 • Como encontrar estes rankings na prática, já que G é uma matriz “bilionária”? • Inviável calcular autovetor por métodos tradicionais • Método da potência: • Para QUALQUER vetor inicial, a sequencia π0t Gk converge para vetoro vetor π, • Use π0= 1/n * (1, ..., 1)
Convergência • Rapidez da convergência depende do segundo maior autovalor de G = α (P + (1/n) * a.et) + (1- α) (1/n) e.et • Primeiro (maior) autovalor é 1 (matriz estocástica) • Todos os outros autovalores têm módulo menor que 1 (Teorema de Perron-Frobenius) • Segundo maior autovalor 2 : • Diferença 1 - 2 : spectral gap • quanto menor o spectral gap, mais lenta a convergência • Quanto menor α, mais rápida a convergência mas pior a representação da estrutura da web. • Google PageRank itera entre 50 e 100 vezes para obter convergência
Vetores personalizados • Different teleportation: • Ao invés de usar (1/n) e.et, use e.vt • v é um vetor de probabilidade de dimensão n • e.vt é uma matriz n x n • Modificando • G = α (P + (1/n) * a.et) + (1- α) (1/n) e.et • por • G = α (P + (1/n) * a.et) + (1- α) e.vt • Com probab (1- α), usuário escolhe nova página com probab dada pelo vetor v
Vetores personalizados • Todas as propriedades são preservadas: • Ainda pode usar o método de potência • Taxa de convergência governada por α • Pode usar métodos de multiplicação de matriz esparsa • Armazenagem mínima • Pode fazer método ser dependente da query
Alguns detalhes finais • SIAM meeting in 2002: • Google declarou que atualiza mensalmente os page rankings, tudo de novo (incluindo a criação do index)