【DS Solutions】一个反欺诈产品的进化,Stripe Radar

b705bab883f84c0eb93abaaa4c8e457d.png

Stripe Radar 是 Stripe 提供的一项防欺诈服务,它利用机器学习技术来帮助商家检测和阻止信用卡欺诈行为。这篇文章是Stripe公司关于其反欺诈解决方案Stripe Radar的构建过程的介绍。文章从Stripe的防欺诈团队工程师的角度出发,详细讲述了Stripe Radar的工作原理、技术架构的演进、机器学习(ML)特征的重要性,以及如何提供交易欺诈决策的解释。

原文链接:https://stripe.com/blog/how-we-built-it-stripe-radar

文章开篇描述了Stripe Radar在用户点击“购买”到交易确认之间的极短时间内的工作流程。Stripe Radar通过评估超过1000个潜在交易特征来确定其欺诈可能性,准确率极高,错误阻止的合法交易仅占0.1%。

In that brief interval, Stripe Radar goes to work. Radar is Stripe’s fraud prevention solution. It assesses more than 1,000 characteristics of a potential transaction in order to determine the likelihood that it’s fraudulent, letting good transactions through and either blocking risky transactions or diverting them to additional security checks. It makes this decision, accurately, in less than 100 milliseconds. Out of the billions of legitimate payments made on Stripe, Radar incorrectly blocks just 0.1%.

Lesson 1: 不要对机器学习架构过于自满

Stripe Radar的构建始于相对简单的机器学习模型,随着Stripe网络的扩展和机器学习技术的进步,逐渐发展到更复杂的深度神经网络模型。2022年中期,Stripe从“Wide & Deep”模型迁移到了纯DNN模型,这一转变显著提升了模型的训练速度和扩展性。

deaf334bdd18f26c12d6b807439ec57e.png

Stripe Radar原先的架构结合了XGBoost的记忆能力和深度神经网络(DNN)的泛化能力,虽然有效,但在扩展性上存在局限。XGBoost在大规模应用中与Stripe希望采用的更先进的机器学习技术(如迁移学习、嵌入和长时间训练)不兼容,并且由于其并行化程度不高,限制了模型的再训练速度和工程师们的实验速度。

尽管移除XGBoost组件可以简化架构,但这将导致召回率下降1.5%,这是不可接受的性能退步。为了在不牺牲DNN泛化能力的同时增加其记忆能力,Stripe探索了增加DNN的大小——深度和宽度,但同时也要避免过拟合的风险。

Stripe通过研究DNN架构的流行出版物,最终采用了受ResNeXt启发的多分支DNN架构。这种架构采用“Network-in-Neuron”策略,将计算分割成不同的线程或分支,每个分支可以视为一个小网络,最终将分支的输出汇总以产生最终输出,从而在不单纯增加深度或宽度的情况下提高准确性。

通过去除XGBoost组件,Stripe将模型的训练时间减少了85%以上,使得原本需要通宵运行的实验现在在一天之内可以多次完成,极大地提高了原型设计的能力。

Lesson 2: 永远不要停止寻找新的机器学习特征

Stripe Radar通过不断寻找和实现新的机器学习特征来提高模型性能。Stripe团队通过详细分析欺诈行为,识别出可能对模型性能有重大影响的特征,并快速实施和测试这些特征。

Stripe Radar通过细致分析欺诈尝试的共同行为,积累了对欺诈活动和趋势的深入理解。这种理解为Radar提供了一个重要优势:训练数据集规模的每次增加都能显著提高模型质量,这在XGBoost情况下并不明显。

Each increase in the size of Radar’s training data set creates outsized improvements in model quality, which wasn’t the case with XGBoost.

特征工程作为提升模型的关键,Stripe通过创建多个流程来赋能机器学习工程师,以识别和实施可能对模型性能产生重大影响的特征。通过详细回顾过去的欺诈攻击,构建调查报告,寻找支付中的信号,比如欺诈者可能用于快速设置多个账户的一次性电子邮件模式。

Stripe探索了通过增加训练数据量来提升模型性能的方法。尽管训练时间随训练数据量线性增加,但由于切换到DNN架构后训练速度的提升,这不再是问题。实验结果显示,即使训练数据量增加了10倍,模型性能仍有显著提升,Stripe正在探索100倍的数据量扩展。c73a7c9242185c06ac6d68843810c383.png

Lesson 3: 解释的重要性不亚于检测

除了检测欺诈,Stripe Radar还重视向用户解释欺诈决策的原因。尽管机器学习模型通常难以解释,Stripe的工程师们已经开发了多种方法来提高透明度。这是一个挑战。所有的机器学习模型在某种程度上都是黑箱,深度神经网络比其他类型的模型更是如此。向用户解释为什么Radar会以这种方式对交易进行评分是困难的。这是我们在决定使用DNN而不是更简单、更传统的机器学习技术时不得不接受的另一个权衡。但我们的工程师对系统非常了解,并已经开发了一系列方法来帮助用户理解发生了什么。

2020年推出的风险洞察功能允许用户了解哪些交易特征导致了交易被拒绝,并通过地图和Elasticsearch等工具提供更多上下文信息,帮助用户更好地理解交易评分背后的逻辑。这些改进展示了Stripe在提高模型可解释性方面的持续努力和投资。

10d57f011e33fadfc729ade718e23785.png

比如,可能包括持卡人姓名是否与提供的电子邮件匹配,以及之前与IP地址关联的卡的数量。卡片数量多可能表明可疑行为,例如一个不良行为者尝试使用多个被盗信用卡。然而,这也可能存在合理的理由,我们的模型会在所有信号的背景下评估这个特征,理解它们之间可能存在的相关性,以准确区分欺诈和正当支付。

Summary

Radar与我们最初开始时的产品已经大不相同。我们已经彻底改革了我们使用的模型,我们利用Stripe网络中的交易数据的方式,以及我们与用户的互动方式。在同一时期,欺诈模式也发生了显著变化,从主要是盗用信用卡欺诈到今天传统银行卡欺诈和高速卡片测试攻击的日益混合。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/34991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车辆数据的提取、定位和融合 精确车辆定位(其三.一 共十二篇)随机复合

第一篇: System Introduction 第二篇:State of the Art 第三篇:localization 第四篇:Submapping and temporal weighting 第五篇:Mapping of Point-shaped landmark data 第六篇:Clustering of landma…

礼让,不是一昧地退让,而是表达我们的素养、品德

礼 / 让,发心是文明相处,互助互让,是君子之交

UnityShader SDF有向距离场简单实现

UnityShader SDF有向距离场简单实现 前言项目场景布置连连看画一个圆复制一个圆计算修改shader参数 鸣谢 前言 突然看到B站的一个教程,还不错,记录一下 项目 场景布置 使用ASE连连看,所以先要导入Amplify Shader Editor 连连看 画一个…

面试-JMM的内存可见性

1.JAVA内存模型 分析: 由于JVM运行程序的实体是线程,而每个线程创建时,JVM都会 为其创建一个工作内存(栈空间),用于存储线程私有的数据。而java内存模型中规定所有变量都存储在主内存中。主内存是共享内存区域,所有线程都可以访问…

Python-PDF文件密码破解小工具

背景 经常从网络上下载的PDF笔记被加了密,在自己学习的过程中想要添加书签却因为没有密码无法添加,所以通过Python实现一个解密小工具,亲测大多数密码都可以破解。 代码 import os import tkinter as tk from tkinter import filedialog #…

你还不知道Modbus RTU???

1. 什么是Modbus RTU Modbus RTU(Remote Terminal Unit)是Modbus通信协议的一种变种,用于串行通信。它是一种常见的工业控制系统通信协议,通常用于采集传感器数据、控制执行器和监控设备状态。Modbus RTU采用二进制编码&#xff0…

【深度学习】实现基于MNIST数据集的TensorFlow/Keras深度学习案例

基于TensorFlow/Keras的深度学习案例 实现基于MNIST数据集的TensorFlow/Keras深度学习案例0. 什么是深度学习?1. TensorFlow简介2. Keras简介3. 安装TensorFlow前的注意事项4. 安装Anaconda3及搭建TensorFlow环境1) 下载安装Anaconda Navigator2&#xf…

go语言day06 数组 切片

数组 : 定长且元素类型一致,在索引逻辑上连续存储,数组的内存地址是存储的第一个元素的内存地址 几种创建方式: 仅声明 var nums [ 3 ] int 声明并赋值 var nums [ 2 ] string {"武沛齐","alex"} 声明并按下标赋值 var nums [ 3 ] int {0:88,2:1 } 省略…

ffmpeg+nginx+video实现rtsp流转hls流,web页面播放

项目场景: 最近调试海康摄像头需要将rtsp流在html页面播放,因为不想去折腾推拉流,所以我选择ffmpeg转hls流,nginx转发,html直接访问就好了 1.首先要下载nginx和ffmpeg 附上下载地址: nginx nginx news ffmpeg htt…

HttpServletRequest・getContentLeng・getContentType区别

getContentLength(): 获取客户端发送到服务器的HTTP请求主体内容的字节数(长度) 如果请求没有正文内容(如GET),或者请求头中没有包含Content-Length字段,则该方法返回 -1 getContentType()&am…

eclipse中svn从分支合并到主干及冲突解决

1、将分支先commit,然后再update,然后再clean一下,将项目多余的target都清理掉。 2、将branches切换到trunk 3、工程上右键-》Team-》合并(或Merge) 4、默认选项,点击Next 5、有未提交的改动,…

文献阅读:通过双线性建模来破译神经元类型连接的遗传密码

文献介绍 文献题目 Deciphering the genetic code of neuronal type connectivity through bilinear modeling 研究团队 Mu Qiao(美国加州理工学院) 发表时间 2024-06-10 发表期刊 eLife 影响因子 7.7 DOI 10.7554/eLife.91532.3 摘要 了解不同神经元…

打造爆款秘籍:阿里巴巴国际站测评补单优势全攻略

在阿里巴巴国际站,买家复购率和其他销售指标是衡量产品市场潜力和销售成功与否的关键指标。当系统评估出产品具有巨大的市场潜力时,它会相应地增加对产品的流量支持;反之,如果潜力不足,产品的排名将会受到影响&#xf…

使用 Spring Boot 3.x 与图形学技术,添加电子印章防伪特征

使用 Spring Boot 3.x 与图形学技术,添加电子印章防伪特征 在电子办公和无纸化办公日益普及的今天,电子印章的使用越来越广泛。然而,如何确保电子印章的安全性和防伪能力成为了一个亟待解决的问题。本文将通过 Spring Boot 3.x 和图形学技术,深入探讨如何为电子印章添加防…

Redis-实战篇-什么是缓存-添加redis缓存

文章目录 1、什么是缓存2、添加商户缓存3、前端接口4、ShopController.java5、ShopServiceImpl.java6、RedisConstants.java7、查看Redis Desktop Manager 1、什么是缓存 缓存就是数据交换的缓冲区(称为Cache),是存贮数据的临时地方&#xff…

01数字电子技术基础

第一节课:introduction 导论 决定了这门课的学习方法、学习内容、一个大概的把握、虽不是具体的技术,不是细节,但是这是一节思想 每门课都重要,但侧重点不同。 学习前人的思想和营养,为自己所用。 1.课程性质&#x…

【Text2SQL 论文】MAGIC:为 Text2SQL 任务自动生成 self-correction guideline

论文:MAGIC: Generating Self-Correction Guideline for In-Context Text-to-SQL ⭐⭐⭐ 莱顿大学 & Microsoft, arXiv:2406.12692 一、论文速读 DIN-SQL 模型中使用了一个 self-correction 模块,他把 LLM 直接生成的 SQL 带上一些 guidelines 的 p…

前端:HTML、CSS、JavaScript 代码注释 / 注释与代码规范

一、HTML 行内注释 HTML注释是在HTML代码中添加说明和解释的一种方法&#xff0c;这些注释不会被浏览器渲染或显示在页面上&#xff0c;而是被浏览器忽略。HTML注释对于代码的可读性、可维护性和团队协作非常重要。 1.1、HTML注释的语法 HTML注释的语法是以<!--开始&…

大学生必备!GitHub星标破千的matlab教程(从新手到骨灰级玩家)

MATLAB&#xff08;Matrix Laboratory&#xff09;是MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的商业数学软件。 MATLAB具有数值分析、数值和符号计算、工程与科学绘图、数字图像处理、财务与金融工程等功能&#xf…

【传拓研学】传承文化瑰宝,领略千年韵味

非遗薪火&#xff0c;传承中华文明 文化繁荣&#xff0c;共筑美好未来 在这风云变幻的时代&#xff0c;我们始终怀揣着对历史与文化的敬仰之情。今日&#xff0c;我们隆重向您推荐一项极具意义的活动——传拓研学活动。 传拓是我国一项古老的传统技艺&#xff0c;非遗物质文…