交易欺诈模型
来源:互联网 发布:linux 查询进程端口号 编辑:程序博客网 时间:2024/04/28 22:12
。
这段时间大家的注意力主要集中在申请环节的风险评估,包括申请欺诈、信用评估。今晚我们换个主题,交流下交易反欺诈。交易欺诈与大数据看的关系,相对申请欺诈、信用评分与大数据的关系,交易欺诈与大数据的相关性看似没那么强。但银行对交易反欺诈模型的精准程度远远高于申请反欺诈、信用评分;并且银行信用卡的交易量远远高于信用卡的申请量,对交易反欺诈系统要求也远远高于申请反欺诈系统。因此,在此讨论交易欺诈,希望能够对现在的大数据的分析、系统设计开发和数据应用等方面提供一些参考。此外,传统的交易反欺诈模型一般只用信用卡的交易信息,现在的交易欺诈模型也会使用非交易信息,甚至是半结构化、非结构化数据,例如客服的信息。
今晚主要有三部分:一、交易欺诈简介;二、交易反欺诈模型;三、交易反欺诈系统。
1 :交易欺诈简介
1.1 交易欺诈概述
交易欺诈一般是指第三方欺诈,即所发生的交易非持卡人本人意愿的交易。通常是不法分子利用各种渠道窃取信用卡信息,进行伪造卡作案。当然,信用卡丢失和被盗现象也时有发生。总的来说,第三方交易欺诈可以分为以下几类:●卡片伪造,例如通过skimming、商户外泄、数据外泄等。
● 卡不在场,例如邮购、电话购物、网上购物等。
上图是一个从盗取信息到套现的整个流程的成交数据。
第三方交易欺诈的特点是:
● 欺诈者(第三方)用别人的卡消费。通常这样的交易会出现与持卡人的消费模式不同。
● 既然是欺诈,一定以获利为目的。为了逃脱被发现的危险,欺诈者通常都会在最时间里大量地用卡消费。
● 欺诈者为了避免被厂家识破,往往始用于特定的商家或行业,以避免严紧的查核。
交易反欺诈模型的特点和难点:
交易反欺诈模型的难点之一是如何处理海量的交易数据。
交易欺诈是小概率事件。
交易欺诈的模式经常会发生变化。
1.1 交易反欺诈方法对比
交易级别的交易发欺诈手段很多,主要有事后查询分析、业务规则、异常侦测、高阶模型等:
国内外实践经验表明,用神经网络建立的交易反欺诈高阶模型比规则集、线性模型侦测率更高,误报率更小。高阶模型主要是神经网络模型。经典的是BP算法
上图是一个典型的神经网络模型的示意图。网络一般包含三或更多层,其至少包含的有输入层、隐含层及输出层。
2 模型部分
2.1 建模的流程
交易欺诈的建模流程与建模流程基本一致。但具体到每个环节的时候,是有区别的。具体区别见下面各个章节。
2.2 数据获取
数据应该包括以下类型数据:
a) 授权文件。授权文件一般包括,账号,交易金额,交易币种,交易日期,交易时间,交易商户地邮政编码、交易商户类别,…等等。该文件是最基本的文件,持卡人的消费模式都包含在里面。
b) 欺诈文件。欺诈文件是模型建制必需的标识文件。
c) 发卡文件。这是该信用卡的主文件。
d) 其他文件。包括还款信息,人口信息,征信局信息等等。此类数据与交易欺诈没有很直接的关系,但也有其一定的预测力。人口信息比如地址更改等和欺诈也有一定的内在联系。
2.3 目标定义
定义目标变量有如下过程:
1、将欺诈数据与交易数据相匹配,欺诈账户在欺诈窗口(第一次欺诈日到被发现之日)之间的所有交易即为欺诈性交易。
2、对非欺诈账户,其所有交易即为非欺诈性交易。
欺诈账户在第一次欺诈日之前的正常交易只为欺诈账户建立档案,但这些正常交易本身并不作为非欺诈性交易进入建模样本。
2.4 变量与档案(profile)的设计
这步和下步变量挑选是建造交易反欺诈模型的重点。
a) 原始变量的设计
一般只用当前交易的信息,如交易金额,商户种类,交易发生地与家庭住址的距离,交易发生的时间等等。同时可以对这些基本交易信息建立二维的交叉变量。对产生的非连续性变量进行相应的WOE(weight of evidence)处理。对所有变量进行缺失值和极端值的处理。
b) 档案型(profile)变量的设计
通过对信用卡账户交易历史的跟踪,可以提炼和发现信用卡账户的行为模式,这就是每个账户的档案。如果当前的交易与该账户的历史行为模式差别较大,则欺诈的可能性也较大。通俗的说,档案是该帐号的消费行为的标准答案。要判断当前的这笔是否交易欺诈,则需要将当前的交易信息与这个档案(标准答案)进行对比,相差越大则欺诈的概率越大。
² 以时间为基础的档案型变量
i 过去10分钟,30分钟,1小时,2小时…半天,1天,2天…1周…1月等时间段交易的次数或平均金额。
ii 当前交易金额与过去若干时间段的交易金额的均值和标准差的对比等等。
² 以事件为基础的档案型变量
i 过去2次,3次…10次…N次交易的平均金额
ii 过去2次,3次…10次…N次交易的最大金额
iii 当前交易金额与过去若干次的交易金额的均值,标准差和最大值的对比等等。
上图是信用卡的部分交易明细,经过提取,可以形成档案
不仅对交易金额可以提炼产生上述变量,对商户种类,交易地点与家庭地址的距离,交易时间,交易种类,交易方式,交易货币等信息均可以用同样的方法产生类似的变量。商户类型等这些分类型变量,需要用对应的 WOE代替,时间也是如此,要将时间划分为 7天×24 小时,然后用对应的WOE代替。需要注意的是,时间要使用当地时间,而不是系统时间。判断该笔消费在当地是白天还是黑夜,当然,系统时间也是要的,用于对交易进行排序,判断交易的顺序。通过这些复杂的变量,可以捕捉到每个账户的历史行为模式,当前交易行为与历史行为模式的差距,交易发生的速率和动态等等。产生上述变量需要一定时间的交易历史(6—12月),涉及的交易量庞大,每笔交易的数据量也不小,如何有效地保存,清理,加工这些数据并在此基础上快速计算所需变量是一个技术关键。一般这步之后,有几千上万个变量。
那接下的工作就是从这上万个变量里寻找一组预测能力强,但变量之间相关弱的变量
2.5 变量选择
由于建模需要构建出大量的变量,有些变量预测能力强,有些变量预测能力弱,不筛选会影响效率。此外,变量的子集很可能高度相关,造成过拟和,模型的准确性和可靠性将受到损害。神经网络BP算法训练过程中,不能自动筛选变量。为了找到一组预测能力强、变量之间的相关性弱的变量,不影响模型准确性,增加模型稳定性。变量筛选的方法主要如下:
u 单变量预测能力筛选:
u 灵敏度分析
u 变量相关性检查:
经过变量筛选,剩下一二百个变量。一般交易反欺诈模型的变量远远多于信用模型、申请反欺诈模型,接下来就要用这些挑选好的数据进行模型训练了,
2.6 模型训练。
按以下步骤训练神经网络模型,直至模型效果最佳。
1、对所有设计产生的自变量先进行初步筛选,排除明显无预测能力的变量,剩余变量在神经网络模型训练过程中再进行精选。
2、根据输入变量的数目,设计合理的网络结构和隐节点数。一般交易欺诈模型有上百个变量,一层隐含层,十几个隐含节点。
3、根据设计好的网络结构,选取合适的训练参数和收敛条件,在上述第一步数据进一步划分后的纯训练数据上训练模型,在测试数据上测试模型效果。
4、在有了初步训练好的神经网络模型后,可用灵敏度分析等手段进一步筛选变量。
5、对每个分段(segment),步骤3到步骤5都要重复多次,调整输入变量,调整隐节点数,调整训练参数,最后选出一个在测试数据上表现最好的模型作为该分段的最终模型。
相对逻辑回归来说,神经网络的训练更加于经验,如何设计网络结构、各个参数大小等,
2.7 模型验证
验证模型主要有以下几种方法:
1、建模验证数据验证:对模型数据划分产生的验证数据上进行验证。
2、跨时间验证:在条件允许的情况下,可对模型在新数据上进行验证。
模型训练结束后,将训练好的模型运用到这部分验证数据上给交易逐个打分,以检验模型的效果。检验交易反欺诈模型的指标通常是欺诈账户发现比例与好账户误判率的比较。下图是一个交易反欺诈模型预测效果评估的示意图:
上图中如果操作点是20:1的误判率(AFPR),则欺诈账户发现比例(ADR)是50%。在某一个固定的误判率下,对应的欺诈账户发现比例越高,则模型的效果越好。
我们申请反欺诈、信用模型一般用ks评价模型的好坏。而交易反欺诈一般不是,一般用AFPR ------ADR。
模型建完之后,需要有对应策略。
2.8 构建基于模型的交易反欺诈策略。
反欺诈策略的目标是最大限额地降低欺诈损失额,而预期欺诈损失额等于欺诈概率乘以交易额。由于反欺诈模型的评分反映了欺诈的概率,所以欺诈评分和交易额是反欺诈策略的主要依据,辅之以商户种类、交易国度、刷卡方式等。下图是简化了的反欺诈策略。
在制定以交易反欺诈模型为基础的交易反欺诈策略时,需要考虑下列因素之间的平衡:
● 欺诈的损失
● 拒绝的交易量
● 电话核对的交易量
● 系统资源和人力资源的配置和容量
● 客户的反应
● 反欺诈的成本
● 卡组织的限制
一个好的交易反欺诈策略应该达到以下3大目标
● 电话核对和拒绝的交易量适度,不会超过系统和资源负荷
● 最大限度地发现和阻止欺诈性交易
● 最小限度地影响真实交易
对欺诈风险较高的交易利用事后短信、电话联系、信件联系或电子邮件联系的方式,与卡用户在交易外进行沟通,核对可疑交易,如果证实某信用卡账号正在经历欺诈性交易(如卡用户证实某可疑交易非其所为),则立刻拒绝该卡的所有后续交易并给卡用户换发新的信用卡。这些反欺诈措施可以作为对实时反欺诈授权决策的有效补充。
有了模型,我们就需要系统上线。接下来我们将系统了。
3 系统部分
交易级实时评分引擎(Real Time TransactionLevel Scoring Engine)能够以三种方式针对与交易反欺诈相关的多维档案系统进行更新:在内存中做实时的检索和更新;准实时检索和定期更新,例如重点关注名单等;与关系型数据库做离线检索和更新。档案系统支持多维档案处理,例如基于账户的档案、基于客户的档案、基于商户的档案。档案系统也具有中文字符处理能力。
账户档案可以载入计算机内存中,并且可以利用特别设计的算法分布在计算机集群上,使得每一笔交易都可以实时地针对档案进行检索和更新。同时,针对数值和中文字符开发的特殊压缩技术可以最小化整个系统对计算机内存的需求。我公司的交易反欺诈系统也同时支持非档案型的交易欺诈模型部署,在业界是当前唯一能够实现此类模型部署的系统。如下图所示:
这个图的信息量较大。同时,我公司的交易反欺诈系统与市场上的其他系统相兼容。如下图所示:
下面是有关性能的测试。
• 60 million accounts,• Profile size: 32G,
这是6个交易历史的数据,100个输入变量,25个隐含节点的效果。BP模型。
今晚就到这里,谢谢大家!
以下为交流问答环节:
张正媛:模型的训练集的ks一般多少?实际使用中的ks是多少呢?
曾伟雄-中智诚征信公司:刚才说了交易反欺诈模型 不是ks,而是 afpr adr,这两个指标,光从ks来说有八十多,但是因为交易欺诈的比例很少因此不能按照信用评分这样去判读。
王俊刚:@曾伟雄-中智诚征信公司 这套模型有哪些客户在使用?@曾伟雄-中智诚征信公司 @Yan Zhang 这套模型的应用商户是?实施过程中有哪些难题呢?
曾伟雄-中智诚征信公司:这套方法我公司的人员在美国的第一资本有实施,国内在建行做过咨询,某银行有建模。实施的难点在于系统的效率。
王俊刚:时趣科技我们的训练模型用的是什么作为教师信号?
曾伟雄-中智诚征信公司:银行提供的实际发生的交易欺诈和正常交易。
宋文方:@曾老师,您说的AFPR其实是1-accuracy。而ADR就是是预测的是欺诈的数据中,实际是欺诈:实际是非欺诈。是吗?
曾伟雄-中智诚征信公司:ADR欺诈账户发现率 ,就是说在100个欺诈账户中,你找到了几个,简单说你刚好把 adr 和 afpr反了,afpr =非欺诈账户:欺诈账户。
宋文方:adr=precison
宋文方:哦,是,我刚说错了。应该是adr=recall。
宋文方:
曾伟雄-中智诚征信公司:@宋文方是的
梅一多:欺诈是小概率事件,训练时候是否包含非欺诈数据 (正例),如果包含正例,怎么选择和反例(欺诈数据)的比例?
曾伟雄-中智诚征信公司:@梅友人 抽样到10:1。
梅一多:谢谢!这个模型要针对每个公司单独训练参数吗?如果公司使用了以后,是否要经常更新参数,重新训练?
曾伟雄-中智诚征信公司:@梅友人一般要整对每个银行单独训练。之后一般一年要重新训练。主要是因每个银行有各自的特点。此外欺诈模式也经常改变。
史雁军:这类模型的训练难度是否很大?是否有自适应的机器学习机制来稳定风险误判概率
曾伟雄-中智诚征信公司:@史雁军 难度比逻辑回归大,是自学习。补充点,理论上讲逻辑回归不抽样不会影响模型的训练效果(不考虑效率的、人看的直觉的话)。但神经网络训练则需要抽样到合理的比例
史雁军:@曾伟雄-中智诚征信公司 是在广发卡用过么?效果如何?
曾伟雄-中智诚征信公司:模型开发完了正计划实施。从测试看在欺诈比例与国际相同的情况下,模型效果与国外主流的交易反欺诈模型效果一样.
子旋:@曾伟雄-中智诚征信公司 昨天没来参加,今天补上了,非常精彩,谢谢曾老师的分享!有几个问题,
关于这张图,1、在20%的误判率时,能抓出50%的欺诈账户,那有否一个标准值来界定一个模型的有效性?2、这张图在100%误判时,只抓出了70%的坏账户,如何理解?
曾伟雄-中智诚征信公司:是20:1,即要抓一个欺诈,会影响20个正常交易。
子旋:能详细些吗,在100:1时是如何理解的?如果是比例的话,我觉得会有些问题,我觉得横轴应该是比重不断趋大的。
曾伟雄-中智诚征信公司:这个结果初看很差,但因为交易欺诈很少,只有万分之几,所以误抓高。往上翻,@宋文方 发了个手机拍的,自己写的公式。是x轴是好:坏,这与我们习惯相反。这图有点瑕疵,只把x轴画到100:1,往后画可以是500:1,……,最大值是该行的全体好账号数:欺诈账号数几千上万。
- 交易欺诈模型
- 金融反欺诈-交易基础介绍
- 金融反欺诈-交易基础介绍
- 怎样保护在线交易用户免遭钓鱼的欺诈
- 全面揭露网络交易出现的十大欺诈骗术
- 数据分析在交易欺诈领域的应用
- 全球顶尖交易模型
- 如何判断一笔交易是否属于欺诈 数据挖掘算法与现实生活中的应用案例
- 用机器学习构建模型,进行信用卡反欺诈预测
- 图模型在欺诈检测应用一点看法
- 中线交易——股票程序化交易模型鉴赏
- 干货 | 人工智能如何帮助银行反欺诈:来看看关于银行智能欺诈风险预测模型的研究
- 高频交易的思路模型简介
- 统计套利六--交易量&回归模型
- 挖坑-用隐含马尔科夫模型交易
- [交易策略]单均线模型回测
- [交易策略]MACD金叉买死叉卖模型回测
- O(n)时间求解最佳交易模型
- 内连接、外连接
- u-boot中SPL源代码分析
- 华硕开机时出现无法验证数字签名驱动
- java中"|""||""&"""&&"区别
- 一套完整的ARM交叉编译环境的搭建过程——不使用现成的工具链
- 交易欺诈模型
- Scala:Function(高阶函数式编程)
- The X New Developer’s Guide——前言
- applicationId is set to 'com.super.app' in default config
- android 高斯模糊实现
- 关于vs2013的mysql配置问题说明
- CCBPM中流程回滚的介绍
- ubuntu 开xxnet报 “您的连接不是私密连接” 的解决方法
- leetcode第七题:Reverse Integer