32
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

Link analysis - Análise de Links

Embed Size (px)

DESCRIPTION

Apresentação sobre o Análise de Link abordando especialmente oPage Rank.

Citation preview

Page 2: Link analysis - Análise de Links

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

Page 3: Link analysis - Análise de Links

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 4: Link analysis - Análise de Links

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 5: Link analysis - Análise de Links

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 6: Link analysis - Análise de Links

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 7: Link analysis - Análise de Links

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 8: Link analysis - Análise de Links

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 9: Link analysis - Análise de Links

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

Page 10: Link analysis - Análise de Links

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

Page 11: Link analysis - Análise de Links

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 12: Link analysis - Análise de Links

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 13: Link analysis - Análise de Links

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 14: Link analysis - Análise de Links

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 15: Link analysis - Análise de Links

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 16: Link analysis - Análise de Links

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 17: Link analysis - Análise de Links

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 18: Link analysis - Análise de Links

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 19: Link analysis - Análise de Links

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 20: Link analysis - Análise de Links

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 21: Link analysis - Análise de Links

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

Page 22: Link analysis - Análise de Links

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

Page 23: Link analysis - Análise de Links

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

Page 24: Link analysis - Análise de Links

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

Page 25: Link analysis - Análise de Links

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

Page 26: Link analysis - Análise de Links

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

Page 27: Link analysis - Análise de Links

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

Page 28: Link analysis - Análise de Links

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

Page 29: Link analysis - Análise de Links

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

Page 30: Link analysis - Análise de Links

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

Page 31: Link analysis - Análise de Links

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

Page 32: Link analysis - Análise de Links

Referências

• RAJARAMAN, A. & ULLMAN, J.D., Mining of Massive

Datasets, 2011.

• MARALAMBOS, M. & BAKENKO, D. Algorithms of the

Intelligent Web, Manning, 2009.

33