Your GNN is probably just an overcomplicated MLP (Tabular Leakage). We built SynthFin-AML to enforce strict causal boundaries. [P]
热度趋势
趋势数据积累中
百分比基于当前可用热度信号,而非评论数或独立用户人数。
We noticed our anti-money laundering models were performing suspiciously well. After digging into standard baselines on dynamic graphs, we found widespread temporal leakage in message-passing. If you train a GNN on a static snapshot of a dynamic graph, your model is likely cheating by seeing future edges during training.
We got sick of reviewing papers with broken evals, so we released SynthFin-AML v10.0 (100k nodes, 1.2M edges) to force strict causal boundaries.
The Temporal Leakage Trap Standard transductive random splits fundamentally fail on financial transaction networks because they violate the arrow of time. If Node A sends funds to B on Day 2, and B to C on Day 10, a standard 2-hop GNN will pull the Day 10 edge into the loss calculation for Day 2. The model literally looks into the future to compute embeddings.
The Fix: 3-Snapshot Architecture To stop the model from cheating by looking ahead at the transaction graph, we enforced a strict 3-snapshot point-in-time split:
- Train Graph (Edges ≤≤ Day 7)
- Val Graph (Edges ≤≤ Day 8)
- Test Graph (Edges ≤≤ Day 10)
By physically disjointing the temporal windows, we bound the receptive field of the GNN to the true causal horizon.
Graph vs Tabular Reality Check Most synthetic datasets suffer from distribution leakage, where fraud transaction amounts are statistically separable from normal retail traffic. We killed the "amount split cheat" by ensuring fraud and retail transaction amounts share the exact same lognormal distribution (μ=8.517,σ=0.8 μ =8.517, σ =0.8).
With tabular leakage fixed, we benchmarked a tuned LightGBM against GraphSAGE to see if the GNN overhead actually pays off for AML. We engineered 11 point-in-time graph features (Weighted PageRank, neighbor volume aggregates) for the tree model.
Results (PR-AUC on strict temporal split):
- LightGBM (11 features): 0.848
- GraphSAGE (Inductive): 0.881
Spoiler: GraphSAGE barely beats trees here unless your edge features are incredibly dense. The gap isn't astronomical, but it’s a real, mathematically sound leap—not a leakage artifact.
To establish this as a stricter evaluation standard for dynamic graphs, we’ve submitted the benchmark upstream to PyTorch Geometric.
Curious if anyone else is getting GNNs to scale on tabular financial data without OOMing or if you have seen similar temporal leakage issues in other graph domains.
Repo: https://github.com/valiyevoktay-cmd/synthfin-aml- PyTorch Geometric PR: #10774