Trực quan hóa 13 triệu người dùng BlueSky
(joelgustafson.com)Trực quan hóa 13 triệu người dùng BlueSky
-
So sánh Twitter và BlueSky
- Twitter là một nền tảng lớn với cơ sở người dùng khổng lồ và nhiều thành phần đa dạng.
- BlueSky đã tăng trưởng cơ sở người dùng rất nhanh trong vài tháng gần đây, đặc biệt nhờ sự thù địch kéo dài đối với cơ sở người dùng của Twitter và lệnh cấm Twitter tại Brazil.
- Có thể dùng dữ liệu của BlueSky để trực quan hóa toàn bộ mạng lưới.
-
Thu thập dữ liệu
- BlueSky dựa trên AT Protocol và được thiết kế để cho phép tự lưu trữ dữ liệu thông qua các máy chủ dữ liệu cá nhân (PDS).
- Trong dự án này, các sự kiện thời gian thực được thu thập qua WebSocket của
bsky.networkvà lưu vào cơ sở dữ liệu SQLite.
-
Kết xuất đồ thị
- Việc kết xuất một đồ thị có 13 triệu nút và 500 triệu cạnh là một công việc phức tạp.
- Đồ thị được trực quan hóa bằng thuật toán force-directed layout, tương tự như một mô phỏng vật lý.
- Tối ưu hóa Barnes-Hut được dùng để giảm độ phức tạp tính toán.
-
Engine Andromeda
- Đây là một engine đa luồng được phát triển bằng Zig, dùng GTK4 và OpenGL để tạo GUI.
- Engine này lấy cảm hứng từ Gephi và bài báo ForceAtlas2, nhấn mạnh tính tương tác cho trực quan hóa đồ thị quy mô lớn.
-
Giảm số chiều bằng UMAP
- UMAP là một trong những thuật toán cho hiệu năng rất tốt trong trực quan hóa 2 chiều.
- Dữ liệu được đưa vào UMAP thông qua node embedding để có được hình ảnh trực quan tốt hơn.
- Ở bước cuối của UMAP, một đồ thị force-directed được dùng để điều chỉnh khoảng cách giữa các nút.
-
Thêm màu sắc
- Màu sắc được thêm vào bằng cách áp dụng thuật toán phân cụm lên đầu ra của UMAP.
- k-means clustering được dùng để gán sắc độ cho từng cụm, đồng thời độ sáng của mỗi nút được điều chỉnh theo số lượng follower của nó.
-
Kết quả và kế hoạch tương lai
- Bản trực quan hóa cho thấy rõ mật độ và cấu trúc của các cụm lớn.
- Một tính năng trong tương lai là thêm thanh bên để hiển thị timeline của các tài khoản đang xuất hiện trên màn hình.
1 bình luận
Ý kiến Hacker News