Sitemap

TR | Yanıltıcı Kenarların Ötesinde: Hibrit GNN ve Nedensel Akıl Yürütmeyle Şeffaf ve Güvenilir Yapay Zeka Modelleri

9 min readJul 1, 2025
Press enter or click to view image in full size

Günümüz Ai modellerdeki en büyük sorunların başında halüsilasyon, ezberden çıkarımlar yapma, önyargılı olma, şeffaflık ve izlenebilirlik en büyük sorunlardır. Bu sorunları aşmak için geleneksel nedensel çıkarım yöntemlerini modern derin öğrenme teknikleriyle birleştiren gelişmiş yaklaşımlardan Grafik Sinir Ağları (GNN) ile Causal Reasoning hibrit modellemesini detaylı inceleyeceğiz.

English version of this article;

GNN — Causal Reasoning hibrit model, yapısal nedensel modellerin (SCM) katı matematiksel temellerini, GNN’lerin evrensel yaklaşım yetenekleri ile entegre etmemizi ve karmaşık sistemlerde hem gözlemsel hem de müdahaleci çıkarımlar yapabilmemize imkan sağlar.

GNN’lere göz atacak olursak; mesaj geçirme mekanizması üzerine inşa edilmiş özel sinir ağı mimarileridir. Hibrit modelimizin temel yapı taşını oluşturan bu katman, message passing üzerine kurulmuş, düğümler arasında bilgi aktarımını sağlayan bir yapıdır. Bileşenleri ise;

  • AGGREGATE: Komşu düğümlerden gelen mesajları birleştirme
  • UPDATE: Toplanmış mesajları sinir ağından geçirme
  • Permütasyon Eş-değerliği: Graf yapısının düğüm sıralamasından bağımsızlığını koruma
  • Çok Katmanlı İşleme: K iterasyon sonunda k-hop komşuluk bilgisini içerme bileşenlerinden oluşur.

Şimdi tekrar odağımıza dönelim. GNN’ler genellikle bu bileşenleri kullanarak verideki istatistiksel korelasyonlara dayanarak öğrenir. Bu, GNN’lerin yüksek eğitim başarımı elde etmesini sağlar ancak öğrenilen ilişkiler çoğu kez nedensel değildir. Özellikle GNN’ler, hedef değişken ile ilgisiz veya non-nedensel grafik bileşenler arasındaki spurious correlations’a dayanma eğilimindedir. Bu karmaşık açıklamayı örneklendirecek olursak; Örnek olarak bir alıntı ağı üzerinde yazarların kurumları hem makalenin bazı önemsiz atıf kalıplarını (bu V değeri olsun), hem de makalenin etki skorunu (Bu da Y değeri olsun) etkileyebilir. bu durumda GNN, kurum bilgisini makale etkisiyle hatalı şekilde ilişkilendirerek korelasyona dayalı bir kural öğrenecektir.

Press enter or click to view image in full size

GNN bu gibi kalıpları nedensel zannedip öğrenirse, eğitim dağılımının dışına çıkıldığında kararsız ve hatalı sonuçlar üretir. Nitekim standart GNN’ler eğitim dağılımında yüksek doğruluk elde ederken, dağılım dışı yani OOD veride performansları aniden düşürebiliyor, çünkü eğitimdeki nedensel olmayan ipuçlarına aşırı uyum sağlıyorlar. İşte bu durum, modelin gerçek sebep-sonuç ilişkilerini yakalayamadığına işaret ediyor.

Peki korelasyonel öğrenmenin sorunları oluşturduğu kısımlara birde bakalım. Korelasyon temelli öğrenmenin nedensellik açısından akla gelen ilk sakıncası, confounding adı verilen olgudan kaynaklanıyor. Bu durum bazı gizli veya kontrol edilmeyen değişkenlerin hem girdi hem çıktıyı etkileyerek aralarında sahte bir ilişki oluşturmasıyla oluşuyor.

Press enter or click to view image in full size
Source: https://www.nature.com/articles/s41467-020-19784-9

İşte GNN’lerde bu durumda etkiyi karıştırıcı değişkene değil, gözlemlenebilir korelasyona dayandırıyor. İyi bir örnekle açıklayacak olursak; yoğun alkol içenlerde sararmış gözler ve karaciğer yetmezliği arasında pozitif bir korelasyon vardır; ancak gözlerin kızarması (Sararmış gözlerin değişikliğe uğraması, dışarıdan müdahale) karaciğer yetmezliği riskini artırmaz yada azaltmaz. Yada “Dondurma satışı arttığında boğulma vakaları artıyor” gibi yanlış çıkarımlar yapar. Aslında gerçek neden, her ikisinin de yaz mevsiminde artıyor olmasıdır. İşte bu ayrım, GNN gibi korelasyon öğrenen modeller için kritiktir, çünkü bu modeller kurduğu ilişkileri öğrenir, ancak gerçek nedensel etkiyi anlamazlar. Bu sebeple GNN’lerin yalnızca korelasyona odaklanması, müdahaleler veya dağılım değişimleri karşısında yetersizliğe yol açar.

Nedensel modelleme, bu sorunları çözmek için istatistiksel araçlar sunar. Structural Causal Model yani SCM, değişkenler arası ilişkileri bir yönlü grafik üzerinde tanımlayarak her ilişkinin nedensel doğasını kodlar.

İşte burda Judea Pearl’ün geliştirdiği do-operatörü devreye girer. Do-operatörü (do(X)) nedensel çıkarım teorisinde intervention kavramını matematiksel olarak ifade etmek için geliştirilmiştir.

Gözlemsel Tahmin: P(Y|X) — “X gözlemlendiğinde Y’nin olasılığı” — korelasyon

Müdahale Tahmini: P(Y|do(X)) — “X’e müdahale edildiğinde Y’nin olasılığı” — nedensellik

do(X) operatörü, aynı örneğimizdeki gibi, bir değişkene dışarıdan müdahale edildiğinde sistemin nasıl davranacağını modellemeyi sağlar. Peki neden Do-Operatörüne ihtiyacımız var? sorusunu değerlendirecek olursak ilk olarak Simpson Paradoksu örneğini bi incelemeliyiz.

1951'de Edward Simpson tarafından formalize edilen Simpson Paradoksu, bir veri setindeki trend veya ilişkinin, veri alt gruplara ayrıldığında tersine dönmesi durumudur.

Temel Prensip:

  • Toplu veride A > B görünür
  • Alt gruplarda B > A görünür

Aslında bu matematiksel bir paradoks değil, nedensel yorumlama hatasıdır.

Klasik Örnek: Berkeley Üniversitesi Cinsiyet Ayrımcılığı Davası (1973)

Toplu Veri;

Toplam Başvurular:
- Erkek: 8,442 başvuru → 3,714 kabul (%44)
- Kadın: 4,321 başvuru → 1,512 kabul (%35)

İlk Bakış: "Üniversite kadınlara karşı ayrımcılık yapıyor!"

Bölümlere Göre Ayrılmış Veri;

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Berkeley verileri (gerçek verilerden basitleştirilmiş)
data = {
'Bölüm': ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F'],
'Cinsiyet': ['Erkek', 'Kadın'] * 6,
'Başvuru': [825, 108, 560, 25, 325, 593, 417, 375, 191, 393, 373, 341],
'Kabul': [512, 89, 353, 17, 120, 202, 138, 131, 53, 94, 22, 24],
'Kabul_Oranı': [0.62, 0.82, 0.63, 0.68, 0.37, 0.34, 0.33, 0.35, 0.28, 0.24, 0.06, 0.07]
}

df = pd.DataFrame(data)

# Görselleştirme
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(15, 6))

# Bölümlere göre kabul oranları
dept_data = df.pivot(index='Bölüm', columns='Cinsiyet', values='Kabul_Oranı')
dept_data.plot(kind='bar', ax=ax1)
ax1.set_title('Bölümlere Göre Kabul Oranları')
ax1.set_ylabel('Kabul Oranı')
ax1.axhline(y=0.5, color='gray', linestyle='--', alpha=0.5)

# Başvuru dağılımı
apply_data = df.pivot(index='Bölüm', columns='Cinsiyet', values='Başvuru')
apply_data.plot(kind='bar', ax=ax2)
ax2.set_title('Bölümlere Göre Başvuru Sayıları')
ax2.set_ylabel('Başvuru Sayısı')

plt.tight_layout()
plt.show()

Paradoksun Açıklaması;

Gerçek Durum:
1. Kadınlar zor bölümlere (düşük kabul oranlı) daha çok başvuruyor
2. Erkekler kolay bölümlere (yüksek kabul oranlı) daha çok başvuruyor
3. Her bölümde kadınların kabul oranı erkeklerden yüksek veya eşit
4. Ama toplamda kadınların kabul oranı düşük görünüyor!

Bu paradoksu matematiksel formülasyonla incelediğimizde;

# Simpson Paradoksu'nun matematiksel gösterimi
import numpy as np

# İki hastane örneği
def simpson_example():
# Hastane A (Küçük, basit vakalar)
erkek_A = {'tedavi': 80, 'iyileşen': 70} # %87.5
kadin_A = {'tedavi': 20, 'iyileşen': 19} # %95

# Hastane B (Büyük, karmaşık vakalar)
erkek_B = {'tedavi': 20, 'iyileşen': 10} # %50
kadin_B = {'tedavi': 80, 'iyileşen': 45} # %56.25

# Toplam
erkek_toplam = 80 # 80/100 = %80 iyileşme
kadin_toplam = 64 # 64/100 = %64 iyileşme

print("Hastane A: Kadın (%95) > Erkek (%87.5)")
print("Hastane B: Kadın (%56.25) > Erkek (%50)")
print("TOPLAM: Erkek (%80) > Kadın (%64) - PARADOKS!")

return {
'hastane_A': {'erkek': 0.875, 'kadin': 0.95},
'hastane_B': {'erkek': 0.50, 'kadin': 0.5625},
'toplam': {'erkek': 0.80, 'kadin': 0.64}
}

results = simpson_example()

Bu durumda paradoks şu koşulda oluşur;

a1/b1 < c1/d1  ve  a2/b2 < c2/d2
AMA
(a1+a2)/(b1+b2) > (c1+c2)/(d1+d2)

Peki nedensel bir diyagramda işlediğimizde bu paradoks nasıl ele alınır ona bakalım;

# Nedensel model görselleştirme
import networkx as nx
import matplotlib.pyplot as plt

def draw_causal_diagram():
G = nx.DiGraph()

# Düğümler
nodes = ['Cinsiyet', 'Bölüm Seçimi', 'Kabul', 'Bölüm Zorluğu']
G.add_nodes_from(nodes)

# Kenarlar (nedensel ilişkiler)
edges = [
('Cinsiyet', 'Bölüm Seçimi'),
('Bölüm Seçimi', 'Kabul'),
('Bölüm Zorluğu', 'Kabul'),
('Bölüm Zorluğu', 'Bölüm Seçimi')
]
G.add_edges_from(edges)

pos = {
'Cinsiyet': (0, 1),
'Bölüm Seçimi': (1, 1),
'Kabul': (2, 0),
'Bölüm Zorluğu': (1, 0)
}

plt.figure(figsize=(10, 6))
nx.draw(G, pos, with_labels=True, node_color='lightblue',
node_size=3000, font_size=10, font_weight='bold',
arrows=True, arrowsize=20, edge_color='gray')

plt.title('Berkeley Örneği Nedensel Diyagram')
plt.axis('off')
plt.show()

draw_causal_diagram()

Tam da bu yüzden Simpson Paradoksu, istatistiksel analizin sadece sayılarla olmadığını, nedensel mantıkla yapılması gerektiğini gösteren çok güzel örneklerden biridir. Bu tarz örnekler bize, veri biliminde nedensel düşünmenin önemini ve Judea Pearl’ün do-operatörü gibi araçlarında neden kritik olduğunu gösterir.

Press enter or click to view image in full size

Do-operatörüne geri dönecek olursak; Do-Calculus kurallarına bir göz atalım; Judea Pearl, do-operatörlü ifadeleri gözlemsel verilere dönüştürmek için 3 temel kural geliştirmiştir;

Kural 1 — Insertion/Deletion; Eğer Y, Z’den X ve W verildiğinde bağımsızsa

P(Y|do(X), Z, W) = P(Y|do(X), W)

Kural 2 — Action/Observation Exchange; Eğer Y, Z’den X ve W verildiğinde bağımsızsa

P(Y|do(X), do(Z), W) = P(Y|do(X), Z, W)

Kural 3 — Insertion/Deletion (Different form); Özel koşullar altında

P(Y|do(X), do(Z), W) = P(Y|do(X), W)

Örnek bir Do-Operatörü Simülasyonu;

import numpy as np
import pandas as pd

class CausalModel:
def __init__(self):
self.n = 10000

def generate_observational_data(self):
# Karıştırıcı faktör: Sosyoekonomik durum
socioeconomic = np.random.normal(0, 1, self.n)

# Eğitim seviyesi (sosyoekonomik durumdan etkilenir)
education = 0.7 * socioeconomic + np.random.normal(0, 0.5, self.n)

# Gelir (hem eğitim hem sosyoekonomik durumdan etkilenir)
income = 0.5 * education + 0.5 * socioeconomic + np.random.normal(0, 0.3, self.n)

return pd.DataFrame({
'socioeconomic': socioeconomic,
'education': education,
'income': income
})

def observational_effect(self, data):
# P(income|education)
high_edu = data[data['education'] > data['education'].median()]
low_edu = data[data['education'] <= data['education'].median()]

effect = high_edu['income'].mean() - low_edu['income'].mean()
return effect

def causal_effect_do_operator(self, data):
# P(income|do(education))
# Backdoor adjustment ile

# Sosyoekonomik duruma göre katmanla
effects = []
for ses_level in np.percentile(data['socioeconomic'], [25, 50, 75]):
subset = data[np.abs(data['socioeconomic'] - ses_level) < 0.5]

high_edu = subset[subset['education'] > subset['education'].median()]
low_edu = subset[subset['education'] <= subset['education'].median()]

effect = high_edu['income'].mean() - low_edu['income'].mean()
effects.append(effect)

# Ağırlıklı ortalama
return np.mean(effects)

# Simülasyon
model = CausalModel()
data = model.generate_observational_data()

obs_effect = model.observational_effect(data)
causal_effect = model.causal_effect_do_operator(data)

print(f"Gözlemsel Etki P(Y|X): {obs_effect:.3f}")
print(f"Nedensel Etki P(Y|do(X)): {causal_effect:.3f}")
print(f"Karıştırıcı Faktör Etkisi: {obs_effect - causal_effect:.3f}")

Gördüğümüz üzere Do-operatörü nedensel çıkarımın matematiksel temelini oluşturur. Ayrıca “müdahale” kavramını kesin bir şekilde tanımlar ve varlığı sayesinde:

  • Korelasyon ve nedensellik arasındaki fark netleşir,
  • Karıştırıcı faktörlerin etkisi izole edilebilir,
  • Politika kararları için güvenilir tahminler yapılabilir,
  • Bilimsel deneylerin sonuçları teorik olarak öngörülebilir.

Peki GNN’ler tek başına causal reasoning olmadığında hangi caselerde hatalı kararlar alır birde ona bakalım.

OOD yani Dağılım dışı genelleme probleminde, GNN’lerin eğitim verisindeki yanıltıcı ipuçlarına aşırı uyum sağlaması bu konuda önemli bir örnek. Örneğin, OGB molekül verisetlerinde model eğitimi rastgele değil de moleküler iskelet tipine göre ayrıştırılarak yapıldığında, klasik GNN’lerin performansı ciddi oranda düştüğü referanslarda belirttiğim birçok akademik makalede belirtilmiştir. Bunun sebebi, modelin eğitim sırasında sık görülen iskelet türlerini ilaca etki eden bir faktör sanmasıdır. Anack bu sanrısı testte yeni iskeletlerle karşılaşınca bu yersiz korelasyonun fayda sağlamadığı görülür.

Press enter or click to view image in full size

GNN x Causal Reasoning hibrit yaklaşımının önemini şu şekilde maddeleyebiliriz;

  • GNN’lerin korelasyon temelli kapasitesi nedensel mekanizmaları öğrenmede yetersiz kaldığından dolayı dağılım değişince, müdahalelerde veya beklentimiz dışı senaryolarda hatalara yol oluşuyor.
  • Nedensel modelleme, SCM ve do-operatörü aracılığıyla confounder etkilerini elemine ederek gerçek sebep-sonuç ilişkilerini izole eder. Bu sayede GNN’nin öğrenemediği şeyleri, mesela hangi komşu özelliğin gerçekten sonuca etki ettiği gibi durumları modelleyerek eksikleri kapatır.
  • Yani hibrit yaklaşım, GNN’lerin güvenilirliğini artırmak için nedensel bakış açısıyla korelasyonları filtreleyip invariant ilişkileri öğrenmesine olanak tanır. Bu sayede daha sağlam, genellenebilir ve anlaşılabilir yapay öğrenme sistemleri oluşturulur.

Günlük hayat faydalarınada baktığımızda; ilaç-etki mekanizmalarının anlaşılması için nedensel GNN’lerin oldukça kullanıldığını görürüz. Örneğin, bir ilacın bir hastalık üzerindeki etkisini değerlendirirken sadece korelasyon yeterli olmayabilir; altta yatan biyolojik nedenler başka faktörler confounder rolü oynayabilir. Anacak, Yapısal Nedensel Modeller bu tür karmaşık senaryoları açıklamak için oldukça iyidir. Nitekim aşağıda referans belirttiğim makalede, Xia ve arkadaşlarının çalışması Nöral Nedensel Model adını verdikleri bir SCM türünü sinir ağlarıyla entegre ederek kombine tedavi etkilerinin öngörüsünde yeni bir yaklaşım ortaya koyduklarını gösteriyor.

Bu yüzden ilaç keşfi ve biyomedikal alanda hibrit modelleri değerlendirdiğimizde;

  • Daha doğru etki analizler yapıldığını; Nedensel GNN’lerin, hangi moleküler veya biyolojik etkileşimlerin gerçekten sonuç üzerinde etkili olduğunu belirlediğini ve ilaç adaylarının başarısını daha doğru öngördüğünü görürüz. Bu da klinik deneylerin daha başarılı sonuçlanmasını sağlar.
  • Yan etki ve güvenlik açısından; Bir ilacın potansiyel yan etkilerini graf ağlar üzerinde nedensel bağlantılarla analiz eden modeller sayesinde hangi hedeflerle etkileşimin istenmeyen sonuç doğuracağını öngörebiliriz.

Hibrit modellerin gerekliliğine baktığımızda ise;

İlk olarak birbirini tamamlayıcı ilişkiler oluşturarak doğru mahakemeye destek olduğunu görebiliriz.

GNN: "Ne ile ne bağlantılı?" → Yapısal ilişkiler
Causal Reasoning: "Ne neyi etkiliyor?" → Nedensel ilişkiler
Hibrit: "Hangi bağlantılar nedensel ve nasıl etkiliyor?"

Diğer kısım ise hata kabul etmeyen alanlarda daha iyi muhakemet için gerçekten ihtiyaç doğmasıdır. Örneğin kritik kullanım senaryolarına baktığımızda;

Sağlık ve Tıp’ta ihtiyaç;

  • Tedavi etkilerinin kişiselleştirilmesi
  • Yan etkilerin öngörülmesi
  • Hastalık yayılım dinamiklerinin tespit edilmesidir.

Örneğin;

# COVID-19 müdahale stratejisi
def optimize_intervention(city_network, resources):
# GNN: Şehirler arası bağlantıları analiz et
connectivity = gnn.analyze_network(city_network)

# Causal: Müdahale etkilerini hesapla
intervention_effects = causal.compute_do_calculus(
intervention="lockdown",
target_cities=high_risk_cities
)

# Optimal strateji
return minimize_spread_with_minimal_economic_impact()

Finansal Risk Yönetiminde ihtiyaç;

  • Sistemik risklerin anlaşılması
  • Domino etkilerinin öngörülmesi
  • Müdahale noktalarının belirlenmesidir.

Sosyal Medya ve Dezenformasyonda ise ihtiyaç;

  • Yanlış bilgi yayılım mekanizmaları
  • Etkili müdahale stratejileri
  • Yan etkileri minimize etmektir.

Okuduğunuz için teşekkür ederim.

Referanslar;

--

--

Alican Kiraz
Alican Kiraz

Written by Alican Kiraz

Sr. Staff Security Engineer @Trendyol | CSIE | CSAE | CCISO | CASP+ | OSCP | eCIR | CPENT | eWPTXv2 | eCDFP | eCTHPv2 | OSWP | CEH Master | Pentest+ | CySA+

No responses yet