Konu Başlıkları
Yükleniyor...

Karmaşık Ağ Verisini Görselleştirmek: Ne İşe Yarar, Nerede Tıkanır

Ağ Görselleştirme: Force-Directed Düzen, Bağlantı Seyreltme ve Matris

Ağ verisi görselleştirmede standart reçete bellidir: düğümleri force-directed bir düzenle yerleştir, zayıf bağlantıları at, üstüne biraz etkileşim ekle. Bu reçete küçük ağlarda gerçekten çalışır. Birkaç yüz düğümü geçince ise elinizde ağ değil, herkesin kıl yumağı dediği o gri leke kalır. Sorunun tam olarak nerede başladığını bilmek, hangi tekniği ne zaman kullanacağınızı da belirliyor.

Force-directed düzen: aynı veri, her seferinde başka resim

Yay modeli basit bir fizik benzetmesi kurar. Kenarlar düğümleri birbirine çeken yaylar, düğümler ise birbirini iten yükler gibi davranır. Sistem dengeye oturduğunda sıkı bağlı gruplar aynı bölgede toplanır, ilgisiz olanlar kenara savrulur. Seyrek ağlarda sonuç gerçekten okunabilir çıkar.

Az konuşulan tarafı, çıktısının kararlı olmaması. Başlangıç konumları rastgele seçildiği için aynı veriyi iki kez çizdirdiğinizde iki farklı resim alırsınız; kümeler aynı kalsa bile yerleri, açıları, komşulukları değişir. Bu yüzden "geçen ayki ağ ile bu ayki ağ" karşılaştırmasını iki ayrı force-directed çıktı üzerinden yapmak yanıltıcıdır, gözünüzün gördüğü farkın ne kadarı veriden ne kadarı rastgele başlangıçtan geliyor bilemezsiniz. İki dönemi karşılaştıracaksanız ortak düğümlerin konumunu sabitleyin ya da ilk çizimin koordinatlarını ikincisine başlangıç olarak verin.

Maliyet tarafı da genelde atlanır. İtme kuvveti her düğüm çiftine uygulandığı için bir yineleme naif haliyle n² işlem ister ve yakınsama yüzlerce yineleme sürer. Barnes-Hut yaklaşımı uzaktaki düğüm kümelerini tek bir kütle gibi ele alıp bunu n log n'e indirir, d3-force dahil yaygın kütüphaneler bu optimizasyonu kullanır. Tarayıcıda birkaç bin düğüm döndürmeye kalkmadan önce elinizdeki aracın hangisini yaptığına bakın.

Bağlantı seyreltme, neyi attığınıza bağlı

n düğümlü tam bir grafta n(n-1)/2 kenar bulunur. Bin düğüm, yaklaşık beş yüz bin çizgi demek. Gerçek ağlar bu kadar yoğun olmasa da kenar sayısı düğüm sayısından çok daha hızlı büyüdüğü için seyreltme çoğu zaman tercih değil zorunluluk.

Minimum yayılan ağaç en agresif seçenek: bağlı bir ağı tam olarak n-1 kenara indirir ve tanımı gereği hiç döngü bırakmaz. Pathfinder ölçekleme de q = n-1 ve r sonsuz alındığında pratikte minimum yayılan ağaçların birleşimini verir. Mesele şu ki bir ağda ilginç olan şeylerin çoğu tam da döngülerde saklıdır. Üçgenler kümelenmeyi, alternatif yollar yedekliliği, geri besleme çevrimleri kurumsal iletişimdeki tıkanmayı gösterir. Hepsini kesip attığınızda temiz ama sorularınızın yarısını cevaplayamayan bir iskelet kalır.

Omurgayı görmek istiyorsanız minimum yayılan ağaç doğru araç. Soru kümelenme, yedeklilik veya topluluk yapısıyla ilgiliyse kenar ağırlığına eşik koymak ya da her düğümün kendi bağlantı dağılımına göre çalışan omurga çıkarma yöntemleri daha iyi sonuç verir. Bunlar zayıf bağı eler, yerel yapıyı bozmaz.

Belli bir yoğunluktan sonra düzen değil, temsil değişmeli

Düğüm-bağlantı diyagramı seyrek ağlarda ve yol takibi gerektiren sorularda iyidir: A'dan B'ye nasıl gidiliyor, şu küme nereye bağlanıyor. Yoğunluk arttıkça kesişen çizgiler her şeyi yutar ve hiçbir düzen algoritması bunu kurtaramaz, çünkü sorun yerleşimde değil temsilde.

Komşuluk matrisi burada devreye girer. Satırlar ve sütunlar düğümleri, hücreler aralarındaki bağlantıyı gösterir; çizgi olmadığı için kesişme de olmaz, yoğun ağlarda okunabilirlik sabit kalır. Karşılığında yol takibini kaybedersiniz, matriste "üç adımda oraya ulaşılıyor" görmek neredeyse imkansız. Satır ve sütunları kümelemeye göre sıraladığınızda blok yapılar ortaya çıkar ve topluluk analizinde düğüm-bağlantı çiziminden fazlasını verir.

Bir kurumsal intranetin 400 sayfalık iç bağlantı haritasını önce force-directed çizdirmiştim, çıkan yumağa kimse bakmak istemedi; sayfaları dizin yapısına göre sıralayıp matrise geçince hangi bölümün dışarıya hiç bağlanmadığı ilk bakışta göründü.

Etkileşim keşif içindir, kötü grafiği kurtarmaz

Yakınlaştırma, filtreleme, düğüme tıklayınca detay gösterme. Shneiderman'ın "önce genel görünüm, sonra yakınlaştır ve filtrele, detayı isteyince ver" sırası hâlâ işleyen bir çerçeve. Ama etkileşim çoğu zaman başka bir amaçla ekleniyor: statik halde okunmayan bir grafiği kullanıcının kurcalayarak çözmesi bekleniyor.

Ayrım şurada. Keşif aracı yapıyorsanız kullanıcı veriyi zaten tanır, filtresini kendi kurar, uzun uzun oynamak işin kendisidir. Sunum yapıyorsanız okuyucunun otuz saniye kurcalayıp anlaması gereken görsel başarısızdır; orada doğru hamle veriyi soruya göre daraltıp tek bir okunabilir kare üretmektir. 3B ağ çizimleri de genelde bu yanlış tarafa düşer, dönen küre etkileyici görünür ama düğümler birbirini kapattığı için çoğu açıda 2B karşılığından daha az bilgi taşır.

Kaynaklar