跳到主要内容
工程的博客

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

分享这篇文章

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

鉴于近年来整体欺诈行为的创纪录增长以及欺诈行为的多样化,金融服务中的欺诈行为仍然是企业底线的头号威胁。最近的一项调查普华永道概述了欺诈的惊人全球影响。例如,仅在美国,2019年企业的成本总计为420亿美元,47%的受访公司在过去24个月内遭遇过欺诈。

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

构建可扩展和健壮框架的挑战

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

我们将首先看看结合Databricks的数据湖屋架构的使用。企业平台bob体育客户端下载,它支持欺诈预防应用程序的所有下游应用程序的基础设施需求。在整个博客中,我们还将引用Databricks的lakhouse核心组件达美航空发动机,这是一个高性能查询引擎,专为大数据工作负载的可扩展性和性能而设计MLflow,一个完全管理的机器学习治理工具,用于跟踪机器学习实验并快速将其生产化。

客户360数据湖

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

数据工程师可以轻松地连接到各种外部数据管道和支付网关数据摄取合作伙伴网络统一会员交易、业绩和交易历史。如前所述,计算新特性并在数据流入时更新现有特性非常重要。预计算特征的例子是会员账户历史或统计平均值的历史汇总,这对下游分析报告和加速ML模型的再训练很重要。Databricks的Delta Lake和native达美航空发动机正是为此目的而构建的,并且可以使用spark兼容的api来加快特性开发的速度,从而为工程团队强制执行最高水平的质量约束。

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

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

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

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

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

将基于规则的系统与AI相结合

映射用户和Databricks的组件

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

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

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

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

使用SQL功能探索规则

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

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

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

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

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

规则和模型编制框架

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

  • 今天实施的严格的基于规则的方法明天就会过时因为欺诈者经常更新策略。然而,随着新的欺诈模式的出现,分析师将争先恐后地制定新的规则来检测新的实例,从而导致高昂的维护成本。此外,鉴于更新的数据,无法快速检测欺诈存在硬成本——机器学习方法可以帮助加快检测欺诈的时间,从而节省商家的潜在损失
  • 规则缺乏一系列的结论因此忽略了风险承受能力,因为它们不能提供欺诈的可能性
  • 准确性会受到影响由于在评估欺诈交易时缺乏规则之间的相互作用,造成损失

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

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

注意:在下面的图片中,包含所有规则的底层标记语言(DMN)是基于XML的,因此无论用于生成规则的工具或gui是什么,从底层平面文件或XML中提取规则集和图形结构都是常见的Drools).

用ML模型扩充规则集工作流

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

进口networkx作为nxXmldoc = miniddom .parse(“DFF_Ruleset.dmn”itemlist = xmldoc.getElementsByTagName(“静:决定”G = n . 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子句进行匹配如果rule匹配,则返回1,否则返回0“‘deffunc_sql自我,sql):pandasql进口sqldf#我们还没有执行匹配,我们只是返回一个函数这允许我们只定义一次函数deffunc_sql2input_df):Pred = sqldf("SELECT CASE WHEN {} THEN 1 ELSE 0 END AS expected 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数据湖连接起来,从部署容器获取评分结果。

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

构建现代欺诈框架

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

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

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

试试笔记本

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

免费试用Databricks

相关的帖子

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