Upload
andre-luis-schwerz
View
257
Download
3
Embed Size (px)
DESCRIPTION
Apresentação sobre o Análise de Link abordando especialmente oPage Rank.
Citation preview
Link Analysis
By André Luis Schwerz e Rafael Liberato Roberto . Este trabalho foi
licenciado com uma Licença Creative Commons - Atribuição -
NãoComercial 3.0 Não Adaptada.
André Luis Schwerz
Rafael Liberato Roberto
Abril/ 2012
Roteiro
• Introdução
• Page Rank o Definição
o Estrutura da web
o Problemas (dead end, spider traps)
• Topic-Sensitive Page Rank o Definição e exemplo
• Link Spam o Spam Farm
o TrustRank
o Spam Mass
• Hub e Autoridades
2
Introdução
• Primeiros mecanismos de busca
o Índice Invertido
o Localização onde os termos apareciam
• Term Spam
o Tentativa de enganar a busca
o Inserção de termos na página com a mesma cor de
fundo da página
• Combate contra o Term Spam (Inovações Google)
1. Page Rank
2. Considerar também os termos que aparecem perto ou
dentro do link para aquela página
3
Page Rank ™
• Avalia a importância da página
• O que é importância de página?
o Conteúdo
o O que outras páginas dizem sobre ela
• Conceito da Navegação Exploratória (Random
Surfers)
o Simular todas as possibilidades de navegação após
diversas iterações
o Verificar quais páginas foram mais acessadas
• Não há um algoritmo fixo para o Page Rank
DEFINIÇÃO
4
Page Rank ™
• Navegação Exploratória
DEFINIÇÃO
5
A B
C D
Mini Mundo
A B C D
A 0 1 1 0
B 1 0 0 1
C 1 0 0 1
D 1 1 0 0
Matriz de Incidência E
ntr
ad
a
Saída
Page Rank ™
• Navegação Exploratória
DEFINIÇÃO
7
A B
C D
Mini Mundo
A B C D
A 0 1/2 1 0
B 1/3 0 0 1/2
C 1/3 0 0 1/2
D 1/3 1/2 0 0
Matriz de Transição E
ntr
ad
a
Saída
Page Rank ™
• Navegação Exploratória
DEFINIÇÃO
8
A B
C D
A B C D
A 0 1/2 1 0
B 1/3 0 0 1/2
C 1/3 0 0 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
Qual é a probabilidade de se chegar em B após um 1 clique?
A
B
C
D
B
1/4
1/4
1/4
1/4
1/3
0
0
1/2
(1/4 * 1/3) + (1/4 * 1/2) = 5/24
Page Rank ™
• Navegação Exploratória
DEFINIÇÃO
9
A B
C D
A B C D
A 0 1/2 1 0
B 1/3 0 0 1/2
C 1/3 0 0 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
Qual é a probabilidade de se chegar em B após um 1 clique?
A
B
C
D
B
1/4
1/4
1/4
1/4
1/3
0
0
1/2
(1/4 * 1/3) + (1/4 * 1/2) = 5/24
Page Rank ™
• Navegação Exploratória
DEFINIÇÃO
10
A B
C D
A B C D
A 0 1/2 1 0
B 1/3 0 0 1/2
C 1/3 0 0 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
Simulação
9/24
5/24
5/24
5/24
x
0 1/2 1 0
1/3 0 0 1/2
1/3 0 0 1/2
1/3 1/2 0 0
=
(M0,0*V0)+(M0,1*V1)+(M0,2*V2)+(M0,3*V3)
(M1,0*V0)+(M1,1*V1)+(M1,2*V2)+(M1,3*V3)
(M2,0*V0)+(M2,1*V1)+(M2,2*V2)+(M2,3*V3)
(M3,0*V0)+(M3,1*V1)+(M3,2*V2)+(M3,3*V3)
1/4
1/4
1/4
1/4
𝒗′ = 𝑴𝒗 𝑴 𝒗
M
1/4
1/4
1/4
1/4
Page Rank ™
• Navegação Exploratória
DEFINIÇÃO
11
A B
C D
A B C D
A 0 1/2 1 0
B 1/3 0 0 1/2
C 1/3 0 0 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
Simulação
9/24
5/24
5/24
5/24
x M=
15/48
11/48
11/48
11/48
11/32
7/32
7/32
7/32
3/9
2/9
2/9
2/9
...
0 1 2 3 Iteração
Page Rank
x M= x M= x M=
M
1/4
1/4
1/4
1/4
Page Rank ™
• Navegação Exploratória
o Processo de Markov
o Quantas iterações?
• Até que a diferença entre um vetor para o outro seja pequena suficiente baseado em um coeficiente
• Na prática são necessárias de 50 a 75 iterações
DEFINIÇÃO
12
9/24
5/24
5/24
5/24
x M x M
15/48
11/48
11/48
11/48
x M
11/32
7/32
7/32
7/32
3/9
2/9
2/9
2/9
... x M
0 1 2 3 Iteração
Page Rank
Page Rank ™
13
ESTRUTURA DA WEB
Componente Fortemente Conectado
Componente de Entrada
Componente de Saída
Tendrils de Saída
Tendrils de Entrada
Tubos
Componentes desconectados
Page Rank ™
• Violação das premissas do processo de Markov
o Componente de saída e Tendrils de saída: nunca saem
o Nenhuma página do CFC ou do Componente de
entrada terminará com probabilidade (importância)
14
ESTRUTURA DA WEB
Componente Fortemente Conectado
Componente de Entrada
Componente de Saída
Tendrils de Saída
Tendrils de Entrada
Tubos
Componentes desconectados
Page Rank ™
• Dois tipos reais de problemas o Dead End
o Spider Trap
• Soluções o Eliminar nós da morte
o Taxação (Taxation)
PROBLEMAS
15
Componente Fortemente Conectado
Componente de Entrada
Componente de Saída
Tendrils de Saída
Tendrils de Entrada
Tubos
Componentes desconectados
Page Rank ™
DEAD END
16
A B
C D
A B C D E
A 0 1/2 0 0 0
B 1/3 0 0 1/2 0
C 1/3 0 0 1/2 0
D 1/3 1/2 0 0 0
E 0 0 1 0 0
En
tra
da
Saída
1/4
1/4
1/4
1/4
3/24
5/24
5/24
5/24
x M x M
5/48
7/48
7/48
7/48
x M
21/32
31/32
31/32
31/32
0
0
0
0
... x M
Page Rank
E
Page Rank ™
• Eliminando nós da morte
DEAD END
17
A B
D
A B D
A 0 1/2 0
B 1/2 0 1
D 1/2 1/2 0
En
tra
da
Saída
1/3
1/3
1/3
1/6
3/6
2/6 x M x M
3/12
5/12
4/12 x M
5/24
11/24
8/24
2/9
4/9
3/9 ... x M
Page Rank
A B
C D
E
Page Rank ™
• Eliminando nós da morte
DEAD END
18
A B
D
A B D
A 0 1/2 0
B 1/2 0 1
D 1/2 1/2 0
En
tra
da
Saída
1
3
A B
C D
E
C 2
9
2/9
4/9
3/9
Page Rank
* + 1
2
3
9 * =
13
54
E 1 * 13
54 =
13
54
Page Rank ™
SPIDER TRAPS
19
A B
C D
1/4
1/4
1/4
1/4
3/24
5/24
11/24
5/24
x M x M
5/48
7/48
29/48
7/48
x M
21/32
31/32
205/288
31/32
0
0
1
0
... x M
Page Rank
A B C D
A 0 1/2 0 0
B 1/3 0 0 1/2
C 1/3 0 1 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
Quando a navegação entra em C não sai mais
𝒗′ = 𝑴𝒗
Page Rank ™
• Taxação (Taxation)
SPIDER TRAPS
20
𝑣′ =
Considerar uma probabilidade de teleporting Ao invés de clicar em um link, o usuário pode acessar outra página aleatoriamente pela URL.
Teleporting
Navegação aleatória
+ teleporting
𝜷 ∗ 𝑣′ = Navegação aleatória
+ teleporting 𝟏 − 𝜷 ∗ 𝜷 = 0.8, 0.9
𝜷 ∗ 𝑣′ = Mv + 𝟏 − 𝜷 ∗ 𝒆/𝒏 𝒆 =
1
1
1
1
Page Rank ™
• Taxação (Taxation)
SPIDER TRAPS
21
A B
C D
A B C D
A 0 1/2 0 0
B 1/3 0 0 1/2
C 1/3 0 1 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
𝑣′ = 𝜷𝑴𝑣 + 𝟏 − 𝜷 𝒆/𝒏
0 2/5 0 0
4/15 0 0 2/5
4/15 0 4/5 2/5
4/15 2/5 0 0
𝑣′ = ∗ 𝑣 +
1/20
1/20
1/20
1/20
𝑣′ = 𝟎. 𝟖𝑴𝑣 + 𝟎. 𝟐𝒆/𝒏
Page Rank ™
• Taxação (Taxation)
SPIDER TRAPS
22
A B
C D
A B C D
A 0 1/2 0 0
B 1/3 0 0 1/2
C 1/3 0 1 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
1/4
1/4
1/4
1/4
9/60
13/60
25/60
13/60
x M x M
41/300
53/300
153/300
53/300
x M ... x M
Page Rank
543/4500
707/4500
2543/4500
707/4500
15/148
19/148
95/148
19/148
Topic-Sensitive Page Rank
• Modo em que páginas de um determinado assunto
ganham preferência na navegação exploratória
• O termo JAGUAR pode ser
o Animal
o Automóvel
o MAC O.S.
o Videogame
• Abordagem
o Identificar assuntos de preferência do usuário
o Identificar assuntos de uma página
23
Topic-Sensitive Page Rank
• Como identificar páginas de um determinado
assunto
• Open Directory (DMOZ)
• Como identificar assuntos de interesse do usuário?
1. Intervenção explícita
2. Inferir baseados no histórico de busca
3. Inferir baseado em informações sobre o usuário
24
Topic-Sensitive Page Rank
25
A B
C D
A B C D
A 0 1/2 1 0
B 1/3 0 0 1/2
C 1/3 0 0 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
M
𝑣′ = 𝜷𝑴𝑣 + 𝟏 − 𝜷 𝒆𝒔/|𝑺|
0 2/5 4/5 0
4/15 0 0 2/5
4/15 0 0 2/5
4/15 2/5 0 0
𝑣′ = ∗ 𝑣 +
0
1/10
0
1/10
𝑣′ = 𝟎. 𝟖𝑴𝑣 + 𝟎. 𝟐𝒆𝒔/|𝑺|
NAVEGAÇÃO INFLUENCIADA
Topic-Sensitive Page Rank
26
A B
C D
A B C D
A 0 1/2 1 0
B 1/3 0 0 1/2
C 1/3 0 0 1/2
D 1/3 1/2 0 0
En
tra
da
Saída
M
0/2
1/2
0/2
1/2
2/10
3/10
2/10
3/10
x M x M
42/150
41/150
26/150
41/150
x M ... x M
Page Rank
62/250
71/250
46/250
71/250
54/210
59/210
38/210
59/210
NAVEGAÇÃO INFLUENCIADA
Link Spam
• Técnica para aumentar artificialmente o Page Rank
de uma página
27
Páginas Inacessíveis
Páginas Acessíveis Spam Farm
Alvo Páginas de apoio
Link Spam
• É um Topic-Sensitive Page Rank com dois tópicos
o Confiáveis
o Não confiáveis
• É necessário definir o conjunto de teleport
o Intervenção humana
o Controle baseado no domínio
28
TRUST RANK
Link Spam
• Spam Mass = 𝒓−𝒕
𝒓
• Quanto maior o Spam Mass maior a probabilidade
da página ser spam
29
SPAM MASS
Node Page Rank Trust Rank Spam Mass
A 3/9 54/210 0.229
B 2/9 59/210 -0.264
C 2/9 38/210 0.186
D 2/9 59/210 -0.264
Hub e Autoridades
• HITS (Hyperlink Induced Topic Search)
• Autoridades
o Fornecem informações sobre um assunto
• Hubs
o Fornecem informações de onde encontrar sobre um
assunto
30
A H
Atividade
• Dado o dataset (2 arquivos)
1. Arquivo com informações sobre os nós, representado por um List<No>
2. Arquivo com a matriz de adjacência, representado por
uma matriz de double
• Desenvolver o método que calcula o Page Rank de todas páginas
31
1/4
1/4
1/4
1/4
0 1/2 1 0
1/3 0 0 1/2
1/3 0 0 1/2
1/3 1/2 0 0
9/24
5/24
5/24
5/24
x ...
matrix
=
vector
x =
15/48
11/48
11/48
11/48
0 1/2 1 0
1/3 0 0 1/2
1/3 0 0 1/2
1/3 1/2 0 0
Atividade
- id: int
- url: String
- title: String
- inDegree: int
- outDegree: int
Node
- BETA: Double
- erro: Double
- nodes: List<Node>
- matrix: Double[ ][ ]
- vector: Double[ ]
- results: List<ResultSearch>
MiniMundo
+ MiniMundo()
+ getVector(): Double[ ]
+ getNodes(): List<Node>
+ getMatrix(): Double[ ][ ]
+ calcularPageRank(): void
+ calcularErro(v1:Double[], v2:Double[]):Double
+ criarIndice(): void
+ buscar(query:String):void
- no: Node
- score: Double
- pageRank: Double
- rank: Double
ResultSearch
+ sort(l: List<ResultSearch>):void
Referências
• RAJARAMAN, A. & ULLMAN, J.D., Mining of Massive
Datasets, 2011.
• MARALAMBOS, M. & BAKENKO, D. Algorithms of the
Intelligent Web, Manning, 2009.
33