Visualização de grandes redes em ambiente web

Documentos relacionados
Mineração de Grafos e Predição de Links. Antonio Pecli Ronaldo Goldschmidt

CC-226 Introdução à Análise de Padrões

Classificação Hierárquica Multirrótulo Utilizando Redes Neurais Artificiais

A procura da melhor partição em Classificação Hierárquica: A abordagem SEP/COP

Encontrando Comunidades

Medidas de avaliação de agrupamentos (Clustering)

Universidade Federal de Pernambuco

Mineração de Textos na Web

Descritores de Imagens

Time Series Trend Detection and Forecasting Using Complex Network Topology Analysis

UNIVERSIDADE FEDERAL DE P ERNAMBUCO

1.1 Descrição do problema A programação genética (PG) é uma meta-heurística utilizada para gerar programas de computadores, de modo que o computador

IDENTIFICAÇÃO DA BANDA BRILHANTE EM DADOS DE RADAR METEOROLÓGICO UTILIZANDO A TÉCNICA DE AGRUPAMENTO K-MEANS

A Força dos Relacionamentos pode Medir a Qualidade de Comunidades?

2COP229 Inteligência Computacional. Aula 3. Clusterização.

Classificação Automática de Gêneros Musicais

B A N C O D E D A D O S G E O G R Á F I C O S M A R C O N I D E A R R U D A P E R E I R A

Escalonamento de Aplicações BoT em Ambiente de Nuvem

A Força dos Relacionamentos pode Medir a Qualidade de Comunidades?

Níveis descritivos de testes estatísticos de variabilidade como medidas de similaridade entre objetos em análises de agrupamento

ANÁLISE DAS REDES DE COAUTORIA DO IFSP A PARTIR DOS CURRÍCULOS LATTES

Aprendizagem de Máquina

DESENVOLVIMENTO DE METODOLOGIA PARA AFERIÇÃO DA QUALIDADE DE UM SCANNER 3D

Análise de Redes Sociais Introdução ao Gephi

Deep Learning for Chinese Word Segmentation and POS Tagging

Predição de Links em Redes Complexas utilizando Informações de Estruturas de Comunidades

Reconhecimento de Faces Utilizando Redes Neurais MLP

Técnicas de Projeção para Identificação de Grupos e Comparação de Dados Multidimensionais Usando Diferentes Medidas de Similaridade

Visualização de Informação Parte I (2010)

Aprendizagem de Máquina

Montagem de ambiente para classificação de solos usando ScikitLearn

Agrupamento em grafos direcionados pela maximização da modularidade ajustada

CAPÍTULO 7 CONCLUSÕES E RECOMENDAÇÕES

Aprendizado de Máquina. Combinando Classificadores

Redes Sociais Científicas: análise topológica da influência dos pesquisadores

Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos

RECONHECIMENTO DE PADRÕES EM REDES DE COAUTORIA UTILIZANDO REDES COMPLEXAS

K-MEANS COM ÁRVORES KD

EXTRAÇÃO DE SILHUETAS EM DADOS VOLUMÉTRICOS

Solucionador de circuitos lógicos em C++

Análise de Desempenho de Estratégias de Particionamento de Grafos

Rede complexa probabilística baseada em similaridade na classificação de dados com ruídos

Mapeamento de Domínios do Conhecimento. Técnicas e Resultados. ção. Motivaçã. Visualizaçã. ção o e Mineraçã ORGANIZAÇÃO. Rosane Minghim ORGANIZAÇÃO

Thiago Christiano Silva

USO DE PARALELISMO DE DADOS PARA MAIOR EFICIÊNCIA DE ALGORITMOS DE PROCESSAMENTO DE IMAGENS

Extração de objetos de interesse em imagens digitais utilizando a biblioteca de Visão Computacional OpenCV

Uso do scriptlattes e Gephi na Análise da Colaboração Científica

PADRÕES LOCAIS DA REDE. Prof. Fabrício Olivetti de França

Algoritmo para Construção do Diagrama de Voronoi com abordagem de Divisão e Conquista

Caracterização de Imagens via Redes Neurais Artificiais

Sumário. Referências utilizadas. Introdução. MAFIA: Merging of Adaptive Finite Intervals. Introdução Visão Geral e Objetivos do MAFIA

Teoria dos Grafos. Árvores Geradoras

CENTRO UNIVERSITÁRIO DA FEI BIANCA CAMPOS LEMOS DE SOUZA

Agrupamento Espectral e Hierárquico

Descoberta de conhecimento em redes sociais e bases de dados públicas

Comparação dos algoritmos sequencial e paralelo para contagem de palavras e contexto

Uma Extensão Intervalar do Algoritmo Fuzzy C-Means

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação

Aprendizado de Máquina

Algoritmo CLIQUE (Clustering In QUEst)

Combinando Fatores de Ponderação para Melhorar a

Um Método para Melhoria de Dados Estruturados de Imóveis

Identificação de Pontos Perceptualmente Importantes (PIP) em séries temporais de tópicos extraídos de dados textuais

Inteligência nos Negócios (Business Inteligente)

SISTEMA DE INFORMAÇÃO GEOGRÁFICA APLICADA À GESTÃO PÚBLICA

CAPÍTULO 1 INTRODUÇÃO

Aprendizado de Máquina (Machine Learning)

Ajuste de parâmetros no algoritmo de segmentação de imagens do software ecognition. Giovana Mira de Espindola Gilberto Câmara

UNIVERSIDADE FEDERAL DA BAHIA

Computação Musical - Introdução slides do curso Computação Musical

Aplicação de Histograma de Gradientes Orientados para detecção de hidrômetros em imagens de fundo complexo

IDENTIFICAÇÃO DE MARCADORES DE PAVIMENTAÇÃO NA ORIENTAÇÃO DE CEGOS. André Zuconelli 1 ; Manassés Ribeiro 2

UNIVERSIDADE FEDERAL DE PERNAMBUCO CENTRO DE INFORMÁTICA GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO

Testes de software - Teste funcional

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Classificação Automática de Questões Problema de Matemática para Aplicações do Pensamento Computacional

Implementação de um escalonador de processos em GPU

Data Viz. Visualização Interativa de Dados

Universidade Católica Dom Bosco

6. QUAIS AS TÉCNICAS E RESPECTIVOS CRITÉRIOS DE TESTE EXISTENTES?

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

Bancos de Dados Orientados a Grafos. Mateus Lana e Thiago Santana

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

CRI Minas Indústria 4.0. Case Vallourec: Golden Batch na produção de tubos

FERRAMENTA PARA VISUALIZAÇÃO DA REDE SOCIAL DE PROFESSORES DO IFSP COM ENFOQUE NAS RELAÇÕES DE PESQUISA

Técnicas de análise de algoritmos

Detecção de Comunidades em Redes Sociais: Relacionando o Método Louvain a Medidas de Centralidade

Integração de Mineração de Dados com SGBD Detecção de Agrupamentos

Figura 16 Niagara - Visão de grupos de notas.

Aplicação de uma Metaheurística GRASP para o Problema da Árvore de Steiner em Grafos Direcionados

Estudo de Visualizações da Evolução de Códigos Fonte de Software

Eleição de Clusters Heads em Roteamento Hierárquico para Redes de Sensores sem Fio

Controle de Sistemas Dinâmicos Aplicações ao Carregamento de Veículos Elétricos

Desenvolvimento de algoritmos de clusterização sobre grafos de proximidade em ambientes distribuídos

Teste de Software. Técnica de Teste Estrutural. Rosemary Silveira Filgueiras Melo

Resolução de Problemas via Busca

Mapeamento Automático de Horizontes e Falhas em Dados Sísmicos 3D baseado no algoritmo de Gás Neural Evolutivo

7 th CIDI 7 th Information Design International Conference. 7 th CONGIC

Mineração de dados sobre base de dados de corridas de táxis

Transcrição:

Visualização de grandes redes em ambiente web Felipe Buzatti Nascimento 1, Raquel C. de Melo-Minardi 1 1 Departamento de Ciência da Computação Universidade Federal de Minas Gerais (UFMG) Belo-Horizonte MG Brazil {buzatti,raquelcm}@dcc.ufmg.br Abstract. O presente trabalho apresenta uma metodologia de visualização de grandes redes em um ambiente web através do uso de diferentes algoritmos de layout e agrupamento hierárquico, que são combinados e avaliados por diversas métricas de agrupamento. A partir da melhor combinação de layoutagrupamento avaliada é gerada uma visualização de grafos no plano utilizando múltiplos níveis de agrupamento, permitindo buscas por atributos, exploração das informações nos grupos e vértices em diversos níveis simultaneamente. 1. Introdução O presente trabalho procura desenvolver uma visualização de grafos não-direcionados em um ambiente web para tratar o problema de visualização de grandes redes. O objetivo é representar a gama de informações contidas em redes com milhares de vértices e milhões de arestas sem descartar informações cruciais ao mesmo tempo em que se utiliza uma representação que seja acessível ao usuário da visualização. Uma vez que o desenho de toda a rede no plano seria intratável para o usuário e além da capacidade do ambiente web, utilizam-se algoritmos de agrupamento hierárquico (ver Seção 2.1) para determinar diferentes níveis de representação da rede, que são apresentados em maior detalhe apenas quando usuário julga necessário. Diferentes algoritmos de layout e agrupamento foram combinados (ver Seção 2). A escolha da melhor combinação layout-agrupamento para cada rede é feita utilizando métricas internas de avaliação dos agrupamentos (mais detalhes na Seção 3). A visualização, que foi implementada no ambiente D3[Heer et al. 2011], um framework javascript, utiliza as informações de posição fornecidas pelo algoritmo de layout, bem como a estrutura hierárquica do algoritmo de agrupamento para apresentar ao usuário uma visão inicialmente ampla da rede, ao mesmo tempo em que o permite explorar os agrupamentos que lhe são mais interessantes. As principais contribuições do trabalho são: a combinação de métricas internas de avaliação dos agrupamentos utilizando tanto as informações de posição do layout do grafo quanto sua topologia para avaliar a qualidade dos layouts e agrupamentos; uma caracterização dos grupos na visualização; uma busca por qualquer atributo na rede; uma visualização de grandes redes que pode ser acessada em navegadores web. 2. Algoritmos de layout e agrupamento Combinamos diferentes algoritmos de agrupamento e layout para criar diferentes representações da rede, que serão posteriormente comparadas entre si, como mostra a Seção 3. Exploramos quatro algoritmos de layout de grafos: Linlog[Noack 2007],

ForceAtlas2[Jacomy et al. 2014] (em sua modelagem clássica e utilizando a opção linlog), Yifan-Hu[Hu 2005] e Fruchterman-Reingold[Fruchterman and Reingold 1991]. Exceto pelo algoritmo LinLog, disponibilizado 1 pelo autor, os demais algoritmos de layout foram executados segundo a implementação disponível na ferramenta Gephi[Bastian et al. 2009]. Foram utilizados três algoritmos de agrupamento: Kmeans[Arthur and Vassilvitskii 2007], utilizando apenas a informação da posição de cada vértice fornecida pelo algoritmo de layout, Ward[Ward Jr 1963], utilizando a posição dada pelo algoritmo de layout e a conectividade fornecida pela topologia do grafo e RNSC[King et al. 2004] (Restricted Neighborhood Search Clustering Algorithm), utilizando apenas a informação topológica do grafo. As implementações dos algoritmos Ward e Kmeans foram obtidas através da biblioteca SKLearn[Pedregosa et al. 2011] na linguagem Python. O algoritmo RNSC foi executado a partir de uma implementação fornecida 2 pelos autores. Além desses foi desenvolvido um novo algoritmo de agrupamento, com duas variações, uma em que são consideradas primariamente as posições definidas pelo algoritmo de layout e outra em que considera-se a topologia do grafo em primeiro lugar, e posteriormente a posição dos vértices para julgar a construção dos agrupamentos. 2.1. Definição do número de agrupamentos e agrupamento em multinível O presente trabalho procura determinar o número de agrupamentos através de métricas de validação internas que indiquem a qualidade dos diferentes agrupamentos (também conhecidas como stopping rules[milligan and Cooper 1985]). Foram utilizadas métricas que levam em consideração tanto a posição dos vértices no plano quanto as arestas entre os vértices. A posição dos vértices foi obtida a partir do algoritmo de layout. Nesse trabalho foram utilizadas as seguintes métricas que consideram a posição: Davies-Bouldin[Davies and Bouldin 1979], Dunn[Dunn 1974],Calinski- Harabasz[Cali nski and Harabasz 1974] e GS*[Boutin and Hascoet 2004]. As métricas utilizadas que analisam arestas são as seguintes: MinMaxCut[Ding et al. 2001], Coverage[Brandes et al. 2003], MQ*[Boutin and Hascoet 2004] e modularity[newman and Girvan 2004]. Para cada layout são gerados agrupamentos utilizando o algoritmo kmeans com número de grupos variando entre 1 e k, sendo k < N, em que N é o número de vértices no grafo. Dessa forma é montado um ranking do número de grupos para cada layout. Esse ranking é utilizado para determinar os grupos de forma que seu número não seja maior que o limite L de elementos que podem ser visualizados eficientemente e o número de elementos dentro de cada grupo também não exceda esse mesmo limite L. Utilizamos um método bottom-up que executa os algoritmos de agrupamento da Seção 2. Esse algoritmo percorre o ranking do número de grupos, e toda vez que um agrupamento consegue cumprir o limite para o número máximo L de elementos em cada grupo, mas falha no limite máximo de grupos, esse agrupamento é utilizado como entrada para o algoritmo de agrupamento no ciclo seguinte até que o número de grupos no nível mais superior também não exceder L. 1 disponível em https://code.google.com/p/linloglayout/ 2 disponível em http://www.cs.toronto.edu/~juris/data/rnsc/rnsc.zip

3. Comparação dos algoritmos de layout e agrupamento Todo algoritmo de layout é utilizado como entrada para todos os algoritmos de agrupamento. Para definir um só resultado utilizamos as métricas mencionadas na Seção 2.1. Ordenamos para cada métrica o valor medido em cada instância. Então cada instância recebe uma pontuação de acordo com sua posição no ranking, de forma que, seja sua posiçao p i na métrica i, sua pontuação é R = i(n p i ), em que n é o número de instâncias testadas. Executamos esse ranking para todas as métricas e somamos em cada instância os valores de R obtidos para cada métrica. A melhor combinação nessa análise será utilizadas para representar a rede. A Figura 1 apresenta os resultados dessa combinação em um conjunto de instâncias. Figura 1. Comparativo do resumo das métricas para combinações de algoritmos de layout e agrupamento. 4. Visualização A visualização, exemplificada na Figura 2, apresenta os vértices e os agrupamentos através de círculos, com seus centros definidos segundo as coordenadas calculadas pelo algoritmo de layout (e pela média aritmética das coordenadas dos vértices que compõem o grupo). A cor da circunferência diferencia vértices, que possuem uma circunferência branca, de agrupamentos, com uma circunferência vermelha. O raio dos círculos nos vértices pode ser definido por qualquer atributo numérico presente em todos os vértices da rede bem como pelos valores de betweenness ou coeficiente de clusterização (ver Figura 2.d). No caso dos agrupamentos, o raio é definido pela média aritmética dos atributos e métricas mencionados para o raio dos vértices nos elementos que pertencem ao grupo. As arestas entre vértices de grupos diferentes têm seus pesos somados e uma aresta com essa soma é criada entre os grupos. De forma análoga, as arestas entre vértices de um grupo e um vértice fora desse grupo são combinadas para que sejam visualizadas como uma só aresta quando esse grupo e vértice estiverem presentes na visualização. Para não tumultuar a visualização, apenas as arestas do vértice/grupo sob o cursor são visualizadas e nenhuma aresta é visualizada quando o cursor não está sobre um círculo. Inicialmente, a visualização apresenta todos os grupos e vértices que não estão agrupados em nenhum outro grupo. O usuário pode expandir os grupos que mais lhe

(a) (b) (c) (d) Figura 2. Visão de exemplo da ferramenta de visualização. (a) Caixa de pesquisa textual; (b) legenda com atributos pesquisados; (c) caracterização do grupo sob o cursor; (d) seletor da propriedade que define o raio dos elementos. interessam clicando sobre esses grupos. De forma a impedir que a expansão de muitos grupos gere um número muito grande de elementos na visualização, resultando em um custo computacional muito alto, há um mecanismo que registra o número de elementos expandidos e retrai os grupos expandidos quando é necessário reduzir o número de elementos. Esse mecanismo utiliza uma fila FIFO e um limite para o número de elementos (limiteabertos). Toda vez que um grupo é expandido, esse grupo é adicionado à fila. Quando a fila excede limiteabertos desenfileiram-se elementos, tomando o cuidado de garantir que um pai não será desenfileirado antes dos filhos. 4.1. Caracterização dos grupos Para permitir que o usuário seja capaz de identificar um grupo, uma visualização é gerada para cada grupo sob o cursor. Essa visualização tem o objetivo de apresentar um resumo dos atributos que destacam esse grupo em comparação com o restante dos grupos. Para realizá-la processamos todos os atributos nos vértices de cada grupo. Calculamos para cada grupo e cada atributo a seguinte expressão: T I (g, t) = ( ) m v m v g t v G log g M g M v g t v em que v é um vértice, t é um atributo, g é um grupo, v g significa que v pertence diretamente ao grupo g ou indiretamente através de grupos que pertencem a g, g é o número de vértices no grupo g e G é o número de grupos. T I é uma expressão para a medida clássica da área de recuperação de informação conhecida como TF- IDF[Salton and Buckley 1988]. Assim, espera-se que o valor de T I seja alto para os termos que estão presentes em muitos vértices no grupo e não estão presentes, ou estão pouco presente nos demais grupos. Como alguns atributos tendem a ser exclusivos de alguns vértices por definição,

tais como nome, identificador, etc. T I simplesmente não é calculado para atributos que aparecem em apenas um vértice. De posse desse valor T I para cada par grupo-atributo podemos montar uma lista ordenada L para cada grupo dos atributos que o caracterizam segundo esse valor em ordem decrescente. Essa visualização consiste em um gráfico de barras com os primeiros vinte atributos da lista L. Para cada barra é apresentado o nome do atributo a que ela se refere e seu comprimento é diretamente proporcional ao valor de T I. A Figura 2.c destaca essa visualização na ferramenta. 4.2. Pesquisa por atributos Para permitir que o usuário pesquise e visualize vértices a partir de atributos textuais foi implementada uma pesquisa de texto que destaca na visualização e localiza os vértices que possuem o atributo pesquisado. Essa funcionalidade está destacada na Figura 2.a. Ao selecionar o atributo que deseja, os vértices que possuem esse atributo têm sua cor alterada. Se apenas um vértice corresponder à pesquisa a visualização também produz um efeito de zoom, centralizando e aproximando-se do vértice que corresponde à pesquisa. Se mais de uma pesquisa é realizada os vértices que correspondem a uma e outra pesquisa ganham cores diferentes, bem como vértices ou grupos que correspondem a mais de uma pesquisa. Para identificar essas diferentes combinações é utilizada uma legenda listando as combinações presentes (ver Figura 2.b). Há um limite pré-determinado de dez cores diferentes que permite o uso de cores contrastantes e evita que a visualização fique super-saturada. Quando ao realizar uma nova busca o número de pesquisas e combinações diferentes sendo visualizadas excede o limite remove-se a pesquisa mais antiga até que o limite seja respeitado. 5. Conclusão O presente trabalho apresentou um método capaz de visualizar redes de dezenas de milhares de vértices em um ambiente web interativo capaz de se moldar à necessidade do usuário. As técnicas de busca por atributos, a caracterização dos agrupamentos e a expansão seletiva permitem uma exploração da rede em seus aspectos macro e micro, de forma fluida. Foi realizado o estudo de diversos algoritmos de layout de grafos e agrupamentos, abordando tanto novos trabalhos quanto algoritmos clássicos. A combinação desses algoritmos gera uma variada gama de abordagens possíveis. A comparação dessas abordagens através de um bom número de métricas internas de validação torna a metodologia aqui apresentada bastante apta a tratar diversas redes diferentes. De fato, o uso dessa metodologia em diversas redes é um trabalho que deve ser apresentado futuramente. Referências Arthur, D. and Vassilvitskii, S. (2007). k-means++: The advantages of careful seeding. In Proceedings of the eighteenth annual ACM-SIAM symposium on Discrete algorithms, pages 1027 1035. Bastian, M., Heymann, S., and Jacomy, M. (2009). Gephi: An open source software for exploring and manipulating networks.

Boutin, F. and Hascoet, M. (2004). Cluster validity indices for graph partitioning. In Information Visualisation, 2004. IV 2004. Proceedings. Eighth International Conference on, pages 376 381. Brandes, U., Gaertler, M., and Wagner, D. (2003). Experiments on graph clustering algorithms. In ESA, pages 568 579. Cali nski, T. and Harabasz, J. (1974). A dendrite method for cluster analysis. Communications in Statistics-theory and Methods, 3(1):1 27. Davies, D. L. and Bouldin, D. W. (1979). A cluster separation measure. Pattern Analysis and Machine Intelligence, IEEE Transactions on, (2):224 227. Ding, C., He, X., Zha, H., Gu, M., and Simon, H. (2001). Spectral min-max cut for graph partitioning and data clustering. Lawrence Berkeley National Lab. Tech. report, 47848. Dunn, J. C. (1974). Well-separated clusters and optimal fuzzy partitions. Journal of cybernetics, 4(1):95 104. Fruchterman, T. M. and Reingold, E. M. (1991). Graph drawing by force-directed placement. Software: Practice and experience, 21(11):1129 1164. Heer, M. B., Ogievetsky, V., and Jeffrey (2011). D3: Data-driven documents. IEEE Trans. Visualization & Comp. Graphics (Proc. InfoVis). Hu, Y. (2005). Efficient, high-quality force-directed graph drawing. Mathematica Journal, 10(1):37 71. Jacomy, M., Venturini, T., Heymann, S., and Bastian, M. (2014). Forceatlas2, a continuous graph layout algorithm for handy network visualization designed for the gephi software. PLoS ONE, 9(6):e98679. King, A. D., Przulj, N., and Jurisica, I. (2004). Protein complex prediction via cost-based clustering. Bioinformatics, 20(17):3013 20. Milligan, G. W. and Cooper, M. C. (1985). An examination of procedures for determining the number of clusters in a data set. Psychometrika, 50(2):159 179. Newman, M. E. and Girvan, M. (2004). Finding and evaluating community structure in networks. Physical review E, 69(2):026113. Noack, A. (2007). Energy models for graph clustering. J. Graph Algorithms Appl., 11(2):453 480. Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., Blondel, M., Prettenhofer, P., Weiss, R., Dubourg, V., Vanderplas, J., Passos, A., Cournapeau, D., Brucher, M., Perrot, M., and Duchesnay, E. (2011). Scikit-learn: Machine learning in python. Journal of Machine Learning Research, 12:2825 2830. Salton, G. and Buckley, C. (1988). Term-weighting approaches in automatic text retrieval. Information processing & management, 24(5):513 523. Ward Jr, J. H. (1963). Hierarchical grouping to optimize an objective function. Journal of the American statistical association, 58(301):236 244.