SynthFin-AML
收藏资源简介:
SynthFin-AML是一个图原生的反洗钱(AML)基准数据集,代表了银行账户之间交易数据的10天合成快照。
SynthFin-AML is a graph-native anti-money laundering (AML) benchmark dataset, representing a 10-day synthetic snapshot of transaction data between bank accounts.
SynthFin-AML 数据集详情
数据集简介
SynthFin-AML 是一个面向反洗钱(AML)场景的图原生基准数据集,模拟了银行账户间10天的合成交易快照。该数据集由 MIT 许可发布,完全合成,不含任何个人身份信息(PII),可安全用于商业和学术用途。
核心统计信息
- 节点数:100,000
- 边数:1,273,403
- 任务类型:传导式节点分类(Transductive Node Classification)
- 目标:基于交易图将节点分类为干净或欺诈实体
数据结构
节点(银行账户)
每个节点包含10个特征(拓扑与聚合特征),所有特征均经过 log1p 变换:
initial_balance(初始余额)out_degree(出度)in_degree(入度)out_volume(转出总额)in_volume(转入总额)out_max_amt(最大转出金额)in_max_amt(最大转入金额)nbr_in_volume(邻居转入总额)nbr_out_volume(邻居转出总额)pagerank(PageRank值)
边(交易)
- 有向金融交易
- 边特征:
amount(交易金额)
类别标签
- 0:干净(Clean)
- 1:欺诈(Fraud)
欺诈比例存在高度类别不平衡,反映了现实金融犯罪的分布特征。
合成泄漏问题与解决方案
现有合成AML数据集常包含分布泄漏,导致表格模型利用基础分布伪影(如原始金额方差)而非识别潜在的金融犯罪类型。SynthFin-AML 通过固定正常与非法活动的基础分布来修正这一问题,并程序化嵌入特定拓扑AML模式(如 Structuring 和 Smurfing)。因此,模型必须学习图结构和交易序列才能正确识别欺诈节点,从而防止表格基线模型的利用。
基准测试结果
评估采用5个随机种子,严格80/20传导式划分:
| 模型 | 模态 | PR-AUC | P@100 |
|---|---|---|---|
| LightGBM | 表格(11个特征含PageRank) | 0.8483 ± 0.0169 | 0.96 |
| PyTorch GraphSAGE | 图 | 0.8817 ± 0.0147 | 0.98 |
GraphSAGE 相比表格基线具有统计显著改进(p=0.000046)。
快速开始 / PyG封装
可通过 PyPI 安装数据集包:
bash pip install synthfin-aml
该包提供 PyTorch Geometric (PyG) 数据集封装,自动从 Hugging Face 下载图数据:
python from synthfin_aml_pkg import SynthFinDataset
初始化数据集,若未缓存则从Hugging Face下载
dataset = SynthFinDataset(root=./data) data = dataset[0]
print(f"Number of nodes: {data.num_nodes}") print(f"Number of edges: {data.num_edges}")
基准测试复现脚本位于仓库中的 examples/reddit_benchmark.py。
相关资源
- 在线实验:提供 Colab 教程笔记本(
examples/benchmark_tutorial.ipynb) - PyPI 包:
synthfin-aml - Hugging Face 数据集:
ovvaliyev/synthfin-aml




