工程的博客

使用Databricks Lakehouse平台的大规模反洗钱解决方案bob体育客户端下载

分享这篇文章

反洗钱(AML)合规无疑是监管机构对全球金融机构进行监管的首要议程之一。几十年来,随着“反洗钱”的演变和越来越复杂,旨在打击现代洗钱和恐怖主义融资计划的监管要求也在不断发展。的1970年《银行保密法》为金融机构提供指导和框架,以适当控制金融交易,并向有关当局报告可疑的财政活动。该法为金融机构打击洗钱和金融恐怖主义提供了框架。

为什么反洗钱如此复杂

当前的“反洗钱”行动与过去十年几乎没有相似之处。随着金融机构(FI)每天处理数十亿笔交易,向数字银行的转变导致了洗钱范围的不断扩大,即使有更严格的交易监控系统和强大的了解你的客户(KYC)解决方案。在本博客中,我们将分享我们与金融机构客户一起构建企业级反洗钱解决方案的经验lakehouse平bob体育客户端下载台这既提供了强有力的监督,又提供了创新的、可扩展的解决方案,以适应现代在线洗钱威胁的现实。

使用lakehouse构建AML解决方案

每天处理数十亿笔交易的运营负担来自于需要存储来自多个来源的数据,以及电力密集型的下一代“反洗钱”解决方案。这些解决方案提供了强大的风险分析和报告,同时支持使用先进的机器学习模型来减少误报,提高下游调查效率。金融机构已经采取措施解决基础设施和扩展问题,从内部部署转移到云端,以获得更好的安全性、灵活性和存储大量数据所需的规模经济。

但接下来的问题是,如何理解在廉价的对象存储中收集和存储的大量结构化和非结构化数据。虽然云供应商提供了一种廉价的数据存储方式,但要理解下游AML风险管理和合规活动的数据,首先要以高质量和高性能的格式存储数据,以供下游消费。的砖Lakehousebob体育客户端下载平台正是这样做的。通过将数据湖的低存储成本优势与数据仓库的强大交易能力相结合,金融机构可以真正构建现代的“反洗钱”平台。bob体育客户端下载

除了上述数据存储挑战之外,“反洗钱”分析师还面临一些关键的领域特定挑战:

  • 改进非结构化数据(如图像、文本数据和网络链接)的时间值解析
  • 减少DevOps支持关键ML功能的负担,例如实体解析、计算机视觉和实体元数据上的图形分析
  • 通过在AML事务和丰富的表格上引入分析工程和仪表板层来打破竖井

幸运的是,Databricks通过杠杆帮助解决这些问题三角洲湖存储和组合非结构化和结构化数据,以建立实体关系;此外,Databricks的Delta引擎提供了使用新引擎的高效访问光子计算加速对表的BI查询。在这些功能之上,ML是lakakehouse的一等公民,这意味着分析师和数据科学家不会浪费时间进行子采样或移动数据以共享仪表板,并领先于不良行为者一步。

AML Lakehouse参考架构

使用图形功能检测AML模式

“反洗钱”分析师作为案件一部分使用的主要数据源之一是交易数据.尽管这些数据是表格形式的,并且可以很容易地用SQL访问,但是用SQL查询跟踪三层或更多层的事务链会变得很麻烦。出于这个原因,有一套灵活的语言和api来表达简单的概念是很重要的,比如可疑的个人一起非法交易的连接网络。幸运的是,这很容易通过GraphFrames来实现,GraphFrames是一个预安装在Databricks运行时机器学习。

在本节中,我们将展示如何使用图分析来检测AML方案,如合成身份和分层/结构化。我们将利用一个由事务组成的数据集,以及从事务派生的实体,用Apache Spark™、GraphFrames和Delta Lake检测这些模式的存在。持久化模式保存在Delta Lake中,以便砖的SQL可以应用于这些发现的黄金级聚合版本,为最终用户提供图表分析的强大功能。

场景1——合成身份

如上所述,合成身份的存在可能会引起警报。使用图表分析,我们可以批量分析交易中的所有实体,以检测风险级别。在我们的分析中,这分为三个阶段:

  1. 基于事务数据,提取实体
  2. 根据地址、电话号码或电子邮件在实体之间创建链接
  3. 使用GraphFrames连接的组件来确定多个实体(由一个ID和上面的其他属性标识)是否通过一个或多个链接连接。

根据实体之间存在多少连接(即公共属性),我们可以分配较低或较高的风险评分,并基于高分组创建警报。下面是这个想法的基本表示。

根据实体之间存在多少连接(即公共属性),我们可以为AML风险打分

首先,我们使用地址、电子邮件和电话号码创建一个身份图,如果个人符合这些属性,就将他们联系起来。

e_identity_sql =“‘在“aml”中选择“entity_id”为src,“address”为DST。地址不为空的Aml_entities_synth联盟“aml”中选择“entity_id”为“src”,“email”为“DST”。email_addr不为空的Aml_entities_synth联盟“aml”中选择“entity_id”为“src”,“phone”为“DST”。phone_number不为空的Aml_entities_synth“‘graphframes进口pyspark.sql.functions进口aml_identity_g = GraphFrame(identity_vertices, identity_edges)result = aml_identity_g.connectedComponents()
              结果\.select (“id”“组件”“类型”) \.createOrReplaceTempView (“组件”

接下来,我们将运行查询,以确定两个实体何时具有重叠的个人识别和分数。基于这些查询图组件的结果,我们将期望队列只包含一个匹配属性(例如地址),这并不太值得担心。但是,随着匹配的属性越来越多,我们应该会收到警报。如下所示,我们可以标记所有三个属性都匹配的情况,允许SQL分析人员从跨所有实体运行的图分析中获得每日结果。

当两个实体具有重叠的个人识别和分数时,示例查询可视化识别。

场景2 -结构化

另一种常见的模式叫做结构,当多个实体串通起来,向一组银行发送较小的“隐形”付款时,就会发生这种情况,这些银行随后将较大的总额发送给最终机构(如下图最右边所示)。在这种情况下,所有各方都保持在1万美元的阈值以下,这通常会提醒当局。这不仅很容易用图形分析来完成,而且母题发现技术可以自动扩展到网络的其他排列,并以同样的方式定位其他可疑交易。

一种常见的模式称为结构化。在这种情况下,多个实体相互勾结,向一组银行发送较小的“隐形”付款,随后这些银行将较大的总额发送给最终机构

现在,我们将编写基本的图案查找代码,使用图形功能检测上述场景。注意,这里的输出是半结构化JSON;所有数据类型,包括非结构化类型,都可以在lakehouse中轻松访问——我们将保存这些特定的结果以用于SQL报告。

主题“(一)——(e1) - > (b);(b) - (e2) - > (c);(c) - (e3) - > (d);(e) - (e4) - > (f);(f) - (e5) - > (c);(c) - (e6) - > (g)”struct_scn_1aml_entity_g.find(主题)joined_graphsstruct_scn_1.alias \(“a”)加入(struct_scn_1.alias (b)、坳(“a.g.id”)坳(“b.g.id”))\过滤器(坳(“a.e6.txn_amount”)+坳(“b.e6.txn_amount”)>10000

使用母题发现,我们提取了有趣的模式,即资金通过4个不同实体流动,并保持在1万美元的阈值以下。我们将我们的图形元数据连接回结构化数据集,以生成反洗钱分析师进一步调查的见解。

通过图形主题发现识别可能的结构

场景3——风险评分传播

被识别的高风险实体将对其圈子产生影响(网络效应)。因此,必须调整与它们相互作用的所有实体的风险评分,以反映影响区域。使用迭代方法,我们可以跟踪任何给定深度的事务流,并调整网络中其他受影响的风险评分。如前所述,运行图分析可以避免多个重复的SQL连接和复杂的业务逻辑,这可能会由于内存限制而影响性能。图表分析和Pregel API正是为此目的而构建的。最初由谷歌开发,Pregel允许用户递归地将消息从任何顶点“传播”到其对应的邻居,在每一步更新顶点状态(这里是它们的风险评分)。我们可以使用Pregel API表示我们的动态风险方法,如下所示。

使用图表分析和Pregel API检测实体如何在网络中分散AML风险。

上图显示了网络的初始状态和两个后续迭代。假设我们从一个风险评分为10的不良参与者(节点# 3)开始。我们希望惩罚所有与该节点(即节点4、5和6)进行交易的人,并通过传递(例如,不良参与者的一半风险分数)来获得资金,然后将其添加到他们的基础分数中。在下一次迭代中,从节点4、5、6下游的所有节点的分数都将被调整。

节点号 迭代# 0 迭代# 1 迭代# 2
1 0 0 0
2 0 0 0
3. 10 10 10
4 0 5 5
5 0 5 5
6 0 5 5
7 0 0 5
8 0 0 0
9 0 0 2.5
10 0 0 0

使用Pregel API在GraphFrame中,我们可以执行这个计算,并将修改后的分数持久化,以供其他下游应用程序使用。

graphframes。lib import Pregel排名aml_entity_g。pregel \.setMaxIter (3.) \.withVertexColumn (“risk_score”,坳(“风险”),合并(Pregel.msg ()+坳(“风险”),坳(“risk_score”))) \.sendMsgToDst (Pregel.src(“risk_score”)/2) \.aggMsgs (总和(Pregel.msg ())) \.run ()

地址匹配

我们想简要介绍的一个模式是文本与实际街景图像的地址匹配。通常情况下,AML分析师需要验证链接到文件实体的地址的合法性。这个地址是商业大厦、住宅区还是简单的邮箱?然而,分析图片往往是一个繁琐、耗时和手动获取、清理和验证的过程。湖屋数据架构允许我们使用Python和ML运行时以及PyTorch和预训练的开源模型来自动化大部分任务。下面是一个人眼有效地址的示例。为了自动验证,我们将使用预先训练好的VGG模型,其中有数百个有效对象,我们可以使用它来检测住宅。

左边是有效的住宅图像。右手边的住宅地址无效,说明潜在风险较高。

使用下面的代码(可以自动地每天运行),我们现在将所有图像都附加了一个标签——我们已经将所有图像引用和标签加载到一个SQL表中,以便更简单地查询。请注意下面的代码,查询一组图像中的对象是多么简单——使用Delta Lake查询这种非结构化数据的能力为分析人员节省了大量时间,并将验证过程缩短到几分钟,而不是几天或几周。

公益诉讼进口图像matplotlib进口厘米
              img = Image.fromarray(img)...VGG = models.vgg16(预训练=真正的预测= vgg(img)forecast = forecast .data.numpy().argmax()Img_and_labels [i] = labels[预测]

当我们开始总结时,我们注意到一些有趣的类别出现了。如下图所示,有一些明显的标签,如露台、活动房屋和摩托车,我们预计会在住宅地址中检测到。另一方面,CV模型在一张图像中标记了一个来自周围物体的太阳盘。(注意:由于我们被限制在一个开源模型上,而不是在自定义图像集上进行训练,因bob下载地址此太阳能板标签是不准确的。)在进一步分析图像后,我们立即看到i)这里没有一个真正的太阳盘,更重要的是ii)这个地址不是一个真正的住所(如图所示)。Delta Lake格式允许我们存储对非结构化数据的引用以及一个标签,以便在下面的分类分类中进行简单查询。

Delta Lake的强大功能允许我们存储对非结构化数据的引用以及一个标签,以便在下面的分类细分中进行简单查询

示例AML解决方案地址验证可视化,显示附在每个分析图像上的标签。

实体解析

我们将关注的最后一类“反洗钱”挑战是实体解析.许多开源库解决了这个问题,所以对于一些基本的实体模糊匹配,我们选择突出显示Splink,它实现了大规模的链接,并提供了指定匹配列和阻塞规则的配置。

在从我们的事务派生的实体上下文中,将我们的Delta Lake事务插入到Splink上下文中是一个简单的练习。

设置= {“link_type”“dedupe_only”“blocking_rules”:【"l.txn_amount = r.txn_amount"),“comparison_columns”:【“col_name”“rptd_originator_address”},“col_name”“rptd_originator_name”splink进口Splink链接器= Splink(设置,df2, spark)Df2_e = link . get_scored_compare ()

Splink的工作原理是分配一个匹配概率,该概率可用于识别实体属性高度相似的交易,就报告的地址、实体名称或交易金额发出潜在警报。考虑到实体解析对于匹配帐户信息可能是高度手动的,拥有自动化这项任务并将信息保存在Delta Lake中的开源库可以使调查人员在案件解决中更加高效。虽然有几个实体匹配选项,但我们建议使用位置敏感散列(LSH)来确定作业的正确算法。你可以了解更多关BOB低频彩于LSH和它的好处这篇博文

如上所述,我们很快发现纽约梅隆银行地址有一些不一致,“加拿大广场,金丝雀码头,伦敦,英国”与“加拿大广场,金丝雀码头,伦敦,英国”相似。我们可以将重复数据删除的记录存储回一个delta表,用于AML调查。

重复删除匹配实体

AML湖屋仪表盘

Databricks SQL在lakakehouse上正在缩小与传统数据仓库在简化数据管理方面的差距,新的查询引擎Photon的性能和用户并发性。这一点很重要,因为许多组织没有预算购买价格过高的专有“反洗钱”软件来支持各种用例,例如打击恐怖主义融资(CFT),这有助于打击金融犯罪。在市场上,有专用的解决方案可以执行上面的图表分析,专用的解决方案可以解决仓库中的BI,专用的解决方案用于ML。AML湖屋设计统一了这三者。AML数据平台团队bob体育客户端下载可以以较低的云存储成本利用Delta Lake,同时轻松集成开源技术,以生成基于图形技术、计算机视觉和SQL分析工程的策划报告。bob下载地址下面我们将展示AML报告的实体化。

附加的笔记本产生了一个交易对象、实体对象,以及使用预先训练的模型构建前景、合成身份层和地址分类等摘要。在下面的Databricks SQL可视化中,我们使用我们的Photon SQL引擎对这些数据和内置可视化执行摘要,在几分钟内生成一个报告仪表板。两个表以及仪表板本身都有完整的acl,允许用户与管理人员和数据团队共享—还内置了定期运行该报告的调度程序。仪表板是内置在AML解决方案中的AI、BI和分析工程的顶峰。

仪表板是我们内置到AML解决方案中的AI、BI和分析工程的顶峰。

开放式银行转型

开放银行的兴起使金融机构能够通过api在消费者、金融机构和第三方服务提供商之间共享数据,从而提供更好的客户体验。一个例子是支付服务指引(PSD2),该计划改变了欧盟地区的金融服务欧洲开放银行监管。因此,金融机构可以从多家银行和服务提供商获得更多数据,包括客户账户和交易数据。根据FinCEN的最新指导,这一趋势在欺诈和金融犯罪领域得到了扩展section 314 (b)美国爱国者法案;受保护的金融机构现在可以与其他金融机构以及国内和国外分支机构共享有关涉嫌参与潜在洗钱的个人、实体、组织等的信息。

虽然信息共享条款有助于提高透明度,并保护美国金融系统不受洗钱和恐怖主义融资的影响,但信息交换必须使用具有适当数据和安全保护的协议。为了解决信息共享的安全问题,Databricks最近宣布三角洲分享,一个开放和安全的数据共享协议。使用熟悉的开源API,如Panbob下载地址das和Spark,数据生产者和消费者现在可以使用安全和开放的协议共享数据,并对所有数据交易进行全面审计,以保持符合FinCEN法规。

AML组织内数据共享

结论

湖屋架构是最具可扩展性和最多功能的平台,使分析师能够进行“反洗钱”分析。bob体育客户端下载Lakehouse支持从模糊匹配到图像分析到内置仪表板的BI用例,与专有的AML解决方案相比,所有这些功能将允许组织降低总体拥有成本。Databricks的金融服务团队正在解决金融服务领域的各种业务问题,并使数据工程和数据科学专业人员能够开始Databricks的旅程解决方案加速器像AML。

笔记本电脑在Databricks上加速您的AML开发策略联系我们了解更BOB低频彩多关于我们如何帮助具有类似用例的客户的信息。

免费试用Databricks
看到所有工程的博客的帖子