BlueSkyの1300万ユーザーを可視化
(joelgustafson.com)1300万のBlueSkyユーザーの可視化
-
TwitterとBlueSkyの比較
- Twitterは膨大なユーザーベースと多様な側面を持つ大規模なプラットフォーム。
- BlueSkyはここ数か月でユーザーベースが急増しており、特にTwitterのユーザーベースに対する継続的な反発と、ブラジルでのTwitter禁止措置によって成長した。
- BlueSkyのデータを使ってネットワーク全体を可視化できる。
-
データ収集
- BlueSkyはATプロトコルを基盤としており、個人データサーバー(PDS)を通じてデータをセルフホストできるよう設計されている。
- このプロジェクトでは、
bsky.networkのWebSocket経由でイベントをリアルタイム収集し、それをSQLiteデータベースに保存している。
-
グラフレンダリング
- 1300万ノードと5億エッジを持つグラフをレンダリングするのは複雑な作業。
- フォースディレクテッドレイアウトアルゴリズムを使ってグラフを可視化しており、これは物理シミュレーションに似ている。
- Barnes-Hut最適化を使って計算複雑性を下げている。
-
Andromedaエンジン
- Zigで開発されたマルチスレッドエンジンで、GTK4とOpenGLを使ってGUIを構築。
- GephiとForceAtlas2の論文に着想を得ており、大規模グラフ可視化のためのインタラクティブ性を重視している。
-
UMAPによる次元削減
- UMAPは2次元可視化で優れた性能を示すアルゴリズムの一つ。
- ノード埋め込みを入力としてUMAPに与え、より良い可視化を得ている。
- UMAPの最終段階では、ノード間の距離を調整するためにフォースディレクテッドグラフを使用している。
-
色の追加
- UMAPの出力にクラスタリングアルゴリズムを適用して色を追加。
- k平均クラスタリングを使って各クラスタに色相を割り当て、各ノードのフォロワー数に応じて明るさを調整している。
-
結果と今後の計画
- この可視化は、大規模クラスタの密度と構造を明確に示している。
- 今後の機能として、現在画面に表示されているアカウントのタイムラインを表示するサイドバーを追加する予定。
1件のコメント
Hacker Newsの意見