丁濛濛
摘要:隨著互聯網金融及其應用的快速發展,如何對大量交易數據進行快速、準確的風險監控與欺詐預警已成為銀行和第三方支付平臺的迫切需要。規則引擎能將規則匹配與應用程序隔離,且在大量數據和規則情況下具有較好的執行效率。針對互聯網金融反欺詐的相關特點,該文提出了基于規則引擎的反欺詐模型,并進行了規則庫設計、優化規則匹配過程的研究,為規則引擎在反欺詐場景中的應用提供了一種設計思路。
關鍵詞: 反欺詐;規則引擎;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