Karmaşık ağlarda sosyal ağ analizi nedir ve nasıl yapılır ? - Twitch Sosyal Ağ Analizi

What is Social Network Analysis in Complex Networks and How is it Performed? - Twitch Social Network Analysis


Abstract 
Twitch has a unique social network structure among live streaming platforms. This study presents the findings, discussion, and conclusions of a network analysis conducted on a publicly available Twitch Social Network dataset from the Stanford Large Network Dataset Collection (SNAP: Stanford Network Analysis Project) using R Project, an open-source programming language and software environment developed for statistical computing and graphics. For computational purposes, the smallest sub-network within the dataset, the Portuguese Twitch Social Network, was selected. This network contains 1,912 nodes, which represent the users themselves, and the connections represent mutual relationships between them. The dataset was collected and published in May 2018.

The aim of the study is to evaluate and explore the network by analyzing its size, structure, and subgroup metrics, as well as its topographical and interconnected measurements. In addition to statistical metrics and centrality measurements, the study provides network visualization and community analysis within the network. Moreover, it identifies the central actors and key players in the network. As a result, the study offers a guide for a potential marketing strategy targeting this specific network.

Özet
Twitch, canlı yayın platformları arasında benzersiz bir sosyal ağ yapısına sahiptir. Bu çalışma, Stanford Large Network Dataset Collection (SNAP: Stanford Network Analysis Project) üzerinden herkese açık bir Twitch Sosyal Ağ veri kümesi üzerinde istatistiksel hesaplama ve grafikler için geliştirilmiş açık kaynaklı bir programlama dili ve yazılım ortamı olan R Project ile bir ağ analizi gerçekleştirmenin bulgularını, tartışma ve sonuçları sunulmaktadır. Hesaplama amaçları için, veriseti içerisinde ki en küçük alt ağ olan Portekiz Twitch Sosyal Ağı seçilmiştir. Bu ağı, kullanıcıların kendileri olan 1.912 düğüm içerir ve bağlantılar bunlar arasındaki karşılıklı ilişkilerdir. Bu veri seti Mayıs 2018’de elde edilmiş ve yayınlanmıştır.

Çalışmanın amacı, ağı değerlendirmek ve keşfetmek, boyutunu, yapısını ve alt grup ölçümlerini, topografik, birbirine bağlı ölçümleri öğrenmektir. İstatistik ölçütleri ve merkezilik ölçümlerinin yanı sıra çalışmada ağ görselleştirmesini ve ağ içerisinde topluluk analiz sunulur, ayrıca, ağdaki merkezi aktörleri ve kilit oyuncuları belirler. Çalışma sonucunda bu ağa yönelik bir pazarlama çalışması için bir rehber ortaya çıkmaktadır.

Giriş

Twitch (ayrıca Twitch.TV veya Justin.TV olarak da bilinir) Amazon şirketine ait bir canlı yayın platformudur ve ana işlevi canlı video oyunları yayınlamaktır. Temmuz 2011’de Twitch, Haziran 2013’e kadar 4.000 üyeye ulaşan Ortak Programını başlattı. YouTube gibi diğer video sitelerinin "Ortak Programı"na benzer şekilde, popüler içerik üreticilerinin yayınlarında reklamcılık yaparak elde ettikleri geliri paylaşmalarına olanak tanır. Twitch, spor etkinliklerinin kapsamı da dahil olmak üzere canlı video oyunu yayıncılığı konusunda uzmanlaşmıştır. Ayrıca müzik akışları, orijinal materyal ve "sadece sohbet (In Real Life)" yayınları sağlar.

Çalışmada analizi yapılan ağ, düğümlerin kullanıcıların kendisi ve bağlantıların (yönlendirilmemiş) aralarındaki karşılıklı arkadaşlar olduğu SNAP Twitch Sosyal Ağlar veri kümesinin en küçük boyutlu alt ağı olan Portekizce Konuşan bölümüne aittir(Leskovec and Krevl 2014). Veri kümeleri aynı düğüm özellikleri kümesini paylaşır; bu, ağlar arasında transfer öğrenimini mümkün kılar. Düğüm özellikleri, oynanan ve beğenilen oyunlara, konuma ve yayın alışkanlıklarına (günler, görüntülemeler, ortaklık, yetişkin içerik) göre yayınlanmıştır. Bu çalışmada belirtilen ağ ve R programlama dili kullanılarak, ağın davranışını ve temel özelliklerini daha iyi anlamak ve başlıca toplulukları belirlemek, ağ görselleştirme ve merkezi aktörleri keşfetmeye çalışır.

Önceki Çalışmalar

Bu veri kümesini kullanarak, B. Rozemberczki, C. Allen ve R. Sarkar tarafından 2019’da yayınlanan "Multi-Scale Attribute Node Embedding" adlı çalışmada, grafiklerde düğüm yerleştirmeleri oluşturmak için kullanılan bir yöntemdir. MUSAE’nin amacı, düğümleri bir ağda hem özelliklerine hem de düğümlere özgü niteliklere göre düşük boyutlu vektörlere dönüştürmektir. Bu tür yöntemler, düğüm sınıflandırması, bağlantı tahmini ve topluluk tespiti gibi çeşitli görevler için yararlıdır.

Genel olarak, yazarlar çalışmada düğüm yerleştirme üzerine odaklanarak yazalar tarafından ortaya sunulan Multi-Scale Attribute Embedding (MUSAE) algoritması ve geleneksel Attribute Embedding (AE) algoritmalarını inceliyorlar. Bu algoritmaların düğümlerin çevresinde görünen özelliklerin olasılık matrislerini örtük olarak çarpanlarına ayırdığını kanıtladılar. Birkaç veri kümesinde (Wikipedia, Facebook, Github ve Twitch), bu algortimaları karşılaştırma yöntemleriyle öğrenilen gösterimlerin, özellikle MUSAE geçmiş yıllarda yayınlanan farklı yaklaşımlar ile düğüm yerleştirme yöntemlerine göre daha iyi bir performans sahip olduğunu sonucuna varıyorlar(Rozemberczki, Allen, and Sarkar 2021).

James Dux tarafından 2018 yılında yayınlanan "Social Live-Streaming : Twitch.TV and Uses and Gratification Theory Social Network Analysis" çalışması, Twitch.tv’nin kullanıcıları nasıl cezbettiğini ve onları platformda nasıl motive ettiğini anlamaktır. Özellikle, kullanıcıların Twitch’i tercih etme nedenleri, bu platformun sunduğu sosyal bağlamda sağladığı memnuniyet ve faydalar ile kullanıcılar arasında oluşan sosyal ağ yapıları araştırılmaktadır. Bu doğrultuda, çalışma hem bireylerin medya kullanım alışkanlıklarını açıklayan Uses and Gratification Theory (U&G) çerçevesinde, hem de kullanıcıların etkileşimlerini ve topluluk dinamiklerini analiz eden Sosyal Ağ Analizi yöntemleriyle Twitch kullanıcı davranışlarını incelemeyi hedefler.

Çalışmanın sonucunda, Twitch’in yalnızca bir eğlence platformu olmanın ötesinde, güçlü bir sosyal etkileşim ortamı sunduğunu ortaya koymuştur. Kullanıcılar, platformda eğlence, bilgi edinme, sosyal etkileşim ve günlük hayatlarından kaçış gibi çeşitli ihtiyaçlarını karşılamakta ve bu da onların bağlılıklarını artırmaktadır. Yayıncılar ve izleyiciler arasında kurulan sosyal bağlar, kullanıcıların platformda daha fazla zaman geçirmelerini ve topluluklar oluşturmalarını sağlamaktadır. Popüler yayıncılar, sosyal ağın merkezinde yer alırken, izleyiciler de mikro-topluluklar halinde etkileşime girerek platformu zenginleştirmektedir. Sonuç olarak, Twitch’in başarısı, sadece içerik çeşitliliği ve eğlence değil, aynı zamanda sosyal ağların ve etkileşimlerin oluşturduğu güçlü topluluk yapısına dayanmaktadır.


Yöntem


Bu bölümde çalışma içerisinde kullanılan araçların tanımı, elde edilen bulguların tanımı ve analiz edilen ağda kullanılan veri setinin tanımları verilmektedir.

Twitch Veri Kümesi

Mayıs 2018 yılında SNAP üzerinde yayınlanan veri kümesi, belirli bir dilde yayın yapan oyuncuların Twitch kullanıcı-kullanıcı ağlarıdır. Düğümler kullanıcıların kendisidir ve bağlantılar aralarındaki karşılıklı arkadaşlıklardır. Vertex özellikleri oynanan ve beğenilen oyunlara, konuma ve yayın alışkanlıklarına göre çıkarılır. Veri kümeleri aynı düğüm özellikleri kümesini paylaşır. Aşağıdaki tabloda toplamda 6 dil üzerinde elde edilen verilerden oluşabilecek ağların düğüm ve kenar sayısını vermektedir.

Dil Düğüm (Node) Kenar (Edge)
DE 9,498 153,138
EN 7,126 35,324
ES 4,648 59,382
FR 6,549 112,666
PT 1,912 31,299
RU 4,385 37,304

Düğüm özellikleri, bir düğümün çeşitli tanımlayıcı ve ölçülebilir niteliklerini içermektedir. Bu özellikler arasında, düğümün adı olan Ad (name), yayıncının adı gibi karakter türünde bir bilgi sağlar. Günler (days), yayıncının Twitch’te yayın yaptığı toplam gün sayısını ifade eder ve sayısal bir değerdir. Yetişkin İçerik (mature), yayıncının içeriklerinin yetişkinlere yönelik olup olmadığını belirler ve bu bilgi doğru/yanlış olarak ifade edilir. İzlenme Sayısı (views), yayıncının toplam izlenme sayısını temsil eden sayısal bir veridir. Ortaklık Durumu (partner), yayıncının Twitch ile ortaklık statüsünü gösterir ve doğru/yanlış şeklinde belirtilir. Son olarak, Twitch ID (twitch_id), yayıncının Twitch platformundaki benzersiz kimlik numarası olup tamsayı bir değer taşır. Bu özellikler, yayıncıların davranışlarını ve etkileşimlerini analiz etmek için önemli bilgiler sunar.

R ve R Studio

R, istatistiksel hesaplama ve grafikler için geliştirilmiş açık kaynaklı bir programlama dili ve yazılım ortamıdır. Veri analizi, istatistiksel modelleme ve görselleştirme gibi işlemlerde oldukça kullanılır. R, özellikle bilimsel araştırmacılar, veri analistleri, veri bilimcileri ve istatistikçiler için faydalıdır. R’nin en belirgin özelliklerinden biri, kullanıcıların çok çeşitli istatistiksel ve matematiksel analizler yapabilmesine ve verilerin görselleştirilmesini olanak tanıyan geniş bir fonksiyon yelpazesi sunmasıdır. R özellikle akademik araştırmalarda, veri analitiğinde ve makine öğreniminde yaygın olarak tercih edilmektedir.

R Studio, R dilini kullanarak istatistiksel analiz ve veri görselleştirme işlemlerini daha verimli hale getiren popüler bir entegre geliştirme ortamıdır (IDE). R Studio, R dilindeki kodları yazmak, hata ayıklamak, analiz sonuçlarını görselleştirmek ve projeleri yönetmek için kullanılır.

igraph

igraph, verimlilik, taşınabilirlik ve kullanım kolaylığına odaklanan bir ağ analizi araçları koleksiyonudur. igraph açık kaynaklı ve ücretsizdir. igraph, R, Python, Mathematica ve C/C++ dillerinde programlanabilir. igraph, karmaşık ağların analizini ve görselleştirilmesini sağlayan güçlü bir kütüphanedir. Kullanıcıların ağ yapıları üzerinde detaylı analizler yapmalarına imkan tanır. igraph, düğümler (nodes) ve kenarlardan (edges) oluşan ağların oluşturulması, özelliklerin atanması, kısa yol hesaplamaları, merkeziyet ölçümleri, topluluk algılama gibi bir dizi temel ağ teorisi işlemini etkin bir şekilde gerçekleştirebilir. Kütüphane, ağın görselleştirilmesi konusunda da esneklik sunarak, verilerin görsel temsilini kolaylaştırır. Ayrıca, büyük ağ verileriyle çalışırken yüksek performans ve verimlilik sağlayacak şekilde optimize edilmiştir.


# Yüklemek için
install.packages("igraph")

# Kullanmak için
library(igraph)
    
# Kullanım
x_edges = as.data.frame(read.csv('CSV_EDGES_PATH', header = TRUE))
x_nodes = as.data.frame(read.csv('CSV_NODES_PATH', header = TRUE))
x_graph <- graph_from_data_frame(x_edges, directed = FALSE, vertices = x_nodes)

Ağ Merkeziliği (Centrality)

Ağ analizinde merkezilik (centrality), bir ağdaki düğümlerin önemini veya stratejik konumlarını belirlemek için kullanılan temel kavramlardan biridir. Merkezilik, bir düğümün ağ içindeki bağlantı yapısını, bilgi akışındaki rolünü ve diğer düğümlerle olan etkileşimini değerlendirmek için çeşitli ölçütler verir.

Derece Merkeziliği (Degree)

En yaygın merkezilik ölçüt birimi olup, bir düğümün doğrudan bağlantılarının sayısını ifade eder. Yüksek derece merkeziliğine sahip düğümler, genellikle ağdaki en popüler veya en etkili düğümler denilebilinir ve şu şekilde hesaplanır;

CD(v)=d(v)N1C_D(v) = \frac{d(v)}{N-1}

  • CD(v)C_D(v), vv düğümünün derece merkeziliği,
  • d(v)d(v), vv düğümünün derecesidir (yani, vv düğümüne bağlı olan kenarların sayısı),
  • NN, ağdaki toplam düğüm sayısı

Derece merkeziliği igraph kütüphanesi kullanılarak R dilinde centr_degree komutu ile kullanılabilinir.

Arasındalık Merkeziliği (Betweenness)

Bir düğümün diğer düğümler arasındaki en kısa yollar üzerinde ne kadar sıklıkla bulunduğunu ölçer ve düğümün ağdaki farklı gruplar arasında bir "köprü" işlevi görüp görmediğini anlamak için kullanılır ve hesaplaması şu şekildedir;

CB(v)=svtσst(v)σstC_B(v) = \sum_{s \neq v \neq t} \frac{\sigma_{st}(v)}{\sigma_{st}}

  • CB(v)C_B(v), vv düğümünün ara kesit merkeziliğin,
  • σst\sigma_{st}, ss ve tt düğümleri arasındaki toplam en kısa yol sayısı,
  • σst(v)\sigma_{st}(v), en kısa yolların vv düğümünden geçen sayısını,
  • svt\sum_{s \neq v \neq t}, vv düğümü hariç olmak üzere ağdaki tüm ss ve tt düğüm çiftlerin toplamı.

Arasındalık merkeziliği igraph kütüphanesi kullanılarak R dilinde aşağıdaki komut ile kullanılabilinir.


g.mat <- as.matrix(as_adjacency_matrix(x_graph))
g.bc <- sna::betweenness(g.mat)
g

Yakınlık Merkeziliği (Closeness)

Bir düğümün ağdaki diğer tüm düğümlere olan ortalama mesafesinin tersidir. Yakınlık merkeziliği (closeness centrality), bir düğümün diğer tüm düğümlere olan ortalama mesafesini ölçerek bilgi veya kaynakların ne kadar hızlı yayılabileceğini gösterir.

CC(v)=1uvd(v,u)C_C(v) = \frac{1}{\sum_{u \neq v} d(v, u)}

  • CC(v)C_C(v), vv düğümünün yakınlık merkeziliği
  • d(v,u)d(v, u), vv ve uu düğümleri arasındaki en kısa mesafe
  • uvd(v,u)\sum_{u \neq v} d(v, u), vv düğümünden diğer tüm düğümlere olan mesafelerin toplamı.

Yakınlık merkeziliği igraph kütüphanesi kullanılarak R dilinde centr_clo komutu ile kullanılabilinir.

Özvektör Merkeziliği (EigenVector)

Bir düğümün önemini ona bağlanan diğer düğümlerin önemine göre değerlendirir. Bu ölçüt, yalnızca bağlantı sayısını değil, aynı zamanda bağlantıların kalitesini de dikkate alır ve Google’ın PageRank (arama sonuçları) algoritması gibi sistemlerde yaygın olarak kullanılır.

CE(v)=1λuN(v)CE(u)C_E(v) = \frac{1}{\lambda} \sum_{u \in N(v)} C_E(u)

  • CE(v)C_E(v), vv düğümünün özvektör merkeziliği,
  • λ\lambda, ağırlıklı bağlılıkların toplamı),
  • N(v)N(v), vv düğümünün komşuları,
  • CE(u)C_E(u), uu düğümünün özvektör merkeziliği.

Yakınlık merkeziliği igraph kütüphanesi kullanılarak R dilinde eigen_centrality komutu ile kullanılabilinir.

Topluluk - Kümeleme (Clustering)

Ağ Kümeleme yada Topluluk oluşturma (Network Clustering), bir ağda bulunan düğümlerin benzer özelliklere veya bağlanma çeşitlerine göre gruplara ayrılmasını ifade eder. Kümeleme, ağ yapısının daha küçük alt ağlara bölünmesini sağlar ve bu alt ağlar genellikle belirli bir fonksiyonu veya yapıyı paylaşan, birbirine daha yoğun bağlantılarla bağlı düğümlerden oluşur.Ağlarda topluluk algılama (community detection) için bir çok farklı yöntem ve algoritma vardır. Bu çalışma içerisinde temel 5 yöntem kullanılmıştır. Bu algoritmaların çalışma prensibi ve değerlendirme ölçütü olarak modülarite skoru kullanılır. igraph üzerinde bu algoritmalar kullanılabilinir(“Igraph R Manual Pages”).

Modülarite (Modularity)

Modülarite (Modularity), bir ağdaki topluluk yapılarının kalitesini değerlendirmek için kullanılan bir metriktir. Bu değer, düğümler arasında belirli bir toplulukların ne kadar güçlü bağlantılar olduğunu ölçer ve rastgele bir ağla karşılaştırır. Yüksek bir modülarite skoru, ağdaki toplulukların iyi tanımlandığını ve topluluk içindeki düğümlerin birbirleriyle güçlü bir şekilde bağlantılı olduğunu gösterir (Modularity).

Q=12mi,j(Aijkikj2m)δ(ci,cj)Q = \frac{1}{2m} \sum_{i,j} \left( A_{ij} - \frac{k_i k_j}{2m} \right) \delta(c_i, c_j) Modülarite skor formülü

  • QQ: Modülarite skoru.
  • mm: Ağdaki toplam kenar sayısı.
  • AijA_{ij}: ii ve jj düğümleri arasındaki bağlantıyı ifade eden bitişiklik matrisi.
  • kik_i: ii düğümünün derecesi (bağlantı sayısı).
  • kikj2m\frac{k_i k_j}{2m}: Rastgele bir ağda ii ve jj düğümleri arasında beklenen bağlantı olasılığı.
  • δ(ci,cj)\delta(c_i, c_j): Eğer ii ve jj düğümleri aynı topluluğa aitse 11, aksi takdirde 00.

Modülarite matriksi ve skoru igraph kütüphanesi kullanılarak R dilinde modularity_matrix ve modularity komutu ile elde edilebilinir.

Etiket Yayılım (Label Propagation)

Etiket Yayılım algoritması (Label Propagation), bir ağdaki toplulukları bulmak için hızlı bir algoritmadır. Bu toplulukları yalnızca ağ yapısını rehber olarak kullanarak tespit eder ve topluluklar hakkında önceden tanımlanmış bir ön çalıştırma fonksiyonu veya ön bilgi gerektirmez. Bu algoritma, köşeleri benzersiz etiketlerle etiketleyerek ve ardından köşenin çevresindeki çoğunluk oyuyla etiketleri güncelleyerek çalışır. Her düğümün rastgele bir etikete sahip olduğu ve bu etiketlerin komşu düğümlere yayıldığı bir yöntemdir. Etiketler, en fazla komşunun taşıdığı etiketi benimseyerek güncellenir. Süreç (Şekil 1), etikette bir değişiklik olmadığı zaman durur (Šubelj 2019).

Şekil 1: Etiket Yayılım (Label Propagation)

Etiket Yayılım (Label Propagation) algoritması igraph kütüphanesi kullanılarak R dilinde cluster_label_prop komutu ile kullanılabilinir.

Hızlı Açgözlü (Fast Greedy)

Hızlı Açgözlü (Fast Greedy) algoritması, toplulukları tespit etmek için modülerliğe dayalı olarak bir yaklaşımdır. Bu yöntem, yalnızca yüksek oranda bağlı düğümler arasındaki bağlantılardan oluşan bir alt ağ ile başlar. Daha sonra, algoritma alt ağın modülerliğini iyileştiren rastgele bağlantıları yinelemeli olarak örnekler ve bunları ekler. Bu yinelemeli süreç, modülerlik iyileşmeye devam ettiği sürece tekrarlanır. Son olarak, topluluklar alt ağdaki bağlı bileşenlere dayalı olarak elde edilir(Clauset, Newman, and Moore 2004). Algoritmanın temel amacı, düğümler arasındaki bağlantılara dayanarak ağdaki doğal grupları ortaya çıkarmaktır.

Etiket Yayılım (Label Propagation) algoritması igraph kütüphanesi kullanılarak R dilinde cluster_fast_greedy komutu ile kullanılabilinir.
Algoritma, büyük ağlar üzerinde çalışabilir çünkü daha basit birleştirme adımlarına dayanır. Bu, özellikle seyrek ve orta büyüklükteki ağlar için etkili bir çözüm sunar. Ancak, ağın boyutu ve yoğunluğu arttıkça işlem süresi de önemli ölçüde artabilir. Büyük ve yoğun ağlarda, birleştirme işlemleri sırasında hesaplanması gereken modülarite değişiklikleri daha karmaşık hale gelir. Bu durum, algoritmanın performansını olumsuz etkileyebilir ve hesaplama süresini uzatabilir.

Louvain

Louvain yöntemi, büyük ağlarda toplulukları tespit etmek için kullanılan bir algoritmadır. Bu yöntem, her topluluk için modülarite skorunu maksimize eder. Modülarite, düğümlerin topluluklara atanmasının kalitesini nicel olarak ifade eden bir ölçüttür yani, bir topluluk içindeki düğümlerin, rastgele bir ağda olacağından ne kadar daha yoğun bir şekilde bağlantılı olduğunu değerlendirir(Emmons et al. 2016).

Louvain algoritması en hızlı modülerlik tabanlı algoritmalardan biridir ve büyük grafiklerle iyi çalışır. Ayrıca, bir ağın küresel işleyişini anlamak için yararlı olan farklı ölçeklerdeki toplulukların hiyerarşisini ortaya çıkarır.

Şekil 2: Louvain

Başlangıç
Bir başlangıç düğümü seçilir ve bu düğümün komşularıyla bir topluluk oluşturması durumunda modülaritedeki değişiklik hesaplanır.

Yineleme 1 - Adım 1
Başlangıç düğümü, modülaritede en büyük değişikliği sağlayan düğüme katılır. Bu işlem, ağdaki her düğümle tekrarlanır.

Yineleme 1 - Adım 12
Topluluklar birleştirilerek süper topluluklar oluşturulur ve bu süper düğümler arasındaki ilişkiler, önceki bağlantıların ağırlıklarının toplamı olarak ifade edilir.

Yineleme 2 - Adım 1 ve 2
Adım 1 ve Adım 2, modülaritede daha fazla artış sağlanamayana kadar veya belirli bir yineleme (iterasyon, iteration) sayısına ulaşılana kadar tekrar edilir.

Louvain algoritması igraph kütüphanesi kullanılarak R dilinde cluster_louvain komutu ile kullanılabilinir.

Spin-Glass

Spin-glass kümeleme algoritması, özellikle karmaşık ve yüksek boyutlu veri kümelerindeki yapıları keşfetmek için kullanılan, bir yaklaşımı temsil eder. Adını manyetik malzemelerde görülen spin-glass durumundan alır(Combe et al. 2010). Algoritma, verileri manyetik momentlere benzetir ve bu momentlerin birbirleriyle etkileşimlerini simüle eder. Bu etkileşimler, verilerin benzerlik veya farklılıklarını yansıtır. Algoritmanın temel amacı, bu etkileşimler sonucu ortaya çıkan en düşük enerjili durumu bulmaktır. Spin-glass algoritması, bu enerjiyi minimize ederek, nesneleri (ya da verileri) benzer özelliklere sahip kümelere ayırmaya çalışır. Yani, ağ yapılarındaki benzer düğümleri veya veri noktalarını bir araya getirir. Spin-glass algoritması, doğrusal olmayan ve hiyerarşik yapıları olan verileri etkili bir şekilde kümeleyebilir ancak büyük veri kümeleri için hesaplama süresi uzun olabilir ve algoritmanın performansı, kullanılan parametrelere duyarlıdır. Bu parametrelerin doğru ayarlanması önemlidir(Zhu, Ochoa, and Katzgraber 2015).

Spin-glass algoritması igraph kütüphanesi kullanılarak R dilinde cluster_spinglass komutu ile kullanılabilinir.

Walktrap

Walktrap kümeleme algoritması, özellikle sosyal ağlar gibi karmaşık ve büyük ölçekli ağlarda bulunan toplulukları keşfetmek için kullanılan bir yöntemdir. Bu algoritma, bir ağ üzerindeki rastgele yürüyüşlerin (random walks) davranışlarını analiz ederek, sık sık birlikte ziyaret edilen düğümleri (nodes) aynı toplulukta kabul eder(Pons and Latapy 2005).

Algoritma, ağ üzerindeki düğümler arasında rastgele yürüyüşler gerçekleştirir. Bu yürüyüşler sırasında bir düğümden diğerine geçme olasılığı, düğümler arasındaki bağlantıların gücüne bağlıdır. Bu yürüyüşler sırasında düğümler arasındaki yol uzunlukları hesaplanır. Aynı topluluktaki düğümler birbirlerine daha kısa yollarla ulaşabilecekleri için, bu yol uzunlukları daha kısa olacaktır. Hesaplanan yol uzunlukları kullanılarak, yürüyüşler benzer yapıya sahip düğümleri birbirine yakınlaştırır. Bu sayede, ağda rastgele yürüyüşlerin özelliklerine dayalı olarak kümeler oluşturulur. Algoritma, ağdaki bağlantıları ve kümeleri sürekli olarak güncelleyerek en iyi kümelenmiş yapıyı bulmaya çalışır. Kümeleme yinemeleri ile gelişir ve bir sonuç elde edilir.

Walktrap algoritması igraph kütüphanesi kullanılarak R dilinde cluster_walktrap komutu ile kullanılabilinir.

Anahtar Düğümler (Keyplayers)

Sosyal ağlarda en önemli düğümleri (yani kişileri, sayfaları veya diğer varlıkları) belirlemek için kullanılan bir yöntemdir. Bu önemli düğümler, ağın yapısını ve işleyişini en çok etkileyen, bilgi yayılmasında en etkili olan veya ağın bütünlüğünü koruyan düğümlerdir. Grup merkeziliği puanlarını hesaplar ve bir ağdaki en merkezi oyuncu grubunu belirler. igraph kütüphanesi kullanılarak R dilinde kpset komutu ile kullanılabilinir.

# Kütüphane tanımı
library(keyplayer)

x_graph_adj_matrix <- as.matrix(as_adjacency_matrix(x_graph))
x_graph_kpset <- kpset(x_graph_adj_matrix, size = 10, type = "fragment")

# Ekrana yazdırma
x_graph_kpset$keyplayers


Bulgular


Bu bölümde, bir önceki Yöntem bölümünde tanımlanan veri seti üzerinden tanımlanan algortima ve fonksiyonlar kullanılarak ağ merkezilik, ağ kümeleme ve anahtar düğümler ile elde edilen sonuçlar verimektedir.

Ağ Özellikleri

Ağ, kullanıcılar arasındaki dostluğu temsil eden yönlendirilmemiş bağlantılara sahip 1.912 düğümden oluşmaktadır. Aşağıdaki tabloda başlıca metriklerin sonuçları eklenmiştir.

Ağın genel ölçütleri
Ölçüt Değer
Düğüm (Node) 1912
Yol/Bağlantı/Kenar (Edge/Link) 31299
Ortalama Derece/Komşu Sayısı (Degree) 32.73953
Geçişlilik (Transitivity) 0.13098
Yoğunluk (Density) 0.01713
Ortalama Uzunluk (Distance) 2.53237
Çap (Diameter) 7

Tabloda görüldüğü gibi, ağ güçlü bir ortalama kümeleme katsayısına sahiptir ve bu aynı zamanda üyeler arasında güçlü bağlantılar, yüksek komşuluk ilişkileri ve bağlantı uzunlukluları ortalaması ile ağın düğümleri arasında güçlü bir iletişim olduğu görülmektedir. Buna göre bu ağda bir düğümün diğer bir düğüm tanıması olasıdır. Yoğunluk düşüktür, bu gerçek ağlar için beklenen bir şeydir çünkü düğüm çiftlerinin çoğu doğrudan bağlı değildir. Şekil 1’de ağın görsel hali genel olarak resmedilmiştir.

Şekil 3: Ağ

Merkezilik Ölçütleri (SS: Standart Sapma)
Merkezilik Değer
Derece (Degree) 0.38422
SS Derece (Degree) 55.85239
Yakınlık (Closeness) 0.39848
SS Yakınlık (Closeness) 0.05045
Arasındalık (Betweenness) 0.09851
SS Arasındalık (Betweenness) 7133.51481

Tablo 2’de ağın genel olarak merkezilik değerleri ve standart sapma ölçütleri verilmiştir. Tablo 2 ve Tablo 1 verileri R ortamında aşağıdaki komutlar ile elde edilebilinir.

    ptbr_g_values <- c(
      length(V(ptbr_g)), length(E(ptbr_g)), diameter(ptbr_g), 
      mean_distance(ptbr_g), centr_degree(ptbr_g)$centralization, 
      sd(centr_degree(ptbr_g)$res), centr_clo(ptbr_g)$centralization, 
      sd(centr_clo(ptbr_g)$res), centr_betw(ptbr_g)$centralization, 
      sd(centr_betw(ptbr_g)$res), edge_density(ptbr_g), 
      mean(degree(ptbr_g)), cohesion(ptbr_g), mean(closeness(ptbr_g)), 
      transitivity(ptbr_g,type="global"))

Şekil 4: Ağ derece histogramı

Şekil 2’de ağın derece merkeziliğine göre histogram grafiği gösterilmektedir. Bu grafikteki verilerin 0-100 aralığında toplandığı göz önüne alındığında bu ağ üzerinde sosyal ağ analizi ve topluluk/kümeleme analizleri yapmak yanlış sonuçlara sebebiyet vereceğinden bu ağı veri kümesinde ki özelliklerden izlenme sayısına göre daraltıp en çok bu özelliğe sahip düğümlere daraltırsak elde edilecek analiz sonuçları daha doğru veriler olabilir. Bu yüzden bu veriler içerisinde ki en çok izlenme sayısına sahip 100 kullanıcı göre ağı küçültürsek Şekil 3b’deki ağ oluşmaktadır.

Şekil 5: Ağ ve Küçültülmüş Ağ

Şekil 3a’daki mavi düğümler en çok izlenme özelliğine sahip 100 düğümü temsil ederken, sarı renkteki düğümler ise küçültme için ağdan çıkarılacak düğümleri temsiler eder. Her iki ağdaki kırmızı renkler ise sadece 1 bağlantıyı sahip düğümleri temsil etmektedir. Şekil 3b’deki bir kırmızı ağa uzaklığı ve derecesinin düşük olmasından dolayı analizleri ve elde edilecek sonuçları olumsuz etkileyeceğinden dolayı analizleri yaparken bu düğüm işlemlere dahil etmemek gerekmektedir. Küçültme işleminden sonra ağın derece histogramı daha düzenli dağıldığı Şekil 4’da görülmektedir. Aşağıdaki tablo her iki ağın karşılaştırmalı ölçütleri gösterilmektedir. Buradaki veriler göz önüne alındığında ağ küçülmesine rağmen düğümler arasındaki bağlantılar çok fazla düşmediği halen güçlü bağlantılara sahip olduğu ortaya çıkmaktadır.

Şekil 6: Ağ ve Küçültülmüş Ağın derece histogramı

Karşılaştırma Ölçütleri
Ölçüt Ağ Değeri Top 100 Ağ Değeri
Düğüm (Node) 1912 99
Yol/Bağlantı/Kenar (Edge/Link) 31299 1328
Ortalama Derece/Komşu Sayısı (Degree) 32.73953 26.82828
Çap (Diameter) 7 3
Yoğunluk (Density) 0.01713 0.27375
Ortalama Uzunluk (Distance) 2.532379 1.747887
Derece (Degree) Merkeziliği 0.38422 0.35889
SS Derece (Degree) Merkeziliği 55.85239 14.36978
Yakınlık (Closeness) Merkeziliği 0.39848 0.31166
SS Yakınlık (Closeness) Merkeziliği 0.05045 0.05936
Arasındalık (Betweenness) Merkeziliği 0.09851 0.04093
SS Arasındalık (Betweenness) Merkeziliği 7133.51481 48.84637

Merkezilik

Bu bölümde en çok izlenmeye sahip 100 kullanıcıdan oluşan ağın Derece (Degree), Yakınlık (Closeness), Arasındalık (Betweenness) ve EigenVector merkezilik ölçütlerine göre görselleştirmeler gösterilmektedir. Ağ merkezilik değerlerine göre renklendirmek için bu veriler incelenip en yüksek 10 (ortalamaya değere göre 11) değerler kullanılmıştır.

  • Derece (Degree) >49> 49 değerinden büyük olanlar,
  • EigenVector >0.8589211> 0.8589211 değerinden büyük olanlar,
  • Yakınlık (Closeness) >0.6666667> 0.6666667 değerinden büyük olanlar,
  • Arasındalık (Betweenness) komşuluk matriksine göre ağ içerisinde Şekil 5’deki gibi gösterilmiştir

Şekil 7: Merkezilik ölçütlerine göre görselleştirme

Topluluk Keşfetme (Kümeleme)

Bu bölümde en çok izlenmeye sahip 100 kullanıcıdan oluşan ağın, bir önceki Yöntem bölümünde tanımlanan topluluk keşfetme (kümeleme) algoritmalarından elde edilen alt ağlar gösterilmektedir. Şekil 6’de beş farklı algoritmadan elde edilen topluluklar/kümeler gösterilmiştir. Şekil 7’da bu toplukların ağ üzerinde tüm düğümler için renklendirilmiş hali gösterilmektedir.

Aşağıdaki tabloda bu beş algoritmadan elde edilen modülarite değerleri gösterilmektedir. Modülarite skorunun yüksek olması ağdaki toplulukların/kümelerin daha iyi tanımlandığı bilgisine göre Etiket Yayılım (Label Prop.), Açgözlü (Greedy), Walktrap algoritmaları sonucunda elde edilen alt ağların zayıf ilişkiler olduğu, Louvain ve Spinglass algoritmaları sonucunda elde edilen alt ağların daha güçlü ilişkili kurduğu anlaşılmaktadır. Ancak Şekil 7 incelendiğinde SpinGlass algoritmasında bir topluluğun sadece bir düğümden oluştuğu görülmektedir. Bu sonuçlara göre bu ağın için en iyi topluluk keşfetme/kümele algoritmasının Louvain olduğu sonucuna varılabilinir ama Etiket Yayılım (Label Prop.) haricindeki diğer algoritmalarda elde edilen sonuçlarında analiz çalışmalarında kullanılabileceği sonucuna varılmaktadır.

Kümeleme algoritmaları modülarite istatistikleri
Algorithm Min. 1st Qu. Median Mean 3rd Qu. Max.
Label Prop. 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000
Greedy -0.01297 0.04571 0.08696 0.08935 0.14274 0.17394
Louvain 0.1942 0.1942 0.1942 0.1942 0.1942 0.1942
Spinglass 0.1949 0.1949 0.1949 0.1949 0.1949 0.1949
Walktrap -0.01298 -0.00448 0.01394 0.03291 0.05501 0.17651

Şekil 8: Topluluk keşfetme (Kümeleme) özeti

Şekil 9: Topluluk keşfetme (Kümeleme)

Anahtar Oyuncular

Ağın yapısını ve işleyişini en çok etkileyen, bilgi yayılmasında en etkili olan veya ağın bütünlüğünü koruyan düğümler Şekil 8’da gösterilmektedir.

Şekil 10: Anahtar Oyuncular

Tartışma ve Sonuç


Bu bölümde bir önceki Bulgular bölümünde elde edilen sonuçların analiz sorularına göre değerlendirilmesi yapılmaktadır. Bu ağ üzerine bir pazarlama çalışması yapılmak istenildiğinde Şekil 4 ve Tablo 3 göz önünde bulundurularak dikkate alınacak en çok izlenme sayısına sahip 100 kullanıcı odağında yapılabilinir. Bu Top 100 ağı içerisinde ağın çapı (Diameter) 3 olduğundan pazarlamanın tüm ağa ulaşmasını isteniyorsa bir kullanıcının ihtiyaç duyacağı maksimum ara bağlantı sayısına ihtiyaç vardır. Ortalama Uzunluk (Distance) yani 1.747887’lik bir değer bize herhangi bir bilginin bir ağ içinde ne kadar hızlı yayılabileceğini söyler, bu değerin daha düşük olması ilişkilerin daha güçlü olduğunu ve ihtiyaç durumunda daha hızlı bir yayımlım olacağı anlamına gelmektedir. Yoğunluk (Density), ağın ne kadar birbirine bağlı olduğunu gösterir. Burada 0.27375’lik yoğunluk, ağın mümkün olan maksimum bağlara kıyasla %27 oranında bağlantıya sahip olduğunu gösterir. Bu değere göre bir kampanya çalışmasının en kısa sürede maksimum sayıda izleyiciye ulaşabilmesi %27’lik bir orana göre bir sonraki kullanıcıya ulaşabilir ancak ortalama derece (Degree), değerine bakıldığında, bir kullanıcı ortalama olarak 26.82828 sayısı ile karşılıklı arkadaşlık ilişkisi kurduğunu gösterir. Her gruptaki etkileşimi artırmak için farklı gruplara özel çalışmalar oluşturulmak istenirse Şekil 7’a ve Tablo 4’e elde edilen sonuçlara göre Louvain ile elde edilen alt ağ kullanılabilinir. Bu ağ içerisinde ki kullanıcıların merkezilik ölçütlerine göre diğer kullanıcılardan daha fazla ilişkilere ve yayımlıma sahip olduğunu Şekil 5’e göre elde edilebilinir. Yapılacak çalışmaya göre ağda, en yüksek merkezilik derecesine (Derece Merkeziliği (Degree)) sahip olan kullanıcı, pazarlama kampanyaları amaçları için iyi bir hedef olabilir çünkü bu kullanıcılar, diğer yayıncılarla en çok etkileşime girer. Özvektör merkeziliğine(EigenVector) göre, kullanıcının sahip olduğu bağlantıların diğer tüm kullanıcılar arasında en güçlü olması nedeniyle pazarlama kampanyaları için daha iyi yayılım gösterebilir. Yapılacak çalışmanın süre sınırı var ise Yakınlık (Closeness) merkeziliğine göre elde edilen kullanıcılar üzerinden yapılması daha doğru olacaktır. Arasındalık Merkeziliği (Betweenness) değerlerine göre bir çalışma yapılmak istenirse, buradaki kullanıcılar diğer yüksek izlenme sayısına sahip kullanıcılar ile güçlü ilişkiler kurduğundan yapılacak çalışmaların yayılımı daha güçlü olabilir. Tüm ağ üzerinde ağı tamamen etkileyecek bir çalışma yapılmak istenirse (rakiplerin kullanıcıları kendine çekme yada ağı yok etme çalışmaları) Şekil 8’daki kullanıcılar üzerinden yapılması gerekmektedir. Bu düğümlerin kaldırılması durumunda ağı tamamen koparacak yada büyük ölçüde parçalayacaktır.

Sonuç olarak SNAP üzerinde elde edilen veri kümesi üzerine R programlama dili ve yazılım ortamı kullanılarak detaylı bir sosyal ağ analizi yapılmıştır. Çalışmada ağ analiz ölçütleri elde edilip değerlendirilmiş, merkezilik ölçütleri ile bazı sonuçlara ulaşılmış, topluluk keşfetme/kümele algoritmaları karşılaştırılarak alt ağlar değerlendirilmiş olup son olarak ağın içerisinde anahtar oyuncular keşfedilip değerlendirilmiştir. Bu çalışma detaylı incelendiğinde bir sosyal ağ analizi yapmak için kullanılacak araç ve gereçlerden değerlendirilecek sonuçlara kadar oluşturulmuş bir rehber ortaya çıkmaktadır.

Osman Şakir Kapar
İstanbul Üniversitesi-Cerrahpaşa
Lisansüstü Eğitim Enstitüsü
Bilgisayar Mühendisliği Ana Bilim Dalı
omansak.com
Ocak 2025

R Kodları ve Veri Seti (Github Gist)

Kaynaklar

  1. Clauset, Aaron, M. E. J. Newman, and Cristopher Moore. 2004. “Finding Community Structure in Very Large Networks.” Physical Review E 70 (6). https://doi.org/10.1103/physreve.70.066111.
  2. Combe, David, Christine Largeron, Elod Egyed-Zsigmond, and Mathias Géry. 2010. “A Comparative Study of Social Network Analysis Tools.” WEB INTELLIGENCE & VIRTUAL ENTERPRISES 2 (October).
  3. Emmons, Scott, Stephen Kobourov, Mike Gallant, and Katy Börner. 2016. “Analysis of Network Clustering Algorithms and Cluster Quality Metrics at Scale.” PloS One 11 (7): e0159161.
  4. “Igraph R Manual Pages.” https://igraph.org/r/html/1.2.6/communities.html.
  5. Leskovec, Jure, and Andrej Krevl. 2014. SNAP Datasets: Stanford Large Network Dataset Collection.” http://snap.stanford.edu/data.
  6. Modularity. “Cs.cmu.edu.” https://www.cs.cmu.edu/~ckingsf/bioinfo-lectures/modularity.pdf.
  7. Pons, Pascal, and Matthieu Latapy. 2005. “Computing Communities in Large Networks Using Random Walks (Long Version).” https://arxiv.org/abs/physics/0512106.
  8. Rozemberczki, Benedek, Carl Allen, and Rik Sarkar. 2021. Multi-Scale Attributed Node Embedding.” Journal of Complex Networks 9 (2).
  9. Šubelj, Lovro. 2019. “Label Propagation for Clustering.” Advances in Network Clustering and Blockmodeling. Wiley. https://doi.org/10.1002/9781119483298.ch5.
  10. Zhu, Zheng, Andrew J. Ochoa, and Helmut G. Katzgraber. 2015. “Efficient Cluster Algorithm for Spin Glasses in Any Space Dimension.” Physical Review Letters 115 (7). https://doi.org/10.1103/physrevlett.115.077201.