工程的博客

结合基于规则和人工智能模型打击金融欺诈

分享这篇文章

金融服务行业(FSI)正在加速转型变革,通过新的数字渠道提供交易功能和促进支付,以保持竞争力。不幸的是,这些功能所提供的速度和便利性也有利于欺诈者。

鉴于近年来整体欺诈数量创历史新高,且呈多元化趋势,金融服务中的欺诈行为仍然是企业利润面临的头号威胁。最近的一项调查普华永道概述了欺诈行为在全球的惊人影响。例如,仅在美国,2019年企业的成本就达到420亿美元,47%的受访企业在过去24个月经历过欺诈。

那么,企业应该如何应对日益增长的欺诈威胁呢?欺诈者正在利用新的数字环境的能力,这意味着企业必须在实时打击欺诈的同时,仍要牢记客户体验。进一步阐述,金融机构利用两个关键杠杆来最大限度地减少欺诈损失:有效的欺诈预防策略和向客户退款。两者都有利有弊,因为它们直接影响客户体验。在这篇博客中,我们将描述如何使用Databricks的现代数据架构来构建欺诈检测和预防框架,该框架可以有效地平衡欺诈预防策略和策略,以提高回收率,同时保持尽可能高的客户满意度。

构建可伸缩的健壮框架的挑战

由于不断变化的环境和客户期望,构建欺诈预防框架通常不仅仅是创建一个高精度的机器学习(ML)模型。通常情况下,它涉及一个复杂的ETL过程和一个决策科学设置,该设置将规则引擎与ML平台结合在一起。bob体育客户端下载这种平台的要求包括可伸缩性和基于开源标准构建的跨区域团队bob体育客户端下载的多个工作空间的隔离性。bob下载地址通过设计,这样的环境使数据科学家、数据工程师和分析师能够在安全的环境中协作。

我们将首先考虑使用数据湖屋架构结合Databricks的企业平台bob体育客户端下载,以支援防欺诈应用程序的所有下游应用程序的基础设施需求。在这篇博客中,我们还将引用Databricks的核心组件Lakehouse达美航空发动机,这是一个针对大数据工作负载的可伸缩性和性能而设计的高性能查询引擎MLflow,一个完全托管的ML治理工具,用于跟踪ML实验并快速生产它们。

客户360数据湖

在金融服务中,特别是在构建防欺诈应用程序时,我们经常需要统一来自各种数据源的数据,通常规模从几tb到pb不等。随着技术的快速变化和金融服务集成新系统,数据存储系统必须跟上不断变化的底层数据格式。与此同时,这些系统必须支持数据管道的有机演进,同时保持成本效益。我们提议将Delta Lake作为建立在开源标准上的一致存储层,以实现特征的存储和计算,以保持异常检测模型处于前沿。

数据工程师可以轻松连接到各种外部数据管道和支付网关使用Databricks摄食合作伙伴网络统一会员交易、业绩和交易历史。如前所述,随着数据流入,计算新特性并随着时间的推移刷新现有特性非常关键。预先计算的特征的例子是成员帐户历史的历史聚合或统计平均值,对于下游分析报告和加速ML模型的再训练很重要。Databricks的三角洲湖和本土达美航空发动机正是为此目的而构建的,并且可以使用spark兼容的api来加快功能开发的速度,从而为工程团队强制执行最高级别的质量约束。

一个统一的数据湖,用于存储和分类客户数据,并支持大规模创建新功能

一个服务bob体育客户端下载于所有欺诈预防用例的平台

由于我们的欺诈检测方法涉及规则套件和ML的组合,Databricks非常适合,因为它是创建规则和ML模型所需的各种角色集的家——即业务分析师、领域专家和数据科学家。在下一节中,我们将概述Databricks映射到角色的不同组件,以及规则如何使用MLflow、共享笔记本和Databricks SQL满足ML。

用户能够使用多个工作区进行协作,同时在用户级别提供隔离,这在金融服务中至关重要。与Databricks的企业云服务架构,组织可以在几分钟内创建新的工作空间。这在编排欺诈检测框架时非常有用,因为它为各种产品、业务组用户和CI/CD创建了隔离编制在每一组中。例如,信用卡业务组用户可以与存款隔离,并且每个业务线可以控制模型构件的开发和推广。

跨域协作使得多个工作空间以及不同团队生产中的共享模型注册成为可能。

将基于规则的系统与人工智能相结合

映射用户和Databricks的组件

欺诈检测开发周期始于业务分析师和领域专家,他们通常贡献了初始发现的主要部分,包括示例规则集。这些常识规则涉及到可靠的特征(如客户位置和离家的距离):

a)执行速度快
b) FSI易于解释和防御
c)减少误报(即通过规则框架减少误报)
d)足够灵活,可以增加欺诈模型所需的训练数据的范围

虽然规则是第一道防线,也是公司整体欺诈策略的重要组成部分,但金融服务行业一直在开发和采用先进的ML算法以及规则集。下面的设计层展示了使用组合规则集和ML模型的方法的几个组件。现在,让我们看看每个组件和将支持各自操作的角色的典型工作流。

通过统一的设计层基础结构定义基于规则的模型和ML模型

使用SQL功能探索规则

对于探索性数据分析,Databricks为分析师角色提供了两种攻击欺诈的方法:Databricks SQL/Python/ r支持的笔记本,用于数据工程和数据科学砖的SQL用于商业智能和决策。Databricks SQL是一个环境,用户可以在其中构建仪表板以捕获历史信息,轻松查询数据湖表,并连接BI工具以进行进一步探索。如下所示,分析人员能够创建带有描述性统计数据的仪表板,然后转换到对单个欺诈性预测的调查,以验证特定交易被选为欺诈性的原因。

使用SQL和Databricks SQL的仪表板功能探索欺诈模式。

此外,用户可以编辑支持仪表板的任何底层查询,并访问数据湖对象的目录,以通知未来的功能,这些功能可以用作基于规则/基于ML的欺诈预防算法的一部分。特别是,用户可以开始使用规则集对数据进行切片,这些规则集最终会进入生产模型。如下图所示,它突出显示了SQL查询编辑器以及以下协作和易于使用的特性:

  • 查询共享和可重用性同一个查询可以驱动多个仪表板,这对底层SQL端点的负载要求更低,允许更高的并发性
  • 查询格式化改进了Databricks上SQL的可读性和易用性
  • 分享-通过右上角的“共享”功能,可以在业务分析师、领域专家和数据科学家之间共享查询

使用Databricks SQL创建高效的大规模SQL查询。

规则和模型编制框架

我们已经讨论了在欺诈检测实现中利用规则集的好处。然而,重要的是要认识到严格的基于规则的引擎的局限性,即:

  • 今天实施的严格的基于规则的方法明天就会过时因为骗子经常更新策略。然而,随着新的欺诈模式的出现,分析人员将争相制定新的规则来检测新的实例,从而导致高昂的维护成本。此外,在更新数据的情况下,无法快速检测欺诈会带来硬成本——ML方法可以帮助加快检测欺诈的时间,从而挽救商家的潜在损失
  • 规则缺乏一系列的结论因此忽略了风险承受能力,因为他们不能提供欺诈的概率
  • 准确性会受到影响由于在评估欺诈交易时规则之间缺乏交互作用,造成损失

对于欺诈检测框架开发,我们推荐将规则集与ML模型相结合的混合方法。为此,我们使用了业务逻辑编辑器在图形界面中开发规则,Drools等系统通常使用图形界面来简化规则制定。具体来说,我们交互式地将规则编码为图中的节点,并引用现有MLflow模型(使用其ML注册表URI,如models:/fraud_prediction/production),以指示由数据科学家同事开发的ML模型应该在执行上面的规则后加载并用于预测输出。每个规则都使用Delta Lake表中的一个特性,该特性是由数据工程团队策划的,一旦添加了该特性就可以立即使用(请参阅有关模式演变的更多详细信息)在这里看看在ML项目的整个生命周期中向表添加特性是多么简单)。

我们通过迭代地添加每个规则来创建逻辑流(例如,作为基准规则,授权金额应该小于账户上的可用现金),并添加有向边来可视化决策过程。同时,我们的数据科学家可能有一个ML模型来捕捉通过训练数据发现的欺诈实例。作为一名数据分析师,我们可以简单地注释一个注释,以捕获ML模型的执行,从而为我们提供正在评估的事务的欺诈概率。

注意:在下面的图片中,包含所有规则的底层标记语言(DMN)是基于XML的,所以不管使用什么工具或gui来生成规则,通常都是从底层平面文件或XML(例如,像这样的系统)中提取规则集和图形结构Drools).

使用ML模型增强规则集工作流

如上所示,在组合了规则集和模型步骤之后,我们现在可以将整个可视化流编码到Databricks中的决策欺诈检测引擎中。也就是说,我们可以从Kogito工具中提取DMN标记直接上传到数据库作为文件。由于.dmn文件具有节点和边缘内容,表示要执行的规则和模型的顺序,因此我们可以利用图结构。幸运的是,我们可以使用网络分析Python包networkx来摄取、验证和遍历图。该软件包将作为欺诈评分框架的基础。

进口networkx作为nxXmldoc = mindom .parse(“DFF_Ruleset.dmn”itemlist = xmldoc.getElementsByTagName(“静:决定”G = x. digraph ()itemlist:Node_id = item.attributes[“id”) valuenode_decision =str(item.attributes [“名字”] value)G.add_node (node_id、决策= node_decision)infolist = item.getElementsByTagName(“静:informationRequirement”如果len(infolist) >0):Info = infolist[0要求的事情info.getElementsByTagName (“静:requiredDecision”):Parent_id = req.attributes[“href”] .value.split (“#”) (-1G.add_edge (parent_id node_id)

既然已经有了元数据和工具,我们将使用MLflow将混合规则集和模型包装到一个自定义Pyfunc模型中,这是一个用于欺诈评分的轻量级包装器。唯一的假设是,上面DAG(有向无环图)中注释和使用的模型在MLflow模型注册表中注册,并且有一个名为“预测”的列作为我们的概率。框架pyfunc编排器模型(利用networkx)将遍历图并直接从XML内容执行规则,一旦调用pyfunc进行推理,就会导致“批准”或“拒绝”状态。

下面是用前面提到的规则编辑器创建的一个DAG示例。我们已经编码了规则和预先注册的模型的混合(显示在所附的笔记本中)。规则文件本身被持久化在模型构件中,因此,在推理时,所有规则和模型都从云存储中加载,而使用的模型(在本例中为欺诈检测模型)则从实时数据管道中的MLflow模型注册中心加载。请注意,在示例事务的示例运行中,对于示例输入不满足第三条规则,因此节点被标记为红色,这表明存在欺诈事务。

遍历有向无环图进行欺诈检测

为了进一步理解模型如何执行规则,下面是自定义Pyfunc本身的一个片段,它使用pandasql在SQL case语句中编码XML规则集的字符串,用于简单的标志设置。这将导致编排器的输出,用于指定欺诈或有效事务。

进口mlflow.pyfuncDFF_Modelmlflow.pyfunc.PythonModel):进口networkx作为nx进口熊猫作为pdpandasql进口sqldf“‘对于基于规则的情况,我们只需根据预定义的SQL where子句匹配记录如果规则匹配,则返回1,否则返回0“‘deffunc_sql自我,sql):pandasql进口sqldf我们还没有执行匹配,只是返回一个函数这允许我们只定义一次函数deffunc_sql2input_df):Pred = sqldf("SELECT CASE WHEN {} THEN 1 ELSE 0 END AS predict FROM input_df"格式(sql)) .predicted.iloc [0返回pred返回func_sql2

决策和服务

最后,我们将展示欺诈检测框架的端到端架构。值得注意的是,我们概述了数据科学家和数据分析师的工作,即规则集和模型。这些在决策层中进行组合,以测试哪些模式将被视为欺诈或有效。规则集本身作为构件存储在自定义MLflow Pyfunc模型中,并可以在推理时加载到内存中,这是在测试期间在Python conda环境中完成的。最后,一旦决策框架准备好推广到生产环境中,还有几个与部署相关的步骤:

  • 决策框架编码在自定义的pyfunc模型中,该模型可以加载到Docker容器中进行实时推理。
  • 用于推理的基本MLflow容器应该部署到ECR (Amazon)、ACR (Azure)或通常是Docker Hub。
  • 一旦将框架部署到容器服务(EKS、AKS或自定义k8s部署),该服务将引用容器存储库和MLflow模型存储库,以建立应用程序端点。由于服务层基于k8s和轻量级pyfunc模型,因此模型推断相对较快。在推理需要亚秒级(ms)延迟的情况下,逻辑可以用C、Go或其他框架重写。
  • 为了在实时评分时快速查找历史数据,可以将数据从之前创建的Customer 360特性存储中加载到内存数据库中。最后,企业案例管理系统可以与Customer 360 Data Lake接口,从部署容器中捕获评分结果。

用于欺诈框架开发和部署的端到端架构

建立现代欺诈框架

虽然有效打击欺诈是供应商和金融服务组织之间的共同责任,但通过部署有效的欺诈预防策略,金融服务机构可以最大限度地减少直接财务损失,并通过减少虚假拒绝来提高客户的信任。正如我们在调查中所看到的,欺诈行为迅速多样化,金融行业已经转向分析模型和ML来管理损失和提高客户满意度。构建和维护基础设施以支持多个产品团队和角色是一项巨大的任务,这可能直接影响公司的收入底线。

我们相信,该解决方案解决了云计算可扩展性、欺诈预防工作流管理和生产级开源ML框架的关键领域,通过使不同内部团队之间更紧密地结合,为组织构建和维护现代欺诈和金融犯罪管理基础设施。bob下载地址

本解决方案加速器是使用Databricks的统一分析平台构建欺诈和金融犯罪解决方案系列的第一部分。bob体育亚洲版bob体育客户端下载试试Databricks上的以下笔记本,利用人工智能的力量来降低声誉风险。联系我们以了解BOB低频彩更多有关我们如何协助金融服务机构处理类似用例的信息。

试试笔记本

请查看解决方案加速器下载本博客中提到的笔记。

免费试用Databricks

相关的帖子

看到所有工程的博客的帖子