Clusterização em grafos II

Jacques Wainer

1) Clusterizacao de grafos

Clusterização em grafos é tambem chamade de “community detection”

Modularity (modularidade)

Para grafos nao direcionados 0/1

Proporçao de arestas dentro do cluster subtraido pela pelo número de arestas esperado se o grafo fosse aleatório com o mesmo numero de vertices e arestas (ha algumas nocões de aleatorios - configuration model)

para um par de vertices i e j:

q_{ij} = a_{ij} - \frac{k_i k_j}{2m}

a_{ij} 0/1. m numero de arestas k_i o grau (numero de arestas) do vertice i

Modularidade para o grafo todo é a soma das moduralidades para cada par de vertices

Q = \frac{1}{2m} \sum_{ij} (a_{ij} - \frac{k_i k_j}{2m}) \delta(i,j)

\delta(i,j) = 1 se i e j estão no mesmo cluster

Modularitade pode ser estendida para grafos com pesos e grafos direcionados.

CLusterização como maximizacao da modularidade

encontre C_1, C_2 ... C_k ou seja o \delta(i,j) que maximize Q

Aproximações

Outros algoritmos nao baseados em modularidade

Random walk

passeios aleatorios pequenos devem ficar dentro do cluster

Trocas locais

vizinhos devem estar no mesmo cluster

outros

Implementações

igraph p/ R ou Python https://igraph.org/

outro pacote de grafos em Python NetworkX mas ha pouca clusterização.

Referencias

https://www.sciencedirect.com/science/article/pii/S0370157309002841

https://arxiv.org/abs/2101.01669 recente (bom?)

https://arxiv.org/abs/2105.12584 recente

https://dl.acm.org/doi/10.1145/3444688 recente (multiplex / multilevel / multiview)

2) Outros assuntos em clusterizacao

grafos bi-partidos

Exemplo: Relaçao usuário/produto

dois tipos de clusterização

Grafos direcionados/assimétricos

https://arxiv.org/abs/1308.0971

de novo, 2 tipos de clusterização: citation (tradicional) e flow

Co-clustering (biclustering)

https://en.wikipedia.org/wiki/Biclustering

Para dados vetoriais, os dados sao normalmente representados por matrizes onde as colunas sao os atributos/dimensões e as linhas os dados.

Se 2 dados sao diferentes em atributos que estao no mesmo cluster de atributos, entao os dados nao sao assim tao diferentes.

Ex: documentos (linhas) e palavras (colunas)

3) Clusterização semi supervisionada

voce tem as classes/clusters de poucos dados.

a maioria dos dados não tem rótulo.

4) Ranking em grafos

Nao relacionado com clusterização.

Grafos direcionados

centralidade/page rank

nó é importante se ele é apontado por nós importantes

p(u) = \sum_{x-> u} \frac{p(x)}{K(x)}

p(u) importancia de u, K(x) grau de saida de x

Versão com o dumping factor: (web-surfista aleatorio)

p(u) = \frac{1-d}{N}+ d \sum_{x-> u} \frac{p(x)}{K(x)}

N numero de paginas, d = 0.85 (wikipedia)

Modified adjacency matrix (A’)

Modifies adjacency matriz é um tipo de Laplaciano (da aula de spectral clustering) - uma representação do grafo que “normaliza” pelo grau de cada no.

p = (\frac{1-d}{N} I + A') p

p é um autovetor (com autovalor 1) da modified adjacency matriz mais dumping factor nas diagonais.

Eigengap - diferença do maior e segundo maior autovalor.

Alto eigengap implica que vc pode inicializar o p aleatoriamente e rapidamente ele converge (usando a equação do autoverot/ponto fixo) para o valor correto.

HITS model

hub: aponta para autoridades boas

autoridade: é apontado por hubs bons

Matriz de adjacencia a_{ij}=1 se i -> j

a e h sao autovetores das matrizes A A^T e A^T A