发布于: Oct 30, 2022

在进行了多重准备工作之后,我们就要开始训练神经网络模型了。大家可以使用 Amazon SageMaker Processing 执行数据预处理与特征提取步骤。Amazon SageMaker ProcessingAmazon SageMaker 中的一项功能,允许大家在全托管基础设施之上运行预处理与后处理工作负载。关于更多详细信息,请参阅处理数据与评估模型。

首先,我们需要定义 Amazon SageMaker Processing 作业中使用的容器。此容器中应包含数据预处理脚本所需要的全部依赖项。由于本用例中的数据预处理只需要使用 pandas 库,因此可以使用最小 Dockerfile 实现容器定义。具体请参见以下代码:

大家可以通过输入以下代码实现容器构建,并将构建完成的容器推送至 Amazon Elastic Container Registry (Amazon ECR) 镜像仓库:

当数据预处理容器准备就绪之后,我们可以创建一个 Amazon SageMaker ScriptProcessor,负责使用预处理容器设置处理作业环境。接下来,大家可以使用ScriptProcessor在容器定义的环境中运行负责具体实现数据预处理的 Python 脚本。该 Python 脚本在执行完成并将预处理数据保存回 Amazon S3 之后,处理作业即告结束。整个过程完全由 Amazon SageMaker 负责管理。在运行ScriptProcessor时,我们可以选择将参数传递至数据预处理脚本,借此指定交易表中的哪此列应被视为身份列、哪些列属于分类特征。所有其他列则均被假定为数字特征列。具体请参见以下代码:

以下示例代码,展示了 Amazon SageMaker Processing 作业存储在 Amazon S3 当中的输出结果:

所有关系 edgelist 文件,均表示训练期间用于构造异构图的不同类型的边。Features.csv 中包含交易节点最终转换后的特征,而 tags.csv 中则包含作为训练监督信号的节点标签。Test.csv 中包含TransactionID数据,作为评估模型性能的测试数据集。这些节点标签在训练期间皆被屏蔽以避免对模型预测产生干扰。

现在,我们可以使用 Deep Graph Library (DGL) 创建图并定义 GNN 模型,而后使用 Amazon SageMaker 启动基础设施以训练 GNN 了。具体而言,我们可以使用关系图卷积神经网络模型学习异构图中节点的嵌入,以及用于最终节点分类的全连接层。

要训练 GNN 模型,大家还需要在训练开始之前定义一系列固定的超参数,例如希望构造的图各类、所使用的 GNN 模型类别、网络架构以及优化器与优化参数等。具体请参见以下代码:

上述代码中包含一部分超参数。关于超参数及其默认值的更多详细信息,请参见 GitHub repo 中的 estimator_fns.py

在超参数定义完成之后,大家现在可以正式启动训练过程了。训练作业使用 DGL(以 MXNet 作为后端深度学习框架)实现 GNN 模型的定义与训练。Amazon SageMaker 提供框架拟合器,其中设置的深度学习框架环境能够极大降低 GNN 模型的训练难度。关于在 Amazon SageMaker 上使用 DGL 训练 GNN 模型的更多详细信息,请参阅训练深度图网络。

现在,我们可以创建一个 Amazon SageMaker MXNet 拟合器,并传入模型训练脚本、超参数以及所需的训练实例数量/类型。接下来,大家可在拟合器上调用fit并传入 Amazon S3 上的训练数据保存位置。详见以下代码:

GNN 模型训练完成之后,该模型已经学会了如何区分合法交易与欺诈交易。训练作业会产生一个 pred.csv 文件,该文件是模型针对 test.csv 中交易的预测结果。ROC 曲线体现了各种阈值之下正确预报率与误报率之间的关系,其中曲线下面积(AUC)可作为评估指标。通过下图可以看到,我们训练的 GNN 模型在性能上优于全连接前馈网络、以及使用相同特征但未充分使用图结构的梯度提升树。

在本文中,我们讲解了如何根据用户交易与活动构建异构图,并使用该图及其他收集到的特征训练 GNN 模型,最终对交易的欺诈性做出预测。本文还介绍了如何使用 DGLAmazon SageMaker 定义并训练具备高预测性能的 GNN 模型。关于此项目的完整实现以及其他 GNN 模型详细信息,请参见 GitHub repo

另外,我们还介绍了如何实现数据处理,以使用 Amazon SageMaker Processing 从原始交易数据日志中提取有意义的特征与关系。您可以直接部署示例中提供的 CloudFormation 模板并传入自己的数据集,借此检测数据中的各恶意用户与欺诈性交易。

相关文章