Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

36
Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz

Transcript of Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Page 1: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Finding and Evaluating Community Structure in Networks

Thiago Henrique F. da Paz

Page 2: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Roteiro

• Introdução• Tipos de abordagens• Algoritmo proposto• Aplicações• Conclusão

Page 3: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Introdução

• Comunidades– Divisão da rede em grupos– Nós bastante conectados dentro dos grupos– Poucas conexões entre os nós de grupos

diferentes

Page 4: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Introdução

Page 5: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Introdução

• Vários algoritmos para se identificar comunidades

• Diferentes métricas utilizadas• Relacionadas com várias áreas– Teoria dos grafos– Ciência da Computação– Sociologia– Etc...

Page 6: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Introdução

• Mas pra que serve?– Melhor visualização da rede– Informações presentes nas comunidades– Ligações entre comunidades também contém

informações valiosas

Page 7: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Métodos

• Detectar comunidades– Pode-se utilizar várias métricas de similaridades

entre os nós• Os algoritmos se dividem em duas grandes

classes:– Aglomerativos– Divisivos

Page 8: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Métodos

• Aglomerativos– Inicialmente, a rede só tem nós, nenhuma aresta– O grau de similaridade é calculada entre um par

de nós– Arestas são inseridas entre os nós com maiores

valores de similaridade

Page 9: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Métodos

• Aglomerativos– O processo pode parar a qualquer momento– Após a execução, rede dividida em comunidades

bem definidas• Ex: Rede de atores– Um ator está ligado a outro se já trabalharam

juntos antes em algum filme.

Page 10: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Métodos

• Problema:– O algoritmo só detecta melhor os nós do núcleo

das comunidades– Estes possuem maior grau de similaridade– Os nós mais distantes são deixados de lado, pois

não possuem um alto grau de similaridade

Page 11: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Métodos

• Aglomerativos:

Page 12: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Métodos

• Divisivos– Nesta abordagem, os nós com grau de

similaridade mais baixa são desconectados– Após sucessivas repetições, a rede vai ser dividida

em comunidades– O processo pode ser parado em qualquer

momento

Page 13: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Grau de Intermediação

• Em inglês: Betweenness• Conceito chave nos algoritmos apresentados• Métrica usada nas arestas

Page 14: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Grau de Intermediação

• Exemplo: shortest-path betweenness• Utiliza o conceito do caminho mais curto em

grafos• Calcula-se o caminho mais curto entre todos

os pares de vértices• A quantidade de caminhos que passam pela

aresta é seu grau de intermediação

Page 15: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Grau de Intermediação

• Exemplo: random-walk betweenness• Ao invés de seguir o menor caminho, segue-se

por um caminho aleatório• O número esperado de vezes que deve-se

passar por uma determinada aresta é o valor do seu grau de intermediação

Page 16: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Algoritmo proposto

• O algoritmo proposto possui as seguintes características:– Algoritmo divisivo– Utiliza a métrica do short-path betweenness– Recalcula o grau de intermediação das arestas da

rede cada vez que uma aresta é removida

Page 17: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Algoritmo proposto

• O algoritmo basicamente é feito assim:– Calcula-se o grau de intermediação das arestas da

rede– Encontra a aresta com maior grau de

intermediação– Remove esta aresta– Recalcula o grau de intermediação das arestas– Repete a partir do passo 2.

Page 18: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Algoritmo proposto

• Mas por quê recalcular?– A cada remoção a rede se modifica– E com essa modificação, os caminhos mais curtos

podem modificar– Assim, uma aresta que não tinha um grau alto,

pode passar a ter

Page 19: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

• Exemplo:– Calculo do grau de intermediação– Por simplicidade, apenas um caminho entre os

vértices– Utiliza-se busca em largura– As arestas que ligam as folhas recebem valor 1– As próximas arestas recebem valor da soma das

precedentes + 1

Page 20: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

• Exemplo:– Calcula-se os valores para cada nós da rede– O grau de intermediação de cada aresta é a soma

dos valores para cada um dos nós

Page 21: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

Page 22: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

• Exemplo: Supondo agora que existam vários caminhos entre dois vértices– Primeiramente, calcula-se a distância e o peso de

um nó até todos os outros– O peso será utilizado para calcular o grau das

arestas

Page 23: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

1. O vértice inicial tem distância 0 e peso 12. Para cada vértice i adjacente ao inicial, a distância é

1 e o peso também é 13. Para cada vértice j adjacente a um desses vértices i

A. Se j não recebeu ainda nenhum valor, seu valor é di + 1B. Se j já recebeu um valor e o valor é igual à di+1, então o

peso wj = wi + 1C. Se j já recebeu um valor e o valor é menor que di+1, não

faz nada

4. Repete o passo 3 para todos os nós restantes

Page 24: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

• Para se calcular o grau de intermediação das arestas1. Para cada vértice i ligado a um dos vértices t que

são folhas, o peso da aresta entre eles é wi/wt2. Para os outros vértices, o peso é 1 + a soma dos

pesos das outras arestas do nó, multiplicado por wi/wt

3. Repete o passo 2 até se chegar ao nó inicial

Page 25: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

Page 26: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

• O algoritmo calcula isso para cada um dos nós da rede

• A cada remoção, é calculado tudo novamente, para cada um dos nós restantes...

Page 27: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Implementação

• Após tudo isso, surge uma questão:– Como saber se a rede foi dividida realmente em

comunidades e se essas comunidades estão corretas?

• O algoritmo sempre divide a rede em comunidades, mesmo não havendo nenhuma estrutura de comunidades presente na rede

Page 28: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Modularidade

• Modularidade– Medida da qualidade da divisão feita na rede pelo

algoritmo• Exemplo: Se foram criadas k comunidades na

rede:– Cria-se uma matriz K x K, onde cada elemento ei,j

da matriz é a fração das arestas que ligam vértices da comunidade i para a comunidade j

Page 29: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Modularidade

• Logo, o traço da matriz (a soma dos elementos da diagonal principal) é a fração das arestas que ligam vértices da mesma comunidade

• Ou seja, quanto maior o valor, melhor ficou a divisão da rede

Page 30: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Modularidade

• Porém, só este valor não diz muito coisa...• Se for colocados todos os vértices numa única

comunidade, o valor é praticamente 1 (100%), não dando nenhuma informação realmente relevante

Page 31: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Aplicação

• Zachary’s karate club network

Page 32: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Aplicação

Page 33: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Aplicação

Page 34: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Conclusões

• Os algoritmos se dividem basicamente em duas classes: aglomerativos e divisivos

• Existem diversas métricas que podem ser utilizadas nos algoritmos que identificam comunidades em redes

• A inserção de um passo a mais para recalcular o grau de intermediação das arestas melhorou a taxa de acerto

Page 35: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Referências

• [1] Newman M, Girvan M. Finding and evaluating community structure in networks. August 2003

• [2] Freeman L. A set of measures of centrality based upon betweenness. Sociometry 40, 35-41. 1997

Page 36: Finding and Evaluating Community Structure in Networks Thiago Henrique F. da Paz.

Dúvidas

?