基于规则引擎的互联网金融反欺诈研究
2018-02-02丁濛濛
丁濛濛
摘要:随着互联网金融及其应用的快速发展,如何对大量交易数据进行快速、准确的风险监控与欺诈预警已成为银行和第三方支付平台的迫切需要。规则引擎能将规则匹配与应用程序隔离,且在大量数据和规则情况下具有较好的执行效率。针对互联网金融反欺诈的相关特点,该文提出了基于规则引擎的反欺诈模型,并进行了规则库设计、优化规则匹配过程的研究,为规则引擎在反欺诈场景中的应用提供了一种设计思路。
关键词: 反欺诈;规则引擎;Rete算法;大数据
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)01-0001-03
1 概述
近年来,随着互联网金融及其应用的快速发展,网银支付、快捷支付、移动支付等交易方式的普及给人们的生活带来了巨大的便利,但随之而来的是交易风险的提高与欺诈事件的增加。如何对大量交易数据进行快速、准确的风险监控与欺诈预警已成为银行和第三方支付平台的迫切需要。
规则引擎能将规则匹配与应用程序分离,且在大量数据和规则情况下具有较好的执行效率[1]。将规则引擎应用于反欺诈系统中,有助于提升系统的扩展性、实现规则的快速更新。为此,本文开展了基于规则引擎的互联网金融反欺诈研究。
为了提升规则引擎在互联网金融反欺诈场景的表现,本文首先提出了基于规则引擎的反欺诈模型。其次,设计规则库以提升对规则的解释与评价能力。此外,本文优化了规则匹配过程,从而能过滤大多数正常交易数据、提升系统匹配效率。
2 背景
在反欺诈系统中,欺诈检测方法通常包括规则模型、用户行为模型、名单管理等。其中规则模型是建立在对欺诈行为的特点、模式、手段、技术充分认识的基础上,针对单一或组合欺诈行为模式设计的启动和触发机制[2]。规则模型的主要优点为易于解释和配置。
规则引擎起源于基于规则的专家系统,用来模拟人的行为进行决策,能将业务决策从应用程序中分离出来。规则引擎通常包括三个部分:规则库、事实集与推理引擎[3]。
·规则库(Rule Base):存储各类模拟人类求解问题的规则。一条规则通常表示为:
IF: LHS (left-hand-side), THEN: RHS (right-hand-side)
LHS包括一个或多个原子条件 (又叫模式),条件之间通过与、或的逻辑关系進行组合;RHS是满足所有这些条件(即触发规则)后要执行的动作 (action)。
·事实集(Fact Set):又叫做工作空间(Working Memory),存储了用于规则匹配的事实,包括初始事实与执行过程中产生的新事实。
·推理引擎(Inference Engine):将事实与规则相匹配,决定是否触发规则、触发哪些规则以及何时执行动作。推理引擎是规则引擎的核心部分,决定了规则引擎的工作效率。
Rete算法是规则引擎常用的匹配算法,通过将规则编译成Rete网络来与事实进行匹配[4]。Rete网络包括α节点和β节点。α节点由规则库中规则的模式构成,用于过滤事实;β节点执行连接功能,并保存中间结果。Rete算法最大优势是节点共享与状态保存。近年来,很多研究对Rete算法进行了改进,包括α与β节点索引、图算法优化、规则懒加载等[3,5,6,7]。
此外,还有些研究将规则引擎在分布式环境下作了一些改进,如规则分解与部署、消息传递模型等,提升了规则引擎面对大数据的执行效率[3,8,9]。
3 规则引擎设计
3.1 基于规则引擎的反欺诈模型
本文提出的基于规则引擎的反欺诈模型如图1所示。该模型主要由五个部分组成:计算集群、存储系统、规则库、规则引擎和管理平台。
1) 计算集群
计算集群是用来对大规模的交易记录进行批量计算,以统计用户的交易特征、挖掘数据之间的隐藏属性。计算集群包括实时计算集群与离线计算集群,前者主要针对时效性要求较高的属性,如实时交易金额;后者则是完成每天的定时任务,计算当日或一段时间内的相关属性,如用户的常用地址、常用设备等。
2) 存储系统
存储系统包括关系型数据库(如MySql)与非关系型数据库(如Hbase)。关系型数据库主要用来存储格式化数据,如交易记录、用户个人信息等。非关系型数据库因为其存储和读取速度快、数据保存方式灵活、可扩展性高等优点[10],适合用来存储用户统计量等频繁更新的数据。
3) 规则库
规则库是规则引擎重要组成部分,反欺诈规则引擎中需要建立大量的规则文件,规则的集合即为规则库。规则库由管理平台进行对规则的维护,供规则引擎使用。规则库的详细设计见3.2节。
4) 规则引擎
规则引擎包括规则库、事实集与推理引擎。每一条交易数据都需要被装配成事实(fact),通过推理引擎与规则库中的所有规则进行模式匹配、执行命中规则的动作部分(RHS),从而得到该交易数据的风险分值,并传递给管理平台。
5) 管理平台
管理平台是一个前端web界面,主要用来给业务人员进行规则配置(增加、删除、修改、查询等),并且可以对规则的有效性进行评价。此外,规则引擎还会将风险较高的交易数据、对规则的触发情况反映到管理平台,由相关人员进行确认。
3.2 规则库设计
规则是由条件(LHS)和动作(RHS)构成的推理语句,在反欺诈系统中,LHS部分通常是对交易数据的描述。交易数据包括转出/转入用户信息、交易额、交易时间、转出/转入地址、IP地址等字段。某些规则可以直接使用交易数据的相关字段表示,但是存在一些规则的条件无法由这些字段描述,例如以下两条规则:
规则1:endprint
IF: 轉出金额高于a & 转出地址不是常用地址, THEN: 设置风险分值
规则2:
IF: 已开户时间小于7天 & 收款IP为异常IP, THEN: 设置风险分值
其中,用户常用地址、已开户时间、异常IP等无法通过交易数据直接得出。由于单独某条交易数据不能完整地反映交易特征、部分字段不是数值型数据不能直接使用,需要对原始数据作预处理,因此本文引入用户统计量和全局统计量的概念。
定义(用户统计量):以账户为中心,根据基础数据的特征自定义组合数据项,把其中交易关键值与其相关信息整合处理,以此生成的一系列反应用户交易特征的数据叫做用户统计量(Account Statistics)。
定义(全局统计量):从全局交易数据中通过对某些特征组合、计算等手段获取,对所有用户都适用的数据叫做全局统计量(Global Statistics)。
部分用户统计量如表1所示:
常用的全局统计量包括异常IP地址、异常MAC地址等。于是,规则的LHS可以由交易数据相关字段与用户统计量、全局统计量表示;RHS部分则是对触发了规则(即匹配LHS)的数据设置风险分值。则上述两条规则可以表示为:
R1:
IF: money>=a & outAddress != fromUser.commonOutAddress
THEN: riskScore = riskScore+b
R2:
IF: fromUser.openDays <= 7 & toIp ∈ globalStatistics.abnormalIps
THEN: riskScore = riskScore+c
显然,规则的风险分值由人为根据经验给定并不完全准确,因此本文引入了对规则的评价机制,如图2所示。当规则引擎运行时,会统计每条规则的触发次数,并反馈给管理平台对规则进行评价与修改。规则的主要评价指标包括准确率(precision)、召回率(recall),如下所示:
precision = TP / (TP+FP)
recall = TP / (TP+FN)
在这里,TP是触发的欺诈交易数量,FP是触发的非欺诈交易数量,FN是未触发的欺诈交易数量。当规则的准确率与召回率较低时,可以对规则进行适当调整。
3.3 优化匹配过程
由3.2节,每一条用于匹配的事实由交易数据、用户统计量与全局统计量组成,然后由Rete算法将规则库转换成Rete网络来进行模式匹配。当规则较多时,每条事实数据都需要与α网络中的大量节点进行匹配。而在反欺诈场景中,正常的交易数据占总交易数据的大多数,因此在交易数据的规则匹配过程中存在一定的时间浪费。
为了提高匹配速度,本文对规则匹配过程进行优化,增加一个预规则匹配过程。由于很多反欺诈规则共有一个或多个相同的条件,我们首先对反欺诈规则进行分簇。对规则的划分以规则LHS中最小的原子条件为依据,例如:
因为R1和R2都包含原子条件a,所以可以划分到同一规则簇中。此外,一条规则最多只能被分到一个规则簇中。规则簇中所有规则的共同原子条件为规则簇的特征条件。特征条件定义如下:
定义(特征条件):规则簇C(c) = {R1,R2,R3… | c ∈ LHS of R1,R2,R3…},其中条件c为该规则簇C的特征条件。
规则簇的划分算法如下。首先,构建一个<条件,次数>的键值对Conditions,统计规则库中所有规则的条件出现次数。然后遍历每条规则,如果当前已有规则簇的任一特征条件属于该规则的LHS,则将该规则加入到对应的规则簇中;否则,根据该规则构建一个新规则簇,以在Conditions中出现次数最多的条件为特征条件,这样能最大化特征条件的特征度(即以该条件为特征的规则数),并减少规则簇的数量。
分簇之后,根据规则簇的特征条件集合创建预匹配规则,以过滤正常的交易数据。只有在预匹配过程中返回为true的数据才会进行正式的规则匹配。预匹配规则生成过程如图3所示。
通过规则预匹配,大部分正常交易数据都会被过滤,从而在一定程度上提升了规则引擎对总体数据的匹配效率。
4 总结
本文开展了基于规则引擎的互联网金融反欺诈研究,提出基于规则引擎的反欺诈模型,并进行了规则库设计、优化匹配过程等工作,为规则引擎在反欺诈场景中的应用提供了一种实现思路。
在未来的工作中,我们将进一步对大数据环境中的规则引擎进行研究,从而提升规则引擎在互联网金融反欺诈中的表现。此外,还将把规则引擎与基于用户行为的模型、名单管理相结合,提高对欺诈风险检测的准确率,建立一套完整的互联网金融反欺诈系统。
参考文献:
[1] 童毅.规则引擎中模式匹配算法及规则引擎应用的研究[D].北京邮电大学,2010
[2] 丁慎勇.反欺诈模型在电子银行的应用研究[D].山东大学,2014.
[3] 顾小东.基于RETE算法的大规模规则推理引擎研究与应用[D].南京大学,2013
[4] C. L. Forgy. Rete: A fast algorithm for the many pattern/many object pattern match problem. Artificial intelligence, 19(1),1982,17-37.
[5] Di Liu, Tao Gu and Jiang-Ping Xue. Rule Engine Based on improvement Rete algorithm[C]. The 2010 International Conference on Apperceiving Computing and Intelligence Analysis Proceeding, Chengdu,2010,346-349.
[6] Y. Sun, T. Y. Wu, G. Zhao and M. Guizani. Efficient Rule Engine for Smart Building Systems[C]. IEEE Transactions on Computers,2015(6):1658-1669.
[7] S. Chattopadhyay, A. Banerjee and N. Banerjee. A Scalable Rule Engine Architecture for Service Execution Frameworks[C]. 2016 IEEE International Conference on Services Computing (SCC), San Francisco, CA,2016,689-696.
[8] J. Wang, R. Zhou, J. Li, and G. Wang. A distributed rule engine Based on message-passing model to deal with big data[C]. Lecture Notes on Software Engineering, 2(3),2014,275-281.
[9] S. Zhu, H. Huang and L. Zhang. A distributed architecture for rule engine to deal with big data[C]. 2016 18th International Conference on Advanced Communication Technology (ICACT), Pyeongchang,2016:602-606.
[10] Mehul Nalin Vora. Hadoop-HBase for large-scale data[C]. Proceedings of 2011 International Conference on Computer Science and Network Technology, Harbin,2011:601-605.endprint