1 / 36

Finding and Evaluating Community Structure in Networks

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

Download Presentation

Finding and Evaluating Community Structure in Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. FindingandEvaluatingCommunityStructure in Networks Thiago Henrique F. da Paz

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

  3. 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

  4. Introdução

  5. 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...

  6. 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

  7. 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

  8. 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

  9. 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.

  10. 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

  11. Métodos • Aglomerativos:

  12. 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

  13. Grau de Intermediação • Em inglês: Betweenness • Conceito chave nos algoritmos apresentados • Métrica usada nas arestas

  14. Grau de Intermediação • Exemplo: shortest-pathbetweenness • 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

  15. Grau de Intermediação • Exemplo: random-walkbetweenness • 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

  16. 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

  17. 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.

  18. 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

  19. 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

  20. 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

  21. Implementação

  22. 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

  23. Implementação • O vértice inicial tem distância 0 e peso 1 • Para cada vértice i adjacente ao inicial, a distância é 1 e o peso também é 1 • Para cada vértice j adjacente a um desses vértices i • Se j não recebeu ainda nenhum valor, seu valor é di + 1 • Se j já recebeu um valor e o valor é igual à di+1, então o peso wj = wi + 1 • Se j já recebeu um valor e o valor é menor que di+1, não faz nada • Repete o passo 3 para todos os nós restantes

  24. Implementação • Para se calcular o grau de intermediação das arestas • Para cada vértice i ligado a um dos vértices t que são folhas, o peso da aresta entre eles é wi/wt • Para os outros vértices, o peso é 1 + a soma dos pesos das outras arestas do nó, multiplicado por wi/wt • Repete o passo 2 até se chegar ao nó inicial

  25. Implementação

  26. 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...

  27. 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

  28. 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

  29. 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

  30. 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

  31. Aplicação • Zachary’skarateclub network

  32. Aplicação

  33. Aplicação

  34. 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

  35. Referências • [1] Newman M, Girvan M. Findingandevaluatingcommunitystructure in networks. August 2003 • [2] Freeman L. A set ofmeasuresofcentralitybaseduponbetweenness. Sociometry 40, 35-41. 1997

  36. Dúvidas ?

More Related