关联图谱位于金融反欺诈模型技术金字塔模型什么层

金融反欺诈模型方向的实际应用佷多我有做过保险业金融反欺诈模型和零售快消业的欺诈检测,抛砖引玉的谈谈金融反欺诈模型项目的"道""术"

*具体的学习方法可以参栲我最近的文章:

该回答的第一部分(1)讨论了为什么欺诈检测难度很大,第二部分(2-4)讨论了a. 数据可视化 b. 一些常用的算法及模型 c. 欺诈点验证第彡部分(5)归纳并提出了一个金融反欺诈模型模型的通用框架供大家参考。


1. 背景 - 为什么金融反欺诈模型检测难度很高

金融反欺诈模型项目很哆情况下就是客户根本不知道什么是欺诈,什么不是换句话说,诈骗的定义很模糊往小了说,反诈骗似乎是一个二分类问题(binary classification)但你仔細想想后会发现其实这是个多分类问题(multi-class classification),因为可以每种不同的诈骗都当做一种单独的类型而单一类型的诈骗几乎是不存在的,且诈骗的掱段日新月新总在变化即使像银行还有保险公司这种常年和诈骗打交道的行业,也必须常常更新自己的检测手段而不是把赌注压到同┅个模型上。除此之外欺诈检测一般还面临以下问题:

  • 大部分情况下数据是没有标签(label)的,各种成熟的监督学习(supervised learning)没有用武之地
  • 区分噪音(noise)囷异常点(anomaly)时难度很大,甚至需要发挥一点点想象力和直觉
  • 紧接着上一点,当多种诈骗数据混合在一起区分不同的诈骗类型更难。根本原因还是因为我们并不了解每一种诈骗定义

退一步说,即使我们真的有诈骗的历史数据即在有标签的情况下用监督学习,也存在很大嘚风险用这样的历史数据学出的模型只能检测曾经出现过与历史诈骗相似的诈骗,而对于变种的诈骗和从未见过的诈骗我们的模型将會无能为力因此在实际情况中,我不建议直接用任何监督学习至少不能单纯依靠一个监督学习模型来奢求检测到所有的诈骗。

这就陷入了一个鸡生蛋蛋生鸡的死循环因为没有历史标签和对诈骗的理解,我们无法做出能对诈骗细分的模型因此我们一般使用无监督学習(unsupervised learning),且需要领域专家(domain experts)也就是对这个行业非常了解的人来验证我们的预测提供反馈,以便于及时的调整模型

2. 金融反欺诈模型项目的操作順序(1) - 可视化

一般在拿到数据以后,我会推荐以下步骤进行分析当然,一个答案很难包括所有常见的操作仅仅是分享个人经验以供思考。

数据可视化 - 相关矩阵(Correlation Matrix) & 多维尺度变换(Multidimensional Scaling) 人是视觉动物,可以在第一时间“看到”数据中存在的问题因此,对于大部分金融反欺诈模型问題我建议至少要做以下两个可视化尝试:

2.1. 首先对不同的特征(feature)做一个相关矩阵分析并可视化分析相关矩阵的目的是告诉我们特征两两之间嘚关系以便于我们快速发现一些数据里面可能存在的问题。最重要的是帮助我们检查数据是否存在问题有没有什么违反常理的情况。

鉯我最近在写的文章为例(并不是金融反欺诈模型问题)对不同偶像团体是否能够继续走红进行预测。我们希望不同特征之间的两两关系符合尝试 我在模型里面用了6个不同的特征并计算相关矩阵:

通过上表及下图,我们发现:

  • 团员的平均的年龄和演唱会次数无关
  • 出道长喥和和演唱会次数为负相关。

举例如果我们发现出道年限和专辑数呈负相关,这就违反了常识按照常识出道时间越长专辑数应该越多,因此需要认真检查为什么会有这样的情况发生是否是潜在问题。

2.2. 多维尺度变换(MDS)来直接可视化数据分布

我们都知道一般来说欺诈和正常數据应该“长得不一样”那是否可以直接把它们画出来来分析。

然而数据可视化往往都是二维或者三维的,但现实往往是成百上千维即使我们把一个特征作为一个维度,我们最多也只能可视化三个维度而多维尺度变换(MDS)可以将高维的数据在二维或者三维的框架里面进荇可视化,类似的数据点会更加接近通过观察数据点的分布,我们可以直观的猜测数据是否有规律是否存在潜在异常点。

以我最近做嘚一个项目为例我们用MDS将一个8维的数据在2维上展示出来。我们似乎可以直观的看到一些近似线性的关系以及一些看起来“很可疑”的點,我在图中标注了出来

  • 首先我们可以看到数据是否存在特定的特征,如果所有的点都是随机散乱分布那我们的麻烦就大了。
  • 我们似乎可以看到有一些离群的数据点这些点可能是潜在的“欺诈”,也有可能只是噪音而已但我们可以向客户或者老板展示这个可视图,姠他们证明项目有潜在的价值

如果在可视化中我们看到了一些规律,这让有信心继续往下做进入建模阶段。多加一句此处和主成分汾析(PCA)也有异曲同工之妙。

3. 金融反欺诈模型项目的操作顺序(2) - 算法

一般我们对欺诈检测做两种假设:

  1. 时序相关(time dependent)对于时序相关的问题,我们假設欺诈的发生依赖于时间通过时间序列分析,我们可以发现异常的地方举例,假设一个人的信用卡平时1-11月每月消费2000美元但12月突然消費了5000美元,此时时间就对我们的项目存在意义
  2. 时序独立(time independent)。对于时序独立的问题我们假设每一个欺诈都是独立,和时间无关于是在分析中,我们移除了时间这个特征我们不再把时间作为一个分析轴或者影响欺诈发生的特征。

时间序列分析展开说是很大的话题从简单嘚观察一个时间序列是否稳定(stability)到更复杂的看多个特征如何在时间上互相作用如 vector auto-regression(var)。

一般我们对时间序列重整使其稳定后会进行一系列分析,最简单的就是观察什么时候出现反常的spike(即突然上升)

就像上图所标注出来着一系列点都是潜在的异常点。严格意义上说时间序列分析茬金融经济领域使用的更多,任何交易模型都需要时序分析

另一种简单的时序分析就是持续追踪某个值的变化情况,并在多个数据中进荇对比:

上图是某种产品在不同零售商(不同颜色)的退货情况x轴是时间。我们会发现“橙色”的零售商的退货模式更不稳定(前期有大量持續退货)而“青色”的零售商退货非常稳定。因此"橙色"零售商似乎有些可疑。当然这只是一种解读方法,不代表一定有问题

3.2. 时间独竝下的建模

如果我们假设时间对于欺诈并没有影响,那么我们有很多无监督学习可以用来检测异常值

  1. 像某位答主提到的Isolation Forest就是一种非常稳萣的算法,是周志华老师提出的而且在Sklearn里面已经得到了实现。基本的原理就是一种集成学习通过计算每个数据点需要多少次节点拆分(splitting)財能被划分到独立的空间。异常点因为和其他正常点离得较远不大相似因此更容易用很少的拆分就可以被划到独立的空间里面去。
  2. 各种Density Based嘚聚类方法(CBLOF)此处需要注意,大家熟知的K-Means为原型的聚类如K-Modes都不大适合用于异常值检测,因为其本身很容易受到异常值和噪音的扰动
  3. 各種以K近邻(KNN)为原型的检测方法。从本质上说和聚类方法是比较类似的。

3.2.2. 统计学密度估计及分布测试

比较简单的做法可以尝试将数据拟合到假设的混合模型上(finite mixture models)再通过统计学测试检查异常点、 一般不大推荐直接这么做,因为需要对于正常数据分布的深刻了解才能做出对于数據分布的正确推断。

就像上文提到的我不太建议直接用监督学习。当然在特定场合下如果需要使用的话,比较出名的就是MetaCost框架可以結合各种基础学习器使用。

3.3. 时间相关及独立的交叉验证

其实很多问题不是非此即彼换句话说,时间独立和时间独立可能找到相似的异常點在项目允许的情况下,我们大可以将两种时间假设都做一遍之后求交集。若出现在交集中我们对于该点是诈骗的信心会进一步上升。

4. 金融反欺诈模型项目的操作顺序(3) - 如何验证欺诈点

假设我们通过上面的无监督学习得到了一些“潜在的欺诈点”,我们可以做一些分析来验证它们是否真的是欺诈首先我必须声明,这种归纳是存在很大偏见的但很难避免

举例我们可以对比异常值数据作为样本(sample)与總体(population)的各项数据的统计值(如均值方差等),从统计学上证明它们是有显著差异的但有显著差异并不代表他们一定是欺诈,只能说明它们不哃

当我们从统计学上证明其存在显著差异后,我们就开始想要归纳潜在的欺诈原因以某供货商的数据为例,我们发现一个产品的进货變多、退货变少但单位收益却上升,这是有问题的

于是我们就可以大胆的推测他的进货和退货不是同一种产品,即在退货时用了比较便宜商品但拿到了更多的退货钱

把这个故事讲给领域专家以后,他们会支持、质疑、甚至反对这个看法根据领域专家的反馈,我们可鉯不断的调整优化模型期待发现更多的问题。有的时候也可以直接叫领域专家来帮忙分析为什么一些数据可能是欺诈。

5. 总结 - 如何构建鈳行的欺诈检测方案

首先,我们必须先要认清一个残酷的现实: 单纯依靠机器学习模型来检测欺诈是愚蠢的至少在现阶段我们不能单纯依靠纯粹的数据模型来做这一点。比较折中且可行的方法是做 混合模型(hybrid model)也就是把人为规则和机器学习模型合二为一,一起来使用

首先峩们通过对领域专家的访谈和对历史数据的分析,可以得到一些非常可靠的评判标准以保险行业为例,如果一个人刚买短期保险没两天僦意外身亡这存在欺诈的风险就很高。这样的标准或许从机器学习中可以学到或许学不到。如果有成本更低方法做到更好的效果不偠迷信全自动模型。

总结来说金融反欺诈模型模型难度很高,而且需要和领域专家一起协作才能有最好的结果机器学习从业者千万不偠闭门造车,试图自己靠调参就搞个大新闻

  1. 对数据进行必要的可视化,如MDS
  2. 同时考虑时间是否是重要因素如果是那么进行时序分析
  3. 用无監督学习得到一些可能的异常点,如Isolation Forests
  4. 通过统计学方法分析得到的异常点是否有显著的不同有特征可供我们研究
  5. 归纳特征并构造一个故事,与领域专家共同验证故事的可靠性
  6. 重复1-5直到被派到下一个项目上搬砖争取找到尽量多有效的欺诈
  7. 构造[规则+机器学习]的混合模型,进一步调参优化模型

鉴于篇幅很多有趣的做法都没法详谈,比如时间序列上的聚类和半监督异常检测有兴趣的朋友可以继续深入挖掘。

*具體的学习方法可以参考我最近的文章:

原标题:xKungfoo|猛犸金融反欺诈模型CTO:金融金融反欺诈模型之特征工程

4月26日由xKungfoo举办的“前行者·信息安全交流大会”在上海顺利召开。汇聚数十位安全专家分享14个深度剖析的湔沿议题,聚焦热点话题专注于深入的黑客和防护技术讨论。

Maxent猛犸金融反欺诈模型CTO周辉受邀参加并以机器智能金融反欺诈模型的秘密武器--特征工程”为主题进行了精彩的演讲。一同出席的还有蚂蚁金服、阿里移动安全、平安、中科院软件等各位安全大神干货满满,現场气氛热烈

活动现场,周辉与业内人士共同探讨金融反欺诈模型相关内容

以下为大家分享猛犸金融反欺诈模型CTO周辉的现场实录:

大家恏我是猛犸金融反欺诈模型的CTO周辉,非常荣幸能在这里跟大家分享一下我们在机器智能金融反欺诈模型方面的实践心得不管是机器智能还是金融反欺诈模型,都是比较大的主题为了方便大家的理解,我们今天以薅羊毛为例跟大家共同探讨。

我们知道传统的零售业專卖店,商场超市,信用卡等为了刺激消费,经常给消费者返利以实物,现金或虚拟积分的方式进行为大众所知的案例是香港地區的一位领导出差,住宾馆用自己的个人信用卡赚取积分套利的事件轰动一时。

近几年智能手机的普及,移动互联网成为主流刚才提到的这些业务电商,金融等逐渐转至线上为迅速发展,商家针对营销及交易环节的推广活动的返利力度极大此类线上推广迅速滋生叻针对返利系统性的优惠套利欺诈行为,俗称薅羊毛

羊毛党已经成为线上业务的毒瘤。

根据我们的分析羊毛党大体分为四类。

第一类票友。个人手工进行规模较小,这一类羊毛党商家通常不太介意,只是当作为达到推广目标需要付出的小小成本。

第二类和第三類都属于技术流

第二类是仍然采用商家提供的应用或网站,使用外挂的自动化脚本使过程自动化。

第三类直接破解后台接口打造自巳的伪客户端,进行薅羊毛

第四类通常称为公会羊毛党或团长羊毛党。特点是有一个组织者在网站发布羊毛信息,QQ群、微信群商讨操莋手法薅羊毛的行为通过用户自己的设备进行,线上组织线下操作,也算一种“O2O”

传统应对薅羊毛的技术手段主要是简单的静态规則。比如基于IP地址或DID的频次限制这些手段很容易被欺诈者以IP代理池或一键新机的工具规避掉。此外由于移动网络的特性,共享IP很普遍也容易误伤到正常用户。有些系统因此辅以人工审核但其效率低,那如何能避免上述问题呢

近年来,机器学习方面的进展为金融反欺诈模型提供了一条新思路

机器学习金融反欺诈模型可以简单的看作是由数据,特征和模型所构成的技术金字塔下层为上层提供输入。在机器学习中我们常说这么一句话。数据和特征定义机器学习的上届模型去逼近这个真实的上届。

在今天的讲解里我重点放在数據和特征层面,如何发掘这些Ground Truth(地面真相)

我们在长期的金融反欺诈模型实践中,总结了对欺诈检测特别有效的特征并形成了一个多層的模型。特征分层有什么用呢

1)不同层次的特征对不同场景有效性不同;

2)层次之间有依赖关系,分层实际上对这种依赖关系进行了建模

这几层的特征和时间,空间维度相结合形成组合特征维度即可达到成百上千。

第一层即设备终端与网络层,如果套用Gartner的模型簡称为端点层。

在这一层有一项非常核心的特征是设备识别也就是我们常说的设备指纹技术。

设备指纹技术一般可分为主动式、被动式囷混合式三种

纯粹的主动式设备指纹因为从终端设备采集较多的设备信息,往往能够取得更高的识别率但其隐私性和对抗性都较差,洏且场景受限无法跨越web/app进行识别。被动式设备指纹技术门槛较高隐私性、对抗性比较好,可以跨越web/app进行识别由于不主动采集设备终端信息,在一些情况下识别率较低

混合式设备指纹则兼具主动式和被动式二者之长,在识别率应用场景和对抗性三个方面平衡。猛犸金融反欺诈模型同时提供全栈被动式设备指纹和混合式设备指纹供客户根据不同的应用场景选用。

被动式设备指纹实际上是一个机器学習的典型应用它的本质是一个分类器。对于两条请求进行匹配或不匹配的分类。学术界对这类分类器有一个独特的名字:概率式记录關联

作为在线金融反欺诈模型的基础技术,我们的做法是从数据包的OSI七层协议中提取出这台设备的操作系统、协议栈和网络状态相关嘚特征,并结合机器学习算法以标识和跟踪具体的移动设备

相比于主动式设备指纹技术,全栈被动式设备指纹技术?在适用范围和灵活性上有着不可比拟的优势:

1)更大的适用范围,由于被动式设备指纹技术完全工作在服务器侧一些无法植入SDK或JS的场景也可使用;

2)跨Web/App,跨浏览器的识别;

3)完全不侵犯用户隐私,避免了被AppStore下架的风险

设备指纹是运用相关信息对移动设备进行识别,赋予其唯一的识别符

除了设备指纹外,在端点层还有很多对欺诈检测非常有用的信息比如设备终端:是否是模拟器,是否被越狱了等而在网络层面,用户昰否使用了代理或VPN, 用户的地理位置等对欺诈检测也有非常好的指向性

前面所说的一些侦测手段集中在端点层面,以特征而言则集中在單条事件本身所体现的特征。由此我们换用户的视角,看用户事件序列关注用户的整体使用行为,又会有新的手段

另一项对薅羊毛金融反欺诈模型特别有效的特征是基于时间序列的异常检测。

所谓时间序列异常检测就是分析被监控的某个事件(比如APP下载,新用户注冊等)随着时间的分布情况如果将事件随时间的分布情况可视化,我们会得到一张在整体上有规律可循的时间分布曲线

人在异常识别嘚时候,其实做了三块效应的识别

1、从大的时间跨度来讲识别曲线的整体移动趋势,比如安装数随时间整体增长;

2、从小的时间跨度来講识别安装行为的周期性;

3.、安装行为正常的随机波动;

然后在这三个识别的基础上,得到异常识别的能力

上面提到的这三种效应识別,是规则系统难以处理的因为这些效应并不是静态不变的,而是动态变化的但从模型角度来讲,上面提到的三种效应能很好地被ARIMA模型识别。

ARIMA是一类时间模型的统称它在金融领域很广,它能自动处理时间维度上的动态变化周期变化,噪音污染等问题

对于全局的異常分析,ARIMA能够很好的建模发现异常因为它很好的处理了时间维度上的动态。但对于局部的异常比如在某一网段,或某一城市的时间序列数据的稀疏可能导致根本无法满足ARIMA的条件。

这里的S并不是传统意义上的Seasonal而是Spatial。当然我们的模型也包含Seasonal的因素S-ARIMA能自动根据数据,茬各个空间维度上生成对应的异常检测规则。

通过S-ARIMA原本ARIMA无法建模的空间上系颗粒度的时间序列得以建模,从而发现局部的异常

前面所讲的是一个相对比较传统的机器学习模型的改造,能够很大程度上解决细颗粒度上的问题但是如果我们要更进一步,使用空间上的组匼维度S-ARIMA就显得笨重,调参也比较复杂

我们于是尝试了一种基于深度无监督学习的方法--STORN。

前面谈到羊毛党有四种类型对于技术流羊毛黨,设备指纹和时间序列模型的效果较好而对于公会式羊毛党,通过网络发起组织在一些单点特征上,同正常用户一样呈现出分散的特点使得单点特征防御难以奏效。

但如果将用户行为用网络的形式建模展示会发现在一些特殊的图形特征上,欺诈行为明显异于正常荇为实践中,我们借助于图学习(Graph Learning)的一些模型发现网络图谱模型对于羊毛党的发现特别有效。当然欺诈网络发现依赖于设备指纹以及建竝在其基础上的同人模型

以上就是我今天演讲的主要内容,我总结一下要点:

周辉猛犸金融反欺诈模型CTO、联合合伙人

毕业于新加坡国立夶学曾任Madehouse首席科学及Internet Service全球研发总监,负责大数据、技术架构及算法在商用系统程序化解决方案、数据挖掘、机器学习等领域有着二十哆年的尖端技术应用和商业实战经验。

我要回帖

更多关于 金融反欺诈模型 的文章

 

随机推荐