Architektura i Eksperymenty
Ostatnia aktualizacja: 2026-05-27
Architektura systemu
Opis ogólny
System detekcji fraudu na grafach transakcyjnych oparty na GNN, z rozszerzeniem o wykrywanie adversarial attacks (structure + feature perturbations). Główny wkład techniczny: rozszerzenie EDoG na feature attacks (EDoG-Combined), systematyczny red team 6 adaptive attack strategies oraz uczciwy benchmark prostszych GNN (GraphSAGE/GAT) vs złożonego GAAP.
Komponenty główne
| Komponent | Opis | Technologia |
|---|---|---|
| M1 – Graph Builder | Budowanie grafu transakcyjnego z surowych danych | NetworkX, DGL |
| M2 – GNN Classifier | Klasyfikacja węzłów (fraud/legit) na grafie | GraphSAGE, GAT, GCN (PyG) |
| M3 – Structure Anomaly Detector | EDoG: LP + GGD + OD na strukturze grafu | custom, PyTorch |
| M4 – Feature Anomaly Detector (FAD) | Isolation Forest + Autoencoder na cechach węzłów | sklearn, PyTorch |
| M5 – EDoG-Combined | Fuzja M3 + M4: s_final = α·s_structure + β·s_feature | weighted ensemble |
| M6 – Attack Generator | RL-S2V (structure) + gradient perturbation (features) | custom |
Przepływ danych
flowchart TD RAW([Raw transaction data]) --> M1[M1 Graph Builder] M1 --> G([G = V, E, X]) G --> M2[M2 GNN Classifier\nGraphSAGE / GAT / GCN] M2 --> SCORES([Node fraud scores - baseline]) G --> M3[M3 Structure Anomaly\nLP + GGD + OD] G --> M4[M4 Feature Anomaly\nIsolation Forest + Autoencoder] M3 --> s_struct([s_structure]) M4 --> s_feat([s_feature]) s_struct --> M5[M5 EDoG-Combined\ns = α·s_struct + β·s_feat] s_feat --> M5 M5 --> ADV([Adversarial node detection]) M6[M6 Attack Generator\nRL-S2V + gradient] --> GP([Perturbed graph G']) GP --> M5
Stack technologiczny
| Warstwa | Technologia | Uzasadnienie |
|---|---|---|
| Język | Python 3.11+ | standard ML |
| GNN framework | PyTorch Geometric (PyG) | GraphSAGE, GAT, GCN, GAAP |
| Graph analysis | NetworkX, DGL | graph construction, EDoG |
| Adversarial | custom RL-S2V | structure attacks |
| Dane | YelpChi, Amazon, Cora, Citeseer, Elliptic | publiczne benchmark datasety |
| Pomiar / eval | AUC-ROC, AP (Average Precision) | imbalanced fraud datasets |
Eksperymenty
FG-EXP-1: GNN Benchmark — Prostota vs Złożoność na Publicznych Fraud Datasets
Status: planned
Priorytet: high
Powiązany pomysł: FG-1
Dodano: 2026-05-27
Hipoteza: Prosty GraphSAGE osiąga ≥95% AUC modelu GAAP na YelpChi i Amazon datasets, przy 5× mniejszej złożoności obliczeniowej (GFLOPS) — co wskazuje, że złożona agregacja globalna (DyBEM) nie jest konieczna dla standardowych fraud benchmarków.
Dane:
- Dataset: YelpChi (publiczny, 45,954 węzłów, ~6% fraud), Amazon Reviews (publiczny, 11,944 węzłów)
- Podział: te same podziały co GAAP (80/10/10 lub opublikowane standardowe)
- Preprocessing: normalizacja cech węzłów, usunięcie NaN
Metoda:
- Implementacja: GraphSAGE, GAT, GCN, MLP (baseline) w PyG
- Walidacja: odtwórz wyniki GAAP (AUC z paper) na tych samych podziałach
- Uczciwe porównanie: ten sam split, te same metryki, 5 uruchomień z różnymi seedami
- Ablacja: czy global aggregation (DyBEM) naprawdę poprawia wyniki vs standard SAGE?
- Cost-benefit: AUC vs czas trenowania vs GFLOPS per model
Modele / Baseline:
| Model | Opis |
|---|---|
| MLP | bez struktury grafu |
| GCN | Graph Convolutional Networks |
| GraphSAGE | inductive, mini-batch |
| GAT | attention-based |
| GAAP (odtworzenie) | SOTA z Du 2025 |
Metryki:
- Główna: AUC-ROC (próg sukcesu: GraphSAGE ≥95% GAAP AUC)
- Dodatkowe: Average Precision, F1 @0.5 threshold, czas trenowania [s], GFLOPS
- Test statystyczny: Wilcoxon signed-rank (5 seedów, GraphSAGE vs GAAP)
Wyniki: (do wypełnienia po wykonaniu)
| Model | AUC (YelpChi) | AUC (Amazon) | Train time [s] |
|---|
Wnioski: (do wypełnienia po wykonaniu)
FG-EXP-2: EDoG-Combined — Rozszerzenie na Feature Attacks
Status: planned
Priorytet: high
Powiązany pomysł: FG-2
Dodano: 2026-05-27
Hipoteza: EDoG-Combined (struktura + cechy węzłów) osiąga AUC >0.85 na combined attacks (structure + feature perturbations simultaneously) — istotnie wyższy (DeLong test, p<0.05) niż EDoG-original (<0.70 na tych samych atakach) na grafach Cora i Citeseer.
Dane:
- Dataset: Cora (2,708 węzłów, 7 klas), Citeseer (3,327 węzłów), syntetyczne ER/BA graphs
- Podział: standardowy (train/val/test jak w EDoG paper)
- Preprocessing: combined attacks: RL-S2V (structure) + gradient perturbation (cechy, ε=0.05)
Metoda:
- Reprodukcja EDoG-original: Link Predictor (LP) + Graph Generation Detector (GGD) + Outlier Detector (OD)
- Implementacja FAD: Isolation Forest na node features + Autoencoder (z=32)
- EDoG-Combined: s_final = α·s_structure + β·s_feature (grid search α, β)
- Generowanie combined attacks: jednoczesne RL-S2V (dodaj/usuń krawędzie) + gradient feature perturbation
- Ewaluacja: AUC per attack type (structure-only, feature-only, combined)
Modele / Baseline:
| Model | Opis |
|---|---|
| EDoG-original | baseline z Xu 2022 |
| FAD only | Isolation Forest na features |
| EDoG-Combined | LP+GGD+OD+FAD fuzja |
Metryki:
- Główna: AUC na combined attacks (próg sukcesu: >0.85 vs <0.70 baseline)
- Dodatkowe: AUC per attack type, false positive rate na clean grafach
- Test statystyczny: DeLong test (EDoG-Combined vs EDoG-original, α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| Model | AUC (structure-only) | AUC (feature-only) | AUC (combined) |
|---|
Wnioski: (do wypełnienia po wykonaniu)
FG-EXP-3: Red Team EDoG — 6 Adaptive Attack Strategies
Status: planned
Priorytet: high
Powiązany pomysł: FG-3
Dodano: 2026-05-27
Hipoteza: Spośród 6 adaptive attack strategies (A1-A6) przynajmniej 2 nowe strategie (Gradual Injection lub Subgraph Targeting) osiągają wyższy evasion rate niż A1 (Low-Score Targeting, baseline z EDoG paper) — wykazując niezidentyfikowane wektory ataku wymagające nowych defensywnych środków.
Dane:
- Dataset: Cora, Citeseer (publiczne)
- Podział: standardowy
- Preprocessing: każda strategia ataku generuje perturbacje grafu zgodnie z definicją
Metoda:
- A1: Low-Score Targeting — replika z EDoG paper (baseline)
- A2: Gradual Injection — stopniowe wstrzykiwanie krawędzi fraudu (nie jednorazowo)
- A3: Subgraph Targeting — atakuj izolowany subgraf z nieskorelowanymi cechami
- A4: OutlierDetect Evasion — perturbacje minimalizujące outlier score
- A5: Ensemble Confusion — jednoczesny atak na LP + GGD + OD
- A6: Temporal Adaptive — powolne zmiany imitujące naturalną ewolucję grafu
- Pomiar: evasion rate (% fraudu niezidentyfikowanego) per strategia przy budżecie perturbacji B
Modele / Baseline:
| Model | Opis |
|---|---|
| EDoG-original (target) | obrońca |
| A1: Low-Score Targeting | baseline attacker (EDoG paper) |
| A2–A6: novel strategies | nowe strategie atakujące |
Metryki:
- Główna: evasion rate @ B=5% perturbacji (próg: A2 lub A3 > A1 evasion rate)
- Dodatkowe: evasion rate vs budżet (krzywa), czas generowania ataku
- Test statystyczny: paired t-test (nowe strategie vs A1, α=0.05)
Wyniki: (do wypełnienia po wykonaniu)
| Strategia | Evasion rate @B=5% | Evasion rate @B=10% | Czas generowania |
|---|
Wnioski: (do wypełnienia po wykonaniu)
Pipeline danych
Dane wejściowe: publiczne grafy (YelpChi, Amazon, Cora, Citeseer) pobierane przez PyG dataset loaders. Ataki generowane on-the-fly: RL-S2V (PyTorch) dla structure attacks, gradient perturbation (autograd) dla feature attacks. Format wyjściowy: PyG Data objects z perturbowanymi edge_index i x.
Wymagania techniczne
Środowisko
Python: 3.11+
GPU: opcjonalnie ale zalecane dla GNN trenowania
RAM: min. 8 GB
Dysk: ~2 GB (grafowe datasety)
Kluczowe biblioteki
# requirements-research.txt
torch>=2.0
torch-geometric>=2.4
scikit-learn>=1.3
networkx>=3.1
numpy>=1.25
deeprobust>=0.2 # adversarial graph attacks