การแสดงภาพผู้ใช้ BlueSky 13 ล้านราย
(joelgustafson.com)การแสดงภาพผู้ใช้ BlueSky 13 ล้านราย
-
เปรียบเทียบ Twitter กับ BlueSky
- Twitter เป็นแพลตฟอร์มขนาดใหญ่ที่มีฐานผู้ใช้มหาศาลและมีองค์ประกอบที่หลากหลาย
- BlueSky มีฐานผู้ใช้เพิ่มขึ้นอย่างรวดเร็วในช่วงไม่กี่เดือนที่ผ่านมา โดยเติบโตขึ้นเป็นพิเศษจากกระแสความไม่พอใจต่อฐานผู้ใช้ของ Twitter ที่ดำเนินมาอย่างต่อเนื่อง และจากการที่บราซิลแบน Twitter
- สามารถใช้ข้อมูลของ BlueSky เพื่อแสดงภาพเครือข่ายทั้งหมดได้
-
การเก็บข้อมูล
- BlueSky สร้างขึ้นบน AT Protocol และออกแบบมาให้สามารถโฮสต์ข้อมูลด้วยตนเองผ่าน Personal Data Server (PDS)
- ในโปรเจ็กต์นี้ มีการเก็บเหตุการณ์แบบเรียลไทม์ผ่าน WebSocket ของ
bsky.networkและบันทึกลงในฐานข้อมูล SQLite
-
การเรนเดอร์กราฟ
- การเรนเดอร์กราฟที่มี 13 ล้านโหนดและ 500 ล้านเอดจ์เป็นงานที่ซับซ้อน
- มีการใช้ force-directed layout algorithm เพื่อแสดงภาพกราฟ ซึ่งมีลักษณะคล้ายการจำลองทางฟิสิกส์
- ใช้การปรับให้เหมาะสมแบบ Barnes-Hut เพื่อลดความซับซ้อนในการคำนวณ
-
เอนจิน Andromeda
- เป็นเอนจินแบบมัลติเธรดที่พัฒนาด้วย Zig และใช้ GTK4 กับ OpenGL ในการสร้าง GUI
- ได้รับแรงบันดาลใจจาก Gephi และงานวิจัย ForceAtlas2 โดยเน้นความสามารถในการโต้ตอบสำหรับการแสดงภาพกราฟขนาดใหญ่
-
การลดมิติด้วย UMAP
- UMAP เป็นหนึ่งในอัลกอริทึมที่ให้ประสิทธิภาพยอดเยี่ยมสำหรับการแสดงภาพแบบสองมิติ
- ป้อนข้อมูลให้ UMAP ผ่าน node embedding เพื่อให้ได้ผลลัพธ์การแสดงภาพที่ดียิ่งขึ้น
- ในขั้นตอนสุดท้ายของ UMAP มีการใช้ force-directed graph เพื่อปรับระยะห่างระหว่างโหนด
-
การเพิ่มสีสัน
- เพิ่มสีให้ผลลัพธ์ของ UMAP โดยใช้อัลกอริทึมการทำคลัสเตอร์
- ใช้ k-means clustering เพื่อกำหนดเฉดสีให้แต่ละคลัสเตอร์ และปรับความสว่างตามจำนวนผู้ติดตามของแต่ละโหนด
-
ผลลัพธ์และแผนในอนาคต
- การแสดงภาพนี้แสดงให้เห็นความหนาแน่นและโครงสร้างของคลัสเตอร์ขนาดใหญ่ได้อย่างชัดเจน
- ฟีเจอร์ในอนาคตที่วางแผนไว้คือการเพิ่มแถบด้านข้างเพื่อแสดงไทม์ไลน์ของบัญชีที่มองเห็นอยู่บนหน้าจอในขณะนั้น
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News