主要观点:
- 介绍对 BlueSky 社交网络进行数据收集和图布局处理,以创建其网络地图。
- 探讨多种图布局算法和技术,如力导向布局、UMAP 等在处理大规模社交网络数据时的应用与挑战。
- 展示对 BlueSky 网络地图的不断优化和改进过程,包括添加颜色、聚类等操作,以更好地呈现网络结构和信息。
关键信息:
- 使用 BlueSky 的 AT 协议和
bsky.network的 WebSocket 火喉获取数据,存储在本地 SQLite 数据库。 - 力导向布局是一种物理模拟,通过计算节点间的排斥力和边的吸引力来确定节点位置,Barnes-Hut 优化可降低计算复杂度。
- Andromeda 是用于力导向图布局的 Zig 引擎,受 Gephi 和 ForceAtlas2 启发,具备“自然滑块”功能。
- UMAP 用于降维可视化,在处理 BlueSky 数据时存在一些问题,如聚类过密、点重叠等,可通过调整 Andromeda 来改善。
- 可通过聚类算法给 UMAP 输出添加颜色,以增加信息维度,突出局部结构,如使用 k-means 聚类和插值色调。
重要细节:
- 最初在 fly.io 部署索引器并使用 litestream 同步到 AWS S3 桶,后改为在家庭服务器上运行。
- 目前 BlueSky 有约 1300 万用户,
follows表有 5 亿多行约 30GB 数据。 - Andromeda 在处理 10 万节点的图时可实时运行,UMAP 可用于对 BlueSky 数据进行降维处理。
- UMAP 内部在最终阶段使用自己的力导向图,存在一些计算限制导致点重叠,可通过调整 Andromeda 来解决。
- 给 UMAP 输出添加颜色的过程包括 k-means 聚类、色调插值等,以突出局部结构和信息。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。