Upload
antranig-nguyen
View
31
Download
1
Embed Size (px)
DESCRIPTION
Finding and Evaluating Community Structure in Networks. Thiago Henrique F. da Paz. Roteiro. Introdução Tipos de abordagens Algoritmo proposto Aplicações Conclusão. Introdução. Comunidades Divisão da rede em grupos Nós bastante conectados dentro dos grupos - PowerPoint PPT Presentation
Citation preview
Finding and Evaluating Community Structure in Networks
Thiago Henrique F. da Paz
Roteiro
• Introdução• Tipos de abordagens• Algoritmo proposto• Aplicações• Conclusão
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
Introdução
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...
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
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
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
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.
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
Métodos
• Aglomerativos:
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
Grau de Intermediação
• Em inglês: Betweenness• Conceito chave nos algoritmos apresentados• Métrica usada nas arestas
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
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
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
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.
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
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
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
Implementação
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
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
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
Implementação
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...
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
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
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
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
Aplicação
• Zachary’s karate club network
Aplicação
Aplicação
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
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
Dúvidas
?