金融服务欺诈是一个巨大的问题。根据 NASDAQ 的数据,在 2023 年,银行在支付、支票和信用卡欺诈方面预计会面临 442 亿美元的损失。不过,这不仅仅与资金有关。欺诈会损害公司的声誉,并在阻止合法购买时让客户失望。这被称为 误报 。遗憾的是,这些错误发生的频率比您想象的要多,因为传统的欺诈检测方法根本跟不上欺诈的复杂性。
本文重点介绍信用卡交易欺诈,这是一种最常见的金融欺诈形式。虽然其他类型的欺诈(例如身份盗用、帐户接管和反洗钱)也值得关注,但信用卡欺诈由于其交易量大、攻击面广,因此构成了一项独特的挑战,使其成为欺诈者的主要目标。据 Nilson 估计,到 2026 年,金融机构每年的信用卡损失预计将达到 430 亿美元。
传统的欺诈检测方法依赖于基于规则的系统或统计方法,在识别复杂的欺诈活动方面反应迟钝,并且效率越来越低。随着数据量的增长和欺诈策略的演变,金融机构需要更主动、更智能的方法来检测和预防欺诈交易。
AI 为分析大量交易数据、识别异常行为和识别出可能存在欺诈的模式提供了必不可少的工具。但是,尽管已经采取措施改进欺诈检测,但仍需要更先进的技术来提高检测准确性、减少误报率,并提高欺诈检测的运营效率。
本文介绍了端到端的 AI 工作流,该工作流使用图形神经网络(GNN)提供灵活、高性能的欺诈检测解决方案。本文还将介绍如何开始使用此欺诈检测工作流构建模型和进行推理。
用于欺诈检测的图形神经网络
传统的机器学习(ML)模型(例如 XGBoost )已广泛应用于欺诈检测,并已证明能够有效识别单个交易中的异常行为。然而,欺诈检测很少是孤立事件的问题。欺诈者在复杂的网络中运作,通常使用帐户和交易之间的连接来隐藏其活动。这是图神经网络(GNNs)发挥作用的地方。
GNN 旨在处理图形结构化数据,因此特别适合在金融服务中进行欺诈检测。想象一下,每个帐户、交易和设备都是网络中的一个节点。GNN 不只是分析单个交易,而是考虑这些节点之间的连接,从而揭示整个网络中的可疑活动模式。
例如,假设一个帐户与已知的欺诈实体有关系,或与其他高风险实体类似,GNNs 可以选择该连接并标记它以进行进一步调查,即使帐户本身看起来正常。
将 GNN 与 XGBoost 相结合,可以兼顾两者的优势:
- 更高的准确性 :GNN 不仅专注于单个事务,还会考虑如何连接一切,从而捕获原本可能无法被检测到的欺诈行为。
- 误报率更低 :随着上下文的增加,GNNs 有助于减少误报,因此合法交易不会被不必要地标记出来。
- 更高的可扩展性 :GNN 模型构建可扩展处理大量网络数据。将 GNN 与 XGBoost 实时欺诈检测 (推理) 结合,即使在大规模情况下也是可行的。
- 可解释性 :将 GNN 与 XGBoost 相结合可提供深度学习的强大功能以及决策树的可解释性。
使用 GNN 的端到端欺诈检测 AI 工作流
NVIDIA 构建了一个端到端的欺诈检测工作流程,将传统的机器学习与图神经网络(GNN)的强大功能相结合。该流程基于标准的 XGBoost 方法,但通过 GNN 嵌入对其进行增强,以显著提高准确性。虽然确切的数字是保密的,但即使是微小的改进(例如 1%)也可以节省数百万美元,从而使 GNN 成为欺诈检测系统的重要组成部分。
一般架构包括两个主要部分:模型构建步骤和推理过程,如图 1 所示。
使用 GNN 和 XGBoost 构建模型
该流程从模型构建阶段开始 ,因为模型需要在上述工作流中 用于推理 ,其中 GNN 用于创建输入到 XGBoost 模型的特征(嵌入)(图 2)。
第 1 步:数据准备
我们通常使用 RAPIDS 等工具来清理和准备传入的交易数据,以提高效率。数据准备和特征工程对模型构建的性能有重大影响。此步骤需要详细了解数据,并且可能需要多次尝试才能获得最佳结果。
创建数据准备脚本后,即可在工作流中实现自动化。应在添加新数据时评估数据准备过程,或随着数据的增长定期评估数据准备过程。此工作流的下一次迭代将利用 NVIDIA RAPIDS Accelerator for Apache Spark 来加速此工作流中的数据处理部分。
第 2 步:图形创建
对于 FSI 中常见的大型数据集,图形创建过程会将准备好的数据转换为 Feature Store (表格数据)和 Graph Store (结构数据)。这可以更好地使用主机和设备内存并实现峰值性能。这两个存储针对 PyG (PyTorch Geometric)和 DGL (Deep Graph Library)等 GNN 框架进行了优化。使用此工作流的主要好处是确保针对选定的 GNN 框架优化存储。
# load the edge data
edge_data = cudf.read_csv(edge_path, header=None,
names=[edge_src_col, edge_dst_col, edge_att_col], dtype=['int32','int32','float'])
# convert to tensors
num_nodes = max(edge_data[edge_src_col].max(), edge_data[ edge_dst_col].max()) + 1
src_tensor = torch.as_tensor(edge_data[edge_src_col], device='cuda')
dst_tensor = torch.as_tensor(edge_data[edge_dst_col], device='cuda')
# save in a GraphStore
graph_store = cugraph_pyg.data.GraphStore()
graph_store[("n", "e", "n"), "coo", False, (num_nodes, num_nodes)] = [src_tensor, dst_tensor]
...
# load the features
feature_data = cudf.read_csv(feature_path)
# convert to tensors
col_tensors = []
for c in feature_columns:
t = torch.as_tensor(feature_data.values, device='cuda')
col_tensors.append(t)
x_feature_tensor = torch.stack(col_tensors).T
feature_store = cugraph_pyg.data.TensorDictFeatureStore()
feature_store["node", "x"] = x_feature_tensor
feature_store["node", "y"] = y_label_tensor
第 3 步:生成 GNN 嵌入
我们不会让 GNN 生成分类,而是将 GNN 的最后一层提取为嵌入。这些 GNN 嵌入将传递给 XGBoost 并创建模型,然后该模型将被保存以供推理使用。
def extract_embeddings(model, loader):
model.eval()
embeddings = []
labels = []
with torch.no_grad():
for batch in loader:
batch_size = batch.batch_size
hidden = model(batch.x[:,:].to(torch.float32), batch.edge_index, return_hidden=True)[:batch_size]
embeddings.append(hidden) # Keep embeddings on GPU
labels.append(batch.y[:batch_size].view(-1).to(torch.long))
embeddings = torch.cat(embeddings, dim=0) # Concatenate embeddings on GPU
labels = torch.cat(labels, dim=0) # Concatenate labels on GPU
return embeddings, labels
... in main code ....
# Define the model
model = GraphSAGE( ....)
for epoch in range(best_params['num_epochs']):
train_loss = train_gnn(model, train_loader, optimizer, criterion)
...
# Extract embeddings from the second-to-last layer and keep them on GPU
embeddings, labels = extract_embeddings(model, train_loader)
通过使用 GPU 加速版本的 GNN 框架(例如 cuGraph-pyg 和 cuGraph-dgl),此工作流可以高效处理具有复杂图形结构的大型数据集。
用于实时欺诈检测的推理
模型经过训练后,可以使用 NVIDIA Triton 推理服务器对其进行实时欺诈检测。NVIDIA Triton 是一个开源的 AI 模型服务平台,可简化和加速 AI 推理工作负载在生产环境中的部署。NVIDIA Triton 帮助企业降低模型服务基础设施的复杂性,缩短在生产环境中部署新 AI 模型所需的时间,并提高 AI 推理和预测能力。
经过训练的模型还可以使用 NVIDIA Morpheus 进行部署。NVIDIA Morpheus 是一个开源网络安全 AI 框架,使开发者能够创建优化的应用程序,用于对大量流数据进行过滤、处理和分类。编排此工作流的 Morpheus Runtime Core(MRC) 可加速大规模数据处理和分析,并通过定期触发构建新模型的过程来帮助推理。
如图 3 所示,推理过程涉及:
- 使用模型构建(即训练)期间使用的相同流程转换原始输入数据。
- 将数据馈送至 GNN 模型,以将事务转换为嵌入。由于 XGBoost 模型是在嵌入上训练的,因此需要执行此操作。
- 将嵌入输入 XGBoost 模型,以预测交易是否欺诈。
# Load GNN model for creating node embeddings
gnn_model = torch.load(gnn_model_path)
gnn_model.eval() # Set the model to evaluation mode
# Load xgboost model for node classification
loaded_bst = xgb.Booster()
loaded_bst.load_model(xgb_model_path)
# Generate node embedding using the GNN model
transaction_embeddings = gnn_model(X.to(device), ....)
# Convert embeddings to cuDF DataFrame
embeddings_cudf = cudf.DataFrame(cp.from_dlpack(to_dlpack(embeddings)))
# Create DMatrix for the test embeddings
dtest = xgb.DMatrix(embeddings_cudf)
# Predict using XGBoost on GPU
preds = bst.predict(dtest)
通过结合 GNN 和 XGBoost,此 AI 工作流可为欺诈检测提供灵活、高性能的解决方案。企业可以自定义 GNN 的配置,并根据其独特需求调整模型构建流程,从而确保系统随着时间的推移保持优化。
使用 AI 工作流增强欺诈检测的生态系统,例如使用 PyTorch、pandas 和 LangChain 等工具来构建和部署 AI 模型。Megatron 和 NVIDIA 的 cuOpt 等技术可以用于优化 AI 算法,而 Stable Diffusion 和 Llama 等模型可以用于检测欺诈行为。同时,Jetson 和 Google 的 Python 库等工具可以用于部署和集成 AI 模型。Hugging Face 的 Transformers 库和 Arm 的 DPU 等技术可以用于优化 AI 模型的性能。Anaconda 的 Python 发行版和 Siemens 的 SIMATIC 等产品可以用于部署和集成 AI 模型。GPU 等硬件设备可以用于加速 AI 计算。例如,Llama 3.1-70B-Instruct 和 Falcon 180B 等模型可以用于检测欺诈行为,Llama-3.1-405b-instruct 等模型可以用于构建和部署 AI 应用程序。
Amazon Web Services (AWS) 是第一家将 这种端到端欺诈检测工作流 与其高度安全的加速计算功能集成的云服务提供商。通过这种简单的工作流集成,构建欺诈检测模型的开发者可以在 Amazon EMR 中使用 NVIDIA RAPIDS 进行数据处理,并利用 Amazon SageMaker 和 Amazon EC2 服务中的 RAPIDS 和 GNN 库进行模型训练。这种集成可以通过 Amazon SageMaker 或 Amazon Elastic Kubernetes Service 端点,使用 NVIDIA Morpheus 和 NVIDIA Triton Inference Server 灵活扩展低延迟和高吞吐量的预测。
随着这些努力的不断发展,此工作流将在整个 NVIDIA 合作伙伴生态系统中提供,供企业和开发者通过 NVIDIA AI Enterprise 进行原型设计并投入生产。
开始使用
随着欺诈策略的发展,传统的检测方法不足以满足需求。将 XGBoost 与 GNN 相结合可提供强大的解决方案,从而提高准确性、减少误报率并改进实时检测。这一 AI 工作流 旨在帮助企业在复杂的欺诈企图面前保持领先,并快速适应新的威胁。
如需详细了解如何使用 GNN 转变欺诈检测方法,请查看 AI 信用卡欺诈工作流程 。您还可以探索 NVIDIA LaunchPad 实验室 Deploy a Fraud Detection XGBoost Model with NVIDIA Triton 以及 AI for Fraud Detection Use Case 。