Explainable-AI-in-Financial-Fraud-and-Anomaly-Detection
金融欺诈与异常检测的可解释 AI 方法库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
金融欺诈与异常检测的可解释 AI 方法库
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
凌晨两点,某银行反欺诈部门的值班人员接到系统告警:一位客户在过去五分钟内连续发起三笔大额转账,金额分别是 1.2 万、3.8 万和 8.5 万元。三笔交易分别通过了传统规则引擎,但风控主管知道——这类"渐进式试探"恰恰是欺诈者最常用的手法:先用小笔交易试探银行风控阈值,再逐级放大金额。
真正的问题来了:传统规则引擎只能告诉值班人员"这笔交易触发了阈值X",却无法解释为什么模型认为这三笔交易之间存在关联,更无法告诉风控团队:哪笔交易才是最可疑的起点?
这个困境,恰恰是可解释AI(Explainable AI, XAI)要在金融风控领域解决的核心问题——不只是"判断对错",更要"说清楚为什么"。
传统的机器学习风控模型(如梯度提升树、随机森林)虽然准确率不错,但在金融监管场景中存在一个致命缺陷:黑盒性。巴塞尔协议III、欧盟的AI法案以及各国的金融监管指引,都要求涉及高风险决策的AI系统必须具备可解释性——监管机构不仅要看到模型说"这笔交易有问题",还要看到模型给出了怎样的判断依据。
Graph Neural Networks(GNN,图神经网络)的出现,给这个问题带来了新的解决思路:金融交易天然具有图结构——账户与账户之间通过转账行为形成边,客户与商户之间通过消费行为形成连接。这种结构化数据比单纯的交易金额序列更能捕捉欺诈行为的本质特征。而 SHAP(SHapley Additive exPlanations)等事后可解释性方法,则为这些复杂模型的决策提供了"通俗易懂"的解释。
本项目正是在这一背景下诞生的——它将 GNN、自动编码器(Autoencoder)和 SHAP 三种技术融合,构建了一个端到端可解释的欺诈检测管道。
本项目的技术架构可以类比为一座三级安检站:
第一级:表格基线模型(Tabular Baseline)
这是整个管道的"守门人"。项目使用 scikit-learn 的 GradientBoostingClassifier 作为基线,配合 isotonic calibration(保序校正)将模型输出的原始概率校准为更符合真实分布的概率值。配置文件中将 use_gnn 设为 true 时,这部分作为 ensemble 的一员贡献约 70% 的权重。
第二级:自动编码器(Autoencoder)
这一级代表了一种无监督异常检测的思路。TabularAE(表格自动编码器)学习正常交易模式的重建误差:当输入数据"重建"后与原始数据差异过大时,说明这笔交易偏离了正常模式。实验结果显示,在 tabular ensemble 中 AUC 达到 0.88,F1 为 0.80。
值得注意的是,自动编码器的异常分数在 ensemble 中被归一化到 [0,1] 区间,与基线模型的校正概率按 0.7:0.3 的比例加权融合——这种混合策略的优势在于:监督学习捕捉已知的欺诈模式,无监督学习则能发现训练集中从未出现过的"零日攻击"。
第三级:图神经网络(GNN)
这是项目最具技术含量的部分。项目实现了 SimpleGCN,使用 GCNConv(Graph Convolutional Network)进行图卷积,并引入 EdgeReadout 模块直接对交易边(edge)进行二分类——判断"这条交易边是否可疑"。
图结构的核心优势在于:欺诈者可以伪造单笔交易,但很难伪造整个交易关系网络。例如,一个刷单团伙的账户之间往往存在密集的资金流转关系,这种结构特征在 GNN 中天然被编码为节点和边的特征。
GNN 的实验结果(F1 0.78)虽然略低于 tabular ensemble,但两者捕捉的是不同维度的信号,在 ensemble 中形成互补。
SHAP 特征重要性分析:对于 tabular 模型,项目使用 shap.Explainer 进行 permutation SHAP 分析,返回每个特征的平均绝对 SHAP 值。实验结果显示,amount(交易金额)、time_gap(时间间隔) 和 merchant_type(商户类型) 是排名前三的欺诈判断依据——这与风控专家的直觉高度一致。
GNNExplainer-like 边重要性:对于 GNN 模型,项目实现了类似 GNNExplainer 的梯度方法,计算每条边对最终分类结果的贡献程度。论文指出,边重要性会聚集在高交易方差的"hub"节点周围——这意味着那些频繁与其他账户发生交易的"中介账户",往往是最可疑的。
PSI 漂移检测:项目还引入了 Population Stability Index(PSI)来追踪数据分布漂移——当模型训练数据和当前数据分布出现显著偏差时,系统会自动告警,提示风控团队重新训练模型。
从部署角度看,这是一个典型的学术研究型项目。项目未提供 Dockerfile 或 docker-compose,依赖管理通过 requirements.txt 完成。最值得注意的依赖是 torch-geometric,它需要根据本地的 CUDA 版本选择对应的 wheel——在 GPU 不可用的情况下,可以将配置文件中 use_gnn 设为 false,仅运行 tabular + autoencoder 部分。
安装与运行的核心步骤:
pip install -r requirements.txt
python -m src.experiments.main --config configs/default_config.json
python -m src.experiments.evaluate --artifacts results/run_000
所有配置、超参数和随机种子都集中管理在 configs/default_config.json 中,确保实验可复现。运行结果(混淆矩阵、特征重要性图、可解释性图)保存在 results/run_xxx 目录下。
整体部署难度评为中等:主要门槛在于 PyTorch Geometric 的 CUDA 依赖处理,适合有一定 Python 环境经验的用户。
客观来说,这个项目存在一些值得关注的局限:
数据规模问题:实验基于合成数据(synthetic data)进行,论文中报告的 GNN F1 为 0.78,虽然看起来不错,但项目明确标注这是在"小规模合成数据"上得到的。合成数据往往无法完全复现真实金融欺诈的长尾分布特性。
缺乏真实场景验证:项目没有公开在真实金融数据集(如 IEEE-CIS 欺诈检测数据集)上的评测结果,也缺少与业界基准的对比。
测试覆盖薄弱:项目测试文件 tests/test_shapes.py 仅包含一条 assert 2 + 2 == 4 的占位测试,生产级项目应有的单元测试、集成测试均为空白。
License 缺失:项目未声明开源 License,在商业场景中使用需要注意合规风险。
尽管存在局限,这个项目在方法论层面具有代表性价值。它展示了一种将"高性能黑盒模型"与"事后可解释性"结合的工程路径:先用 GNN/自动编码器捕获复杂模式,再用 SHAP/边重要性提供监管友好的解释。
从行业趋势看,欧盟 AI 法案(EU AI Act)已将高风险 AI 系统(包括信贷评估、保险定价、欺诈检测)纳入严格监管,要求提供人类可理解的决策说明。这类混合可解释管道正在成为金融 AI 合规的事实标准。
对于风控工程师和 AI 研究者,这个项目提供了一个可操作的参考实现——特别是当你想在本地验证 GNN 在欺诈检测中的实际效果、又需要向合规团队提供可解释性报告时,本项目的 ensemble + SHAP 组合值得借鉴。