首頁(yè)>博客>應(yīng)用場(chǎng)景>中國(guó)移動(dòng):悅數(shù)圖數(shù)據(jù)庫(kù)在金融風(fēng)控領(lǐng)域的落地應(yīng)用
中國(guó)移動(dòng):悅數(shù)圖數(shù)據(jù)庫(kù)在金融風(fēng)控領(lǐng)域的落地應(yīng)用
本文整理自 中國(guó)移動(dòng)算法工程師 汪海濤 在 NUC 2022 年度用戶大會(huì)上的分享。
各位朋友上午好,,我是來自中國(guó)移動(dòng)的算法工程師汪海濤。接下來我主要聊一聊圖數(shù)據(jù)庫(kù)在中國(guó)移動(dòng),特別是金融風(fēng)控場(chǎng)景的落地應(yīng)用,。
為什么中國(guó)移動(dòng)要建設(shè)圖平臺(tái),?
「全國(guó) 9 億用戶,每天產(chǎn)生大量數(shù)據(jù)」
中國(guó)移動(dòng)有非常多的數(shù)據(jù),,全國(guó)的用戶每天都會(huì)產(chǎn)生海量的數(shù)據(jù),。如何從這么大數(shù)據(jù)量里面挖掘出有用的信息,然后用到金融風(fēng)控場(chǎng)景,?這就是我們需要做的事情,。
之前,我們是以手機(jī)號(hào)為維度去提取特征,,然后去做一些模型或規(guī)則判斷一個(gè)手機(jī)號(hào)是否是有違約風(fēng)險(xiǎn),。但僅僅基于手機(jī)號(hào)很難綜合去考慮風(fēng)險(xiǎn)情況,因此我們就想采用圖計(jì)算技術(shù)去綜合看一個(gè)手機(jī)號(hào)以及周圍的其他手機(jī)號(hào)的信息,,然后共同評(píng)判它的風(fēng)險(xiǎn),。
最開始是基于消費(fèi)金融的場(chǎng)景,從比如說像螞蟻金服,、微信以及京東白條這樣一些產(chǎn)品切入,,通過用戶通話數(shù)據(jù)、短信數(shù)據(jù),、設(shè)備等多維度的一些信息,,去判斷用戶風(fēng)險(xiǎn)。但中國(guó)移動(dòng)數(shù)據(jù)量這么大,,不管我們要做什么,,最大的訴求就是需要有一個(gè)非常高性能的平臺(tái)去支撐數(shù)據(jù)分析,。
為什么選擇「悅數(shù)」圖數(shù)據(jù)庫(kù),?
「JanusGraph vs TigerGraph vs 悅數(shù)圖數(shù)據(jù)庫(kù)」
我們最早是采用了 JanusGraph 加上 Spark 去建設(shè)我們平臺(tái),,但是通過一些測(cè)試,我們發(fā)現(xiàn) JanusGraph 的查詢性能以及導(dǎo)入性能都比較一般,,然后 GraphX 的話,,它的計(jì)算性能其實(shí)也比較一般,特別是它需要的內(nèi)存量特別大,,因此我們后來又開始去調(diào)研了市場(chǎng)上很多的圖產(chǎn)品,,并且對(duì)一些圖產(chǎn)品做了測(cè)試,包括國(guó)外的產(chǎn)品,,像 TigerGraph 之類的等等,,但是因?yàn)橐恍┨厥庠颍袊?guó)移動(dòng)是在美國(guó)商務(wù)部的實(shí)體清單上,,所以很多外國(guó)的產(chǎn)品我們是沒法去采購(gòu)和使用的,。
因此最后,我們是選擇國(guó)內(nèi)的幾家廠商進(jìn)行了一些測(cè)試和比較,,最后選擇了「悅數(shù)圖數(shù)據(jù)庫(kù) 」,。
中國(guó)移動(dòng)是如何搭建圖平臺(tái)的
圖平臺(tái)建設(shè)概況
我們整體的架構(gòu)大概是這樣的——
最底層是我們的數(shù)據(jù)源,中國(guó)移動(dòng)建設(shè)有一個(gè)全國(guó)大數(shù)據(jù)中心,,主要包括通話數(shù)據(jù),、位置數(shù)據(jù)、消費(fèi)數(shù)據(jù),、設(shè)備數(shù)據(jù),、用戶數(shù)據(jù)和 APP 數(shù)據(jù)等等,我們每月把這些數(shù)據(jù)抽取到 HDFS 里面,,然后把其中有用的數(shù)據(jù)抽取到悅數(shù)圖數(shù)據(jù)庫(kù)里面,,那么這里用的就是悅數(shù)的一個(gè)導(dǎo)入工具,這是我們圖數(shù)據(jù)存儲(chǔ)這一層,。
再上一層是計(jì)算分析層,,這也是我們建模和業(yè)務(wù)分析人員主要使用的一些框架。首先第一個(gè)是 Plato,,它是騰訊之前開源的一個(gè)圖計(jì)算引擎,,但是據(jù)我所知騰訊現(xiàn)在已經(jīng)不維護(hù)這一套引擎了,因此我們也是專門找一些工程師,,然后去維護(hù)這里面的一套框架,,以及修復(fù)一些小 bug 之類的。
那么它包含的算法其實(shí)很多的,,這里我主要是列舉了兩個(gè)社區(qū)發(fā)現(xiàn)算法、Louvain 算法和 HANP 算法。它里面還包含一個(gè) LPA 算法,,因?yàn)長(zhǎng)PA 算法的話是 HANP 算法一個(gè)簡(jiǎn)化版,,所以這里我沒有列出來。
然后里面還有一個(gè)我們有可能后面會(huì)用到的關(guān)于隨機(jī)游走類的算法,,主要是基于隨機(jī)游走得到一個(gè)節(jié)點(diǎn)序列,,會(huì)為我們后面用于圖神經(jīng)網(wǎng)絡(luò)訓(xùn)練做一個(gè)前期數(shù)據(jù)預(yù)處理的工作。
第三個(gè)是 GNN,,就是圖神經(jīng)網(wǎng)絡(luò),。圖神經(jīng)網(wǎng)絡(luò)是最近幾年興起的一個(gè)領(lǐng)域,我們現(xiàn)在主要是基于這些模型做一些簡(jiǎn)單的產(chǎn)品,,看看能不能取得比以往的方法更好的一些效果,。最后基于悅數(shù)的圖查詢語(yǔ)言,主要是 go 語(yǔ)句和 fetch 語(yǔ)句做一些簡(jiǎn)單查詢,。
再上一層的話就是應(yīng)用層,。首先是關(guān)聯(lián)風(fēng)險(xiǎn)分,關(guān)聯(lián)風(fēng)險(xiǎn)分主要是基于配套的社區(qū)發(fā)現(xiàn)算法來做的,。第二個(gè)號(hào)碼風(fēng)險(xiǎn)分和最后一個(gè)催收分析是基于悅數(shù)圖數(shù)據(jù)庫(kù)的查詢語(yǔ)句來做的,,主要就是查詢用戶跟一度、二度聯(lián)系人以及一些違約用戶,,或是催收專用號(hào)碼進(jìn)行一些主動(dòng)或被動(dòng)的呼叫,。第三個(gè)信用評(píng)分卡是基于圖神經(jīng)網(wǎng)絡(luò)來做的,主要是用邏輯回歸或者決策樹之類的模型,,希望通過圖神經(jīng)網(wǎng)絡(luò)做一些提高,。
圖數(shù)據(jù)結(jié)構(gòu)介紹
- 點(diǎn)數(shù)據(jù)
點(diǎn)數(shù)據(jù)主要是有四類,第一個(gè)是手機(jī)號(hào),,手機(jī)號(hào)也是我們最重要的點(diǎn)數(shù)據(jù),,主要是包括比如這手機(jī)號(hào)它是屬于哪個(gè)市的,是否發(fā)生過停機(jī)等等,,還有一些消費(fèi)信息,。第二個(gè)是地理位置,主要基于基站,。第三個(gè)身份證,,作為唯一身份證識(shí)別,可能也會(huì)有年齡或?qū)W歷之類的標(biāo)志,。最后是設(shè)備信息,,一般手機(jī)會(huì)有一個(gè)設(shè)備值,有對(duì)應(yīng)的型號(hào),、設(shè)備系統(tǒng)等,。
- 邊數(shù)據(jù)
目前邊數(shù)據(jù)的話,,一個(gè)是用戶跟用戶的通話數(shù)據(jù),第二個(gè)是手機(jī)號(hào)和身份之間的對(duì)應(yīng)關(guān)系,,第三個(gè)是手機(jī)號(hào)和設(shè)備之間對(duì)應(yīng)關(guān)系,,第四個(gè)是手機(jī)號(hào)跟地理位置之間對(duì)應(yīng)關(guān)系,那么這些是我們?cè)趫D數(shù)據(jù)庫(kù)里面保存的一些數(shù)據(jù),。
圖技術(shù)在中國(guó)移動(dòng)有哪些應(yīng)用
應(yīng)用1:號(hào)碼風(fēng)險(xiǎn)分
首先是號(hào)碼風(fēng)險(xiǎn)分模型,,主要用在羊毛黨識(shí)別這個(gè)場(chǎng)景。我們會(huì)根據(jù)用戶的通話流量位置以及手機(jī)行為信息去判斷一個(gè)號(hào)碼有沒有可能是個(gè)羊毛黨,,主要通過四個(gè)模塊——
第一個(gè)是接碼模塊,,我們會(huì)跟一些外面數(shù)據(jù)公司合作,判斷一個(gè)號(hào)碼有沒有可能是一個(gè)接碼號(hào)碼,,如果是,,我們會(huì)認(rèn)為這個(gè)號(hào)碼是薅羊毛的可能性就很大。
第二個(gè)行為異常號(hào)碼,,比如說這個(gè)手機(jī)號(hào)是否當(dāng)月一次通話都沒有,,然后是不是每月都基本只有固定的月租這樣的消費(fèi)。這種號(hào)碼我們認(rèn)為它可能是一個(gè)小號(hào),,或者是專門用來去薅羊毛的號(hào)碼,。
第三個(gè)是位置異常,比如說這個(gè)手機(jī)是否一個(gè)月下來就是在一個(gè)位置從來沒有動(dòng)過,,可能只是放在家里偶爾用一下,,不會(huì)帶出去這種。對(duì)于這種號(hào)碼的話,,我們認(rèn)為它的風(fēng)險(xiǎn)也是相對(duì)比較大的,。
第四個(gè)是染灰模塊,圖技術(shù)主要就是用于這個(gè)模型,?;谇叭齻€(gè)模塊的結(jié)果,我們首先獲得了一批已經(jīng)確定的羊毛黨用戶,,那么我們可不可以發(fā)現(xiàn)他的一些共同特征——比如說可能有幾個(gè)羊毛黨(號(hào)碼)是屬于同一個(gè)用戶的,,那么我們是不是可以看看這個(gè)用戶下面其他手機(jī)號(hào)是不是也可能是羊毛黨?
另外,,如果發(fā)現(xiàn)有一堆手機(jī)號(hào)是之前在同一個(gè)設(shè)備上使用過,,我們可能也會(huì)認(rèn)為這個(gè)設(shè)備上對(duì)應(yīng)的其他手機(jī)號(hào)也可能會(huì)是一些羊毛黨。專業(yè)的羊毛黨會(huì)采用卡池這種設(shè)備專門去薅羊毛,,用圖技術(shù)就可以快速發(fā)現(xiàn)并識(shí)別,。
應(yīng)用2 :關(guān)聯(lián)風(fēng)險(xiǎn)分
然后是關(guān)聯(lián)風(fēng)險(xiǎn)分,,通俗來說就是「近朱者赤近墨者黑」,。
在平時(shí)交際圈,,如果你的違約可能性比較低,那么周圍人可能違約性也會(huì)比較低,?;谶@樣一種想法,我們主要做法就是首先基于移動(dòng)所有用戶構(gòu)建一個(gè)關(guān)系網(wǎng)絡(luò),,然后采用一些社區(qū)發(fā)現(xiàn)類的算法去挖掘這個(gè)社區(qū)中個(gè)人的評(píng)分以及個(gè)人之間的關(guān)系,通過對(duì)這個(gè)社區(qū)打分,,去識(shí)別出這個(gè)社區(qū)是否是欺詐或低信用社區(qū),。
關(guān)聯(lián)風(fēng)險(xiǎn)分的主要應(yīng)用場(chǎng)景就是欺詐領(lǐng)域,比如信貸欺詐,、交易欺詐,、營(yíng)銷欺詐、支付欺詐以及賬戶欺詐等等多個(gè)方面,。
應(yīng)用3:圖神經(jīng)網(wǎng)絡(luò)(GNN)
最后是關(guān)于圖神經(jīng)網(wǎng)絡(luò)的一些應(yīng)用,,主要是用于金融風(fēng)控信用評(píng)分卡的場(chǎng)景。過去我們用做信用評(píng)分卡大部分都是先提取用戶特征,,再然后訓(xùn)練一個(gè)邏輯回歸模型或者是角色數(shù)字類的模型,。
那么現(xiàn)在,我們想通過圖神經(jīng)網(wǎng)絡(luò)做一些模型,,通過用戶之間通話數(shù)據(jù),,比如近三個(gè)月主動(dòng)通話、被動(dòng)通話以總通話次數(shù)是否達(dá)到要求,,去判斷要不要保留這樣一條邊,。
我們大概提取 100 多個(gè)主要的特征去錄模,這里的模型相對(duì)來說比較簡(jiǎn)單,,目前是嘗試了一個(gè)雙塔的模型,,左邊的是關(guān)于圖神經(jīng)網(wǎng)絡(luò)聚合的這樣一個(gè)模型,右邊用戶特征本身的一個(gè)全連接網(wǎng)絡(luò)做了這樣 MLP 的模型,。左邊的神經(jīng)網(wǎng)絡(luò)聚合,,是比較簡(jiǎn)單也是最常用的——GCN、GrapSAGE 和 GAT 這三個(gè)模型,。
另外我們現(xiàn)在采用的是一個(gè)同構(gòu)圖的網(wǎng)絡(luò)建模,,后面可能會(huì)考慮異構(gòu)圖,比如說考慮用 HAN 這樣的一些異構(gòu)圖的模型去建模,,把用戶的身份證和設(shè)備以及位置信息這些點(diǎn)都?xì)w納進(jìn)來,,然后一起進(jìn)行建模。
圖數(shù)據(jù)應(yīng)用的未來展望
1.數(shù)據(jù)血緣
中國(guó)移動(dòng)大數(shù)據(jù)中心會(huì)提供給大概 30 多家客戶的 50 多個(gè)項(xiàng)目進(jìn)行共同的建模,,建模工作里包含的數(shù)據(jù)維表會(huì)特別多,,因?yàn)槲覀儠?huì)給每個(gè)用戶都匹配數(shù)據(jù),,然后幫他們生成特征,最后會(huì)把結(jié)果表也保存在數(shù)據(jù)庫(kù)里面,,大概現(xiàn)在有 1000 多張數(shù)據(jù)表,,平時(shí)基本靠人工管理,后面看看能不能通過數(shù)據(jù)血緣的方式去做一個(gè)歸納,。
2.圖神經(jīng)網(wǎng)絡(luò)
中國(guó)移動(dòng)除了大數(shù)據(jù)中心,,還有人工智能中心,那里有很多的 GPU 資源進(jìn)行人工神經(jīng)網(wǎng)絡(luò)的訓(xùn)練,,但是目前模型訓(xùn)練效率比較低下,,所以后面看看怎么用圖數(shù)據(jù)技術(shù)去解決這個(gè)問題。
- 相關(guān)推薦:
《美團(tuán):圖數(shù)據(jù)庫(kù)平臺(tái)建設(shè)及業(yè)務(wù)實(shí)踐》
《如何用 NebulaGraph 圖技術(shù)搞定 7 個(gè)典型社交網(wǎng)絡(luò)應(yīng)用,?》
想要感受 悅數(shù)圖數(shù)據(jù)庫(kù) v3.4.0 的最新特性,? 點(diǎn)擊 鏈接,立刻開啟您的圖數(shù)據(jù)庫(kù)之旅,!