知識圖譜應用

哈工大SCIR發表於2015-12-08

宣告:本文轉載自 普惠大資料中心



導讀

知識圖譜 (Knowledge Graph) 是當前的研究熱點。自從2012年Google推出自己第一版知識圖譜以來,它在學術界和工業界掀起了一股熱潮。各大網際網路企業在之後的短短一年內紛紛推出了自己的知識圖譜產品以作為迴應。比如在國內,網際網路巨頭百度和搜狗分別推出”知心“和”知立方”來改進其搜尋質量。那麼與這些傳統的網際網路公司相比,對處於當今風口浪尖上的行業 - 網際網路金融, 知識圖譜可以有哪方面的應用呢?

目錄

1.   什麼是知識圖譜?

2.   知識圖譜的表示

3.   知識圖譜的儲存

4.   應用

5.   挑戰

6.   結語

1、什麼是知識圖譜?

知識圖譜本質上是語義網路,是一種基於圖的資料結構,由節點(Point)和邊(Edge)組成。在知識圖譜裡,每個節點表示現實世界中存在的“實體”,每條邊為實體與實體之間的“關係”。知識圖譜是關係的最有效的表示方式。通俗地講,知識圖譜就是把所有不同種類的資訊(Heterogeneous Information)連線在一起而得到的一個關係網路。知識圖譜提供了從“關係”的角度去分析問題的能力。

知識圖譜這個概念最早由Google提出,主要是用來優化現有的搜尋引擎。不同於基於關鍵詞搜尋的傳統搜尋引擎,知識圖譜可用來更好地查詢複雜的關聯資訊,從語義層面理解使用者意圖,改進搜尋質量。比如在Google的搜尋框裡輸入Bill Gates的時候,搜尋結果頁面的右側還會出現Bill Gates相關的資訊比如出生年月,家庭情況等等。


知識圖譜應用

另外,對於稍微複雜的搜尋語句比如 ”Who is the wife of Bill Gates“,Google能準確返回他的妻子Melinda Gates。這就說明搜尋引擎通過知識圖譜真正理解了使用者的意圖。

知識圖譜應用

上面提到的知識圖譜都是屬於比較寬泛的範疇,在通用領域裡解決搜尋引擎優化和問答系統(Question-Answering)等方面的問題。接下來我們看一下特定領域裡的 (Domain-Specific) 知識圖譜表示方式和應用,這也是工業界比較關心的話題。

2、知識圖譜的表示

假設我們用知識圖譜來描述一個事實(Fact) - “張三是李四的父親”。這裡的實體是張三和李四,關係是“父親”(is_father_of)。當然,張三和李四也可能會跟其他人存在著某種型別的關係(暫時不考慮)。當我們把電話號碼也作為節點加入到知識圖譜以後(電話號碼也是實體),人和電話之間也可以定義一種關係叫 has_phone,就是說某個電話號碼是屬於某個人。下面的圖就展示了這兩種不同的關係。

知識圖譜應用

另外,我們可以把時間作為屬性(Property)新增到 has_phone 關係裡來表示開通電話號碼的時間。這種屬性不僅可以加到關係裡,還可以加到實體當中,當我們把所有這些資訊作為關係或者實體的屬性新增後,所得到的圖譜稱之為屬性圖 (Property Graph)。屬性圖和傳統的RDF格式都可以作為知識圖譜的表示和儲存方式,但二者還是有區別的,這將在後面章節做簡單說明。

3、知識圖譜的儲存

知識圖譜是基於圖的資料結構,它的儲存方式主要有兩種形式:RDF儲存格式和圖資料庫(Graph Database)。至於它們有哪些區別,請參考【1】。下面的曲線表示各種資料儲存型別在最近幾年的發展情況。從這裡我們可以明顯地看到基於圖的儲存方式在整個資料庫儲存領域的飛速發展。這幅曲線圖來源於 http://db-engines.com/en/blog_post//43

知識圖譜應用

下面的列表表示的是目前比較流行的基於圖儲存的資料庫排名。從這個排名中可以看出neo4j在整個圖儲存領域裡佔據著NO.1的地位,而且在RDF領域裡Jena還是目前為止最為流行的儲存框架。這部分資料來源於 http://db-engines.com/en/ranking

知識圖譜應用

當然,如果需要設計的知識圖譜非常簡單,而且查詢也不會涉及到1度以上的關聯查詢,我們也可以選擇用關係型資料儲存格式來儲存知識圖譜。但對那些稍微複雜的關係網路(現實生活中的實體和關係普遍都比較複雜),知識圖譜的優點還是非常明顯的。首先,在關聯查詢的效率上會比傳統的儲存方式有顯著的提高。當我們涉及到2,3度的關聯查詢,基於知識圖譜的查詢效率會高出幾千倍甚至幾百萬倍。其次,基於圖的儲存在設計上會非常靈活,一般只需要區域性的改動即可。比如我們有一個新的資料來源,我們只需要在已有的圖譜上插入就可以。於此相反,關係型儲存方式靈活性方面比較差,它所有的Schema都是提前定義好的,如果後續要改變,它的代價是非常高的。最後,把實體和關係儲存在圖資料結構是一種符合整個故事邏輯的最好的方式。

4、應用

在本文中,我們主要討論知識圖譜在網際網路金融行業中的應用。當然,很多應用場景和想法都可以延伸到其他的各行各業。這裡提到的應用場景只是冰山一角, 在很多其他的應用上,知識圖譜仍然可以發揮它潛在的價值, 我們在後續的文章中會繼續討論。

反欺詐


反欺詐是風控中非常重要的一道環節。基於大資料的反欺詐的難點在於如何把不同來源的資料(結構化,非結構)整合在一起,並構建反欺詐引擎,從而有效地識別出欺詐案件(比如身份造假,團體欺詐,代辦包裝等)。而且不少欺詐案件會涉及到複雜的關係網路,這也給欺詐稽核帶來了新的挑戰。 知識圖譜,作為關係的直接表示方式,可以很好地解決這兩個問題。 首先,知識圖譜提供非常便捷的方式來新增新的資料來源,這一點在前面提到過。其次,知識圖譜本身就是用來表示關係的,這種直觀的表示方法可以幫助我們更有效地分析複雜關係中存在的特定的潛在風險。

反欺詐的核心是人,首先需要把與借款人相關的所有的資料來源打通,並構建包含多資料來源的知識圖譜,從而整合成為一臺機器可以理解的結構化的知識。在這裡,我們不僅可以整合借款人的基本資訊(比如申請時填寫的資訊),還可以把借款人的消費記錄、行為記錄、網上的瀏覽記錄等整合到整個知識圖譜裡,從而進行分析和預測。這裡的一個難點是很多的資料都是從網路上獲取的非結構化資料,需要利用機器學習、自然語言處理技術把這些資料變成結構化的資料。

知識圖譜應用

不一致性驗證

不一致性驗證可以用來判斷一個借款人的欺詐風險,這個跟交叉驗證類似。比如借款人張三和借款人李四填寫的是同一個公司電話,但張三填寫的公司和李四填寫的公司完全不一樣,這就成了一個風險點,需要稽核人員格外的注意。

知識圖譜應用

再比如,借款人說跟張三是朋友關係,跟李四是父子關係。當我們試圖把借款人的資訊新增到知識圖譜裡的時候,“一致性驗證”引擎會觸發。引擎首先會去讀取張三和李四的關係,從而去驗證這個“三角關係”是否正確。很顯然,朋友的朋友不是父子關係,所以存在著明顯的不一致性。

知識圖譜應用

不一致性驗證涉及到知識的推理。通俗地講,知識的推理可以理解成“連結預測”,也就是從已有的關係圖譜裡推匯出新的關係或連結。 比如在上面的例子,假設張三和李四是朋友關係,而且張三和借款人也是朋友關係,那我們可以推理出借款人和李四也是朋友關係。


組團欺詐


相比虛假身份的識別,組團欺詐的挖掘難度更大。這種組織在非常複雜的關係網路裡隱藏著,不容易被發現。當我們只有把其中隱含的關係網路梳理清楚,才有可能去分析並發現其中潛在的風險。知識圖譜,作為天然的關係網路的分析工具,可以幫助我們更容易地去識別這種潛在的風險。舉一個簡單的例子,有些組團欺詐的成員會用虛假的身份去申請貸款,但部分資訊是共享的。下面的圖大概說明了這種情形。從圖中可以看出張三、李四和王五之間沒有直接的關係,但通過關係網路我們很容易看出這三者之間都共享著某一部分資訊,這就讓我們馬上聯想到欺詐風險。雖然組團欺詐的形式眾多,但有一點值得肯定的是知識圖譜一定會比其他任何的工具提供更佳便捷的分析手段。 

知識圖譜應用

異常分析(Anomaly Detection)


異常分析是資料探勘研究領域裡比較重要的課題。我們可以把它簡單理解成從給定的資料中找出“異常”點。在我們的應用中,這些”異常“點可能會關聯到欺詐。既然知識圖譜可以看做是一個圖 (Graph),知識圖譜的異常分析也大都是基於圖的結構。由於知識圖譜裡的實體型別、關係型別不同,異常分析也需要把這些額外的資訊考慮進去。大多數基於圖的異常分析的計算量比較大,可以選擇做離線計算。在我們的應用框架中,可以把異常分析分為兩大類: 靜態分析和動態分析,後面會逐一講到。 

- 靜態分析


所謂的靜態分析指的是,給定一個圖形結構和某個時間點,從中去發現一些異常點(比如有異常的子圖)。下圖中我們可以很清楚地看到其中五個點的相互緊密度非常強,可能是一個欺詐組織。所以針對這些異常的結構,我們可以做出進一步的分析。

知識圖譜應用

- 動態分析


所謂的動態分析指的是分析其結構隨時間變化的趨勢。我們的假設是,在短時間內知識圖譜結構的變化不會太大,如果它的變化很大,就說明可能存在異常,需要進一步的關注。分析結構隨時間的變化會涉及到時序分析技術和圖相似性計算技術。有興趣的讀者可以去參考這方面的資料【2】。

知識圖譜應用


失聯客戶管理

除了貸前的風險控制,知識圖譜也可以在貸後發揮其強大的作用。比如在貸後失聯客戶管理的問題上,知識圖譜可以幫助我們挖掘出更多潛在的新的聯絡人,從而提高催收的成功率。

現實中,不少借款人在借款成功後出現不還款現象,而且玩“捉迷藏”,聯絡不上本人。即便試圖去聯絡借款人曾經提供過的其他聯絡人,但還是沒有辦法聯絡到本人。這就進入了所謂的“失聯”狀態,使得催收人員也無從下手。那接下來的問題是,在失聯的情況下,我們有沒有辦法去挖掘跟借款人有關係的新的聯絡人? 而且這部分人群並沒有以關聯聯絡人的身份出現在我們的知識圖譜裡。如果我們能夠挖掘出更多潛在的新的聯絡人,就會大大地提高催收成功率。舉個例子,在下面的關係圖中,借款人跟李四有直接的關係,但我們卻聯絡不上李四。那有沒有可能通過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)理解使用者的需求,我們才能更好地去做營銷。

5、挑戰

知識圖譜在工業界還沒有形成大規模的應用。即便有部分企業試圖往這個方向發展,但很多仍處於調研階段。主要的原因是很多企業對知識圖譜並不瞭解,或者理解不深。但有一點可以肯定的是,知識圖譜在未來幾年內必將成為工業界的熱門工具,這也是從目前的趨勢中很容易預測到的。當然,知識圖譜畢竟是一個比較新的工具,所以在實際應用中一定會涉及到或多或少的挑戰。

資料的噪聲

首先,資料中存在著很多的噪聲。即便是已經存在庫裡的資料,我們也不能保證它有100%的準確性。在這裡主要從兩個方面說起。第一,目前積累的資料本身有錯誤,所以這部分錯誤資料需要糾正。 最簡單的糾正辦法就是做離線的不一致性驗證,這點在前面提過。第二, 資料的冗餘。比如借款人張三填寫公司名字為”普惠“,借款人李四填寫的名字為”普惠金融“,借款人王五則填寫成”普惠金融資訊服務有限公司“。雖然這三個人都隸屬於一家公司,但由於他們填寫的名字不同,計算機則會認為他們三個是來自不同的公司。那接下來的問題是,怎麼從海量的資料中找出這些存在歧義的名字並將它們合併成一個名字? 這就涉及到自然語言處理中的”消歧分析”技術。

知識圖譜應用


非結構化資料處理能力

在大資料時代,很多資料都是未經處理過的非結構化資料,比如文字、圖片、音訊、視訊等。特別在網際網路金融行業裡,我們往往會面對大量的文字資料。怎麼從這些非結構化資料裡提取出有價值的資訊是一件非常有挑戰性的任務,這對掌握的機器學習,資料探勘,自然語言處理能力提出了更高的門檻。

知識圖譜應用


知識推理

推理能力是人類智慧的重要特徵,使得我們可以從已有的知識中發現隱含的知識, 一般的推理往往需要一些規則的支援【3】。例如“朋友”的“朋友”,可以推理出“朋友”關係,“父親”的“父親”可以推理出“祖父”的關係。再比如張三的朋友很多也是李四的朋友,那我們可以推測張三和李四也很有可能是朋友關係。當然,這裡會涉及到概率的問題。當資訊量特別多的時候,怎麼把這些資訊(side information)有效地與推理演算法結合在一起才是最關鍵的。常用的推理演算法包括基於邏輯(Logic) 的推理和基於分散式表示方法(Distributed Representation)的推理。隨著深度學習在人工智慧領域的地位變得越來越重要,基於分散式表示方法的推理也成為目前研究的熱點。如果有興趣可以參考一下這方面目前的工作進展【4,5,6,7】。

大資料、小樣本、構建有效的生態閉環是關鍵

雖然現在能獲取的資料量非常龐大,我們仍然面臨著小樣本問題,也就是樣本數量少。假設我們需要搭建一個基於機器學習的反欺詐評分系統,我們首先需要一些欺詐樣本。但實際上,我們能拿到的欺詐樣本數量不多,即便有幾百萬個貸款申請,最後被我們標記為欺詐的樣本很可能也就幾萬個而已。這對機器學習的建模提出了更高的挑戰。每一個欺詐樣本我們都是以很高昂的“代價”得到的。隨著時間的推移,我們必然會收集到更多的樣本,但樣本的增長空間還是有侷限的。這有區別於傳統的機器學習系統,比如影象識別,不難拿到好幾十萬甚至幾百萬的樣本。

在這種小樣本條件下,構建有效的生態閉環尤其的重要。所謂的生態閉環,指的是構建有效的自反饋系統使其能夠實時地反饋給我們的模型,並使得模型不斷地自優化從而提升準確率。為了搭建這種自學習系統,我們不僅要完善已有的資料流系統,而且要深入到各個業務線,並對相應的流程進行優化。這也是整個反欺詐環節必要的過程,我們要知道整個過程都充滿著博弈。所以我們需要不斷地通過反饋訊號來調整我們的策略。

6、結語

知識圖譜在學術界和工業界受到越來越多的關注。除了本文中所提到的應用,知識圖譜還可以應用在許可權管理,人力資源管理等不同的領域。在後續的文章中會詳細地講到這方面的應用。

參考文獻

【1】De Abreu, D., Flores, A., Palma, G., Pestana, V., Pinero, J., Queipo, J., ... & Vidal, M. E. (2013). Choosing Between Graph Databases and RDF Engines for Consuming and Mining Linked Data. InCOLD.

【2】http://www.cs.cmu.edu/~abeutel/kdd2015_tutorial/

【3】劉知遠 知識圖譜——機器大腦中的知識庫 http://book.thunlp.org/knowledge_graph/

【4】Nickel, M., Murphy, K., Tresp, V., & Gabrilovich, E. A Review of Relational Machine Learning for Knowledge Graphs.

【5】Socher, R., Chen, D., Manning, C. D., & Ng, A. (2013). Reasoning with neural tensor networks for knowledge base completion. In Advances in Neural Information Processing Systems (pp. 926-934).

【6】Bordes, A., Usunier, N., Garcia-Duran, A., Weston, J., & Yakhnenko, O. (2013). Translating embeddings for modeling multi-relational data. In Advances in Neural Information Processing Systems(pp. 2787-2795).

【7】Jenatton, R., Roux, N. L., Bordes, A., & Obozinski, G. R. (2012). A latent factor model for highly multi-relational data. In Advances in Neural Information Processing Systems (pp. 3167-3175).


本文來源於哈工大SCIR

原文連結點選即可跳轉

知識圖譜應用

相關文章