Graph Neural Networks (GNNs) sind eine spezialisierte Klasse von neuronalen Netzen, die speziell für graph-strukturierte Daten entwickelt wurden. Im Gegensatz zu klassischen neuronalen Netzen (die meist mit Bildern als Grids oder Text als Sequenzen arbeiten), können GNNs die Beziehungen zwischen Entitäten (Knoten) und deren Verbindungen (Kanten) direkt nutzen und lernen.
Was ist ein Graph überhaupt?
Ein Graph G = (V, E) besteht aus:
- Knoten (Vertices / Nodes) V – das sind die Entitäten (z. B. Personen in einem sozialen Netzwerk, Atome in einem Molekül, Nutzer in einem Empfehlungssystem).
- Kanten (Edges) E – die Verbindungen zwischen Knoten (z. B. Freundschaft, chemische Bindung, Kauf von Produkt A und B).
Zusätzlich können Knoten und Kanten Features haben:
- Knoten-Features: z. B. Alter, Interessen, Atomtyp
- Kanten-Features: z. B. Stärke der Freundschaft, Bindungsart
- Manchmal gibt es auch einen globalen Kontext (ganzer Graph)
Graphen sind nicht-euklidisch strukturiert: Die Anzahl der Nachbarn pro Knoten variiert stark (heterogen), es gibt keine feste Gitterstruktur wie bei Bildern → klassische CNNs oder RNNs funktionieren hier nicht direkt.
Warum brauchen wir Graph Neural Networks?
Normale neuronale Netze erwarten feste Eingabedimensionen und behandeln Daten als unabhängig. Bei Graphen ist aber genau die Struktur (Wer ist mit wem verbunden?) der wichtigste Informationsträger. GNNs lösen drei Kernprobleme:
- Variable Größe und Topologie – Graphen können beliebig groß und unterschiedlich verbunden sein.
- Permutationsinvarianz – Die Reihenfolge der Knoten darf keine Rolle spielen (Knoten sind nicht geordnet).
- Nachbarschaftsabhängigkeit – Information muss über Kanten fließen können.
Das Kernprinzip: Message Passing (Nachrichtenweitergabe)
Fast alle modernen GNNs basieren auf dem Message-Passing-Paradigma (Gilmer et al. 2017, Graph Nets von Battaglia et al.):
Jeder Knoten aktualisiert seine eigene Repräsentation (Embedding) in mehreren Schichten, indem er Nachrichten von seinen direkten Nachbarn sammelt.
Eine typische GNN-Schicht läuft so ab (pro Knoten v):
- Message-Funktion: Jeder Nachbar u schickt eine Nachricht an v
message_{u→v} = f_msg ( h_u^{(l-1)}, h_v^{(l-1)}, e_{uv} )
(h = Knoten-Embedding der vorherigen Schicht, e = Kanten-Feature) - Aggregation: v sammelt alle eingehenden Nachrichten (wichtig: permutationsinvariant!)
m_v^{(l)} = AGGREGATE( { message_{u→v} | u ∈ Nachbarn(v) } )
Häufige Aggregatoren:
- Summe
- Mean
- Max
- Attention (gewichtete Summe)
- Update-Funktion: v aktualisiert sein eigenes Embedding mit der aggregierten Nachricht
h_v^{(l)} = UPDATE( h_v^{(l-1)}, m_v^{(l)} )
Oft ein MLP (Multi-Layer Perceptron) + Residual-Verbindung oder Gate.
Nach K Schichten hat jeder Knoten Information aus seiner K-Hop-Nachbarschaft (K = Reichweite) integriert – ähnlich wie Rezeptivfelder bei CNNs.
Wichtige GNN-Architekturen (Übersicht)
| Architektur | Jahr | Kernidee | Aggregation | Stärken / Typische Anwendung |
|---|---|---|---|---|
| GCN (Kipf & Welling) | 2017 | Spektrale Graph-Convolution (normalisiert) | Mean (normalisiert) | Einfach, sehr populär, Semi-supervised Node Classification |
| GraphSAGE | 2017 | Sampling + Aggregation | Mean / LSTM / Pooling | Skalierbar auf sehr große Graphen |
| GAT (Velickovic et al.) | 2018 | Self-Attention auf Nachbarn | Attention-gewichtete Summe | Besser bei heterogenen Nachbarschaften |
| GIN (Xu et al.) | 2019 | Isomorphie-starke Aggregation | Summe + MLP | Sehr expressiv für Graph-Klassifikation |
| Graph Transformer | ~2020+ | Transformer-ähnliche Attention | Multi-Head Attention | Oft state-of-the-art, aber rechenintensiv |
| Message Passing NN (MPNN) | 2017 | Allgemeines Framework | Beliebig | Fast alle GNNs sind MPNN-Varianten |
Typische Aufgaben, die GNNs lösen
- Node Classification
→ Welche Klasse hat ein Knoten? (z. B. Benutzer-Interessen vorhersagen, Protein-Funktion) - Link Prediction
→ Gibt es eine Kante zwischen zwei Knoten? (z. B. Freundschaft vorhersagen, Wirkstoff-Interaktion) - Graph Classification
→ Welche Klasse hat der gesamte Graph? (z. B. Molekül ist toxisch/nicht-toxisch, Social-Media-Community-Typ) - Graph Regression
→ Vorhersage einer kontinuierlichen Eigenschaft (z. B. Löslichkeit eines Moleküls) - Graph Generation / Molecular Design
→ Neue Graphen erzeugen (z. B. neue Medikamente)
Praktische Beispiele (Stand 2026)
- Soziale Netzwerke → Empfehlungen, Fake-Account-Erkennung, Community-Detection
- Empfehlungssysteme → Pinterest, Alibaba, Amazon (Items + User als bipartiter Graph)
- Bioinformatik / Chemie → Molekül-Eigenschaften vorhersagen (DeepMind, Chemformer, MolCLR), Protein-Strukturvorhersage (AlphaFold nutzt graph-ähnliche Ideen)
- Finanzbetrug → Transaktionsnetzwerke analysieren (Kollusion, Money Laundering)
- Wissensgraphen → Frage-Antwort-Systeme, Semantic Search (Google Knowledge Graph + GNNs)
- Physik-Simulationen → Partikel-Interaktionen als Graph modellieren
- Verkehrsnetze → Stauvorhersage, Routenoptimierung
Herausforderungen & aktuelle Entwicklungen (2026)
- Over-smoothing → Zu viele Schichten → Knoten-Embeddings werden zu ähnlich
- Skalierbarkeit → Milliarden-Knoten-Graphen (GraphSAGE, Cluster-GCN, Sampling-Methoden)
- Heterogene Graphen → Verschiedene Knoten- und Kantentypen (R-GCN, HetGNN)
- Graph Transformers → Oft besser als klassische GNNs, aber quadratische Komplexität
- Explainable GNNs → GNNExplainer, PGExplainer, SubgraphX
- Graph Foundation Models → Große vortrainierte Modelle auf riesigen Graphen (ähnlich LLMs)
Kurzfassung – Warum GNNs wichtig sind
GNNs bringen die Kraft von Deep Learning in die Welt der Beziehungen. Wo immer Daten nicht unabhängig sind, sondern vernetzt (und das ist in der realen Welt fast immer der Fall), sind GNNs oft die beste Wahl. Sie sind eines der aktivsten Forschungsgebiete in ML und treiben Fortschritte in Chemie, Biologie, Empfehlungssystemen, Sicherheit und wissenschaftlicher Entdeckung voran.
