背景介绍在证券交易所领域,时有发生用户证券账号被盗,导致客户资产流失的事件。例如:黑客获取了用户A的证券账户密码,利用多次低买高卖转移资产。本文针对此类连锁诈骗场景,将用户交易数据转化为图片,然后利用AmazonSageMaker图像分类算法ResNet进行模型训练和推理,在此类连锁诈骗的识别中取得了较好的效果。欺诈行为。这种将交易数据转化为图像分类的方法,简化了常用特征提取的复杂性,可以作为防范欺诈或识别交易行为特征的一种新尝试。亚马逊云技术开发者社区为开发者提供全球开发技术资源。有技术文档、开发案例、技术专栏、培训视频、活动竞赛等,帮助中国开发者对接全球最前沿的技术、思想、项目,向全球云社区推荐优秀的中国开发者或技术.如果你还没有关注/收藏,请看到这里不要急着过来,点这里让它成为你的技术宝库!1.数据准备整个数据准备过程包括用户特征分析、样本数据构建、样本数据格式转换。工程包下载链接本地安装python3.9版本环境。并提前准备好以下依赖包的安装:python-mpipinstallrequestspython-mpipinstallmatplotlibpython-mpipinstallnumpy1.1数据行为分析在骗局的交易行为特征中较为突出,会出现集中买低和卖高的特性,这样的特性也会表现出类似老鼠仓的行为。根据用户的交易行为和该股当日5分钟K线图,合成如下图:红点表示买入,绿点表示卖出。用户的行为呈现为连续多次低卖和高卖。1.2数据集准备在金融欺诈场景中,大多数情况下实际欺诈样本较小,因此要获得良好的模型训练效果,需要分析用户行为特征,并在此基础上进行数据模拟。1.2.1获取K线执行K线生成脚本generateKline.py生成某日K线数据。本例从alphavantage获取美股Coinbase(股票代码COIN)最新80条5分钟K线。请到alphavantage官网申请免费的APIkey。1.2.2生成黑客用户交易记录执行脚本genRandomHackerTrades.py生成模拟黑客交易记录表格。模拟逻辑为:–在Top10币种的5分钟k线数据中找出波动率大于5%的k线数据。–随机选择3-5个5分钟柱状图生成成交价,低价买入。生成高价卖出的交易价格。–生成csv文件,分别存放在./buy/和./sell/目录下。生成文件示例1.2.3生成用户交易记录执行脚本genNormal.py生成模拟普通用户交易记录数据。在实际的证券交易所风控中,可以获得实际的用户数据生成记录。本案例的模拟逻辑为:随机获取COIN的5分钟K线,生成1-2条交易记录。执行脚本genRandomHackerTrades.py生成模拟黑客交易记录数据。模拟逻辑为:获取COIN日k线中价格振幅最大的前10个k线个股,然后从前10个中随机抽取3个个股模拟生成低买高卖点。1.2.4交易记录转化为图像使用matplotlib库绘制烛图图像,将用户交易转化为点,绿色代表卖出,红色代表买入。黑客行为生成的图像脚本为generateHackerImg.py,获取黑客的交易记录文件并绘制K线,如图-1所示。黑客行为的特点是在短时间内集中低买高卖。经过多轮测试,我们需要对图片进行处理,去除与用户行为无关的信息。–去除k线显示–去除x轴和y轴刻度显示–缩小图片尺寸为2.5英寸*1.5英寸,调整dpi为100,结果图片如下:2.模型训练和发布后以上步骤,在traindata目录下,我们得到了hacker和normal两类图像训练数据。接下来,您可以使用AmazonSagemaker的内置算法resNet进行图像分类模型训练。2.1数据集准备使用RecordIO工具(im2rec)创建两个.lst文件。一个文件是用于训练的数据集(75%)。另一个文件是用于验证的数据集(25%)将.lst文件和jpg图像文件上传到S3存储桶。2.2数据训练和模型发布1.在sagemaker中创建一个JupyterNotebook实例,创建过程参考官方文档:https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-create-ws。html2。下载实验所需的训练步骤脚本:/jupter/image-classify-jpg.ipynb,上传到Notebook环境。3.按照notebook的步骤执行,完成模型训练,发布模型。有关图像分类训练的详细说明,请参阅链接。脚本运行后,会输出模型的训练结果。获取更多的交易对来生成训练样本会得到更好的结果。Underthedatascaleof2000hackersamplesand2000normalsamples,theobtainedmodeleffectis:train:accuracy=0.9850000143051147validation:accuracy=0.9962120056152344train:accuracy:epoch=0.9850000143051147validation:accuracy:epoch=0.9962120056152344模型部署为实时访问端点:antiFraud-imageclassification-ep–2022-05-14-08-14-04。可在后续反欺诈业务流程中通过AmazonSDK实时调用,获取推理结果。3、业务流程设计参考:在证券交易所中,可以选择合适的触发时机来触发用户是否存在欺诈行为的推理过程。比如每天用户取钱时的实时推理,或者每晚的批量推理。我们以实时推理的方式实现如下业务流程。1、业务测试发送触发消息到AmazonSQS,消息体接口有基本用户id信息。2.Lambda接收SQS消息,从交易数据库中获取用户24小时交易信息,获取涉及交易对的5分钟k线数据,生成用户交易行为图像。图像的格式也做同样的处理:去除k线显示;移除x和y轴刻度显示;图片尺寸缩小为5英寸*2.1英寸,dpi=100。3、生成的用户交易图像调用实时推理接口,我们可以得到推理结果,用户行为是否为欺诈行为,如果概率超过90%,我们将其写入风控表。4.AmazonLambda如何支持python图形库?在这个业务流程的实现中,lambda函数引用了matplotlib、numpy等库,具有生成图片的能力。实现此能力需要以下步骤。1、了解Lambda的运行环境,选择不同的CPU架构。安装Python库时需要下载不同的WHL包。2.创建一个LambdaLayer,存放几个公共类库。有关创建图层的指南,请参阅链接,因为Python类库是需要以不同方式安装的平台。windows、mac、linux有不同的安装包,不同的CPU架构也有区别。ARM架构和X86_64架构。在https://pypi.org搜索要下载的包,跳转到下载页面。我们需要下载的是https://pypi.org/project/matplotlib/#files,因为我创建的lambda使用的是python3.9运行环境,是X86_64架构下。因此我会选择下图中红线的WHL包mkdirlayercdlayermkdirpylibscdpylibswgethttps://files.pythonhosted.org/packages/e1/81/0a73fe71098683a1f73243f18f419464ec109acae16811bf29c5d0dc173e/matplotlib-3.5.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whlwgethttps://files.pythonhosted.org/packages/8d/d6/cc2330e512936a904a4db1629b71d697fb309115f6d2ede94d183cdfe185/numpy-1.23.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whlunzip'*.whl'pip3install-t.pyparsing==2.4.7pip3安装-t。cycler==0.10.0pip3install-t.pytzpip3install-t.packagingrm*.whlrm-rf__pycache__cd..zip-rlambdalayer.zippylibs以上完成layerzip包的制作,参考创建LambdaLayer的步骤,zip包可以部署为Lambda层。该解决方案中的Lambda函数可以在https://github.com/aws-samples/amazon-sagemaker-antifraud-in-capitalmarket-imageclassify/blob/main/lambda/imageClassify.py5找到,利用将用户时序行为转化为图像的方法,再利用成熟的AI图像分类算法,实现识别用户异常行为的方法。并在持续盈利的场景中获得更好的效果。该方案使用AMAZONSageMaker、AMAZONLambda和AMAZONSQS快速完成模型训练、部署和业务流程构建。希望对大家有所启发。6.参考文献[1]https://mxnet.apache.org/versions/1.6/api/r/docs/api/im2rec.html[2]https://matplotlib.org/stable/plot_types/index.html[3]https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/imageclassification_caltech/Image-classification-lst-format-h??ighlevel.html本文作者RichardLee,亚马逊解决方案架构师,负责亚马逊云计算解决方案架构咨询与实施;在电信和金融行业的经验。在加入亚马逊之前,他曾在华为软件担任项目经理和技术架构师,并在加密货币领域的一家初创公司担任技术经理。我喜欢钻研跨领域的技术创新。文章来源:https://dev.amazoncloud.cn/column/article/6309d40de0f88a79bcfae802
