丁濛濛
摘要:隨著互聯(lián)網(wǎng)金融及其應(yīng)用的快速發(fā)展,如何對(duì)大量交易數(shù)據(jù)進(jìn)行快速、準(zhǔn)確的風(fēng)險(xiǎn)監(jiān)控與欺詐預(yù)警已成為銀行和第三方支付平臺(tái)的迫切需要。規(guī)則引擎能將規(guī)則匹配與應(yīng)用程序隔離,且在大量數(shù)據(jù)和規(guī)則情況下具有較好的執(zhí)行效率。針對(duì)互聯(lián)網(wǎng)金融反欺詐的相關(guān)特點(diǎn),該文提出了基于規(guī)則引擎的反欺詐模型,并進(jìn)行了規(guī)則庫設(shè)計(jì)、優(yōu)化規(guī)則匹配過程的研究,為規(guī)則引擎在反欺詐場景中的應(yīng)用提供了一種設(shè)計(jì)思路。
關(guān)鍵詞: 反欺詐;規(guī)則引擎;Rete算法;大數(shù)據(jù)
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2018)01-0001-03
1 概述
近年來,隨著互聯(lián)網(wǎng)金融及其應(yīng)用的快速發(fā)展,網(wǎng)銀支付、快捷支付、移動(dòng)支付等交易方式的普及給人們的生活帶來了巨大的便利,但隨之而來的是交易風(fēng)險(xiǎn)的提高與欺詐事件的增加。如何對(duì)大量交易數(shù)據(jù)進(jìn)行快速、準(zhǔn)確的風(fēng)險(xiǎn)監(jiān)控與欺詐預(yù)警已成為銀行和第三方支付平臺(tái)的迫切需要。
規(guī)則引擎能將規(guī)則匹配與應(yīng)用程序分離,且在大量數(shù)據(jù)和規(guī)則情況下具有較好的執(zhí)行效率[1]。將規(guī)則引擎應(yīng)用于反欺詐系統(tǒng)中,有助于提升系統(tǒng)的擴(kuò)展性、實(shí)現(xiàn)規(guī)則的快速更新。為此,本文開展了基于規(guī)則引擎的互聯(lián)網(wǎng)金融反欺詐研究。
為了提升規(guī)則引擎在互聯(lián)網(wǎng)金融反欺詐場景的表現(xiàn),本文首先提出了基于規(guī)則引擎的反欺詐模型。其次,設(shè)計(jì)規(guī)則庫以提升對(duì)規(guī)則的解釋與評(píng)價(jià)能力。此外,本文優(yōu)化了規(guī)則匹配過程,從而能過濾大多數(shù)正常交易數(shù)據(jù)、提升系統(tǒng)匹配效率。
2 背景
在反欺詐系統(tǒng)中,欺詐檢測方法通常包括規(guī)則模型、用戶行為模型、名單管理等。其中規(guī)則模型是建立在對(duì)欺詐行為的特點(diǎn)、模式、手段、技術(shù)充分認(rèn)識(shí)的基礎(chǔ)上,針對(duì)單一或組合欺詐行為模式設(shè)計(jì)的啟動(dòng)和觸發(fā)機(jī)制[2]。規(guī)則模型的主要優(yōu)點(diǎn)為易于解釋和配置。
規(guī)則引擎起源于基于規(guī)則的專家系統(tǒng),用來模擬人的行為進(jìn)行決策,能將業(yè)務(wù)決策從應(yīng)用程序中分離出來。規(guī)則引擎通常包括三個(gè)部分:規(guī)則庫、事實(shí)集與推理引擎[3]。
·規(guī)則庫(Rule Base):存儲(chǔ)各類模擬人類求解問題的規(guī)則。一條規(guī)則通常表示為:
IF: LHS (left-hand-side), THEN: RHS (right-hand-side)
LHS包括一個(gè)或多個(gè)原子條件 (又叫模式),條件之間通過與、或的邏輯關(guān)系進(jìn)行組合;RHS是滿足所有這些條件(即觸發(fā)規(guī)則)后要執(zhí)行的動(dòng)作 (action)。
·事實(shí)集(Fact Set):又叫做工作空間(Working Memory),存儲(chǔ)了用于規(guī)則匹配的事實(shí),包括初始事實(shí)與執(zhí)行過程中產(chǎn)生的新事實(shí)。
·推理引擎(Inference Engine):將事實(shí)與規(guī)則相匹配,決定是否觸發(fā)規(guī)則、觸發(fā)哪些規(guī)則以及何時(shí)執(zhí)行動(dòng)作。推理引擎是規(guī)則引擎的核心部分,決定了規(guī)則引擎的工作效率。
Rete算法是規(guī)則引擎常用的匹配算法,通過將規(guī)則編譯成Rete網(wǎng)絡(luò)來與事實(shí)進(jìn)行匹配[4]。Rete網(wǎng)絡(luò)包括α節(jié)點(diǎn)和β節(jié)點(diǎn)。α節(jié)點(diǎn)由規(guī)則庫中規(guī)則的模式構(gòu)成,用于過濾事實(shí);β節(jié)點(diǎn)執(zhí)行連接功能,并保存中間結(jié)果。Rete算法最大優(yōu)勢是節(jié)點(diǎn)共享與狀態(tài)保存。近年來,很多研究對(duì)Rete算法進(jìn)行了改進(jìn),包括α與β節(jié)點(diǎn)索引、圖算法優(yōu)化、規(guī)則懶加載等[3,5,6,7]。
此外,還有些研究將規(guī)則引擎在分布式環(huán)境下作了一些改進(jìn),如規(guī)則分解與部署、消息傳遞模型等,提升了規(guī)則引擎面對(duì)大數(shù)據(jù)的執(zhí)行效率[3,8,9]。
3 規(guī)則引擎設(shè)計(jì)
3.1 基于規(guī)則引擎的反欺詐模型
本文提出的基于規(guī)則引擎的反欺詐模型如圖1所示。該模型主要由五個(gè)部分組成:計(jì)算集群、存儲(chǔ)系統(tǒng)、規(guī)則庫、規(guī)則引擎和管理平臺(tái)。
1) 計(jì)算集群
計(jì)算集群是用來對(duì)大規(guī)模的交易記錄進(jìn)行批量計(jì)算,以統(tǒng)計(jì)用戶的交易特征、挖掘數(shù)據(jù)之間的隱藏屬性。計(jì)算集群包括實(shí)時(shí)計(jì)算集群與離線計(jì)算集群,前者主要針對(duì)時(shí)效性要求較高的屬性,如實(shí)時(shí)交易金額;后者則是完成每天的定時(shí)任務(wù),計(jì)算當(dāng)日或一段時(shí)間內(nèi)的相關(guān)屬性,如用戶的常用地址、常用設(shè)備等。
2) 存儲(chǔ)系統(tǒng)
存儲(chǔ)系統(tǒng)包括關(guān)系型數(shù)據(jù)庫(如MySql)與非關(guān)系型數(shù)據(jù)庫(如Hbase)。關(guān)系型數(shù)據(jù)庫主要用來存儲(chǔ)格式化數(shù)據(jù),如交易記錄、用戶個(gè)人信息等。非關(guān)系型數(shù)據(jù)庫因?yàn)槠浯鎯?chǔ)和讀取速度快、數(shù)據(jù)保存方式靈活、可擴(kuò)展性高等優(yōu)點(diǎn)[10],適合用來存儲(chǔ)用戶統(tǒng)計(jì)量等頻繁更新的數(shù)據(jù)。
3) 規(guī)則庫
規(guī)則庫是規(guī)則引擎重要組成部分,反欺詐規(guī)則引擎中需要建立大量的規(guī)則文件,規(guī)則的集合即為規(guī)則庫。規(guī)則庫由管理平臺(tái)進(jìn)行對(duì)規(guī)則的維護(hù),供規(guī)則引擎使用。規(guī)則庫的詳細(xì)設(shè)計(jì)見3.2節(jié)。
4) 規(guī)則引擎
規(guī)則引擎包括規(guī)則庫、事實(shí)集與推理引擎。每一條交易數(shù)據(jù)都需要被裝配成事實(shí)(fact),通過推理引擎與規(guī)則庫中的所有規(guī)則進(jìn)行模式匹配、執(zhí)行命中規(guī)則的動(dòng)作部分(RHS),從而得到該交易數(shù)據(jù)的風(fēng)險(xiǎn)分值,并傳遞給管理平臺(tái)。
5) 管理平臺(tái)
管理平臺(tái)是一個(gè)前端web界面,主要用來給業(yè)務(wù)人員進(jìn)行規(guī)則配置(增加、刪除、修改、查詢等),并且可以對(duì)規(guī)則的有效性進(jìn)行評(píng)價(jià)。此外,規(guī)則引擎還會(huì)將風(fēng)險(xiǎn)較高的交易數(shù)據(jù)、對(duì)規(guī)則的觸發(fā)情況反映到管理平臺(tái),由相關(guān)人員進(jìn)行確認(rèn)。
3.2 規(guī)則庫設(shè)計(jì)
規(guī)則是由條件(LHS)和動(dòng)作(RHS)構(gòu)成的推理語句,在反欺詐系統(tǒng)中,LHS部分通常是對(duì)交易數(shù)據(jù)的描述。交易數(shù)據(jù)包括轉(zhuǎn)出/轉(zhuǎn)入用戶信息、交易額、交易時(shí)間、轉(zhuǎn)出/轉(zhuǎn)入地址、IP地址等字段。某些規(guī)則可以直接使用交易數(shù)據(jù)的相關(guān)字段表示,但是存在一些規(guī)則的條件無法由這些字段描述,例如以下兩條規(guī)則:
規(guī)則1:endprint
IF: 轉(zhuǎn)出金額高于a & 轉(zhuǎn)出地址不是常用地址, THEN: 設(shè)置風(fēng)險(xiǎn)分值
規(guī)則2:
IF: 已開戶時(shí)間小于7天 & 收款I(lǐng)P為異常IP, THEN: 設(shè)置風(fēng)險(xiǎn)分值
其中,用戶常用地址、已開戶時(shí)間、異常IP等無法通過交易數(shù)據(jù)直接得出。由于單獨(dú)某條交易數(shù)據(jù)不能完整地反映交易特征、部分字段不是數(shù)值型數(shù)據(jù)不能直接使用,需要對(duì)原始數(shù)據(jù)作預(yù)處理,因此本文引入用戶統(tǒng)計(jì)量和全局統(tǒng)計(jì)量的概念。
定義(用戶統(tǒng)計(jì)量):以賬戶為中心,根據(jù)基礎(chǔ)數(shù)據(jù)的特征自定義組合數(shù)據(jù)項(xiàng),把其中交易關(guān)鍵值與其相關(guān)信息整合處理,以此生成的一系列反應(yīng)用戶交易特征的數(shù)據(jù)叫做用戶統(tǒng)計(jì)量(Account Statistics)。
定義(全局統(tǒng)計(jì)量):從全局交易數(shù)據(jù)中通過對(duì)某些特征組合、計(jì)算等手段獲取,對(duì)所有用戶都適用的數(shù)據(jù)叫做全局統(tǒng)計(jì)量(Global Statistics)。
部分用戶統(tǒng)計(jì)量如表1所示:
常用的全局統(tǒng)計(jì)量包括異常IP地址、異常MAC地址等。于是,規(guī)則的LHS可以由交易數(shù)據(jù)相關(guān)字段與用戶統(tǒng)計(jì)量、全局統(tǒng)計(jì)量表示;RHS部分則是對(duì)觸發(fā)了規(guī)則(即匹配LHS)的數(shù)據(jù)設(shè)置風(fēng)險(xiǎn)分值。則上述兩條規(guī)則可以表示為:
R1:
IF: money>=a & outAddress != fromUser.commonOutAddress
THEN: riskScore = riskScore+b
R2:
IF: fromUser.openDays <= 7 & toIp ∈ globalStatistics.abnormalIps
THEN: riskScore = riskScore+c
顯然,規(guī)則的風(fēng)險(xiǎn)分值由人為根據(jù)經(jīng)驗(yàn)給定并不完全準(zhǔn)確,因此本文引入了對(duì)規(guī)則的評(píng)價(jià)機(jī)制,如圖2所示。當(dāng)規(guī)則引擎運(yùn)行時(shí),會(huì)統(tǒng)計(jì)每條規(guī)則的觸發(fā)次數(shù),并反饋給管理平臺(tái)對(duì)規(guī)則進(jìn)行評(píng)價(jià)與修改。規(guī)則的主要評(píng)價(jià)指標(biāo)包括準(zhǔn)確率(precision)、召回率(recall),如下所示:
precision = TP / (TP+FP)
recall = TP / (TP+FN)
在這里,TP是觸發(fā)的欺詐交易數(shù)量,F(xiàn)P是觸發(fā)的非欺詐交易數(shù)量,F(xiàn)N是未觸發(fā)的欺詐交易數(shù)量。當(dāng)規(guī)則的準(zhǔn)確率與召回率較低時(shí),可以對(duì)規(guī)則進(jìn)行適當(dāng)調(diào)整。
3.3 優(yōu)化匹配過程
由3.2節(jié),每一條用于匹配的事實(shí)由交易數(shù)據(jù)、用戶統(tǒng)計(jì)量與全局統(tǒng)計(jì)量組成,然后由Rete算法將規(guī)則庫轉(zhuǎn)換成Rete網(wǎng)絡(luò)來進(jìn)行模式匹配。當(dāng)規(guī)則較多時(shí),每條事實(shí)數(shù)據(jù)都需要與α網(wǎng)絡(luò)中的大量節(jié)點(diǎn)進(jìn)行匹配。而在反欺詐場景中,正常的交易數(shù)據(jù)占總交易數(shù)據(jù)的大多數(shù),因此在交易數(shù)據(jù)的規(guī)則匹配過程中存在一定的時(shí)間浪費(fèi)。
為了提高匹配速度,本文對(duì)規(guī)則匹配過程進(jìn)行優(yōu)化,增加一個(gè)預(yù)規(guī)則匹配過程。由于很多反欺詐規(guī)則共有一個(gè)或多個(gè)相同的條件,我們首先對(duì)反欺詐規(guī)則進(jìn)行分簇。對(duì)規(guī)則的劃分以規(guī)則LHS中最小的原子條件為依據(jù),例如:
因?yàn)镽1和R2都包含原子條件a,所以可以劃分到同一規(guī)則簇中。此外,一條規(guī)則最多只能被分到一個(gè)規(guī)則簇中。規(guī)則簇中所有規(guī)則的共同原子條件為規(guī)則簇的特征條件。特征條件定義如下:
定義(特征條件):規(guī)則簇C(c) = {R1,R2,R3… | c ∈ LHS of R1,R2,R3…},其中條件c為該規(guī)則簇C的特征條件。
規(guī)則簇的劃分算法如下。首先,構(gòu)建一個(gè)<條件,次數(shù)>的鍵值對(duì)Conditions,統(tǒng)計(jì)規(guī)則庫中所有規(guī)則的條件出現(xiàn)次數(shù)。然后遍歷每條規(guī)則,如果當(dāng)前已有規(guī)則簇的任一特征條件屬于該規(guī)則的LHS,則將該規(guī)則加入到對(duì)應(yīng)的規(guī)則簇中;否則,根據(jù)該規(guī)則構(gòu)建一個(gè)新規(guī)則簇,以在Conditions中出現(xiàn)次數(shù)最多的條件為特征條件,這樣能最大化特征條件的特征度(即以該條件為特征的規(guī)則數(shù)),并減少規(guī)則簇的數(shù)量。
分簇之后,根據(jù)規(guī)則簇的特征條件集合創(chuàng)建預(yù)匹配規(guī)則,以過濾正常的交易數(shù)據(jù)。只有在預(yù)匹配過程中返回為true的數(shù)據(jù)才會(huì)進(jìn)行正式的規(guī)則匹配。預(yù)匹配規(guī)則生成過程如圖3所示。
通過規(guī)則預(yù)匹配,大部分正常交易數(shù)據(jù)都會(huì)被過濾,從而在一定程度上提升了規(guī)則引擎對(duì)總體數(shù)據(jù)的匹配效率。
4 總結(jié)
本文開展了基于規(guī)則引擎的互聯(lián)網(wǎng)金融反欺詐研究,提出基于規(guī)則引擎的反欺詐模型,并進(jìn)行了規(guī)則庫設(shè)計(jì)、優(yōu)化匹配過程等工作,為規(guī)則引擎在反欺詐場景中的應(yīng)用提供了一種實(shí)現(xiàn)思路。
在未來的工作中,我們將進(jìn)一步對(duì)大數(shù)據(jù)環(huán)境中的規(guī)則引擎進(jìn)行研究,從而提升規(guī)則引擎在互聯(lián)網(wǎng)金融反欺詐中的表現(xiàn)。此外,還將把規(guī)則引擎與基于用戶行為的模型、名單管理相結(jié)合,提高對(duì)欺詐風(fēng)險(xiǎn)檢測的準(zhǔn)確率,建立一套完整的互聯(lián)網(wǎng)金融反欺詐系統(tǒng)。
參考文獻(xiàn):
[1] 童毅.規(guī)則引擎中模式匹配算法及規(guī)則引擎應(yīng)用的研究[D].北京郵電大學(xué),2010
[2] 丁慎勇.反欺詐模型在電子銀行的應(yīng)用研究[D].山東大學(xué),2014.
[3] 顧小東.基于RETE算法的大規(guī)模規(guī)則推理引擎研究與應(yīng)用[D].南京大學(xué),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