90
Minera¸c˜ ao de grafos e redes sociais 1 de Dezembro de 2015

Mineração de grafos e redes sociais

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Mineração de grafos e redes sociais

Mineracao de grafos e redes sociais

1 de Dezembro de 2015

Page 2: Mineração de grafos e redes sociais

Conceitos basicos sobre grafos

I Vertices, Arestas, Grafo, Dıgrafos

I Vertices com dados, arestas ponderadas

I Algoritmos para encontrar menor caminho

I Caminhos em largura e em profundidade

I Estruturas de dados: listas de arestas, matriz de adjacencias,listas de adjacencias

I Exemplos: WWW, wikis, tweets, media social, redessemanticas, interacoes entre proteınas, redes de regulacao degenes, rede de citacao em literatura cientıfica

Page 3: Mineração de grafos e redes sociais

Mineracao de grandes grafosI Grafos de redes sociais: alta densidade localI Comunidades e grupos: indivıduos pertencem a varias

comunidadesI Betweenness (centralidade) de arestas: fracao de menores

caminhos que passam pela aresta. Comunidades sao isoladaspor arestas de baixa centralidade

I Algoritmo de Girvan-Newman: calculo eficiente debetweenness

I Comunidades e Grafos BipartidosI Particionamento de grafosI Cortes normalizadosI Matriz de adjacencia, de grau e laplacianaI Metodos espectrais para particionamento de grafosI SimrankI Triangulos em redes sociaisI Encontrando triangulos com MapReduceI Vizinhancas e Fechos Transitivos

Page 4: Mineração de grafos e redes sociais

GrafoUm conjunto de vertices conectados em pares por arestas.

Porque estudar grafos?

I Muitas aplicacoes

I Abstracao util e interessante

I Muitos algoritmos para processar grafos existentes

I Campo de conhecimento em constante evolucao

2/1

Page 5: Mineração de grafos e redes sociais

Transporte publico

3/1

Page 6: Mineração de grafos e redes sociais

Grafo da interacao entre proteınas humanas

I Network graph of the union of all CCSB-HI and LCIinteractins. Towards a proteome-scale map of the humanprotein-protein interaction network. Rual et al., Nature 2005.

4/1

Page 7: Mineração de grafos e redes sociais

Grafo da interacao de proteınas humanas com doencas

I Interaction network of disease-associated CCSB-HI1proteins.Towards a proteome-scale map of the humanprotein-protein interaction network. Rual et al., Nature 2005.

5/1

Page 8: Mineração de grafos e redes sociais

Jogos

1

2

3

6

4

5

7

20

13

21

14

15

8

9

10

1112

16

1724

18

19

22

23

30

26

27

28

25

31

32

29

34

33

6/1

Page 9: Mineração de grafos e redes sociais

Graph structure in the web, Broder et al. (2000)

7/1

Page 10: Mineração de grafos e redes sociais

Figura: Peter Bearman, James Moody, and Katherine Stovel. Chains ofaffection: The structure of adolescent romantic and sexual networks.American Journal of Sociology, 110(1): 44-99, 2004.

8/1

Page 11: Mineração de grafos e redes sociais

Fig. 1.—Thenetwork structureof four models of infection

Figura: Peter Bearman, James Moody, and Katherine Stovel. Chains ofaffection: The structure of adolescent romantic and sexual networks.American Journal of Sociology, 110(1): 44-99, 2004.

9/1

Page 12: Mineração de grafos e redes sociais

Mapa da Internet

10/1

Page 13: Mineração de grafos e redes sociais

Rede eletrica

Figure 3. Reconstructed outages of 1996 WSCC blackout.

Kim and Obah: Vulnerability Assessment of Power Grid Using Topological Index

11/1

Page 14: Mineração de grafos e redes sociais

Grafo de terroristas

12/1

Page 15: Mineração de grafos e redes sociais

I http://thinkprogress.org/world/2014/06/12/

3447800/iraq-syria-chart/

13/1

Page 16: Mineração de grafos e redes sociais

Outras aplicacoes de grafos

grafo vertice arestacomunicacoes telefone, computadores fibra otica

circuito porta, registrador, processador fiofinancas acoes, cotacoes transacoes

transporte cruzamento, aeroporto rodovia, rota aerainternet rede classe C conexao

jogos posicao no tabuleiro movimento de pecarede social pessoa, ator amizade, alencorede neural neuronio sinapse

rede proteica proteına interacao de proteınascomposto quımico molecula ligacao

14/1

Page 17: Mineração de grafos e redes sociais

Representacoes de grafos

Desenho de um grafo

Prove uma ideia sobre a estrutura do grafo.

0

6 1 25

3

4

7

8

9

10 11 12

0

6

1

2

5

3

4

78

910

11

12

Grafos podem ter multiplas representacoes.

28/1

Page 18: Mineração de grafos e redes sociais

Representacao de grafos

Representacao de vertices

I Usamos numeros inteiros entre 0 e V − 1, onde V e o numerode vertices

I Podemos usar tabela de sımbolos para converter nomes eminteiros

Joao

Maria Jose

Clara Ana

Manuel

1

2 3

4 5

6

29/1

Page 19: Mineração de grafos e redes sociais

API de Grafos

public class GrafoGrafo(int V) criar grafo vazio com V

verticesGrafo(InputStream in) criar grafo a partir de

entradasvoid novaAresta(int v, int w) criar aresta

Iterable<Integer> adj(int v) vertices adjacentes a vint V() numero de verticesint E() numero de arestas

Exemplo de uso

1 p u b l i c s t a t i c v o i d main ( S t r i n g a r g s [ ] ) {2 Gra fo G = new Grafo ( System . i n ) ;34 f o r ( i n t v = 0 ; v < G . V( ) ; v++)5 f o r ( i n t w : G . a d j ( v ) )6 System . out . p r i n t l n ( v+”−−”+w) ;7 }

30/1

Page 20: Mineração de grafos e redes sociais

Implementacao: representacao por lista de arestas

Manter lista de arestas (lista ligada ou vetor)

0

5

1

4

36

78

v w

0 54 30 16 45 47 85 3

33/1

Page 21: Mineração de grafos e redes sociais

Implementacao: representacao por matriz de adjacencias

Manter matriz adj[][] com V linhas e V colunas. Se existe aaresta v-w, entao a posicao adj[v][w] == adj[w][v] == 1,senao e 0

0

1

2

3

0 1 2 3

0 1 1 0 0

1 1 0 1 1

2 0 1 0 0

3 0 1 0 0

34/1

Page 22: Mineração de grafos e redes sociais

Implementacao: representacao por listas de adjacencias

Manter um vetor de listas indexado por vertice.

1

2

3

1 2

1 2 3

2

1

2

3

35/1

Page 23: Mineração de grafos e redes sociais

1 p u b l i c c l a s s Gra fo {2 i n t V ;3 L i s t a <I n t e g e r > [ ] a d j ; // l i s t a s de a d j a c e n c i a s45 p u b l i c Gra fo ( i n t V) {6 t h i s . V = V ;7 a d j = ( L i s t a <I n t e g e r > [ ] ) new L i s t a [ V ] ;8 f o r ( i n t v = 0 ; v < V ; v++)9 a d j [ v ] = new L i s t a <I n t e g e r >() ;

10 }1112 p u b l i c v o i d n o v a A r e s t a ( i n t v , i n t w) {13 a d j [ v ] . add (w) ;14 a d j [w ] . add ( v ) ;15 }1617 p u b l i c I t e r a b l e <I n t e g e r > a d j ( i n t v ) {18 r e t u r n a d j [ v ] ;19 }20 }

36/1

Page 24: Mineração de grafos e redes sociais

Representacao de grafos

Na pratica: usar listas de adjacencias

I Algoritmo em geral operam nos vertices

I Grafos reais tendem a ser esparsos (numero grande devertices, numero pequeno de arestas por vertice)

representacao espaco criar aresta existe v-w? iterar adj(v)lista de arestas E 1 E E

matriz de adjacencias V 2 1 1 Vlistas de adjacencias E+V 1 grau(v) grau(v)

E = numero de arestasV = numero de vertices

37/1

Page 25: Mineração de grafos e redes sociais

Grafo direcionado ou Dıgrafo

Conjunto de vertices conectados por arestas direcionadas.

1

2 3

4 5

Em dıgrafo existe grau de saıda e de grau de entrada: grau desaıda de 5 e 2 e grau de entrada de 5 e 1.

2/1

Page 26: Mineração de grafos e redes sociais

Aplicacoes de dıgrafos

dıgrafo vertice aresta direcionadatransportes cruzamentos ruas de mao-unica

web paginas web linkscadeia alimentar especies predador-presaescalonamento tarefa restricao de precedencia

financas banco transacaocelulares pessoa ligacao

DST pessoa infeccaojogos posicao tabuleiro movimento

literatura cientıfica artigo cientıfico citacaocoletor de lixo objeto ponteiro

3/1

Page 27: Mineração de grafos e redes sociais

Aplicacoes - Menor caminho

I Roteamento em mapas (GPS)

I Gerencia de projetos - caminho crıtico

I Redimensionamento de imagens

I Planejamento de trafego urbano

I Protocolos de rede (OSPF, BGP)

I Comercio de moedas estrangeiras

74/1

Page 28: Mineração de grafos e redes sociais

Modeling Users’ Activity on Twitter Networks: Validationof Dunbar’s Number (doi: 10.1371/journal.pone.0022656)

Figura: The data shows that this quantity reaches a maximum between100 and 200 friends, in agreement with Dunbar’s prediction (see figure2A).

Page 29: Mineração de grafos e redes sociais

Atributos Topologicos I

I Criacao de grafos a partir de matrizes de dadosI wij = sim(xi , xj), se nao ponderado: A(i , j) = 1 se wij ≥ L

I Atributos topologicosI Grau di =

∑j A(i , j)

I Grau medio µd =∑

i din

I Tamanho medio de caminho µL =∑

i

∑j>i d(vi ,vj )

(n2)

I Excentricidade e(vi ) = maxj{d(vi , vj)}I Raio r(G ) = mini{e(vi )}, Diametro d(G ) = maxi{e(vi )}I Coeficiente de agrupamento

C (vi ) = |subgrafo dos vizinhos de i|num. maximo possıvel de arestas na vizinhanca

I Eficiencia ef (G ) = 2n(n−1)

∑i

∑j>i

1d(vi ,vj

Page 30: Mineração de grafos e redes sociais

Atributos Topologicos II

I Analise de centralidades (closeness, betweenness)I Closeness c(vi ) = 1∑

i d(vi ,vj )

I Betweenness

I nik(vi ) = “numero de menores caminhos entre vj e vk”

I γjk(vi ) = nik (vi )njk

I c(vi ) =∑

j 6=i

∑k 6=i,k>j γjk

I Centralidades web (PageRank e HITS)

Page 31: Mineração de grafos e redes sociais

A web: um grafo direcionado

pag. d1 texto ancora pag. d2hyperlink

◮ Premissa 1: Um hyperlink e um sinal de qualidade.◮ O hyperlink d1 → d2 indica que o autor de d1 considera d2

como sendo boa qualidade e relevante.

◮ Premissa 2: O texto ancora descreve o conteudo d2.◮ Consideramos o texto ancora sendo o texto em volta do

hyperlink.◮ Exemplo: “Encontre carros baratos <a

href=http://...>aqui</a>.”◮ texto ancora: “Encontre carros baratos aqui”◮ Usando a definicao formal: apenas texto visıvel em um

hyperlink: aqui

Page 32: Mineração de grafos e redes sociais

Modelo do PageRank: Caminhada aleatoria

◮ Imagine um navegador fazendo caminhada aleatoria na web◮ Iniciar em uma pagina aleatoria◮ A cada passo, sair da pagina atual e ir para um dos links

daquela pagina, com chances iguais

◮ Depois de muita caminhada, cada pagina tem uma taxa devisita a longo prazo.

◮ Essa taxa de visita de longo prazo e o PageRank da pagina.

◮ PageRank = taxa de visita a longo prazo = probabilidade deestado estavel

Page 33: Mineração de grafos e redes sociais

Formalizacao caminhada aleatoria: Cadeia de Markov

◮ A Cadeia de Markov consiste de N estados, mais uma matrizde probabilidade de transicao P com N × N valores.

◮ estado = pagina

◮ A cada passo, estamos em uma das paginas

◮ Para 1 ≤ i , j ≤ N, o valor da matriz Pij e a probabilidade de jser a proxima pagina, dado que estamos atualmente na paginai .

◮ Propriedade:∑N

j=1 Pij = 1

di djPij

Page 34: Mineração de grafos e redes sociais

Exemplo grafo web

d0

d2 d1

d5

d3 d6

d4

carro benz

ford

gm

honda

jaguar

jag

gato

leopardo

tigre

jaguar

leao

cheeta

velocidade

PageRank

d0 0.05d1 0.04d2 0.11d3 0.25d4 0.21d5 0.04d6 0.31

PageRank(d2)<PageRank(d6):porque?

a h

d0 0.10 0.03d1 0.01 0.04d2 0.12 0.33d3 0.47 0.18

Page 35: Mineração de grafos e redes sociais

Exemplo: matriz de links

d0 d1 d2 d3 d4 d5 d6d0 0 0 1 0 0 0 0d1 0 1 1 0 0 0 0d2 1 0 1 1 0 0 0d3 0 0 0 1 1 0 0d4 0 0 0 0 0 0 1d5 0 0 0 0 0 1 1d6 0 0 0 1 1 0 1

Page 36: Mineração de grafos e redes sociais

Exemplo: matriz de probabilidades de transicao P

d0 d1 d2 d3 d4 d5 d6d0 0.00 0.00 1.00 0.00 0.00 0.00 0.00d1 0.00 0.50 0.50 0.00 0.00 0.00 0.00d2 0.33 0.00 0.33 0.33 0.00 0.00 0.00d3 0.00 0.00 0.00 0.50 0.50 0.00 0.00d4 0.00 0.00 0.00 0.00 0.00 0.00 1.00d5 0.00 0.00 0.00 0.00 0.00 0.50 0.50d6 0.00 0.00 0.00 0.33 0.33 0.00 0.33

Page 37: Mineração de grafos e redes sociais

Taxa de visita a longo prazo

◮ PageRank = taxa de visita a longo prazo◮ Taxa de visita a longo prazo da pagina d e a probabilidade que

um navegador aleatorio tem de estar na pagina d em um dadomomento

◮ Quais sao as propriedades que um grafo da web deve ter paraa taxa de visita a longo prazo ser bem definida?

◮ O grafo deve corresponder a uma cadeia de Markov ergodica.

◮ Caso especial: o grafo da web nao deve ter becos sem saıda

Page 38: Mineração de grafos e redes sociais

Becos sem saıda

??

◮ A web e cheia de becos sem saıda

◮ Caminhada aleatoria pode ficar travada em um beco semsaıda

◮ Se ha becos sem saıda, taxas de visita a longo prazo nao saobem definidas

Page 39: Mineração de grafos e redes sociais

teletransporte – saıda do caminho sem saıda

◮ Em um beco sem saıda, pular para uma pagina web aleatoriacom prob. 1/N.

◮ Em um caminho normal, com probabilidade 10%, pular parauma pagina web aleatoria (com probabilidade de 0.1/N paracada).

◮ Com probabilidade (90%), ir para um link aleatorio◮ Exemplo: se uma pagina tem 4 links de saıda: escolher um

com probabilidade (1-0.10)/4=0.225

◮ 10% e um parametro, a taxa de teletransporte.

◮ Nota: “sair” de um beco sem saıda e independente da taxa deteletransporte

Page 40: Mineração de grafos e redes sociais

Resultado de teletransporte

◮ Com teletransporte, nao ficamos presos em um beco semsaıda.

◮ Mas mesmo sem becos sem saıda, um grafo pode nao ter taxade visita a longo prazo bem definida.

◮ E necessario que a cadeia de Markov seja ergodica.

Page 41: Mineração de grafos e redes sociais

Cadeias de Markov Ergodicas

◮ A cadeia de Markov e ergodica se e somente se for irredutıvele aperiodica.

◮ Irredutibilidade. Ideia: ha um caminho entre quaisquer duaspaginas

◮ Aperiodicidade. Ideia: Paginas nao podem ser separadas deforma que o navegador aleatorio seja obrigado a visita-las emuma ordem especıfica.

◮ Uma cadeia de Markov nao-ergodica:

1.0

1.0

Page 42: Mineração de grafos e redes sociais

Cadeias de Markov Ergodicas

◮ Teorema: para uma cadeia de Markov ergodica, existe umaunica taxa de visita a longo prazo para cada estado

◮ Essa e a distribuicao de probabilidades em estado estavel.

◮ Em um longo perıodo de tempo, visita-se cada estado naproporcao dessa taxa

◮ Nao importa a pagina inicial

◮ teletransporte faz o grafo da web ser ergodico.

◮ ⇒ Grafo-Web+teletransporte tem uma distribuicao deprobabilidades de estado estavel.

◮ ⇒ Cada pagina no grafo-web+teletransporte tem um valor dePageRank.

Page 43: Mineração de grafos e redes sociais

Onde estamos

◮ Sabemos como ter certeza que temos um PageRank para cadapagina

◮ Como calcular?

Page 44: Mineração de grafos e redes sociais

Formalizacao de “visitas”: vetor de probabilidades

◮ Um vetor de probabilidades (vetor-linha) ~x = (x1, . . . , xN) dizonde o navegador aleatorio esta em qualquer momento

◮ Exemplo:( 0 0 0 . . . 1 . . . 0 0 0 )

1 2 3 . . . i . . . N-2 N-1 N

◮ Mais geral: caminhada aleatoria esta na pagina i comprobabilidade xi .

◮ Exemplo:( 0.05 0.01 0.0 . . . 0.2 . . . 0.01 0.05 0.03 )

1 2 3 . . . i . . . N-2 N-1 N

◮∑

xi = 1

Page 45: Mineração de grafos e redes sociais

Mudanca no vetor de probabilidades

◮ Se o vetor de probabilidades e ~x = (x1, . . . , xN) neste passo,como sera no proximo?

◮ Lembre-se que a linha i da matriz de transicao deprobabilidades P nos diz para onde iremos a partir do estado i .

◮ Entao a partir de ~x , o proximo estado e distribuıdo com asprobabilidades em ~xP .

Page 46: Mineração de grafos e redes sociais

Notacao de estado estavel

◮ O estado estavel na notacao de vetor e simplesmente umvetor ~π = (π1, π2, . . . , πN) de probabilidades

◮ Usamos ~π para diferenciar da notacao de vetor deprobabilidades ~x .

◮ πi e a taxa de visita a longo prazo (ou PageRank) da pagina i .

◮ Podemos considerar o PageRank como um grande vetor – umvalor por pagina

Page 47: Mineração de grafos e redes sociais

Exemplo: distribuicao de estado-estavel

◮ O que e o PageRank / estado-estavel nesse exemplo?

d1 d2

0.75

0.25

0.25 0.75

Page 48: Mineração de grafos e redes sociais

Exemplo: estado estavel

x1 x2Pt(d1) Pt(d2)

P11 = 0.25 P12 = 0.75P21 = 0.25 P22 = 0.75

t0 0.25 0.75 0.25 0.75t1 0.25 0.75 (convergencia)

Vetor PageRank = ~π = (π1, π2) = (0.25, 0.75)

Pt(d1) = Pt−1(d1) ∗ P11 + Pt−1(d2) ∗ P21

Pt(d2) = Pt−1(d1) ∗ P12 + Pt−1(d2) ∗ P22

Page 49: Mineração de grafos e redes sociais

Como obter o vetor de estado estavel?

◮ Como calcular PageRank?

◮ Vetor PageRank: ~π = (π1, π2, . . . , πN) , . . .

◮ . . . se a distribuicao neste passo e ~x , entao a distribuicao noproximo passo e ~xP .

◮ Mas ~π e o estado estavel!

◮ Entao: ~π = ~πP

◮ Resolvendo essa equacao nos da ~π.

◮ ~π e o auto-vetor principal esquerdo para P . . .

◮ . . . isto e, ~π e o auto-vetor esquerdo com maior auto-valor

◮ Todas as matrizes de probabilidades de transicao tem o maiorauto-valor igual a 1.

Page 50: Mineração de grafos e redes sociais

Um modo de calcular o PageRank ~π

◮ Iniciar com qualquer distribuicao ~x , e.g., distribuicao uniforme

◮ Depois de um passo, estamos em ~xP .

◮ Depois de dois passos, estamos em ~xP2.

◮ Depois de k passos, estamos em ~xPk .

◮ Algoritmo: multiplicar ~x por potencias de P ate convergencia

◮ Metodo da potencia

◮ Eventualmente chegamos no estado estavel ~π.

Page 51: Mineração de grafos e redes sociais

Exemplo: metodo da potencia

◮ O que e o PageRank / estado estavel neste exemplo?

d1 d2

0.9

0.3

0.1 0.7

◮ A distribuicao de estado estavel (= os PageRanks) nesseexemplo sao 0.25 para d1 e 0.75 para d2.

Page 52: Mineração de grafos e redes sociais

Calculando PageRank: metodo das potencias

x1 x2Pt(d1) Pt(d2)

P11 = 0.1 P12 = 0.9P21 = 0.3 P22 = 0.7

t0 0 1 0.3 0.7 = ~xPt1 0.3 0.7 0.24 0.76 = ~xP2

t2 0.24 0.76 0.252 0.748 = ~xP3

t3 0.252 0.748 0.2496 0.7504 = ~xP4

. . . . . .t∞ 0.25 0.75 0.25 0.75 = ~xP∞

Vetor PageRank = ~π = (π1, π2) = (0.25, 0.75)

Pt(d1) = Pt−1(d1) ∗ P11 + Pt−1(d2) ∗ P21

Pt(d2) = Pt−1(d1) ∗ P12 + Pt−1(d2) ∗ P22

Page 53: Mineração de grafos e redes sociais

Exemplo: metodo da potencia

◮ O que e o PageRank / estado estavel neste exemplo?

d1 d2

0.9

0.3

0.1 0.7

◮ A distribuicao de estado estavel (= os PageRanks) nesseexemplo sao 0.25 para d1 e 0.75 para d2.

Page 54: Mineração de grafos e redes sociais

Exercıcio: calcular o PageRank usando o metodo daspotencias

d1 d2

0.3

0.2

0.7 0.8

Page 55: Mineração de grafos e redes sociais

Solucao

x1 x2Pt(d1) Pt(d2)

P11 = 0.7 P12 = 0.3P21 = 0.2 P22 = 0.8

t0 0 1 0.2 0.8t1 0.2 0.8 0.3 0.7t2 0.3 0.7 0.35 0.65t3 0.35 0.65 0.375 0.625

. . .t∞ 0.4 0.6 0.4 0.6

Vetor PageRank = ~π = (π1, π2) = (0.4, 0.6)

Pt(d1) = Pt−1(d1) ∗ P11 + Pt−1(d2) ∗ P21

Pt(d2) = Pt−1(d1) ∗ P12 + Pt−1(d2) ∗ P22

Page 56: Mineração de grafos e redes sociais

PageRank: resumo

◮ Preprocessamento◮ Dado um grafo de links, construir matriz P◮ Aplicar teletransporte◮ A partir da matriz modificada, calcular ~π◮ ~πi e o PageRank da pagina i .

◮ Processamento da consulta◮ Recuperar paginas satisfazendo a consulta◮ Rankear usando o PageRank◮ Retornar lista rerankeada para o usuario

Page 57: Mineração de grafos e redes sociais

Problemas com PageRank

◮ Usuarios reais nao sao aleatorios◮ Exemplos de navegacao nao-aleatoria: botao voltar, favoritos,

diretorios – e buscadores◮ → Modelo de Markov nao e um bom modelo de navegacao na

web◮ Mas e bom suficiente para nossos interesses

◮ Ranking PageRank (como descrito anteriormente) podeproduzir resultados ruins para muitas paginas

◮ Considere a consulta [servico vıdeo]◮ A home page Yahoo (i) tem PageRank alto e (ii) contem

ambos vıdeo e servico.◮ Se rankeamos os resultados Booleanos de acordo com o

PageRank, entao o Yahoo seria o melhor ranking◮ Nao desejavel

◮ Na pratica: rankear de acordo com a combinacao ponderadada comparacao do texto do documento, do texto ancora, doPageRank e outros fatores

Page 58: Mineração de grafos e redes sociais

Exemplo grafo web

d0

d2 d1

d5

d3 d6

d4

carro benz

ford

gm

honda

jaguar

jag

gato

leopardo

tigre

jaguar

leao

cheeta

velocidade

PageRank

d0 0.05d1 0.04d2 0.11d3 0.25d4 0.21d5 0.04d6 0.31

PageRank(d2)<PageRank(d6):porque?

a h

d0 0.10 0.03d1 0.01 0.04d2 0.12 0.33d3 0.47 0.18

Page 59: Mineração de grafos e redes sociais

Matriz de probabilidades de transicao

d0 d1 d2 d3 d4 d5 d6d0 0.00 0.00 1.00 0.00 0.00 0.00 0.00d1 0.00 0.50 0.50 0.00 0.00 0.00 0.00d2 0.33 0.00 0.33 0.33 0.00 0.00 0.00d3 0.00 0.00 0.00 0.50 0.50 0.00 0.00d4 0.00 0.00 0.00 0.00 0.00 0.00 1.00d5 0.00 0.00 0.00 0.00 0.00 0.50 0.50d6 0.00 0.00 0.00 0.33 0.33 0.00 0.33

Page 60: Mineração de grafos e redes sociais

Matriz de transicao com teletransporte

d0 d1 d2 d3 d4 d5 d6d0 0.02 0.02 0.88 0.02 0.02 0.02 0.02d1 0.02 0.45 0.45 0.02 0.02 0.02 0.02d2 0.31 0.02 0.31 0.31 0.02 0.02 0.02d3 0.02 0.02 0.02 0.45 0.45 0.02 0.02d4 0.02 0.02 0.02 0.02 0.02 0.02 0.88d5 0.02 0.02 0.02 0.02 0.02 0.45 0.45d6 0.02 0.02 0.02 0.31 0.31 0.02 0.31

Page 61: Mineração de grafos e redes sociais

Vetores do metodo de potencias ~xPk

~x ~xP1 ~xP2 ~xP3 ~xP4 ~xP5 ~xP6 ~xP7 ~xP8 ~xP9 ~xP10 ~xP11 ~xP12 ~xP13

d0 0.14 0.06 0.09 0.07 0.07 0.06 0.06 0.06 0.06 0.05 0.05 0.05 0.05 0.05d1 0.14 0.08 0.06 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04d2 0.14 0.25 0.18 0.17 0.15 0.14 0.13 0.12 0.12 0.12 0.12 0.11 0.11 0.11d3 0.14 0.16 0.23 0.24 0.24 0.24 0.24 0.25 0.25 0.25 0.25 0.25 0.25 0.25d4 0.14 0.12 0.16 0.19 0.19 0.20 0.21 0.21 0.21 0.21 0.21 0.21 0.21 0.21d5 0.14 0.08 0.06 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04 0.04d6 0.14 0.25 0.23 0.25 0.27 0.28 0.29 0.29 0.30 0.30 0.30 0.30 0.31 0.31

Page 62: Mineração de grafos e redes sociais

Exemplo grafo web

d0

d2 d1

d5

d3 d6

d4

carro benz

ford

gm

honda

jaguar

jag

gato

leopardo

tigre

jaguar

leao

cheeta

velocidade

PageRank

d0 0.05d1 0.04d2 0.11d3 0.25d4 0.21d5 0.04d6 0.31

PageRank(d2)<PageRank(d6):porque?

a h

d0 0.10 0.03d1 0.01 0.04d2 0.12 0.33d3 0.47 0.18

Page 63: Mineração de grafos e redes sociais

Importancia do PageRank

◮ Alegacao frequente: PageRank e o componente maisimportante do ranking de paginas na web

◮ A realidade:◮ Ha varios componentes que sao pelo menos tao importantes:

e.g., texto ancora, expressoes, proximidade, ındices emcamadas . . .

◮ Diz-se que o PageRank no formato original (como mostradoaqui) hoje tem um impacto baixo no ranking

◮ Porem, variantes do PageRank sao ainda essenciais para arecuperacao de paginas web

◮ Lutar contra spam baseado em links e difıcil e crucial

Page 64: Mineração de grafos e redes sociais

Modelos de grafos

I Diferentes grafos possuem caracterısticas e propriedadessimilares

I Muitos grafos costumam ser grandes e esparsosI Grande: alto numero de vertices (n > 100000)I Esparso: numero de arestas m = O(n)

I Grafo com n vertices e um mundo pequeno se o tamanhomedio de caminhos

µL ∝ log n

I Grafo e livre de escala se a distribuicao de graus f (k) edescrita por uma lei de potencia

f (k) ∝ k−λ

Page 65: Mineração de grafos e redes sociais

Grafos livres de escalaI Muitos vertices com baixo grau e pouco com alto grauI log f (x) = −λ log k + logαI Regressao linear em um grafico log-logI Opcao: usar distribuicao cumulativa complementar

F c(k) = 1− F (k) ∝ k−(λ−1), onde F (k) =∑k

i=0 f (i)

Page 66: Mineração de grafos e redes sociais

Efeito de agrupamento em grafos

I Dois vertices tem maior probabilidade de conexao secompartilham um vizinho

I Alto coeficiente de agrupamento

I Coeficiente de agrupamentoC (vi ) = |subgrafo dos vizinhos de i|

num. maximo possıvel de arestas na vizinhanca

I Seja C (k) a media de C (vi ) para todos vi com grau j

I Lei de potenciaC (k) ∝ k−λ

I Lei de potencia do coeficiente de agrupamento indicaagrupamento hierarquico

I Vertices com baixo grau sao parte de subgrafos mais agrupadosI Subgrafos sao unidos por vertices centrais com grau mais alto

Page 67: Mineração de grafos e redes sociais

Exemplo: interacao de proteınas humanasI Vertice = proteına, Aresta = interacao experimental, N =

9521, m = 37060I Relacao linear com γ = 2.85 entre log k e log f (k) indica

propriedade “livre de escala”I Diametro d(g) = 14 ≈ log2 n = 13.22 indica mundo pequenoI Relacao linear entre log k e logC (k) indica agrupamento

hierarquico

Page 68: Mineração de grafos e redes sociais

Modelo de grafos aleatorios de Erdos-Renyi

I Modelo para obter grafos uniformemente aleatorios paradados numeros de vertices n e arestas m

I Seja M = maxm =(n

2

)e(Mm

)o numero total de grafos

distintos para dados n e m

I Entao a probabilidade de obter um grafo da colecao de grafosG(n,m) e

P(G ) =

(M

m

)−1

I Seja V = {v1, v2, . . . , vn}, fazer m vezes:1. Inicializar grafo G vazio2. Criar aresta nao existente em G entre dois vertices sorteados vi

e vj

I Modelo de Erdos-Renyi nao e livre de escala pois

f (k) ∝ αkk−12 k−k , onde α = np exp e p = 2m

n(n−1)

I Modelo indica comportamento de mundo pequeno pord(G ) ∝ log n

Page 69: Mineração de grafos e redes sociais

Error and attack tolerance of complex networks(doi:10.1038/35019019)

Figura: Modelo de Erdos-Renyi e exponencial

Page 70: Mineração de grafos e redes sociais

Modelo de Watts-Strogatz

I Cada vertice do cırculo a conectado a mais k vizinhos aesquerda e k a direita

I Com coeficiente de agrupamento alto: C (G )→ 34

I Mas nao e mundo pequeno (d(G ) ≈ n/2k > log n)

Page 71: Mineração de grafos e redes sociais

Modelo de Watts-Strogatz com mundo pequenoI Para obter mundo pequeno, pertubacoes aleatorias com

probabilidade r :I Para cada (u, v) ∈ E trocar v aleatoriamente (evitando laco e

aresta duplicada), ouI Criar mais knr arestas aleatorias de “atalho”

I Usar r para controlar “mistura” entre agrupamento e mundopequeno

C (V ) ≈ 3k − 3

4k − 2 + 2r(2kr + 4k − 1)

I Mas nao e livre de escala

Page 72: Mineração de grafos e redes sociais

Diametro de um grafo Watts-Strogatz

Page 73: Mineração de grafos e redes sociais

Modelo livre de escala de Barabasi-Albert

I Geracao de grafos com propriedade livre de escalaI Ligacao preferencial (preferential attachment): arestas de

novo vertice tem mais chance de ser ligado a vertices commaior grau

I Inicializacao: Criar G0 com n0 vertices e m0 = n0 arestas emformato circular

I Expansao: Obter Gt+1 usando Gt com novo vertice u e q ≤ n0

novas arestas entre u e q vertices distintos em Gt , onde vj eescolhido com probabilidade

πt(vj) =dj∑

vi∈Gtdi

I Atualizacao de probabilidades: nt = n0 + t, mt = m0 + qt,∑vi∈Gt

d(vi ) = 2mt = 2(m0 + qt), πt(vj) =dj

2(m0+qt)

Page 74: Mineração de grafos e redes sociais

Caracterısticas do modelo de Barabasi-Albert

I Distribuicao dos graus: f (k) ∝ k−3

I Diametro mundo pequeno: d(Gt) = O( log ntlog log nt

)

I Agrupamento esperado: E [C (Gt)] = O( (log nt)2

nt)

Page 75: Mineração de grafos e redes sociais

Um grafo de Barabasi-Albert

Page 76: Mineração de grafos e redes sociais

Mineracao de padroes em grafos

I Padroes sao subgrafos interessantesI ArvoresI Subgrafos completosI Subgrafos regularesI Cliques e quasi-cliquesI Cliques bipartidosI Subgrafos densos

I Padroes representamI Comunidades sociais coesasI Proteınas envolvidas no mesmo processo bioquımicoI Paginas de autoridade e portais na WWWI Perfis comportamentais

Page 77: Mineração de grafos e redes sociais

DefinicoesI Grafo nao-direcional G = (V ,E ), com vertices V e arestas

E ⊆ V × VI Conjunto de vizinhos de vertice u e

N(u) = {v ∈ V |(u, v) ∈ E}I Grafo pode ter rotulos associados a vertices e a arestas

I Rotulo (label) de u: L(u) ∈ ΣV , rotulo de (u, v): L(u, v) ∈ ΣE

I Uma aresta extendida e uma tupla 〈u, v , L(u), L(v), L(u, v)〉

Page 78: Mineração de grafos e redes sociais

IsomorfismoI G ′ = (V ′,E ′ e isomorfo a G (V ,E ) se existe funcao bijetoraφ : V ′ → V tal que

I (u, v) ∈ E ′ ⇔ (φ(u), φ(v)) ∈ EI ∀u ∈ V ′ = L(φ(u))I ∀(u, v) ∈ E ′, L(u, v) = L(φ(u), φ(v))I Ou seja, a funcao φ “traduz” os rotulos de G ′ para os rotulos

G sem mudar a estrutura do grafoI Se a funcao φ e apenas injetora e nao sobrejetora, entao G ′ e

isomorfo a um subgrafo de G (por que?)

Figura: Quais sao as tabelas de φ e φ−1?

Page 79: Mineração de grafos e redes sociais

Subgrafo suporte

I Dados:I Base de grafos: D = {G1,G2, . . . ,Gn}I Grafo referencia G

I Suporte de G em D:

sup(G ) = |{Gi ∈ D|G ⊆ Gi}|

I Ou seja, o numero de grafo em que G e subgrafo

I Problema da mineracao de grafos: encontrar todossubgrafos conectados com suporte maior que um limiarminsup

Page 80: Mineração de grafos e redes sociais

OO

SS

OO

OO OO

HHHHHH

CC

HH

HH CC

OO

OO HH

CC

OO

OO OO

HH HH

NN

HH

HH HH

Amônia

Ácido carbônico

Ácido acéticoÁcido sulfúrico

Figura: Fonte: slides do livro “Practical Graph Mining With R”

Page 81: Mineração de grafos e redes sociais

Problema de subgrafos com suporte mınimo

I Objetivo: encontrar todos subgrafos conectados com suportemaior que um limiar minsup

I Tamanho do espaco de busca e exponencialI Subgrafos com m vertices tem

(m2

)= O(m2) arestas

I Numero de subgrafos com m vertices e O(2m2

)(inclusao/remocao de cada aresta possıvel)

I Com rotulos, espaco de busca e maior

I DesafiosI Gerar sistematicamente subgrafos candidatosI Computar o suporte com teste de isomorfismo em subgrafos

I Algoritmos: http://dx.doi.org/10.1109/ICDM.2002.1184038,SUBDUE, SLEUTH

Page 82: Mineração de grafos e redes sociais

Geracao sistematica de subgrafos candidatos

I Mecanismo de expansao por arestas (edge-growth)I Cuidado para nao gerar subgrafos repetidos (testar

isomorfismo se preciso)

1. Usar grafo G como referencia2. Iniciar com subgrafo vazio3. Adicionar uma aresta por vez em ordem (largura ou

profundidade)I Conectar dois vertices existentes ou criar um novo

4. Computar suporte

Page 83: Mineração de grafos e redes sociais

Geracao sistematica de subgrafos candidatosI Estrategia: expansao do caminho mais a direita

I Fazer busca em profundidade nos vertices e criar uma arvoregeradora

I Arestas na arvore geradora sao forward (“para a frente”)I Arestas fora da arvore sao backward (“para tras”) e criam

ciclos no grafo

I Definir o caminho mais a direita como o caminho da raiz daarvore para a folha mais a direita

Page 84: Mineração de grafos e redes sociais

Geracao sistematica de subgrafos candidatos

I Usando o caminho mais a direita...I Adicionar arestas ao grafo candidato somente ligadas a

vertices do caminho mais a direitaI Aresta forward adiciona nova arestaI Aresta backward nao adiciona nova aresta

I Ordem de precedencia das extensoes com arestas:I Primeiro: usar todas as extensoes backward ao vertice mais a

direitaI Se ur e vertice mais a direita a extensao (ur , vi ) e usada antes

de (uv , vj) se i < jI Ou seja, arestas backwards mais perto da raiz sao tentadas

antes que aquelas mais longe

I Depois: usar extensoes forward de vertices no caminho mais adireita

I Se vx e o novo vertice a ser adicionado, (vi , vx) e tentadaantes de (vj , vx) se i > j

I Ou seja, vertices mais longe da raiz sao tentados primeiroI Note: novo vertice sera numerado com x = r + 1

Page 85: Mineração de grafos e redes sociais

I Em verde, o caminho mais a direita da arvore gerada pelocaminho em profundidade

I O vertice mais a direita e v8

I Linhas contınuas (verdes e pretas) sao as arestas forwardI Linhas vermelhas sao as arestas backwardI Linhas tracejadas sao as possıveis extensoesI A ordem de precedencia e numerada com #1, #2, . . .

Page 86: Mineração de grafos e redes sociais

Codigo canonico

I No uso de extensoes do caminho mais a direita e possıvel quegrafos isomorficos sejam criados

I Ordenar grafos isomorfos usando uma representacaao canonica

I Grafo G e arvore DFS TG que define a ordem de visitacao devertices

Page 87: Mineração de grafos e redes sociais

Codigo canonico da busca em profundidade (DFS)

I

Page 88: Mineração de grafos e redes sociais

Computacao do suporte com teste de isomorfismo emsubgrafos

I Problema: achar grafos que contem o subgrafo candidato

Page 90: Mineração de grafos e redes sociais

Referencias

I Stanford Network Analysis Platform (SNAP) -http://snap.stanford.edu

I Livro Manning e Slides

I Data mining and analysis

I Mining Massive Datasets