Visualização de 13 milhões de usuários do BlueSky
(joelgustafson.com)Visualização de 13 milhões de usuários do BlueSky
-
Comparação entre Twitter e BlueSky
- O Twitter é uma grande plataforma com uma base de usuários enorme e muitos aspectos diversos.
- O BlueSky teve um crescimento acelerado da base de usuários nos últimos meses, especialmente por causa da hostilidade contínua em relação à base de usuários do Twitter e da proibição do Twitter no Brasil.
- É possível visualizar toda a rede usando os dados do BlueSky.
-
Coleta de dados
- O BlueSky é baseado no protocolo AT e foi projetado para permitir hospedagem própria de dados por meio de servidores pessoais de dados (PDS).
- No projeto, os eventos em tempo real são coletados pelo WebSocket de
bsky.networke armazenados em um banco de dados SQLite.
-
Renderização do grafo
- Renderizar um grafo com 13 milhões de nós e 500 milhões de arestas é uma tarefa complexa.
- O grafo é visualizado com um algoritmo de layout force-directed, semelhante a uma simulação física.
- A otimização Barnes-Hut é usada para reduzir a complexidade computacional.
-
Engine Andromeda
- Uma engine multithread desenvolvida em Zig, com GUI feita usando GTK4 e OpenGL.
- Foi inspirada pelo Gephi e pelo artigo do ForceAtlas2, com ênfase na interatividade para visualização de grafos em grande escala.
-
Redução de dimensionalidade com UMAP
- O UMAP é um dos algoritmos com melhor desempenho para visualização em duas dimensões.
- Embeddings de nós são usados como entrada no UMAP para obter uma visualização melhor.
- Na etapa final do UMAP, um grafo force-directed é usado para ajustar as distâncias entre os nós.
-
Adição de cores
- Cores são adicionadas aplicando um algoritmo de clustering à saída do UMAP.
- O k-means é usado para atribuir um matiz a cada cluster, e o brilho é ajustado de acordo com o número de seguidores de cada nó.
-
Resultados e planos futuros
- A visualização mostra com clareza a densidade e a estrutura de clusters em grande escala.
- Como recurso futuro, há planos para adicionar uma barra lateral que mostre a timeline das contas visíveis na tela no momento.
1 comentários
Comentários do Hacker News