布景介绍

在证劵生意所范畴,曾经产生用户证券账号被盗事件,导致客户财物损失,例如:黑客取得了用户A的证券账号密码,运用多次的低买高卖将财物转移。本文中针对此类对敲诈骗的场景,选用将用户生意数据转化为图片,从而运用 Amazon SageMaker 图画分类算法 ResNet 进行模型练习和推理,在此类诈骗行为辨认上得到了很好的作用。这种将生意数据转化为图画分类的办法简化了一般的特征提取的复杂度,可以作为防诈骗或者生意行为特征辨认的办法的新的尝试。

亚马逊云科技开发者社区为开发者们供给全球的开发技能资源。这里有技能文档、开发事例、技能专栏、练习视频、活动与竞赛等。协助中国开发者对接世界最前沿技能,观念,和项目,并将中国优秀开发者或技能推荐给全球云社区。假如你还没有重视/保藏,看到这里请必定不要仓促划过,点这里让它成为你的技能宝库!

1. 数据预备

整个数据预备进程包含用户特征剖析,样本数据构造,样本数据格式转化几个进程。

项目包下载Link

本机装置 python3.9 版本环境。而且提前预备如下几个依赖包的装置

python -m pip install requests
python -m pip install matplotlib
python -m pip install numpy

1.1 数据行为剖析

对敲诈骗的生意行为特征比较突出,会呈现会集的低买高卖的特色,此类特色也会与老鼠仓行为类似。依据用户的生意行为与股票当日的5分钟 k 线图合并表示如下图:

金融交易行为监测方法——利用 CNN 模型实现行为识别

赤色点表示买入,绿色点表示卖出。用户的行为呈现为多次的接连低卖高卖。

1.2 数据集预备

在金融诈骗的场景中,大多数情况下实际产生的诈骗样本是少量的,因此要得到好的模型练习作用,咱们需求剖析用户行为的特征,在此基础上进行数据的模仿。

1.2.1 获取 K 线

履行K线生成脚本 generateKline.py ,生成某日的K线数据,本事例从 alphavantage 获取美股最新的 Coinbase(股票代码COIN) 80条5分钟k线。免费 APIkey 请自行从 alphavantage 官网请求。

金融交易行为监测方法——利用 CNN 模型实现行为识别

1.2.2 生成黑客用户生意记载

履行脚本 genRandomHackerTrades.py ,生成模仿黑客生意记载表格。模仿逻辑为:

– 找到 Top 10 的 COIN 的5分钟 k 线数据中超过5%波幅的k线数据。

– 随机挑选3-5个5分钟 k 线,生成低价买入的成交价格。生成高价卖出的成交价格。

– 生成 csv 文件,别离存放到 ./buy/ 和./sell/目录。生成文件样例

金融交易行为监测方法——利用 CNN 模型实现行为识别

1.2.3 生成用户生意记载

履行脚本 genNormal.py,生成模仿正常用户生意记载数据。在实际的证券生意所风控可获取实际用户数据生成记载。本事例中的模仿逻辑是:随机获取 COIN 的5分钟k线,生成1-2个生意记载。

履行脚本 genRandomHackerTrades.py 生成模仿的黑客生意记载数据。模仿逻辑是:获取 COIN 日k线中的 top 10 价格振幅最大的k线单元,然后随机从 top10 中挑选3个单元,模仿生成低买高卖的点位。

1.2.4 将生意记载转化为图画

选用 matplotlib 库,制作k线图画,把用户生意为圆点,绿色表示卖,赤色表示买。黑客行为生成图画脚本为 generateHackerImg.py,获取黑客生意记载文件,制作 K 线,如图-1所示,黑客行为的特色是呈现短时间内会集的低买高卖行为,经过多轮测试,咱们需求对图画进行处理,去掉与用户行为不想关的信息。

– 去掉 k 线展示

– 去掉 x,y 轴刻度显示

– 将图画尺寸缩小到2.5英寸*1.5英寸,dpi 调整为100.

生成作用图如下:

金融交易行为监测方法——利用 CNN 模型实现行为识别

2. 模型练习与发布

经过以上的进程,在 traindata 目录下,咱们取得了 hacker 和 normal 两个类别的图画练习数据。下面就可以选用 Amazon Sagemaker 的内置算法 resNet 进行图画分类模型练习了。

2.1 数据集预备

运用 RecordIO tool(im2rec)创立两个 .lst 文件。一个文件是用于练习的数据集(75%)。另一个文件是用于验证的数据集(25%) 将.lst 文件和 jpg 图片文件上传到一个S3 bucket。

2.2 数据练习与模型发布

1.在 sagemaker 中创立一台 Jupyter Notebook 实例,创立进程参阅官方文档:docs.aws.amazon.com/sagemaker/l…

2.下载试验所需练习进程脚本:/jupter/image-classify-jpg.ipynb,上传至 Notebook 环境。

3.依照进程履行 notebook,完结模型练习,模型发布。关于图画分类练习的详细阐明可参阅 link

脚本运转完结后,会输出模型的练习成果,获取更多的生意对来生成练习样本会得到更好的作用,在 2000 hacker 样本和 2000 normal样本的数据规划下,得到的模型作用:

train:accuracy = 0.9850000143051147
validation:accuracy = 0.9962120056152344
train:accuracy:epoch = 0.9850000143051147
validation:accuracy:epoch = 0.9962120056152344

模型布置为实时拜访端点:antiFraud-imageclassification-ep–2022-05-14-08-14-04。 可在后面的反诈骗事务流程中经过 Amazon SDK 实时调用,取得推理成果。

3. 事务流程设计参阅:

在证券生意所,可以挑选适宜的触发时机来触发用户是否有诈骗行为的推理进程。例如在每天用户出金时实时推理或者每天晚上批量推理的办法。 咱们依照实时推理的办法完结如下的事务流程。

金融交易行为监测方法——利用 CNN 模型实现行为识别

  1. 从事务测发送触发音讯到 Amazon SQS,音讯体接口中具有基本的用户 id 信息。
  2. Lambda 接收到 SQS 音讯,从生意数据库获取用户的24小时生意信息,获取触及的生意对的5分钟 k 线数据,生成此用户的生意行为图画,图画的格式也选用相同的处理:去掉 k 线显示;去掉 x,y 轴刻度显示;图画尺寸缩小到5英寸*2.1英寸,dpi=100。
  3. 生成的用户生意图画 调用实时推理接口,咱们就可以取得推理成果,此用户行为是否是诈骗行为,假如概率超过90%,咱们写入风控表。

金融交易行为监测方法——利用 CNN 模型实现行为识别

4. Amazon Lambda 怎么支持 python 图形库

在此事务流程的完结中,lambda 函数引用了 matplotlib,numpy 等库,具有生成图片的才能,要完结此才能需求选用如下几个进程。

  1. 了解 Lambda 的运转时环境,挑选不同的 CPU 架构,在装置 Python 库是需求下载不同的 WHL 包

金融交易行为监测方法——利用 CNN 模型实现行为识别

  1. 创立 Lambda Layer,用于存放几个公共类库,创立 Layer 的指导拜见 Link

由于 Python 的类库是需求区别装置的渠道。windows,mac,linux 会有不同的装置包,同时 CPU 的架构不同也有区别。ARM 架构与X86_64架构。从 pypi.org 搜索需求下载的包,跳转到下载页面。咱们需求下载的是 pypi.org/project/mat… 由于我创立的 lambda 是运用了 python3.9 运转环境,在 X86_64 架构下。因此我会挑选下图中红线的 WHL 包

金融交易行为监测方法——利用 CNN 模型实现行为识别

mkdir layer
cd layer
mkdir pylibs
cd pylibs
wget https://files.pythonhosted.org/packages/e1/81/0a73fe71098683a1f73243f18f419464ec109acae16811bf29c5d0dc173e/matplotlib-3.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl
wget https://files.pythonhosted.org/packages/8d/d6/cc2330e512936a904a4db1629b71d697fb309115f6d2ede94d183cdfe185/numpy-1.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
unzip '*.whl'
pip3 install -t . pyparsing==2.4.7
pip3 install -t . cycler==0.10.0
pip3 install -t . pytz
pip3 install -t . packaging
rm *.whl
rm -rf __pycache__
cd ..
zip -r lambdalayer.zip pylibs

以上完结 layer zip 包的制作,参照创立 Lambda Layer 的进程,将zip包布置为 Lambda Layer 即可。

此解决方案中的 Lambda 函数请拜见

github.com/aws-samples…

5. 总结

本文介绍了在证券范畴,选用将用户时间序列类行为转化为图画,从而运用老练的AI 图画分类算法来完结用户反常行为辨认的办法。而且在接连对敲获利的场景中取得较好的作用。在解决方案中选用了 AMAZON SageMaker ,AMAZON Lambda,AMAZON SQS 快速完结了模型的练习,布置及事务流程的构建。期望可以给大家带来启发。

6. 参阅资料

[1][mxnet.apache.org/versions/1.…]
[2]matplotlib.org/stable/plot…

[3]sagemaker-examples.readthedocs.io/en/latest/i…

本篇作者

金融交易行为监测方法——利用 CNN 模型实现行为识别

Richard Lee

Amazon 解决方案架构师,负责根据 Amazon 云计算方案的架构咨询和落地施行;有电信,金融行业经历。加入 Amazon 前曾在华为软件任职项目经理,技能架构师,在 cryptocurrency 范畴创业公司担任技能管理者。喜欢钻研跨范畴技能创新。

文章来源:dev.amazoncloud.cn/column/arti…