(C) Vipin Kumar, Parallel Issues in Data Mining, VECPAR 2002
Web Ranking
Universidade de Évora, 2012 Mineração de dados / Data Mining 1
Mineração de Dados 2012
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 ?
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
Simples Modelo de fluxo
Exemplo com 3 sites
Yahoo M’soft Amazon y a m y/2 y/2 a/2 a/2 my = y /2 + a /2
a = y /2 + m
m = a /2
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 = 1
y = 2/5, a = 2/5, m = 1/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=1/n
Else Mij=0
M é uma matriz cujas colunas soma 1
r é o vector com uma entrada por cada pág.
web
ri é a importância da página i r é o vector do rank
Exemplo
Página j liga a 3 páginas, incluindo i
i j M r r = i 1/3
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
Exemplo
y 1/2 1/2 0 a 1/2 0 1 m 0 1/2 0 y a my = y /2 + a /2
a = y /2 + m
m = a /2
r = Mr y 1/2 1/2 0 y a = 1/2 0 1 a m 0 1/2 0 m Yahoo M’soft Amazon y a m y/2 y/2 a/2 a/2 mMétodo iterativo
Método iterativo
com N páginas web
Inicializar: r
0= [1/N,….,1/N]
T Iterar: r
k+1= Mr
k
Parar quando |r
k+1- r
k|
1
<
ε
|x|
1 = ∑1≤i≤N|xi| é a norma L1 (Manhatan)
Pode-se usar qq outra norma e.g.,
Exemplo - iteração
Yahoo M’soft Amazon y 1/2 1/2 0 a 1/2 0 1 m 0 1/2 0 y a m y a = m 1/3 1/3 1/3 1/3 1/2 1/6 5/12 1/3 1/4 3/8 11/24 1/6 2/5 2/5 1/5 . . .Interpretação “Random Walk”
Considerando um utilizador aleatório
Em t, o utilizador está na pág P
Em t+1, 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+1?
Segue os links aleatoriamente p(t+1) = Mp(t)
É um processo estocástico de Markov
Se o estado é tal que p(t+1) = 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
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
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
Microsoft fica uma spider trap
Yahoo M’soft Amazon y 1/2 1/2 0 a 1/2 0 0 m 0 1/2 1 y a m y a = m 1 1 1 1 1/2 3/2 3/4 1/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 1-β, 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
Teletransporte aleatório (
β = 0.8
)
Yahoo M’soft Amazon 1/2 1/2 0.8*1/2 0.8*1/2 0.2*1/3 0.2*1/3 0.2*1/3 y 1/2 a 1/2 m 0 y 1/2 1/2 0 y 0.8* 1/3 1/3 1/3 y + 0.2* 1/2 1/2 0 1/2 0 0 0 1/2 1 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 y 7/15 7/15 1/15 a 7/15 1/15 1/15 m 1/15 7/15 13/15 0.8 + 0.2Teletransporte aleat. (
β = 0.8
)
Yahoo M’soft Amazon 1/2 1/2 0 1/2 0 0 0 1/2 1 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 y 7/15 7/15 1/15 a 7/15 1/15 1/15 m 1/15 7/15 13/15 0.8 + 0.2 y a = m 1 1 1 1.00 0.60 1.40 0.84 0.60 1.56 0.776 0.536 1.688 7/11 5/11 21/11 . . .Rank
Construir a matriz A (NxN)
A
ij = βMij + (1-β)/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
Microsoft torna-se um
beco-sem-saída
Yahoo M’soft Amazon y a = m 1 1 1 1 0.6 0.6 0.787 0.547 0.387 0.648 0.430 0.333 0 0 0 . . . 1/2 1/2 0 1/2 0 0 0 1/2 0 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 1/3 y 7/15 7/15 1/15 a 7/15 1/15 1/15 m 1/15 7/15 1/15 0.8 + 0.2 Soma não é 1!Becos-sem-saída
Teletransporte
Seguir links de teletrasporte com
probabilidade 1
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
Cálculo rank
Factor chave multiplicação
matriz-vector
rnew = Arold
Simples se tivermos muita memória para
A, r
old, r
new
Se N = 1 bilião de páginas
4 bytes para cada entrada
2 biliões de entradas para vectores, approx
8GB
Matriz A tem N2 entradas
1018 entradas !!!... 4 biliões de GB!!!! 4
Re-escrita da equação
r = Ar, onde
A
ij=
β
M
ij+ (1-
β
)/N
r
i=
∑
1≤j≤NA
ijr
jr
i=
∑
1≤j≤N[
β
M
ij+ (1-
β
)/N] r
j=
β ∑
1≤j≤NM
ijr
j+ (1-
β
)/N
∑
1≤j≤Nr
j=
β ∑
1≤j≤NM
ijr
j+ (1-
β
)/N, dado que |r| = 1
r =
β
Mr + [(1-
β
)/N]
NFormulação com matrizes
esparsas
Re-escrita: r = βMr + [(1-β)/N] N [(1-β)/N]N é um vector N com entradas (1-β)/N
M é esparsa!
10 links por nó, aprox 10 N entradas
Em cada iteração:
rnew = βMrold
Encoding da matriz esparsa
Codificam-se as entradas não nulas
Espaço proporcional ao num de links e.g. 10N, ou 4*10*1 bilião = 40GB problema tratável em disco
13, 23 2 2 17, 64, 113, 117, 245 5 1 1, 5, 7 3 0
Actualização da matriz
13, 23 2 2 17, 64, 113, 117 4 1 1, 5, 6 3 0 src degree destination 0 1 2 3 4 5 6 0 1 2 3 4 5 6 rnew roldInicializar entradas rnew a (1-β)/N
Para cada p (grau n):
Ler para memória: p, n, dest1,…,destn, rold(p)
for j = 1..n:
rnew(dest
Actualização por blocos
3, 4 2 2 0, 5 2 1 0, 1, 3, 5 4 0 src degree destination 0 1 2 3 4 5 0 1 2 3 4 5 rnew roldBlock-Stripe Update algorithm
1 2 2 0 3 1 0, 1 4 0 src degree destination 0 1 2 3 4 5 0 1 2 3 4 5 rnew rold 4 2 2 5 3 1 5 4 0 3 2 2 3 4 0Outro Web search/ranking
•
HITS - Hypertext-Induced Topic
Selection
•
Proposto quase ao mesmo tempo
que o PageRank (1998)
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
Web search/ranking
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)
Web search/ranking – HITS
•
Usa matrizes semelhantes ao page Rank
•
Matriz de transição tem 1's se existe
ligação (em vez de fracção)
Yahoo M’soft Amazon y 1 1 1 a 1 0 1 m 0 1 0 y a m A =
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
Th
Web search/ranking – HITS
•
Existência de Solução
h = λAa a = μAT h h = λμAAT h a = λμATA a• h e a são os vectores próprios principais de:
Web search/ranking – HITS
•
Usa matrizes semelhantes ao page Rank
•
Matriz de transição tem 1's se existe
ligação (em vez de fracção)
Hubs Authorities
Mais densamente-conectada
(core primário)
Menos densamente-conectada