Büyük Veri ve Ağ Analitiği

Muhammed Ömer Taylan
Garanti BBVA Teknoloji
9 min readOct 19, 2022
Şekil 1: Ağ (Graph) Gösterimi

Büyük veri kavramının giderek daha fazla karşımıza çıktığı bir dönemde bu verilerden anlamlı sonuçlar çıkarmak ve veriye dayalı aksiyon alabilmek oldukça önemli hale gelmiştir. Kurumlarda iş birimlerinin bu ihtiyacını karşılayacak analitik çözümlerde sıklıkla istatistiksel ve makine öğrenmesi yöntemleri kullanılmaktadır. Veri boyutunun artmasıyla birlikte birbirine daha fazla bağlı hale gelen karmaşık sistemlerde veriler arasındaki ilişkilerin de ortaya çıkartılıp analiz edilmesi gerekmektedir. Bir bilgisayarın nasıl çalıştığı, protein etkileşimleri, bir bireyin topluluk içerisindeki davranışları, pazarlama faaliyetleri ve bankacılık uygulamaları gibi karmaşık sistemlerdeki ilişkileri analiz etmek yeni bir çalışma alanı ve yöntemini ortaya çıkarmıştır.

Ağ Analitiği (Graph Analytics), sistemi oluşturan bileşenlerin birbirleri ile olan ilişkilerini çok iyi şekilde açıklayıp görselleştirebilmesi ve analiz edebilmesi sayesinde son yıllarda birçok alanda kullanılmaktadır. Ağdaki önemli kişileri ve ilişkileri belirlemek, grupları tanımlamak ve ağdaki kişilerin rolleri doğrultusunda belirli bilgileri açığa çıkarmak gibi oldukça fazla imkanlar vermektedir.

Klasik istatistiksel ve makine öğrenmesi yöntemlerinden farklı olarak ağ algoritmaları, ortalama dağılımların üzerinden ilerlemek yerine belirlenen sistemdeki ilişkilere odaklanıp verilerin topolojisini kullanarak matematiksel hesaplamalar yapmaktadır.

Gartner 2021 tarihinde yayınladığı trend raporunda 2025 yılında ağ analitiği ve teknolojilerinin veri ve analitik inovasyon projelerinin %80’ininde kullanılacağını ve böylelikle kurumların daha hızlı karar almasını kolaylaştıracağını öngörmektedir.

1- Ağ Kavramı ve Ağ Veri Yapısı Türleri

Ağ dediğimiz kavram en temelde sistem içerisinde belirlenmiş canlı ya da cansız varlıkların birbirleri ile olan ilişkilerinden oluşan veri yapılarıdır. Sözü edilen varlıklara düğüm (node), aralarındaki bağlantılara da ilişki (edge) adı verilmektedir.

Şekil 2: Düğüm ve İlişki Kavramlarının Gösterilmesi

Düğüm için müşteriler, kurumlar, şirketler, hava alanları, protein ve bilgisayar gibi örnekler verilebilirken, ilişki için ise iki müşterinin birbiri ile gerçekleştirdiği para transferi ya da iki hava alanının birbiri ile gerçekleştirdiği uçuş bilgileri örnek olabilmektedir.

Düğüm ve ilişkilerin bir araya gelmesiyle ise ağ (graph) oluşmaktadır. (Şekil 3)

Şekil 3: Düğüm ve İlişkiler Sonucunda Ortaya Çıkan Ağ

1.1. Düğüm derecesi: İlgili düğüme bağlı olan ilişki sayısını ifade eder. Şekil 3'teki örnekte A düğümünün derecesi 3 iken, B düğümünün derecesi 2'dir.

1.2. Basit ağlar ve Çoklu Ağlar (Simple Graph and Multi Graph)

İki düğüm arasında tek bir ilişki varsa basit ağ olarak adlandırılırken aralarında birden fazla ilişki bulunması halinde çoklu ağ olarak adlandırılmaktadır. Belirlenen iş problemine göre ağın yapısı değişebilmektedir. Kullanılacak algoritmaların çalışma mantığı iki yöntem için de farklılaşabileceği için ilk olarak hangi türde ağ yapısı olacağı iyi belirlenmelidir.

Şekil 4: Tekli ve Çoğlu Ağların Gösterilmesi

1.3. Yönlü ve Yönsüz Ağlar (Directed Graph and Undirected Graphs)

İki düğüm arasındaki ilişki yönlü veya yönsüz olabilir. Müşteriler arasında gerçekleşen bi para transferleri yönlü ağ oluştururken aynı müşteriler arasındaki arkadaşlık ya da akrabalık ilişkileri yönsüz ağ oluşturmaktadır.

Şekil 5: Yönlü ve Yönsüz Ağların Gösterimi

1.4. Ağırlıklandırılmış ve Ağırlıklandırılmamış Ağlar (Weighted and Unweigted Graph)

İki düğüm arasında bulunan ilişkinin, başka iki düğüm arasındaki ilişkiden daha kuvvetli olabildiği durumlar mevcuttur. Örneğin cep telefonu ile konuşan iki kişinin ne kadar süre telefonda görüştükleri, iki hava alanında toplamda kaç uçuş gerçekleştiği ve müşterinin gönderdiği para miktarı gibi örneklerde aralarında bir ilişki olmasının yanı sıra ne miktarda bir ilişkinin mevcut olduğu da önemli olmaktadır. İlişki kuvvetinin önemli olduğu problemlerde ağ yapısı seçilirken ağırlıklandırılmış ağ kullanılmaktadır. Aralarındaki ilişki kuvvetinin önemli olmadığı noktada ağırlıklandırılmamış ağ yapısı seçilmektedir. İleride göreceğimiz birçok algoritma ağırlık değerini parametre olarak değerlendirip ona göre hesaplamaları gerçekleştirmektedir.

Şekil 6: Ağırlıklandırılmış ve Ağırlıklandırılmamış Ağ Gösterimi

2. Merkezilik Algoritmaları (Centrality Algorithms)

Çoğu zaman ağ içerisinde önemli düğümleri tespit etmek ve ağ içerisindeki etkilerini öğrenmek isteriz. Bu noktada da merkezilik bize ağ içerisinde hangi düğümlerin önemli olduğunu anlamımıza farklı açılardan yardım etmektedir. Bir müşteri birçok farklı kişiyle iletişim kurabiliyorsa, farklı gruplar arasında köprü olabiliyorsa ya da o müşteri üzerinden başka kişilere ulaşmak çok daha kolay ise ağ içerisinde merkezi bir noktada olduğu söylenebilir. Çözüm aranan probleme göre kullanılabilecek farklı merkezilik algoritmaları bulunmaktadır. Bu ölçütler, hem sosyal ağda yer alan düğümlerin genel konumlarını ve diğer düğümlerle olan ilişkilerini hem de ağın bir bütün olarak incelenmesini mümkün kılmaktadır.

2.1. Derece Merkeziliği (Degree Centrality)

Bir düğümün birinci dereceden komşularıyla toplamda kaç ilişkiye sahip olduğunu ifade eder. Eğer ağ yönlü bir ağ ise hem ilgili düğüme gelen ilişkiler hem de ilgili düğümden giden ilişkiler göz önüne alınmaktadır.

Şekil 7: Derece Merkeziliği

Kullanım Alanları:

  • Bir topluluk içerisindeki en etkin insanları belirlemek için kullanılabilir.

2.2. Arasındalık Merkeziliği (Betweenness Centrality)

Bazı durumlarda bir grup içerisindeki en etkili insanı bulmak yerine farklı grupları birleştiren insanları bulmak da gerekmektedir. Bulunacak bu kişi, gruplar arasındaki bilgi akışını kontrol ettiğinden ağ içerisinde önemli bir yere sahip olabilir. Arasındalık, bireyin diğer bireyler arasında geçiş/köprü konumunda olma düzeyini belirlemeyi amaçlar.

Şekil 8: Arasındalık Merkeziliği

Kullanım Alanları:

  • Organizasyon içerisindeki kritik çalışanların tespit edilmesi
  • Belirli hastalıklar için kontrol genlerini bularak ilaç hedeflemesinin iyileştirilmesi
  • Elektrik şebekelerinde önemli şebeke noktalarının tespit edilmesi

2.3. Yakınlık Merkezlilik (Closeness Centrality)

Ağ içerisinde bir bireyin diğerlerine mesaj iletmesi merkezi pozisyon olmasından bağımsızdır. Sosyal ağdaki düğümlerin diğerlerine ne kadar hızlı bağlandığını bir başka deyişle bir düğümün diğer tüm düğümlere ne kadar yakın olduğunu gösteren merkezilik ölçütü ise yakınlık olarak adlandırılmaktadır.

Şekil 9: Yakınlık Merkeziliği

Şekil 9'da görülen ağ topolojisinden hareketle, örneğin B noktasının A, C ve D olmak üzere üç nokta ile direkt bağlantısı bulunmaktadır. B noktasında bulunan bir bireyin, E’ye herhangi bir mesaj iletmek için D noktasını kullanması gerekmektedir. Dolayısıyla B’nin ağdaki tüm bireyler ile iletişime geçmesi için bir tek aracı kullanması yeterlidir. C noktasının ise ağın bireyleri ile iletişime geçebilmesi için B ve D noktalarının aracılığına ihtiyacı vardır. Bu sebeple B noktasının C noktasından daha merkezi bir konuma sahip olduğu görülmektedir.

Kullanım alanları:

  • Yeni açılacak bir servisin maksimum erişilebilir olması için en uygun konumunun bulunması
  • Bir belgedeki kelimelerin önemini, ağ tabanlı bir anahtar sözcük çıkarma işlemine dayalı olarak değerlendirmesi

2.4. PageRank Algoritması

Daha önce bahsedilen diğer tüm merkezilik algoritmaları bir düğümün doğrudan etkisini ölçerken, PageRank bir düğümün komşularının ve onların komşularının etkisini dikkate alır. Örneğin sizin çok güçlü bir arkadaşa sahip olmanız, çok sayıda daha az güçlü arkadaşlara sahip olmanızdan daha etkili olabilir. PageRank ismini web sitelerini Google’ın arama sonuçlarında sıralamak için oluşturan Google kurucu ortağı Larry Page’den almıştır. Temel varsayım, daha fazla gelen ve daha etkili gelen bağlantılara sahip bir sayfanın daha güvenilir bir kaynak olduğudur. Kısaca bir düğümünün önemini kendisine bağlantı sağlayan düğümlerin ne kadar önemli olduğu belirlemektedir.

Şekil 10: Pagerank Skoru

Şekil 10'da B düğümü daha fazla düğümle etkileşim içerisinde olduğu için önemli bir düğümdür ancak o da A düğümüne bağlandığı için PageRank skoru en yüksek düğüm A olmaktadır.

Kullanım alanları:

  • Ürün ve müşteri önerme sistemleri
  • Aykırı (anomali) ve şüpheli (fraud) müşterilerin tespit edilmesi
  • Kara para aklama sistemleri

3. Topluluk Tespit Etme Algoritmaları (Community Detection Algorithm)

Büyük ölçekli ağlarda, ağın içerisinde belli yoğunluklara sahip noktalar kendi içlerinde bir araya gelerek topluluklar oluşmaktadır. Tek bir topluluk tanımı olmamakla birlikte, toplulukların en belirgin özelliği kendi içlerindeki bağlantı sayısının çok, dışarılarındaki bağlantı sayılarının ise az olmasıdır. Kendi içlerinde bağlantı sayılarının çok olması sebebiyle topluluklar ortak özelliklere sahip olan bir grup şeklinde tanımlanabilir. Ağın kullanım amacına göre toplulukların kullanımı da değişebilmektedir.

3.1. Label Propagation Algoritması

Label Propagation algoritması (LPA) toplulukları belirlerken komşuluk yapısını göz önüne alarak oluşturur. Diğer topluluk belirleme algoritmalarından çok daha hızlı çalışmasıyla öne çıkmaktadır.

Şekil 11: Label Propagation Algoritması Çalışma Prensibi

Çalışma Prensibi (Şekil 11):

  • Her bir düğümün komşu sayısı hesaplanır ve en çok komşuya sahip düğümler seçilir. Adım 1' e baktığımızda A ve B noktaları en fazla komşuya sahip noktalar olmaktadır. Sonrasında ise A ve B’nin komşularında en fazla ağırlığa sahip olan komşuların etiketleri ilgili düğümlerin etiketi olarak güncellenir (Aynı ağırlığa sahip iki düğüm varsa rastgele seçim yapmaktadır). A ve B noktalarının komşuları içerisinden ağırlığı fazla olan düğümler sırasıyla F ve D düğümleridir (Adım 2). Bu süreç iteratif şekilde tüm düğümler için gerçekleştirilir. Bu yakınsama ya da kullanıcının belirlediği iterasyon sayısı bittiğinde süreç sonlanır.

LPA aynı zamanda yarı gözetimli öğrenme (semi-supervised learning) yöntemi olarak da kullanılabilmektedir. Yani belirli düğümler için önceden etiket tanımlaması yapılarak etiketi bilinmeyen diğer düğümler bu etiketler üzerinden tespit edilmeye çalışılır. Bu da toplulukları belirlerken önsel bilgi kullanmaya yarar.

LPA basit, hızlı ve çok kolay uygulanabilir olmasına rağmen sadece komşuluk yapısını göz önüne aldığı için çok büyük ölçekli ağlarda fazla üyesi olan topluluklar oluşturabilmektedir. Bu durum iteratif yapıyı sınırlandırarak önlenebilmektedir.

3.2. Louvain Algoritması

Louvain Algoritması büyük ölçekli ağlarda topluluklardaki yoğunlukları hesaplayarak topluluk belirlemesi yapar. Bunu yaparken de topluluğun kalitesini ölçen modularity skorunu her bir topluluk için maksimize etmeye çalışır. Louvain algoritmasının nasıl çalıştığını anlamak için ilk olarak modularity kavramından bahsetmek gerekmektedir.

3.2.1. Modularity

Modularity bir topluluktaki düğümlerin bağlantılarının ne kadar yoğun olduklarını ölçen ve topluluğun kalitesini ifade eden bir metriktir. Toplulukta bulunan düğüm ve ilişkilerin mevcuttaki gibi değil de rastgele dağılsaydı nasıl olurdu düşüncesiyle hesaplama yapmaktadır. Pozitif değerler şans eseri beklediğinizden daha fazla ilişki yoğunluğu olduğunu, negatif değerler ise daha az ilişki yoğunluğu olduğunu göstermektedir.

Şekil 12: Modularity Skoru Çalışma Prensibi

Modularity skorunu en üst düzeye çıkarmak için Louvain algoritmasının iki yinelemeli aşaması vardır. İlk aşama, ağdaki her düğümü kendi topluluğuna atar. Ardından toplulukları bir araya getirerek modularity skorunu maksimize etmeye çalışır. Şekil 12'de Adım 1, Adım 2 ve Adım 3'e baktığımızda her adımda skorun arttığını görebilmekteyiz.

Louvain algoritmasının amacı modularity skorunu maksimize etmek olduğu için küçük toplulukları büyük topluluklar halinde birleştirebilmektedir (Resolution limit). Bu skorun yüksek olması her zaman istenebilecek bir durum olmayabilir. İlgili probleme göre büyük ölçekli ağlar yerine küçük ölçekli ağlar oluşturmak gerekebilmektedir. Bu durumda Louvain algoritmasına iteratif yapı çalışırken modularity skorunu sınırlandırmak için belirli koşullar eklenebilmektedir.

Modularity skoru ağın ve toplulukların genel yapısını ölçmek için iyi bir metrik olsa da farklı toplulukları karşılaştırmak için başarı metriği olarak kullanılmamalıdır. Belirli iş problemlerine göre daha düşük modularity skoruna sahip bir ağın ihtiyacı karşılaması mümkündür.

3.3. Toplulukların zamana göre değişimi

Zaman içerisinde ağın içerisindeki düğümlerin ilişkileri değişebilmekte, yok olabilmekte ya da yeni ilişkiler ortaya çıkabilmektedir. Bu aynı zamanda oluşturulan toplulukların da zaman içerisinde değişime uğraması anlamına gelmektedir. Bu sebeple oluşturulan toplulukların zaman içerisinde nasıl bir değişim gösterdiği ve bu değişimin sebebinin tespit edilmesi gerekmektedir. Zamana bağlı değişimler en temelde 6 adımda oluşabilmektedir.

Şekil 13: Zamana Bağlı Topluluk Değişimleri
Şekil 14: Zamana Bağlı Topluluk Değişimleri
Şekil 15: Zamana Bağlı Topluluk Değişimleri

Şekil 13, Şekil 14 ve Şekilde 15'teki her bir adım için toplulukların değişiminin analiz edilip ortaya çıkarılması gerekmektedir.

4. Node Classification

Etiketini bildiğimiz düğümlere bakarak etiketi bilinmeyen düğümleri tahmin etmeye çalışmaktadır (Şekil 16).

Şekil 16: Node Classification Gösterimi

Kullanım alanları:

  • Ürün ve müşteri önerme sistemleri
  • Aykırı (anomali) ve şüpheli (fraud) müşterilerin tespit edilmesi
  • Kara para aklama sistemleri

5. Link Prediction

Ağ içerisinde iki düğüm arasında ileride gerçekleşecek bir ilişkinin olup olmadığını tespit etmek için kullanılmaktadır.

Şekil 17: Link Prediction Gösterimi

Kullanım alanları:

  • Ürün ve müşteri önerme sistemleri
  • Kriminal ilişkilerin açığa çıkarılması
  • Protein etkileşimlerinin belirlenmesi

Kullanılabilecek Teknolojiler:

Bahsedilen algoritmaların kullanılabileceği çeşitli teknolojiler mevcuttur. Python içerisinde Networkx kütüphanesi ile graph algoritmaları kullanılabilmektedir. Buna ek olarak hem graph database ortamı sunan hem de görselleştirme olanağı sunarak çeşitli algoritmalar kullanmamıza olanak sağlayan Neo4j, Oracle Graph ve Tiger Graph gibi teknolojiler bulunmaktadır.

Garanti BBVA Teknoloji’de müşterilerin arasındaki ilişkileri analiz etmek ve iş birimlerinin ihtiyacını karşılayacak analitik çözümler için yukarıda bahsedilen Ağ Analitiği yöntemleri ve teknolojileri aktif olarak kullanılmaktadır.

Kullanılan kaynaklar:

--

--

Muhammed Ömer Taylan
Garanti BBVA Teknoloji

Area of Interest: Data Science, Data Engineering, AutoAI, MLOps, Deep Learning, Graph Analytics. https://www.linkedin.com/in/momertaylan/