圖計算在翼支付風(fēng)控場景的應(yīng)用
一、翼支付業(yè)務(wù)介紹
首先簡單介紹一下翼支付,作為中國電信旗下的子公司,負(fù)責(zé)包括支付方案等金融板塊的工作。具體來看,翼支付主要有三大業(yè)務(wù)場景:支付場景、電商場景和信貸場景。
對于風(fēng)控領(lǐng)域來說,其挑戰(zhàn)是業(yè)務(wù)中面臨的諸多風(fēng)險。
首先是支付場景,常見的有欺詐類(涉及到賬戶盜用、銀行卡盜刷),還有洗錢類,犯罪團(tuán)伙會利用金融機構(gòu)來做洗錢的平臺,以及賭博套現(xiàn)類等。
第二個是電商場景。電商場景與之相應(yīng)的更多的是營銷套利的風(fēng)險,例如做發(fā)放補貼或者消費券的工作時,補貼或消費券存在被羊毛黨薅走,或者被虛假的交易盜用的風(fēng)險。
第三個是信貸場景。信貸主要分兩種風(fēng)險類型。第一類是信用類,是對人的借貸能力和還款能力的評估。第二類是欺詐類,信貸場景存在中介的團(tuán)伙欺詐或者惡意的騙貸行為,會對整個機構(gòu)和金融秩序造成非常大的影響。
我們的對手統(tǒng)稱為黑產(chǎn)。黑產(chǎn)從規(guī)模上來看,是一個具有千億黑產(chǎn)值和約 160 萬的從業(yè)人員的團(tuán)體。從分工來看,整個黑產(chǎn)的鏈路分工明確,包括最底層的物料提供商,到技術(shù)的提供商,再到相關(guān)從業(yè)人員共同構(gòu)成了一個完整的鏈路。
黑產(chǎn)具有技術(shù)多樣,分工明確的特點。圖中是我們經(jīng)常遇到的一些黑產(chǎn)對手使用的設(shè)備,比如貓池、卡池、云手機,是為了大規(guī)模地注冊賬戶使用的。還有一些打碼平臺,可以自動地識別驗證碼。以及用來跑分的設(shè)備模擬器等。根據(jù)對手的不同形式,我們會從風(fēng)控的體系上做出針對性建設(shè)。
風(fēng)控作為一個整體的解決方案,不只有模型這一部分。我們從底層的數(shù)據(jù)加工到形成一套實時的風(fēng)控決策引擎,以及一些分析模塊、預(yù)警模塊和系統(tǒng)處置管理來共同完善整個金融業(yè)務(wù)流程中的風(fēng)控體系建設(shè)。
除了圖以外,當(dāng)今的很多 AI 技術(shù)已經(jīng)在風(fēng)控中有較好的應(yīng)用。比如 CV 領(lǐng)域做的視覺反詐。圖中左下的兩張圖是在實際業(yè)務(wù)中遇到的,在用戶準(zhǔn)入的時候,欺騙者會通過合成虛假的身份證圖像,或翻拍圖像來實現(xiàn)用戶的準(zhǔn)入。對此,CV 可以有針對性地應(yīng)對。
接著,是無監(jiān)督的能力,在電商場景下,很明顯的特點是數(shù)據(jù)通常是無標(biāo)簽的。對此我們有一套基于無監(jiān)督的黑產(chǎn)團(tuán)伙的挖掘方案。
同樣,有監(jiān)督的模型也會運用在風(fēng)控中,比如 XGB,LGB 等模型是在欺詐或者信用場景下,有明確的樣本標(biāo)簽時使用的方法。
還有一類是聯(lián)邦學(xué)習(xí)的方法,從監(jiān)管的角度來看,對用戶隱私的保護(hù)和數(shù)據(jù)合規(guī)要求更加嚴(yán)格。模型的好壞,數(shù)據(jù)占很重要的成分。把更多的數(shù)據(jù)在安全的、合規(guī)的情況下使用起來,是我們基于聯(lián)邦學(xué)習(xí)的聯(lián)合建模的能力。
那么,為什么說圖學(xué)習(xí)是風(fēng)控業(yè)務(wù)的重要解決手段呢?我們先來看兩個案例,這是我們在業(yè)務(wù)中發(fā)現(xiàn)的兩種經(jīng)典黑產(chǎn)團(tuán)伙模式。第一類是大規(guī)模的團(tuán)伙(見左圖),考慮這個黑產(chǎn)團(tuán)伙以黃色點為中心節(jié)點,假設(shè)該節(jié)點是一個設(shè)備,我們就可以通過發(fā)現(xiàn)該設(shè)備登錄了很多賬戶來判斷其為異常節(jié)點。但是作為傳統(tǒng)角度識別方法來說,可能就到此為止了,因為無法看到一個完整的圖結(jié)構(gòu)。在圖學(xué)習(xí)的視角中,一個完整的圖結(jié)構(gòu)中,黑產(chǎn)節(jié)點通過一些中間節(jié)點關(guān)聯(lián)到更大更多的團(tuán)伙,這是通過傳統(tǒng)的方法看不到的。
第二類是如右圖這種長鏈路的團(tuán)伙。黑產(chǎn)是狡猾的,會與風(fēng)控做對抗攻擊。當(dāng)我們對單賬戶做了非常嚴(yán)格的限制,導(dǎo)致黑產(chǎn)不能做明確的攻擊時,黑產(chǎn)會轉(zhuǎn)換思路。在圖中,從藍(lán)色的節(jié)點來看會覺得這是個正常的用戶,因為他具有非常少的關(guān)聯(lián)。但當(dāng)我們做長鏈路拓展的時候,就可以發(fā)現(xiàn)它們是通過這種細(xì)長的環(huán)狀結(jié)構(gòu)彼此串聯(lián)在一起,是一個風(fēng)險團(tuán)伙,會對業(yè)務(wù)進(jìn)行攻擊。
當(dāng)前黑產(chǎn)的特點,第一個是團(tuán)伙性。團(tuán)伙性帶給我們的挑戰(zhàn)是傳統(tǒng)規(guī)則模型以單主題為預(yù)警對象,并不能發(fā)現(xiàn)風(fēng)險的全貌。第二個是隱蔽性。無論是規(guī)則體系也好,模型體系也好,都會有一個閾值,閾值之上的我們認(rèn)為是風(fēng)險。黑產(chǎn)就會通過不斷地試探這種攻擊,對它的操作行為進(jìn)行包裝,讓我們難以識別,但其中也有難以隱藏的關(guān)聯(lián)關(guān)系,是可以通過隱蔽性挖掘進(jìn)行識別的,這是圖學(xué)習(xí)非常擅長的。第三個是實時性,比如一個用戶被騙了,給黑產(chǎn)的轉(zhuǎn)賬是很快的。我們對轉(zhuǎn)賬的攔截需要做到更快的響應(yīng)。
二、翼支付圖風(fēng)控體系
簡單來說,以點邊為基礎(chǔ)單元構(gòu)成的數(shù)據(jù)是圖數(shù)據(jù)。比如金融業(yè)務(wù)中,賬戶,設(shè)備,銀行卡,身份證都可以是圖中的點。不同點之間的關(guān)系,包括轉(zhuǎn)賬關(guān)系,登錄關(guān)系,或者賬戶間的發(fā)紅包行為或者幫人助力等任何關(guān)系都是圖中的邊,共同構(gòu)成圖數(shù)據(jù)。
圖算法可以分成兩類。一種是基于圖論的傳統(tǒng)算法,像連通圖、Louvain、標(biāo)簽傳播和 PageRank 等。另一種是基于深度學(xué)習(xí)和神經(jīng)網(wǎng)絡(luò)圖算法模型。比如 Node2Vec、GCN、GAT、GraphSage 等基于深度學(xué)習(xí)的方法。
關(guān)于圖數(shù)據(jù)建設(shè),我們使用分布式的圖數(shù)據(jù)庫來做數(shù)據(jù)的存儲。在支付、金融和通訊三個業(yè)務(wù)板塊,根據(jù)業(yè)務(wù)的需求建設(shè)不同體量的圖數(shù)據(jù)庫。
數(shù)據(jù)之上我們需要一套系統(tǒng)來承載更多的功能,因此,我們實現(xiàn)了一套整體的知識圖譜解決方案的開發(fā):翼支付云篆知識圖譜。它包括前端圖數(shù)據(jù)可視化的展示、基于圖譜的案例分析,基于圖的查詢管理功能。
如圖是翼支付圖譜的整個體系建設(shè),對于底層數(shù)據(jù),我們有對應(yīng)的圖譜構(gòu)建平臺。平臺之下是一套分布式的存儲系統(tǒng),因為這種百億級的體量是需要分布式的方案來做的。接著會有整個應(yīng)用工具庫,工具庫主要是實現(xiàn)分析、路徑挖掘、檢驗探索、可視化等功能。工具的底層是算法能力,包括傳統(tǒng)算法和深度算法的實現(xiàn),用來作為支撐工具庫的基礎(chǔ)。我們把這套系統(tǒng)應(yīng)用在整個金融、支付和通信反查的業(yè)務(wù)當(dāng)中。
三、圖學(xué)習(xí)算法及應(yīng)用
我們有三部分算法體系,一是基于傳統(tǒng)圖論的方法,我們稱之為基于 SubGraph 的子圖挖掘。二是 MetaPath,是基于圖模式匹配的。三是基于深度學(xué)習(xí)圖神經(jīng)網(wǎng)絡(luò)(GNN)的。
首先介紹 SubGraph 子圖挖掘方法。這里舉兩個例子,通過左圖某大規(guī)模團(tuán)伙案例的可視化圖可以發(fā)現(xiàn),黑產(chǎn)團(tuán)伙攻擊的行為具有規(guī)模大、破壞性強、隱蔽性高的特點。此外,我們在生產(chǎn)中發(fā)現(xiàn)這樣一個情況:在信貸業(yè)務(wù)中授信額度認(rèn)證環(huán)節(jié),申請的人提交認(rèn)證照片的背景是非常相似的(見右圖),這就說明它們是在同一個地方進(jìn)行的認(rèn)證,可以推斷出有很大可能性存在中介騙貸的行為。
那么,為什么要使用圖計算作為解決方案呢?
第一,從同質(zhì)性的角度來考慮,若一個節(jié)點和一個非法節(jié)點關(guān)聯(lián)密切,無論這個節(jié)點是人,設(shè)備,還是資質(zhì)都大概率是非法的。從傳播性的角度來說,這是我們認(rèn)為可以用基于社區(qū)發(fā)現(xiàn)方法的重要前提。
第二,從稀缺性角度。用圖數(shù)據(jù)一定要保證它的數(shù)據(jù)上是存在關(guān)聯(lián)性的,關(guān)聯(lián)性的產(chǎn)生原因很重要的就是黑產(chǎn)資質(zhì)的稀缺性,比如身份證銀行卡,貓池卡池這種設(shè)備。對黑產(chǎn)來說,為了降低作案成本,他們會把生產(chǎn)資質(zhì)做復(fù)用,比如不同的手機號去匹配不同的身份證注冊銷戶,再重新匹配注冊。這個過程中就難免留下一些綁定關(guān)聯(lián)關(guān)系。同樣,在洗錢或者詐騙中涉及到資金轉(zhuǎn)移,通過轉(zhuǎn)賬或商戶消費一系列的行為,都一定會留下資金鏈路的蛛絲馬跡。因此,同質(zhì)性和稀缺性是我們做子圖挖掘的思路。
我們面臨的挑戰(zhàn)首先是將黑產(chǎn)識別全,然后是在于識別的效率。因為對于風(fēng)控業(yè)務(wù)來說,我們想實時攔截就要在毫秒級完成整個任務(wù)的響應(yīng)。因此我們的工作基于實時的子圖挖掘展開,來滿足業(yè)務(wù)對實時性的要求。
下面介紹實時子圖劃分的方案,我們借助外置緩存 Redis 來滿足實時性的要求。方案的第一步,我們會基于離線數(shù)據(jù)將整個群組的劃分和初始信息的存儲好,再放一份到外置緩存中。接著,對于每日增量數(shù)據(jù)帶來的圖譜結(jié)構(gòu)的變化,分不同情況進(jìn)行對應(yīng)群組計算,保證 Redis 中群組編號為最新映射,從而降低圖譜本身群組計算的壓力。
對于群組劃分方案,如流程圖中所示,在更新實體時如果發(fā)現(xiàn)該實體為已屬于多個群組的實體,則對外置緩存進(jìn)行以下操作:添加新的群組到緩存中,合并所有該實體屬于群組,公式為:
RESULTSET=SETAMATCHED ∪SETBMATCHED ∪?∪SETNMATCHED
在業(yè)務(wù)中,我們有很多寶貴的專家經(jīng)驗,我們要做的就是如何運用好這些經(jīng)驗來精準(zhǔn)地識別風(fēng)險。通過充分利用圖數(shù)據(jù)庫 AP 和 TP 的能力,我們實現(xiàn)了查詢的離線支持、實施規(guī)則推理的部署、實時的數(shù)據(jù)入圖、毫秒級響應(yīng)等功能。
接著我們來看這樣一個案例:營銷行為中,營業(yè)員故意隱瞞活動信息,將高價值營銷物品私藏,用低額轉(zhuǎn)賬代替,這是典型的活動欺詐,同時,隨著營業(yè)員反偵意識的提升,可能持有多個賬號,一個進(jìn)行辦理訂單另一個進(jìn)行轉(zhuǎn)賬,規(guī)避風(fēng)控檢查。對此,業(yè)務(wù)專家抽象出 schema 圖,圖中的每個流程看似正常,不過結(jié)合在一起就會發(fā)現(xiàn)符合業(yè)務(wù)專家經(jīng)驗的欺詐風(fēng)險模式。我們把這個模式抽象出來基于 Cypher 進(jìn)行表達(dá),可以為整個庫上的實時查詢能力做支撐。
同樣,對于非技術(shù)背景的同學(xué),我們也專門做了一個模塊,可以通過點選和拖拉拽操作,把想要的節(jié)點和模式勾選出來,從而實現(xiàn)進(jìn)一步的條件過濾和篩選,以提升工作效率。
在洗錢的場景下,會存在圖中這種分散轉(zhuǎn)出、集中轉(zhuǎn)入的模式,對于圖來說,其的本身的查詢能力可以很好地勝任對異常結(jié)構(gòu)的描述。
我們基于業(yè)務(wù)經(jīng)驗梳理出來異常的單元結(jié)構(gòu),并在全圖上進(jìn)行統(tǒng)計。得到數(shù)據(jù)后我們可以做以下兩個工作:第一是異常檢測,將模型輸出的 Embedding 和其他的屬性拼接,去進(jìn)行分類或者聚類去判斷賬戶是否異常。第二是基于不同 Pattern Cnt 做用戶的風(fēng)險的評分,再把這種評分輸入下游的機器學(xué)習(xí)分類任務(wù),可以很好地提升已知的業(yè)務(wù)信息和已知其他的機器學(xué)習(xí)模型的推理的準(zhǔn)確率。
最后是基于 GNN 的方法,對于洗錢的案例,較難用一種固定的單一模式來描述,因為實際業(yè)務(wù)中是千變?nèi)f化的。因此,問題來了,對于非固定 pattern 的拓?fù)浣Y(jié)構(gòu)和屬性信息,應(yīng)該如何精確地表達(dá)識別呢?對此,我們想到了 GNN 的方法。GNN 最擅長的就是我們把拓?fù)湫畔⒑蛯傩孕畔⒔Y(jié)合起來,需要面對的挑戰(zhàn)是在數(shù)據(jù)量非常大的部署 GNN 模型,比如在百億級的體量上直接跑一個 GNN 的模型。如果是純內(nèi)存非分布式的方案,成本消耗將非常驚人,整個訓(xùn)練收斂難度非常大。
對此,這里有兩個思路,第一是利用支持 batch 的架構(gòu)。第二,是從降低數(shù)據(jù)上的思路上解決問題,來篩選掉大部分的正常用戶。第三是基于用戶的行為 pattern,可以通過基于時間的劃分來觀察每個時間段用戶的行為分布的 pattern 來判斷洗錢者和正常人的區(qū)別。
如圖是我們整個 GNN 的方案。首先是對圖做了切割,把大量正常用戶過濾掉,剩下的這一部分就是我們覺得有風(fēng)險的用戶。從數(shù)據(jù)層面來說降低了計算壓力。下面又分了三部分,第一部分是 GNN 的模型來產(chǎn)生用戶的評分。第二個就是基于資金折損的角度得到的用戶評分。第三部分就是基于用戶 pattern 得到的評分,求和后得到 Risk Score 整體洗錢風(fēng)險的總分。
四、未來展望
最后想跟大家一起探討一下我們未來可能會有的應(yīng)用方向。
在數(shù)據(jù)方面。我們其實會有兩部分的需求。第一部分是大規(guī)模分布式的原生圖數(shù)據(jù)庫,因為用單機不可能承載這么大的數(shù)據(jù)量。第二部分是數(shù)據(jù)庫的實時插入和保持?jǐn)?shù)據(jù)一致性的能力以及時序圖數(shù)據(jù)能力,因為群組會隨時間維度信息變化,這種演化的時序信息在數(shù)據(jù)庫存好,才能為后面做更好的應(yīng)用。
在系統(tǒng)方面,我們會側(cè)重兩點。第一個是自動規(guī)則挖掘。我們現(xiàn)在已經(jīng)可以很好地把專家的經(jīng)驗通過人工的方式做挖掘,那么在我們構(gòu)建的圖業(yè)務(wù)數(shù)據(jù)中,自動地挖掘出可疑的規(guī)則,來極大地降低人工工作量,是我們努力的方向。第二個是可解釋性的預(yù)警,對于金融機構(gòu),面對的用戶的投訴監(jiān)管,整個檢出的準(zhǔn)確率可能受到質(zhì)疑。那么如何利用好圖的可解釋性,也是我們在系統(tǒng)方面的挑戰(zhàn)。
在算法方面,第一是分布式的圖訓(xùn)練框架,基于 batch 的方式構(gòu)建。比如 DGL 或者 PyG,他們有很好的分布式訓(xùn)練框架方案,來真正實現(xiàn)工業(yè)界上大規(guī)模數(shù)據(jù)的訓(xùn)練。第二點是多模態(tài)異構(gòu)數(shù)據(jù)的融合,我們現(xiàn)在更多依賴 node attribute 信息,未來還有一些基于 NLP 的信息,怎么把這些信息融合到一個框架里面來做 GNN 訓(xùn)練,更好更全面地識別風(fēng)險,也是會一個很好的方向。第三塊就是圖的聯(lián)邦學(xué)習(xí),圖聯(lián)邦重要在于關(guān)聯(lián)性的構(gòu)建,如何在數(shù)據(jù)彼此不完整的情況下,把這種各方的關(guān)聯(lián)性的數(shù)據(jù)基于聯(lián)邦學(xué)習(xí)的方式融合到一起,也是我們探索的方向。最后一點是對監(jiān)管的要求。我們監(jiān)管上做了很多的工作,包括行業(yè)的一些風(fēng)控和金融算法的認(rèn)證和標(biāo)準(zhǔn)的制定工作,對于對抗攻擊的魯棒性,對用戶隱私的保護(hù),對算法公平性的保障等,這同樣是我們未來的一個大的趨勢。
翼支付這些年在 AI 領(lǐng)域做了一些積累,如果有同學(xué)或者公司對此感興趣,我覺得我們可以一起來探索。
五、問答環(huán)節(jié)
Q1:GNN 有和 GBDT 這種樹模型融合嗎?有沒有相應(yīng)的落地經(jīng)驗?
A1:有的,一般做法就是在 GNN 的最后一層,也就是 Embedding 之后的那一層的向量,拿出來作為節(jié)點特征信息的補充方案來和 GBDT 做融合以實現(xiàn)分類任務(wù)。
Q2:在 GNN 反洗錢的圖中,實體和邊大概是個什么量級?
A2:為了使服務(wù)端的壓力減小一些,我們首先會盡可能把大量的正常用戶過濾掉,最后實際用于 GNN 的大概是百萬級的量級。