如何用知識圖譜識別欺詐行為
知識圖譜就是把所有不同種類的信息(Heterogeneous Information)連接在一起而得到的一個關係網路。知識圖譜提供了從「關係」的角度去分析問題的能力。
什麼是知識圖譜?
知識圖譜本質上是語義網路,是一種基於圖的數據結構,由節點(Point)和邊(Edge)組成。在知識圖譜里,每個節點表示現實世界中存在的「實體」,每條邊為實體與實體之間的「關係」。知識圖譜是關係的最有效的表示方式。通俗地講,知識圖譜就是把所有不同種類的信息(Heterogeneous Information)連接在一起而得到的一個關係網路。知識圖譜提供了從「關係」的角度去分析問題的能力。
知識圖譜的表示
假設我們用知識圖譜來描述一個事實(Fact) - 「張三是李四的父親」。這裡的實體是張三和李四,關係是「父親」(is_father_of)。當然,張三和李四也可能會跟其他人存在著某種類型的關係(暫時不考慮)。當我們把電話號碼也作為節點加入到知識圖譜以後(電話號碼也是實體),人和電話之間也可以定義一種關係叫 has_phone,就是說某個電話號碼是屬於某個人。下面的圖就展示了這兩種不同的關係。
另外,我們可以把時間作為屬性(Property)添加到 has_phone 關係里來表示開通電話號碼的時間。這種屬性不僅可以加到關係里,還可以加到實體當中,當我們把所有這些信息作為關係或者實體的屬性添加後,所得到的圖譜稱之為屬性圖 (Property Graph)。屬性圖和傳統的RDF格式都可以作為知識圖譜的表示和存儲方式,但二者還是有區別的,這將在後面章節做簡單說明。
知識圖譜的存儲
知識圖譜是基於圖的數據結構,它的存儲方式主要有兩種形式:RDF存儲格式和圖資料庫(Graph Database)。下面的曲線表示各種數據存儲類型在最近幾年的發展情況。從這裡我們可以明顯地看到基於圖的存儲方式在整個資料庫存儲領域的飛速發展。這幅曲線圖來源於 Graph DBMS increased their popularity by 500% within the last 2 years
下面的列表表示的是目前比較流行的基於圖存儲的資料庫排名。從這個排名中可以看出neo4j在整個圖存儲領域裡佔據著NO.1的地位,而且在RDF領域裡Jena還是目前為止最為流行的存儲框架。這部分數據來源於 DB-Engines Ranking
當然,如果需要設計的知識圖譜非常簡單,而且查詢也不會涉及到1度以上的關聯查詢,我們也可以選擇用關係型數據存儲格式來保存知識圖譜。但對那些稍微複雜的關係網路(現實生活中的實體和關係普遍都比較複雜),知識圖譜的優點還是非常明顯的。
首先,在關聯查詢的效率上會比傳統的存儲方式有顯著的提高。當我們涉及到2,3度的關聯查詢,基於知識圖譜的查詢效率會高出幾千倍甚至幾百萬倍。
其次,基於圖的存儲在設計上會非常靈活,一般只需要局部的改動即可。比如我們有一個新的數據源,我們只需要在已有的圖譜上插入就可以。於此相反,關係型存儲方式靈活性方面比較差,它所有的Schema都是提前定義好的,如果後續要改變,它的代價是非常高的。
最後,把實體和關係存儲在圖數據結構是一種符合整個故事邏輯的最好的方式。
應用
在本文中,我們主要討論知識圖譜在互聯網金融行業中的應用。當然,很多應用場景和想法都可以延伸到其他的各行各業。這裡提到的應用場景只是冰山一角,在很多其他的應用上,知識圖譜仍然可以發揮它潛在的價值,我們在後續的文章中會繼續討論。
反欺詐
反欺詐是風控中非常重要的一道環節。基於大數據的反欺詐的難點在於如何把不同來源的數據(結構化,非結構)整合在一起,並構建反欺詐引擎,從而有效地識別出欺詐案件(比如身份造假,團體欺詐,代辦包裝等)。而且不少欺詐案件會涉及到複雜的關係網路,這也給欺詐審核帶來了新的挑戰。
知識圖譜,作為關係的直接表示方式,可以很好地解決這兩個問題。首先,知識圖譜提供非常便捷的方式來添加新的數據源,這一點在前面提到過。其次,知識圖譜本身就是用來表示關係的,這種直觀的表示方法可以幫助我們更有效地分析複雜關係中存在的特定的潛在風險。
反欺詐的核心是人,首先需要把與借款人相關的所有的數據源打通,並構建包含多數據源的知識圖譜,從而整合成為一台機器可以理解的結構化的知識。在這裡,我們不僅可以整合借款人的基本信息(比如申請時填寫的信息),還可以把借款人的消費記錄、行為記錄、網上的瀏覽記錄等整合到整個知識圖譜里,從而進行分析和預測。這裡的一個難點是很多的數據都是從網路上獲取的非結構化數據,需要利用機器學習、自然語言處理技術把這些數據變成結構化的數據。
不一致性驗證
不一致性驗證可以用來判斷一個借款人的欺詐風險,這個跟交叉驗證類似。比如借款人張三和借款人李四填寫的是同一個公司電話,但張三填寫的公司和李四填寫的公司完全不一樣,這就成了一個風險點,需要審核人員格外的注意。
再比如,借款人說跟張三是朋友關係,跟李四是父子關係。當我們試圖把借款人的信息添加到知識圖譜里的時候,「一致性驗證」引擎會觸發。引擎首先會去讀取張三和李四的關係,從而去驗證這個「三角關係」是否正確。很顯然,朋友的朋友不是父子關係,所以存在著明顯的不一致性。
不一致性驗證涉及到知識的推理。通俗地講,知識的推理可以理解成「鏈接預測」,也就是從已有的關係圖譜里推導出新的關係或鏈接。 比如在上面的例子,假設張三和李四是朋友關係,而且張三和借款人也是朋友關係,那我們可以推理出借款人和李四也是朋友關係。
組團欺詐
相比虛假身份的識別,組團欺詐的挖掘難度更大。這種組織在非常複雜的關係網路里隱藏著,不容易被發現。當我們只有把其中隱含的關係網路梳理清楚,才有可能去分析並發現其中潛在的風險。知識圖譜,作為天然的關係網路的分析工具,可以幫助我們更容易地去識別這種潛在的風險。舉一個簡單的例子,有些組團欺詐的成員會用虛假的身份去申請貸款,但部分信息是共享的。下面的圖大概說明了這種情形。從圖中可以看出張三、李四和王五之間沒有直接的關係,但通過關係網路我們很容易看出這三者之間都共享著某一部分信息,這就讓我們馬上聯想到欺詐風險。雖然組團欺詐的形式眾多,但有一點值得肯定的是知識圖譜一定會比其他任何的工具提供更佳便捷的分析手段。
異常分析(Anomaly Detection)
異常分析是數據挖掘研究領域裡比較重要的課題。我們可以把它簡單理解成從給定的數據中找出「異常」點。在我們的應用中,這些」異常「點可能會關聯到欺詐。既然知識圖譜可以看做是一個圖 (Graph),知識圖譜的異常分析也大都是基於圖的結構。由於知識圖譜里的實體類型、關係類型不同,異常分析也需要把這些額外的信息考慮進去。大多數基於圖的異常分析的計算量比較大,可以選擇做離線計算。在我們的應用框架中,可以把異常分析分為兩大類: 靜態分析和動態分析,後面會逐一講到。
- 靜態分析
所謂的靜態分析指的是,給定一個圖形結構和某個時間點,從中去發現一些異常點(比如有異常的子圖)。下圖中我們可以很清楚地看到其中五個點的相互緊密度非常強,可能是一個欺詐組織。所以針對這些異常的結構,我們可以做出進一步的分析。
- 動態分析
所謂的動態分析指的是分析其結構隨時間變化的趨勢。我們的假設是,在短時間內知識圖譜結構的變化不會太大,如果它的變化很大,就說明可能存在異常,需要進一步的關注。分析結構隨時間的變化會涉及到時序分析技術和圖相似性計算技術。有興趣的讀者可以去參考這方面的資料。
失聯客戶管理
除了貸前的風險控制,知識圖譜也可以在貸後發揮其強大的作用。比如在貸後失聯客戶管理的問題上,知識圖譜可以幫助我們挖掘出更多潛在的新的聯繫人,從而提高催收的成功率。
現實中,不少借款人在借款成功後出現不還款現象,而且玩「捉迷藏」,聯繫不上本人。即便試圖去聯繫借款人曾經提供過的其他聯繫人,但還是沒有辦法聯繫到本人。這就進入了所謂的「失聯」狀態,使得催收人員也無從下手。
那接下來的問題是,在失聯的情況下,我們有沒有辦法去挖掘跟借款人有關係的新的聯繫人?而且這部分人群並沒有以關聯聯繫人的身份出現在我們的知識圖譜里。如果我們能夠挖掘出更多潛在的新的聯繫人,就會大大地提高催收成功率。舉個例子,在下面的關係圖中,借款人跟李四有直接的關係,但我們卻聯繫不上李四。那有沒有可能通過2度關係的分析,預測並判斷哪些李四的聯繫人可能會認識借款人。這就涉及到圖譜結構的分析。
智能搜索及可視化展示
基於知識圖譜,我們也可以提供智能搜索和數據可視化的服務。智能搜索的功能類似於知識圖譜在Google, Baidu上的應用。也就是說,對於每一個搜索的關鍵詞,我們可以通過知識圖譜來返回更豐富,更全面的信息。比如搜索一個人的身份證號,我們的智能搜索引擎可以返回與這個人相關的所有歷史借款記錄、聯繫人信息、行為特徵和每一個實體的標籤(比如黑名單,同業等)。另外,可視化的好處不言而喻,通過可視化把複雜的信息以非常直觀的方式呈現出來, 使得我們對隱藏信息的來龍去脈一目了然。
精準營銷
「A knowledge graph allows you to take core information about your customer—their name, where they reside, how to contact them—and relate it to who else they know, how they interact on the web, and more」-- Michele Goetz, a Principal Analyst at Forrester Research
一個聰明的企業可以比它的競爭對手以更為有效的方式去挖掘其潛在的客戶。在互聯網時代,營銷手段多種多樣,但不管有多少種方式,都離不開一個核心 - 分析用戶和理解用戶。知識圖譜可以結合多種數據源去分析實體之間的關係,從而對用戶的行為有更好的理解。比如一個公司的市場經理用知識圖譜來分析用戶之間的關係,去發現一個組織的共同喜好,從而可以有針對性的對某一類人群制定營銷策略。只有我們能更好的、更深入的(Deep understanding)理解用戶的需求,我們才能更好地去做營銷。
挑戰
知識圖譜在工業界還沒有形成大規模的應用。即便有部分企業試圖往這個方向發展,但很多仍處於調研階段。主要的原因是很多企業對知識圖譜並不了解,或者理解不深。但有一點可以肯定的是,知識圖譜在未來幾年內必將成為工業界的熱門工具,這也是從目前的趨勢中很容易預測到的。當然,知識圖譜畢竟是一個比較新的工具,所以在實際應用中一定會涉及到或多或少的挑戰。
數據的雜訊
首先,數據中存在著很多的雜訊。即便是已經存在庫里的數據,我們也不能保證它有100%的準確性。在這裡主要從兩個方面說起。第一,目前積累的數據本身有錯誤,所以這部分錯誤數據需要糾正。最簡單的糾正辦法就是做離線的不一致性驗證,這點在前面提過。第二, 數據的冗餘。比如借款人張三填寫公司名字為」普惠「,借款人李四填寫的名字為」普惠金融「,借款人王五則填寫成」普惠金融信息服務有限公司「。雖然這三個人都隸屬於一家公司,但由於他們填寫的名字不同,計算機則會認為他們三個是來自不同的公司。那接下來的問題是,怎麼從海量的數據中找出這些存在歧義的名字並將它們合併成一個名字? 這就涉及到自然語言處理中的」消歧分析」技術。
非結構化數據處理能力
在大數據時代,很多數據都是未經處理過的非結構化數據,比如文本、圖片、音頻、視頻等。特別在互聯網金融行業里,我們往往會面對大量的文本數據。怎麼從這些非結構化數據里提取出有價值的信息是一件非常有挑戰性的任務,這對掌握的機器學習,數據挖掘,自然語言處理能力提出了更高的門檻。
知識推理
推理能力是人類智能的重要特徵,使得我們可以從已有的知識中發現隱含的知識, 一般的推理往往需要一些規則的支持。例如「朋友」的「朋友」,可以推理出「朋友」關係,「父親」的「父親」可以推理出「祖父」的關係。
再比如張三的朋友很多也是李四的朋友,那我們可以推測張三和李四也很有可能是朋友關係。當然,這裡會涉及到概率的問題。當信息量特別多的時候,怎麼把這些信息(side information)有效地與推理演算法結合在一起才是最關鍵的。常用的推理演算法包括基於邏輯(Logic) 的推理和基於分散式表示方法(Distributed Representation)的推理。隨著深度學習在人工智慧領域的地位變得越來越重要,基於分散式表示方法的推理也成為目前研究的熱點。如果有興趣可以參考一下這方面目前的工作進展。
大數據、小樣本、構建有效的生態閉環是關鍵
雖然現在能獲取的數據量非常龐大,我們仍然面臨著小樣本問題,也就是樣本數量少。假設我們需要搭建一個基於機器學習的反欺詐評分系統,我們首先需要一些欺詐樣本。但實際上,我們能拿到的欺詐樣本數量不多,即便有幾百萬個貸款申請,最後被我們標記為欺詐的樣本很可能也就幾萬個而已。這對機器學習的建模提出了更高的挑戰。每一個欺詐樣本我們都是以很高昂的「代價」得到的。隨著時間的推移,我們必然會收集到更多的樣本,但樣本的增長空間還是有局限的。這有區別於傳統的機器學習系統,比如圖像識別,不難拿到好幾十萬甚至幾百萬的樣本。
在這種小樣本條件下,構建有效的生態閉環尤其的重要。所謂的生態閉環,指的是構建有效的自反饋系統使其能夠實時地反饋給我們的模型,並使得模型不斷地自優化從而提升準確率。為了搭建這種自學習系統,我們不僅要完善已有的數據流系統,而且要深入到各個業務線,並對相應的流程進行優化。這也是整個反欺詐環節必要的過程,我們要知道整個過程都充滿著博弈。所以我們需要不斷地通過反饋信號來調整我們的策略。
推薦閱讀: