
Benchmark und Bibliothek zur Bewertung von Model-Extraction-Angriffen und Eigentumsschutzmaßnahmen (Watermarking, Output-Perturbation, Query-Erkennung) auf Graph Neural Networks unter einem einheitlichen Black-Box-Protokoll.
Ein einheitlicher Benchmark und eine Bibliothek zur Bewertung von Model-Extraction-Angriffen und Eigentumsverteidigungen auf Graph Neural Networks unter einem einzigen reproduzierbaren Black-Box-Protokoll.
Warum GraphIP-Bench · Highlights · Schnellstart · Forschungsfragen · Aufbau · Zitation
Graph Neural Networks, die als Cloud-Dienste bereitgestellt werden, können durch Model-Extraction-Angriffe gestohlen werden: Ein Angreifer stellt sorgfältig ausgewählte Anfragen, zeichnet die Labels oder Konfidenzwerte auf, die der Endpunkt zurückgibt, und trainiert einen lokalen Surrogat, der das Verhalten des Ziels nachbildet. Ein erfolgreicher Diebstahl gibt das geistige Eigentum des Eigentümers preis, untergräbt die Erlöse aus der Bezahlung pro Anfrage und ermöglicht es Wettbewerbern, proprietäre Funktionalität kostengünstig nachzubauen.
Eine wachsende Reihe von Eigentumsverteidigungen — Watermarking, Fingerprinting, Output-Perturbation, Erkennung von Abfragemustern — versucht, einen solchen Diebstahl zu verhindern oder nachzuverfolgen. Doch die experimentelle Praxis in diesem Bereich ist fragmentiert: Studien verwenden private Splits, inkompatible Budgets und inkonsistente Metriken; die wenigen existierenden Testbeds konzentrieren sich auf Robustheit oder Privatsphäre und schließen Model Extraction zusammen mit der Eigentumsverifikation aus.
GraphIP-Bench schließt diese Lücke. Es standardisiert die Bewertung zweier komplementärer Tracks — des Extraction-Tracks (ein Angreifer trainiert einen Surrogat, der ein bereitgestelltes GNN nachahmt) und des Ownership-Tracks (der Modelleigentümer verifiziert nach der Extraktion ein Watermark oder Fingerprint) — unter einem einzigen Black-Box-Protokoll mit gemeinsamen Splits, Abfragen und Budgets. Anschließend fügen wir einen gemeinsamen Angriffs- und Verteidigungs-Track hinzu, der jeden Extraction-Angriff auf jedes verteidigte Ziel ausführt und das Überleben des Watermarks auf dem extrahierten Surrogat misst — die Einstellung, die tatsächlich darüber entscheidet, ob eine Verteidigung nützlich ist.
| Komponente | Was sie bietet |
|---|---|
| 12 Angriffe | Sechs MEA-Baselines (MEA0–MEA5), adversarial (AdvMEA), zentralitätsgetrieben (CEGA), strukturbewusst (Realistic) und drei datenfreie Varianten (DFEA_I/II/III) |
| 12 Verteidigungen | 5 eigentumsverfolgende (BackdoorWM, RandomWM, SurviveWM, ImperceptibleWM, Integrity) + 7 informationsbegrenzende (OP_low, OP_high, PR_2bit, PR_top1, PRADA, AdaptMisinfo, GradRedir) |
| 10 Datensätze | Homophile Zitation (Cora, CiteSeer, PubMed), Coautor/Produkt (CoauthorCS, CoauthorPhysics, Computers, Photo), großskalig (OGBN-Arxiv), heterophil (RomanEmpire, AmazonRatings) |
| 3 Backbones × 3 Aufgaben | GCN, GAT, GraphSAGE bei Knotenklassifikation, Linkvorhersage, Graphklassifikation |
| Gemeinsame Spur | Surrogat-Treue und Wasserzeichen-Überleben auf dem extrahierten Surrogat, alles unter einem Protokoll |
| Reproduzierbarkeit | Öffentliche Splits, gemeinsame Query-Sets, feste Seeds, JSON-Lines-Ausgaben, fertige Aggregationsskripte |
Ein Protokoll, zwei SeitenJeder Angriff wird gegen jede Verteidigung unter denselben Splits, Budgets und Endpunktannahmen bewertet. Treue, Eigentumsverifikation, Nutzen und Rechenkosten werden in einer gemeinsamen Metriksuite berichtet. |
Wasserzeichen-Überleben, nicht nur EinbettungDie gemeinsame Spur misst, ob ein Wasserzeichen nach der tatsächlichen Extraktion des Modells noch verifiziert — und legt damit die Lücke offen, die Einzelmodell-Bewertungen übersehen. |
Heterophile & großskalige GraphenÜber die sieben homophilen Graphen des Kernprotokolls hinaus fügen wir OGBN-Arxiv (169K Knoten, 40 Klassen) und die heterophilen RomanEmpire / AmazonRatings hinzu, um das Verhalten von Angriff und Verteidigung einem Stresstest zu unterziehen. |
Konstruktionsbedingt reproduzierbarFeste Seeds, gemeinsame Query-Sets und JSON-Lines-Ausgabedatensätze pro Zelle (Datensatz, Angriff, Verteidigung, Regime, Budget, Seed). Ein Single-Seed-Lauf ist direkt mit der entsprechenden Zelle im Paper vergleichbar. |
| Signal | Umfang im Benchmark |
|---|---|
| Extraktionsangriffe | 12 |
| Eigentums- / informationsbegrenzende Verteidigungen | 12 |
| Graph-Datensätze | 10 |
| GNN-Backbones | 3 (GCN, GAT, GraphSAGE) |
| Graph-Lernaufgaben | 3 (Knoten / Link / Graph) |
| Datenverfügbarkeitsregime | 4 (beides, nur Features, nur Struktur, datenfrei) |
| Standardisierte Query-Budgets | 5 (0,05× — 1,00× Testgröße) |
| Seeds pro Zelle | 3 |
| Bewertungsspuren | 3 (Extraktion, Eigentum, gemeinsam) |
git clone https://github.com/LabRAI/GraphIP-Bench.git
cd GraphIP-Bench
conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt
Führe eine Zelle des Extraktions-Tracks aus:
python scripts/run_rq1_single.py \
--dataset Cora \
--attack MEA0 \
--regime both \
--budget 0.25 \
--seed 0 \
--gpu \
--output-dir outputs/RQ1
Führen Sie die gemeinsame Angriffs- und Verteidigungsstrecke auf einem einzelnen Datensatz aus:
python examples/run_joint_evaluation.py \
--dataset Cora \
--seed 0 \
--gpu
Jeder Lauf schreibt einen JSON-Lines-Datensatz pro (attack, defense, regime, budget, seed)-Tupel nach outputs/. Datensätze können mit den Hilfsprogrammen in scripts/ zusammengeführt und analysiert werden (z. B. merge_rq1_rq5_faithful_results.py).
GraphIP-Bench unterstützt Linux (empfohlen) mit Python 3.10+. Wir pinnen die Versionen von PyTorch / DGL / PyG, da die graphbolt-Kernel von DGL 2.1.0 nur vorgebaute Shared Libraries für PyTorch 2.0–2.2 unter CUDA 12.1 bereitstellen.
conda create -n graphip python=3.11 -y
conda activate graphip
pip install -r requirements.txt