Web Ranking Mineração de Dados 202 Luís Rato Universidade de Évora, 202 (C) Vipin Kumar, Parallel Mineração Issues in de Data dados Mining, / Data VECPAR Mining 2002
Rank de páginas web As páginas Web não são igualmente importantes www.ze-ninguem.com versus www.youtube.com links = votes www.youtube.com tem muitos milhares de links www.ze-ninguem.com... tem poucos Todos os links são igualmente importantes? Pergunta recursiva!
Simples formulação recursiva Cada voto de um link é proporcional à importância à mportância da página de origem Se a página P com importância x tem n links de saída, cada link recebe x/n votos A importância da página P é soma dos votos dos links de entrada
Simples Modelo de fluxo Exemplo com 3 sites y = y /2 + a /2 y/2 a = y /2 + m y Yahoo m = a /2 a/2 y/2 Amazon a m a/2 M soft m
Resolução da equações de fluxo 3 equações, 3 incógnitas, sem constantes Não há solução única Todas as soluções são equivalentes (à parte um factor de escala) Restrições adicionais força uma solução única e.g. y+a+m = y = 2/5, a = 2/5, m = /5 Para sistemas de ordem reduzida o método de eliminação de gauss funciona mas não para sistemas de grande dimensão
Abordagem matricial A matriz M tem uma coluna e uma linha por cada página web Se página j tem n links de saída If j!= i, then M ij =/n Else M ij =0 M é uma matriz cujas colunas soma r é o vector com uma entrada por cada pág. web r i é a importância da página i r é o vector do rank r =
Exemplo Página j liga a 3 páginas, incluindo i j i /3 = i M r r
Valores próprios As equações de fluxo podem ser escritas r = Mr Assim o vector do rank é um vector próprio da matriz dos links M É o vector próprio principal, associado ao valor próprio unitário
Exemplo a/2 y Yahoo y/2 y/2 y a m y /2 /2 0 a /2 0 m 0 /2 0 Amazon a m a/2 y = y /2 + a /2 a = y /2 + m m = a /2 M soft m r = Mr y /2 /2 0 y a = /2 0 a m 0 /2 0 m
Método iterativo Método iterativo com N páginas web Inicializar: r 0 = [/N,.,/N] T Iterar: r k+ = Mr k Parar quando r k+ - r k < ε x = i N x i é a norma L (Manhatan) Pode-se usar qq outra norma e.g., Euclideana
Exemplo - iteração Yahoo y a m y /2 /2 0 a /2 0 m 0 /2 0 Amazon M soft y a = m /3 /3 /3 /3 /2 /6 5/2 /3 /4 3/8 /24 /6... 2/5 2/5 /5
Interpretação Random Walk Considerando um utilizador aleatório Em t, o utilizador está na pág P Em t+, segue um link de saída de P aleatoriamente Passa para uma pág. Q com um link de P para Q Repete-se o proesso indefinidamente p(t) é o vector com as probabilidades que utilizador esteja na página i no instante t
Distribuição estacionária Onde está o utilizador em t+? Segue os links aleatoriamente p(t+) = Mp(t) É um processo estocástico de Markov Se o estado é tal que p(t+) = Mp(t) = p(t) p(t) é o estado estacionário O vector dos ranks r satisfaz r = Mr Então o rank r é uma distribuição estacionária de um utilizador aleatório.
Existência e unicidade Sob certas condições a solução estacionária é única e independentemente do vector inicial o resultado converge sempre para a distribuição estacionária.
Spider traps Um grupo de páginas que não tem links do grupo para fora do grupo. Utilizador fica preso Para garantir existência e unicidade não pode haver spider traps
Microsoft fica uma spider trap Yahoo y a m y /2 /2 0 a /2 0 0 m 0 /2 Amazon M soft y a = m /2 3/2 3/4 /2 7/4 5/8 3/8 2... 0 0 3
Teletransporte aleatório A solução do Google para as spider traps a cada passo, há duas opções: Com probabilidade β, segue um link Com probabilidade -β, salta para qq página aleatoriamente Valores típicos para β estão na gama 0.8 a 0.9 Um utilizador preso numa spider trap foge em poucos saltos
Teletransporte aleatório (β = 0.8) 0.2*/3 Yahoo /2 0.8*/2 /2 0.8*/2 0.2*/3 0.2*/3 Amazon M soft y y /2 a /2 m 0 0.8* y /2 /2 0 /2 /2 0 0.8 /2 0 0 + 0.2 0 /2 + 0.2* y /3 /3 /3 /3 /3 /3 /3 /3 /3 /3 /3 /3 y 7/5 7/5 /5 a 7/5 /5 /5 m /5 7/5 3/5
Teletransporte aleat. (β = 0.8) Yahoo /2 /2 0 0.8 /2 0 0 + 0.2 0 /2 /3 /3 /3 /3 /3 /3 /3 /3 /3 Amazon M soft y 7/5 7/5 /5 a 7/5 /5 /5 m /5 7/5 3/5 y a = m.00 0.60.40 0.84 0.60.56 0.776 0.536.688... 7/ 5/ 2/
Rank Construir a matriz A (NxN) A ij = βm ij + (-β)/n Verificar que A é uma matriz de Markov O vector dos ranks r é o vector próprio principal satisfaz r = Ar Equivalente - distribuição estacionária do utilizador aleatório (com teletransporte)
Becos-sem-saída Páginas sem links de saída são becos sem saída Não há site para ir no próximo passo No passo seguinte todas as probabilidades são 0
Microsoft torna-se um beco-sem-saída /2 /2 0 Yahoo 0.8 /2 0 0 + 0.2 0 /2 0 /3 /3 /3 /3 /3 /3 /3 /3 /3 Amazon M soft y 7/5 7/5 /5 a 7/5 /5 /5 m /5 7/5 /5 y a = m 0.6 0.6 0.787 0.547 0.387 0.648 0.430 0.333... 0 0 0 Soma não é!
Becos-sem-saída Teletransporte Seguir links de teletrasporte com probabilidade Ajustar a matriz Cortar(Prune) Preprocessar o grafo eliminando os becos sem saída Calcular o rank em grafos reduzidos Aproximar os valores nos becos-sem-saída propagandoos valores do grafo reduzido
Cálculo rank Factor chave multiplicação matriz-vector r new = Ar old Simples se tivermos muita memória para A, r old, r new Se N = bilião de páginas 4 bytes para cada entrada 2 biliões de entradas para vectores, approx 8GB Matriz A tem N 2 entradas 0 8 entradas!!!... 4 biliões de GB!!!! 4 exa-bytes
Re-escrita da equação r = Ar, onde A ij = βm ij + (-β)/n r i = j N A ij r j r i = j N [βm ij + (-β)/n] r j = β j N M ij r j + (-β)/n j N r j = β j N M ij r j + (-β)/n, dado que r = r = βmr + [(-β)/n] N onde [x] N é um vector de dim N com entradas x
Formulação com matrizes esparsas Re-escrita: r = βmr + [(-β)/n] N [(-β)/n] N é um vector N com entradas (-β)/n M é esparsa! 0 links por nó, aprox 0 N entradas Em cada iteração: r new = βmr old somar constante (-β)/n a cada entrada em r new
Encoding da matriz esparsa Codificam-se as entradas não nulas Espaço proporcional ao num de links e.g. 0N, ou 4*0* bilião = 40GB problema tratável em disco node degree destination nodes 0 2 3 5 2, 5, 7 7, 64, 3, 7, 245 3, 23
Actualização da matriz Inicializar entradas r new a (-β)/n Para cada p (grau n): Ler para memória: p, n, dest,,dest n, r old (p) for j =..n: r new (dest j ) += β*r old (p)/n 0 2 3 4 5 6 r new src degree destination 0 3, 5, 6 4 7, 64, 3, 7 2 2 3, 23 r old 0 2 3 4 5 6
Actualização por blocos Caso o vector r não caiba em memória 0 2 3 r new src degree destination 0 4 0,, 3, 5 2 0, 5 2 2 3, 4 r old 0 2 3 4 5 4 5
Block-Stripe Update algorithm 0 2 3 r new src degree destination 0 4 0, 3 0 2 2 0 4 3 2 2 3 r old 0 2 3 4 5 4 5 0 2 4 3 2 5 5 4
Outro Web search/ranking HITS - Hypertext-Induced Topic Selection Proposto quase ao mesmo tempo que o PageRank (998)
Web search/ranking Documentos em duas classes Authorities - páginas com informação útil Hubs - páginas que ligam a Authorities Authorities (e.g.) - página da UE Hubs (e.g.) - página com lista e links para todas as universidades portuguesas
Web search/ranking Ligações Hubs e Authorities
Web search/ranking Um bom Hub liga a muitas páginas bem classificadas. Uma boa Authority é apontada por muitos Hubs bem classificados. Cada nó tem duas classificação enquanto hub (vector h) enquanto authority (vector a)
Web search/ranking HITS Usa matrizes semelhantes ao page Rank Matriz de transição tem 's se existe ligação (em vez de fracção) Yahoo A = y a m y a 0 m 0 0 Amazon M soft
Web search/ranking HITS Classificação de Hub Proporcional à soma da classificação das Authorities apontadas. h = λaa λ é constante Classificação de Authorities Proporcional à soma da classificação dos Hubs que apontam. a = μa T h μ é constante
Web search/ranking HITS Existência de Solução h = λaa a = μa T h h = λμaa T h a = λμa T A a h e a são os vectores próprios principais de: de A T A e AA T
Web search/ranking HITS Usa matrizes semelhantes ao page Rank Matriz de transição tem 's se existe ligação (em vez de fracção) Hubs Authorities Mais densamente-conectada (core primário) Menos densamente-conectada (core secundário)
Web search/ranking - Trusted Rank Raramente uma página de confiança aponta para uma página SPAM Inicia com um conjunto de páginas de confiança (trusted pages) Propaga a confiança aos links da páginas Repete sucessivamente... Confiança propagada é menor que Confiança é dividida pelos links de saída