导读:依托于 Fabarta 在金融行业应用图技术解决反洗钱业务领域问题成功经验,将图智能在反洗钱方向的应用实践进行总结并分享,主要包括以下几个方面:
全文目录:
- 反洗钱业务业务背景
- 当前反洗钱的业务流程及痛点
- 如何应用图智能进行反洗钱分析
- 案例介绍
- 总结
01 业务背景
1.背景
反洗钱的重要性在这里就不赘述了。随着金融技术的快速发展,金融机构的体量迅速增长,犯罪分子的洗钱行为、手段越来越新,呈现出专业化、团伙化、隐蔽化的特点,为反洗钱工作带来了巨大的挑战。在以往的反洗钱工作中,金融机构积累了很多数据规则,但是因为洗钱手段不断翻新,这些积累的规则或模型并不能完全、及时地发现新的洗钱手段。
因此,在已有系统预警发现之外,针对需要进一步协查的案例,结合金融机构相关数据构建反洗钱图谱后,进行可以洗钱行为进行发现和举证;在分析和举证的过程,更多的会是图数据的探查操作。
2.业务流程及痛点
(1)洗钱行为本身是团伙行为
仅针对单一的客户或者账户进行规则发现,并不能完全覆盖到团伙行为。所以需要进一步地去对整个团伙进行一些探索和发现,并识别出来团伙的行为,只有这样才能更有效地去提供有价值的情报,帮助金融机构或者经侦机构对反洗钱的案例进行分析和发现。
(2)现有业务分析过程
案发后,经侦机构为了进一步针对洗钱行为进行举证,会针对相关账户或者责任人,向相应金融机构发放协查通告。金融机构在接受到协查通告之后,会在自己的数据范围内进行人工筛查,包括收集相关账户或者相关责任人在本金融机构内的一些金融行为数据。在筛查完之后,将这部分数据中的可疑行为形成报告后,提供给相应的业务部门进行尽职调查,最后整个在机构内形成综合评判,提供一个完整的案例说明,进行上报。
(3)现有分析过程的痛点
在上述业务流程中会有以下几个痛点:
- 首先是整个流程比较长,需要数据组进行人工审查,又要业务组进行尽职调查,还要进行研判,最后进行报告整理,所以一般来说整个的案件处理的平均时间会在 20 至 50 分钟。
- 手段相对局限,因为整个过程涉及到的数据大多还是通过结构化数据库进行存储的,所以一般采用 SQL 去筛选、关联数据;针对关联数据的探索手段局限,耗时也比较长。
- 单个案例本身耗时较长,基本上是每年都会有几万起的案例,因此会消耗金融机构很大的人力工作量去应对。
- 在经过这么多的人力投入和分析之后,可疑上报之后,发现的可疑行为和数据并没有得到进一步的有效应用,无法形成一个完整的闭环。
针对这些问题,我们从技术角度提出了一个整体的分析思路。
02 分析过程
下面详细地解释一下我们的分析过程。分析过程分成五步。
(1)数据收集
首先是做数据收集,不同机构对于数据收集的能力也不尽相同。例如,经侦机构有权调用所有的数据,包括各金融机构提供的交易数据;而在金融机构内部,则仅能收集相关客户的交易流水数据、客户资料以及采买一些外部数据——包括企业的征信数据、司法的涉诉、刑事案件数据、个人行为等数据。
(2)建立图谱
在收集好各个维度的数据之后,应用这些数据去建立一个图谱,我们将其分成了两个阶段:第一个阶段是构建一个基础数据的图谱,就是将刚才所提到的收集到的这些多维度的关联数据进行图化的组织。把数据组织成图之后提取一些特征信息,主要是对隐藏关系的发现,以及对图内一些行为的描述。在此基础上构建一个新的图特征图谱;
(3)模型分析
在图谱建立之后,可以应用一些手段对数据进行分析,包括一些图的算法,去发现图的一些结构性特征,也会结合一些机器学习手段去对整个数据进行建模分析。
(4)团伙发现
在建模分析之后,完成整个模型个体的挖掘之后,可以根据个体去扩散,找到对应的一个团体性的行为,后针对团体性的行为内部,再进行一些描述性的分析和发现。进一步找到团伙内的各个成员的分工,并在此基础之上采用可视化的方式去传递数据价值;
(5)数据融通
前面的分析主要是数据处理、探查工作,但本身还涉及到数据的流转,即提供反馈给上家机构,或者最终反馈到经侦。在整个处理的过程中,需要对提供的线索以可视性更强的方式表达,加速案例处理,内部流转。
上面是整体的分析过程,下面展开介绍建立图谱的两个阶段,第一步是对于基础数据的采集包括个人账户数据,比如个人账户数量、电话、地址、账户睡眠时间,还有对企业账户数据的采集如注册资金、经营范围、注册地址、股权等,还有对交易行为数据的采集,包括交易金额、交易时间、交易类型等,如果是网银交易,还需收集对应的 IP 地址和 Mac 地址,线下交易会收集交易机构,在收集到这些基础数据后,会进一步地进行特征加工,再去关联。如可以通过账户的注册地址去发现账户之间是否存在隐藏的关联关系,或者通过股权关系去发现是否具有实际控制关系,这样的话就可以在已知的基础上去进一步挖掘隐藏的关系,并在此基础上建立更深的图网络。还有一些特征如交易频率、是否存在集聚性的交易行为,或者是单笔转入多笔转出等等,通过这些进一步去丰富整个图的内容。以上作为后续分析的基础,只有在这里面建立了更丰富、更广阔的关系,才能更多地提取整个图相关的数据价值。
在图谱建立之后,又回到了模型分析部分,其实模型分析我们用图的话会扩展分析维度,在原有的描述性分析的特征维度之上,还是会通过图的一些结构性特征去分析。这里列举了一些经典的图的算法,针对不同的场景会需要不同的选择。如交易的行为或模式,可以用 PageRank,可以看到当前客户/账户是不是整个交易的集中中心。还可以通过一些社区发现相关的算法对数据进行聚类,包括一些行为的识别;除了应用一些标准的算法,还会通过一些业务人员人工的识别去发现一些洗钱相关模式,如是否有一些分散型的交易。后续将在案例中进一步再解释模式这一结构性的特征,以及使用动图模式去进行特征的挖掘,最后把所有特征送到模型里进行分析。
03 案例介绍
1.案例说明
以上是一个完整的分析流程,下面来分享一个具体案例,在分享之前有一些必要的说明。
后续的整个案例都是基于开源数据集的,因为以往涉及金融机构的数据都是保密的。这个开源数据集来源于 IBM 提供的模拟数据,可见数据里面是一个相对复杂的交易数据网络,并且已经对每笔交易打了标签,下面通过 Fabarta 提供的图智能分析平台对数据进行分析和发现。
2.案例流程
- 第一步是通过开源数据去进一步模拟客户信息、账户信息、交易流水信息;
- 在数据基础上对交易个体的每一个账户进行特征发现,进一步筛选出可疑个体。
- 在可疑个体的基础上,通过构建交易网络大图,围绕着个体进行一些子图的筛选,在此基础上进行群体特征的发现,进一步去找到其相对应的交易团伙。
- 发现团伙后,再将数据筛选定义到团伙级别,针对团伙内部的行为特征进行一些描述总结,找到不同成员的分工行为。
- 并在这个过程中,逐步发现其反洗钱的特征,包括行为型、描述性的特征。最终将特征转化为具体的任务,在逐渐积累的过程中,将发现的特征应用到更广的数据集中,进一步找到是满足特征发现的可疑团伙行为。
3.数据探查
数据探查主要是对数据的描述性信息进行分析,案例里针对交易行为进行了基本的处理,如单日转出金额的比例,我们通过对整体数据的分析制定一个标准值。对超出标准值的标记为异常点,然后通过找异常点的方式去发现异常用户。真正的实施过程会有更复杂的发现方式,在这里示例主要是为了方便我们展示整个分析过程。
具体的,在找到了转入转出金额比例之后,通过分析统计,分析出本身的标准值、平均值、标准差等,可以看到在右侧整个异常行为的也会比较大。转入转出平均在 4000 左右,但是有一些数据都是几万了,这是个相对较高的比例。针对这个个体需要逐一地进行分析是否存在问题。
4.异常点分析
异常点分析还是要围绕刚才的交易大图,其是一个杂乱的交易网络,数据量也较大。在筛选完子图后,需要先将相关链路的上下三层,即到底通过什么样的链路进行资金的转入和转出,再将筛选出的数据进行可视化的探查,筛选出的图的大小较小,但是可以通过他的结构性的行为去发现交易的分层行为,通过多层的交易账户之间交易,最终将资金汇聚到最下面的账户上。
这其实也是资金的集聚,通过层层交易把资金汇聚到少数几个账户上,在这里通过可视化的探查可以发现他的这种行为,并且在图结构上会有异常行为的佐证,在发现异常行为的子图特征后,再针对子图去进一步分析,并使用一些图算法去发现它的结构性特征。
5.图结构特征探查
- 在这边用到了三角计数;在业务上可以这么理解:如上图,账号131在给996转账的同时,也通过中间人811给996转了账,简单来说通过多条链路去达成同一目标人的转账行为。那我们应用这个结构性的特征对数据进一步分析,筛选出子图内存在这种交易行为的客户,并对三角计数进行重新统计。
- 统计之后大家可以发现围绕账户 996,它有 26 个结构性的交易,这种三角计数的结果其实就是结构性的交易的行为,最终围绕着 996 把数据再进一步筛查,把所有这种结构性的交易数据全部筛查出来。
- 在左下方这个图里面,存在 26个三角环,三角计数这个结果的一个子图,通过与业务人员分析,这种行为其实并不是很正常的行为,他不断地通过其他账户转钱。
- 经过上述分析查证之后,进一步将数据筛查范围降下来,从刚才 996 上下的那个链路推广到整个具有三角计数的交易链路上来。
6.图结构特征发现
针对筛选后的数据进一步进行特征发现,围绕着账户 996的聚集关联交易行为进行聚类分析(图中使用不同的颜色渲染以区分不同的类别),并对聚类的数据进行描述性的分析,主要是对交易总量的分析,通过左侧的可视化画布可以看到分组 4 里面的交易结构是相对复杂的,同时结合右侧的分析数据本身的交易总量达到了 148 万,平均每笔 6.7万。可以基本确定其相对于其他聚类是一个显著的可疑行为。接下来就是针对这个分组 4,再做进一步的分析。
针对分组4做进一步分析,主要还是一些描述性的统计,来完成不同的账户成员进行洗钱分工的分析。在洗钱过程中,角色分为发起者、中间人、接收者、洗钱者和支持者。不同的角色可以通过交易的转入转出的不同的笔数来确定的,如账户 996,转入 11 笔,但是它并没有转出,这样就可以在整个团伙或整个网络中确定它是最终的洗钱的接收方;像 876、466 和 305 这三个账户,都存在转出的发起行为,并没有转入的行为,其可能是整个网络的发起者。
通过对整个数据不断的下钻、分析,既找到了个体,又发现了团伙,并对团伙的行为特征、分工有了一定的发现。在此过程中,我们希望除了对数据、分析过程进行上报外,还将发现的特征与业务人员进行沟通,并将其应用到更多的数据里。
7.图模式转化任务
下一步可以通过可视化去编排整个图模式。在这里可以简单地理解图模式,针对刚才说的三角计数的行为,如一旦大于5个或者大于6个,我们就认为他是可疑的团伙,然后通过这个图模式去执行任务发现,就可以进一步地发现更多的团伙。
04 总结
最后对数据进行定性分析,对整个分析过程进行一下总结。
整个分析过程还需要考虑各种异构数据的接入,以及一些数据的可视化,这些方面图还是具有一定的优势。相对于结构化数据展示,图结构展示能做到一图胜千言,使用图结构去做可视化也更容易增加案例的可解释性。
在整个分析过程中,还需要考虑在应用图特征的基础上结合其他模型进行一些分析,所以与其他模型集成也很重要。包括前面提到的深度链路,在演示中没有包含实时的 demo,其实大家了解图的话,就会明白深链路的查询响应时长是一个很重要的指标,包括实时的关联性的查询也是非常重要。
整个的图算法模块,或者说自动的图模式配置,可以帮助业务人员更快地去应用图的技术,帮助业务人员应用现有算法、可视化地配置,可以把业务人员本身的业务知识快速地转化成技术手段进行数据发现。
05 问答环节
Q1:首先有同学问说在进行这个三角计数和图结构来识别团伙时,只用考虑图的拓扑信息?另外的话,这里的交易图是有向图还是应用于无向图两个问题?
A:首先感谢案例同学的提问,在案例分享的过程中其实也提到了,其实我们并不是只用三角计数算法,三角计数只是其中的一个维度来做这个分析。然后再有鲁文算法应用的话,确实,我们在整个聚类过程中,是把边的方向忽略掉了,然后只是做了一个聚类分析。
Q2:在分析过程中需要回溯多久的历史交易数据?
A:回溯多久的历史交易的数据的话,这个是有不同需求的。一般的话是会要回溯 6 个月内的一些交易行为,同时也分为不同用途,一个用途是协查时针对金融机构会提供的数据范围进行要求;另外一个是我们要做后续的一些建模分析的话,这个数据往前再追溯一年,这个时候其实就要考虑整个的数据量了, 像金融机构,特别是银行,单月交易流水都是千万级别,甚至有些大行都到亿级别的,还是需要综合考虑数据量和处理能力的。
Q3:如果是要做案例的预警,没有上级机构下发的排查账户,怎么确定起始节点?
A:这里也把这个事情分成两步,一个是案例预警,案例预警的话肯定是上级协调下发去排查。然后另外的话就是应用,其实金融机构会有一些反洗钱的一些规则在的;比如账户的那个交易频度,或者交易时间,会有一些原始的一些规则积累;再比如说快进快出,一些银行或者会有那种快进快出那个规则,比如说资金在账户里停留不超过一个小时。这些规则的发现可以作为后续的排查分析的过程。最终还是要结合到业务去看,因为这个本身排查的工作量就很大,可能不会有自发性地再去进一步分析了。
Q4:可以用中心性这一类的算法来进行团伙分工发现吗?
A:刚才示例里用到那个算法,其实和刚才另外同学问的那个是类似的,示例里算法其实只是用来做一个示例,还需要结合图结构的特征,真正在去做聚类发现的时候,其实并不能单纯的只用某一个图算法,还需要结合它的不同的这个特征去做一些聚类分析。这时候可能要上一些机器学习的模型了,不仅仅只是中心性这种。然后针对图的结构特征对整个业务行为进行描述,再结合整个描述的特征去做一些聚类分析。
Q5:单个金融机构一般只有自己客户的交易数据,很难构建完整的交易图,这种情况下怎么对具备洗钱团伙特征的角色进行准确分析?
A:感谢这位同学的问题,这个问题问到了一个比较关键的点上,是我们在后续整个图的分析过程中一个很重要的基础,怎么去应用全面的数据去把这个图完整地图现出来。对于单个金融机构确实是一个很大的挑战,单个金融之内它只能针对自己持有的数据去进行分析,发现你包括它的交易数据,很多银行特别是规模小的,交易链路就断掉了,比如一些地方性银行交易行为整个链路可能就两三跳。如果是股份制或者城商行可能还好一点,在这种情况下我们只能争取应用其他的维度,尽量的去提供线索。但是如果是机构经侦协查的场景,是可以把所有金融机构的数据整合到一起的,然后就可以把所有的数据收集上来,然后进行构成一个完整的图。
Q6:接下来这个问题是案例中是如何知道分组四是显著的规则是什么?
A:分组 4 的话还是有一个人为分析的过程,大家可以看到有一个可视化的展示,通过图图形的展示可以看到分组 4 内它的交易结构会相对更复杂一些。从图中能看出,它整个的交易结构是单向的,所有的资金是在往一个账户去汇总的,这个是通过人去识别出来的,右侧的话其实会对它进行统计信息,统计交易总量或者交易笔数,大家可以看到会有一些差异。整合的过程中其实是一个人工参与和定性分析的过程。
Q7:注册地址信息是怎么处理入图的?
A:注册地址的话会把它单独作为一个节点,因为注册地址作为节点的话,可以把不同的账户进行关联。其实在建图的过程中会有三个部分,即图里面有三个公民,点、边、属性,点、边和属性在图里个人理解其信息是对等的,那真正在应用的过程中还是要进一步发现它的用途是什么。如刚才叙述的注册地址,在场景里其实是通过注册地址把账户进行关联,这样的话方便于后续的查询。
Q8:贾老师对于异常挖掘算法落地过程有哪些比较有效的建议?
A:对于算法的话,其实我们在落地过程中就还是刚才说的那个三角计数,为什么拿那个做一个案例演示,三角计数业务上会认比较认同它的校验模式。然后另外的话,在原有的这种图的算法之外还是要进行扩展的,图的关联表达还有一些结构性特征信息在里面,业务会提供很多图模式模版,这样的话我们通过图模式会发现一些新的业务特征点,这些也是会在落地中产生相对更有效的作用。
今天的分享就到这里,谢谢大家。
本文作者贾志鹏,Fabarta 高级技术专家,毕业于西安理工大学,曾就职于IBM,阿里云,HSBC,先后任职应用架构师、解决方案架构师,主要专注于金融、制造和汽车等行业的业务解决方案咨询和实施工作;现就职于Fabarta 担任客户成功团队高级技术专家,负责金融行业相关的客户方案售前支持及售后实施,保障项目及产品交付过程中能够平稳落地,切实解决客户业务问题。