领域应用 | 图数据库及其在恒昌的应用简介
首發于知乎專欄知識圖譜和智能問答,作者為量子胖比特。
背景
歷史上,多數企業級應用都運行在一個關系型數據庫上(RDBMS),近年來,隨著數據存儲技術的飛速發展,關系型數據庫在靈活性和可伸縮性方面不再處于壟斷地位。NoSQL 作為一組迅速崛起的數據存儲技術,用于解決關系型數據庫在多變的應用場景下的性能限制,目前包含如下幾種類型:
-
鍵值型,如 Redis 或 Riak
-
列型,如 HBase 或 Cassandra
-
文檔型,如 MongoDB 或 CouchDB
-
圖型,如 Neo4j 或 GraphDB
這些數據庫各有自己擅長的領域,都在恒昌有著非常廣泛的應用場景。尤其是圖數據庫,作為恒昌知識圖譜的底層存儲方案,是多方數據的知識融合及提煉后進行匯聚的場所,為恒昌豐富的產品線與數據技術間的承轉起著重要作用。
圖數據庫
簡介
圖數據庫中的“圖”,取自數學中的一個分支——“圖論”。在圖論中,“圖”代表的是一種數據結構,形式上,其實就是“頂點”和“邊”的集合,用更為通俗地語言來講,圖通常具備如下特征:
-
由節點和邊構成;
-
節點可以有屬性(通常以鍵值對的方式出現);
-
邊可以有方向,并總是有一個開始節點和一個結束節點;
-
邊也可以有屬性。
圖數據庫就是利用圖的特性來對數據進行存儲管理,并對傳統圖的概念進行了擴展。越來越成熟的數據模型,使得利用事物(即“節點”或“實體”)及事物之間的聯系(即“邊”或“關系”)來對各類業務場景進行抽象變得更加容易。也正因為圖數據庫基于圖論的理論和算法實現,相對于關系型數據庫,它也更擅于處理網狀的復雜關系。
圖數據庫有多種實現,它們通常都支持對圖數據模型的增、刪、改、查(CRUD)方法,并較多地用于事務(OLTP)系統中被應用系統實時訪問。圖數據庫所涉及的核心技術主要包括兩層:
底層存儲;大體上它們可以分為“原生圖存儲”和“非原生圖存儲”。原生圖存儲會針對圖的鏈式提取進行優化,在事務性方面會有較強的保障;非原生圖存儲,一般會將圖數據序列化,然后將數據存儲到某種特定的 NoSQL 系統(比如鍵值型或列型數據庫),甚至是其他通用的數據存儲中。
處理引擎;處理引擎的實現,在一定程序上依賴于底層存儲。原生圖存儲模型通常會使用“免索引鄰接”,這通常是指關聯節點在數據庫里面是物理意義上指向彼此的;而很多采用非原生圖存儲模型的圖數據庫系統會選擇以分布式的方式實現,它們更適用于大數據量下的聯機分析處理(OLAP)。
目前市場上常見的一些圖數據庫可以參考下圖 ,橫軸越往右表示其底層存儲更偏向原生圖的方式,縱軸越往上表示其計算引擎更傾向以原生圖的方式來處理數據。
Neo4j
恒昌廣泛使用 Neo4j 作為知識圖譜底層圖數據持久化的方案,并基于其優異的事務能力對業務團隊提供實時的數據查詢能力,除此外還在 Titan、Gaffer 等分布式圖數據庫或計算引擎上有著深入的研究。Neo4j 是目前最成熟的圖數據庫之一,毫無疑問也是最流行的。它無論在事務、性能,還是安全性、可靠性等角度,都能比擬現存最優秀的數據庫系統,有些特性甚至更為優秀。下圖顯示了它在所有圖數據庫系統中的優勢。
Neo4j 提供了對 ACID(原子性、一致性、隔離性、持久性)的完整支持,并且優雅地實現了“免索引鄰接”。這使其在處理 N 度關系的時候能夠“得心應手”,當伴隨著附加的處理條件時,優勢尤為明顯。以恒昌客戶在 Neo4j 中的數據模型為例來分析一次一度關系的提取,任意兩個有關聯的恒昌客戶及他們之間的關系在 Neo4j 中典型的物理存儲結構可以參考下圖。
將上面的案例簡單地擴展一下,從一個借款客戶出發,提取其周邊三層關系以內的聯系人在恒昌是否有借款以及具體的借款狀態是非常有意義的,因為從社會網絡分析的角度來講,這些信息可以一定程度上刻畫該借款人的信用或欺詐風險。目前此類操作可以做到毫秒級響應(未優化的測試數據約為25毫秒左右),這正是因為 Neo4j 中每一層關系都是物理意義上的指針連接;相同的操作,在關系型數據庫里面,需要基于聯系人關系表分別進行一級、兩級、三級表關聯操作,并將取得的結果合并、排重,這組操作即使進行了有針對性的優化,仍舊非常耗時。
圖數據庫在恒昌的應用
從數據規模來看,目前我們的圖數據庫已經融合了多方數據,包括業務系統主要產品線各階段的數據、用戶授權數據等。這些數據形成的實體規模已過億,所形成的關系更是多達數億。隨著恒昌產品越來越豐富,以及用戶對恒昌平臺越來越信任,這個數據還在持續高速增長;從數據產品來看,基于圖數據庫開發的知識圖譜正在發揮著越來越大的作用,目前已經上線或待上線的產品覆蓋了客戶失聯修復、反欺詐規則引擎、欺詐團伙調查等,近期還會覆蓋風險預警、獲客等方向。
欺詐團伙調查
數據科學領域有名名言叫“一圖勝千言”。圖數據庫的優勢在于能通過“實體”和“關系”這種簡單直觀的描述方法來表述現實世界中錯綜復雜的關聯關系。然而,圖數據庫呈現信息的方式,并不限于簡單的節點和邊。它可以提供逐層挖掘的方式,引導用戶逐步深入分析各種關系;還可以快速及時地呈現實體之間最新的關系變化,為用戶積累新鮮的知識和經驗;也可以清晰地呈現復雜關系間的聯絡線索,為用戶判斷事件來龍去脈提供有效引導。此處,我們仍然以恒昌的客戶為例,參考下圖中的客戶徐某(因數據安全的原因,部分信息作了涂抹,并對原有圖結構進行了簡化),如果僅考慮該客戶自己填寫的信息,雖然我們也能看到一度關聯信息,但完全看不出該結構會有什么問題,也無法進行深入調查。
當關聯信息得到補充(相對于原來的進件聯系人,補充了同事、鄰居、親屬、朋友等關系,還基于用戶授權數據進行了深度擴展)后,暫不考慮物品(如手機號、銀行賬號、地址等),僅考慮自然人,獲取徐某二度關系內同時在恒昌有借款行為的用戶,得到下圖(基于同樣原因數據有涂抹及簡化)的結果,該圖每一個圓都代表一位恒昌客戶,圖頂部的狀態說明了客戶當前所處狀態。仔細觀察左下角以徐某為中心的四個客戶(已用紅框標出),他們剛好是所呈現圖的最大完全子圖,符合圖論中團的定義。再看除徐某外的三個客戶:兩個逾期,一個被拒。如果徐某是新入圖數據庫的借款人,從數學模型的角度看,幾乎可以直接判定拒絕。因為符合這種狀態的團,是欺詐團伙或是組團代辦的幾率非常大。
到這時工作并未完結,如果有需要,可以基于圖中的關系嘗試與幾位客戶聯系以進行深入背景調查證實,調查的結論可以融合到圖數據庫中形成數據閉環,直接改善后續自動化預警的結果。
風險事件預警
盡管欺詐團伙調查能取得很不錯的效果,但因為其可能需要調查員隨時聯系客戶或其周邊人群以驗證調查員的的推論,因此整體成本還是相當高的。為了解決這個問題,基于模型的風險事件預期就應聲而出了。如果說欺詐團伙調查是主動出擊,則風險事件預警更像是被動防御。她隨時守護著恒昌的客戶群體,一旦有判定的風險事件就會警告相關方,必要的時候可以自動向調查員提請欺詐團伙調查。
風險事件預警會通過模型生成一組類似上述欺詐團伙調查中出現的場景,但給每一個場景一個相對低一些的初始置信度,后期通過不斷地反饋迭代來優化置信度。當一個新客戶到來之后,首先會將其信息整合到知識圖譜中。緊接著,該客戶會被規則引擎捕捉到,規則引擎會基于客戶信息從知識圖譜中提取一組特征,由該特征決定了引擎首先會觸發哪些場景,而這些場景的結論可能導致規則引擎又觸發另外一組場景。在滿足特定條件下,最終結果輸出,如果有相應的風險事件被觸發則信息會送達相關團隊。
風險事件預警最有意思的地方在于,一個新客戶的到來,可能會導致一個早先客戶的風險事件被觸發。這主要是因為新客戶融入到知識圖譜中時帶進的新數據,可能會讓圖譜中的某些子網的結構發生徹底的改變。我們目前采用一組啟發式的算法來擴展新進客戶的影響,效果顯著。這同時也意味著,風險事件預警并非只針對貸前風險事件,還會對貸后風險事件作為預警。比如觸發了某個老客戶的潛在逾期風險時,就可以引導相關團隊提前關注,在情況惡化前及時止損。具體的技術細節不再贅述。
失聯信息修復
眾所周知,互聯網金融的核心是風險控制。無論屬于何種風險,最終極的形態就是“人間蒸發”,行話即“客戶失聯”。首先,“失聯”是要盡量避免的。如果客戶奔著欺詐而來,那幾乎也注定了后續無法聯系上,姑且讓我們稱此類失聯為“第一類失聯”;其次,“失聯”是無法完全避免的,主要是因為失聯的“成本”很低,很多客戶受到一點挫折就可能游走在“消失”與“不消失”的邊緣。即使客戶自身“消失”的意愿不高,換個手機號、搬個家、換個公司都有可能導致客戶及其聯系人完全聯系不上,讓我們稱此類除第一類失聯之外的為“第二類失聯”。原則上,如果反欺詐做得好,“第一類失聯”是不應該出現的。而對于第二類失聯,則恰恰是圖數據庫大展身手的地方。
將圖數據庫應用于失聯修復是非常直接而自然的,因為圖數據庫的特點就是其在數據豐富的條件下,能非常方便地進行各類關系的提取。恒昌的失聯修復項目結合了知識圖譜(基于圖數據庫)及傳統的機器學習技術,前者作為修復策略的具體聯系方式來源;后者作為策略有效性的評估依據。目前我們能做到失聯客戶實時修復,修復專員完成具體操作后會有相應的備注及日志信息,這些數據會被實時收集用于改進修復策略。本文僅拿眾多策略中較為容易理解的一條來略作說明,這條策略主要是從圖數據庫中提取和失聯客戶處于同一公司,且當前住址與失聯客戶接近的用戶作為修復中間人。雖然是一條簡單的策略,但深入考慮一下,會發現國內有很多規模不小的工廠會吸引周邊村子的人去工作,而這些村子可能本身規模也不小,這樣的話修復中間人不見得認識失聯人。因此這條簡單的策略背后會也會有一個啟發式算法,通過公司/工廠的規模來調整當前住址需要匹配的粒度(比如,是到村、到組、還是得具體到門牌相鄰)。更進一步地,如果在此基礎之上,修復中間人和失聯人有過通話記錄往來或是有通訊錄關聯(事實的條件遠比這個復雜),就大幅增加了該修復中間人的置信度,甚至可以基于此條件在圖數據庫查詢過程中提前中止,直接返回相關結論。以上操作基于圖數據庫可以將數據一次取出再進行處理,基本是毫秒級響應,如果觸發了提前中止,耗時可能更短;但如果基于關系型數據庫,首先會涉及多張業務表的檢索、關聯;其次,還可能按照初次處理結果多次連接數據庫,造成數據庫資源的浪費。
獲客
這部分主要談“開源節流”中的“開源”。互聯網金融的出現,加速暴露了中國長期以來以銀行為核心的金融體系形成的弊端。由于銀行獨特運營特征,讓資金的融通出現了供給與需求較為嚴重的錯配現象,在銀行的金融體系中較為較為青睞的貸款客戶很多壓根都用不著貸款。而對于大多數真正需要借款作為資金周轉的人往往很難達到銀行所需的借款資質。
圖數據庫在商品推薦場景下的應用已然非常成熟,但主要集中在電商行業。我們采用的方案有兩個步驟,第一步是自動識別優質客戶,采用 Bootstrap 方法,基于一組種子優質客戶進行多次迭代以擴展優質客戶。這個過程的特點是除了客戶自身屬性特征,還會基于圖數據庫提取基于社會網絡分析的特征;第二步是基于圖數據庫挖掘較高置信度的優質客戶周邊人群,將滿足特定模式條件人作為潛在客戶,兩個步驟各自都有嚴格的評估標準以保準最終效果。
總結
在實際的應用架構中,通常會混合使用多種數據庫,以利用它們各自的特點來創建一個數據生態系統。對于恒昌而言,業務系統的高效及事務特征會讓關系型數據庫繼續出彩;大規模的用戶授權數據可能會讓我們在底層配上分布式的列式存儲或鍵值存儲庫;但回歸根本,恒昌期望為客戶提供優異的財富管理及借款信息咨詢與服務,就需要優秀的風險控制作保障。而這,恰恰也是圖數據庫能最大程度發揮價值的領域之一。我們長久以來踐行將“風險控制”作為平臺生命線,致力于以先進的金融創新技術護航平臺安全,以知識圖譜等最前沿的高新技術鑄風控之盾,勢必能打造一個安全、高效、用戶體驗好的互聯網金融平臺。
關于作者:
JXU1RjkwJXU5RTRGJXVGRjBDMjAwOCV1NUU3NCV1NkJENSV1NEUxQSV1NEU4RSV1NkI2NiV1NkM0OSV1NTkyNyV1NUI2NiV1RkYwQyV1NjI4MCV1NjcyRiV1NEVCQSV1RkYwQyV1NzU2NSV1NjFDMiV1NjRDRCV1NEY1QyV1N0NGQiV1N0VERiV1MzAwMSV1NzU2NSV1NjFDMiV1NEU5MiV1ODA1NCV1N0Y1MSV1MzAwMSV1NzU2NSV1NjFDMiV1NjczQSV1NTY2OCV1NUI2NiV1NEU2MCV1MzAwMiV1NzNCMCV1NEUzQSV1NjA1MiV1NjYwQyV1NTIyOSV1OTAxQSV1NjI5NSV1OEQ0NCV1N0JBMSV1NzQwNiV1NjcwOSV1OTY1MCV1NTE2QyV1NTNGOCV1NjI4MCV1NjcyRiV1NEUyRCV1NUZDMyV1NzgxNCV1N0E3NiV1OTY2MiV1OUFEOCV1N0VBNyV1NEUxMyV1NUJCNiV1RkYwQyV1NzdFNSV1OEJDNiV1NTZGRSV1OEMzMSV1NTZFMiV1OTYxRiV1OEQxRiV1OEQyMyV1NEVCQSV1MzAwMiV1ODA1NCV1N0NGQiV1NjVCOSV1NUYwRiV1RkYxQSUyMCUyMGVtYWlsJTNBJTIwJTIwcEBjb29saWt0YXMuY29tJTIwJTIwd2VjaGF0JTNBJTIwcHRyc3h1
OpenKG.CN
中文開放知識圖譜(簡稱OpenKG.CN)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 博客。
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的领域应用 | 图数据库及其在恒昌的应用简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 干货 | 搞定用户画像只需5个步骤
- 下一篇: Linux系统中Oracle数据库使用S