運營商關係圖譜的構建及應用:從本體論開始說起
人類學家羅賓·鄧巴認為:一個人維持緊密人際關係的人數最多為150人。
網路社交平臺出現後,很多人認為虛擬世界將突破鄧巴這一理論,但實際情況卻是:如果要和更多人互動,那麼勢必需要削弱在其它人身上花的精力。
但是,人際關係將隨著時間而產生親疏遠近等不同的變化,如果能夠識別出人與人的關係定義,則能為諸多行業領域帶來更多方向的探索,如:詐騙團伙識別,通過詐騙分子的通話關係網去識別可能存在的團伙關係,將壞人一網打盡。
本期課堂,聯通大資料技術專家閆龍將從“本體論”說起,為大家介紹聯通大資料關係圖譜的構建與應用。
一.本體論
全球資訊網之父Tim Berners-Lee教授在1998年將語義網路(Semantic web)帶入人類的視線。目的是賦予網路理解詞語、概念以及它們之間邏輯關係的能力,使人機互動變得更有效率。本體論(Ontology)做為語義網的核心,是研究實體存在及其本質的通用理論。1993年Thomas Gruber教授提出了本體論最廣為認同的定義:共享概念模型的明確的形式化規範說明。這裡面實際說了四個概念,即:“概念模型”(Conceptualization)指通過客觀世界中一些現象的相關概念而得到的模型;“明確”(Explicit)指所使用的概念及其約束都有明確的定義;“形式化”(Formal)指Ontology是計算機可讀的;“共享(Share)”指本體論中體現的是共同認可的知識,反映的是相關領域中公認的概念集。
本體論最初是形而上學的一個分支。對於形而上學的理解這裡給出一個例子(如:圖1)
(圖1)
圖中中文的“貓”與“貓咪”,英文的“cat”,“貓的圖片”都可以用來描述“貓”這個實物。那麼在哲學層面,“貓”這樣一個實物就是亞里士多德口中的“實體”,巴門尼德口中的“存在”,以及本體論中所說的“本體”。而上圖這些描述均指的是“貓”這個“本體”的符號。
從這裡,我們能看出“本體”這個概念在哲學層面上是形而上的,是隻可意會不可言傳的。因此,對於一個實體,所有的描述都是這個“本體”的外在符號,我們感受到的,聽到的,看到的,都成為符號到本體的某種對映。
解釋完本體哲學層面的意思,我們是否對語義層面的本體有更好的理解呢?其實,其主要目的就是要建立這樣一種對映,例如:{“貓”,“貓咪”,“喵咪”,“cat”}這個符號集都對映到“貓”這個“本體”上來。當我們建立了本體的集合,本體間的邏輯關係就是存在的(如:IF A⊆B and B⊆C,THEN A⊆C)。本體的邏輯層提供了公理和推理規則,進而實現相應的邏輯推理,有可能是“屬性-本體”的關係,有可能是“子類-本體”的關係,也有可能是“本體-本體”的對立或者是近似關係。本體論最終的目的是去實現知識表達,構建知識庫,實現知識推理,即藉由本體論中的基本元素:實體與實體間的關聯,作為描述真實世界的知識模型。
二.知識圖譜
這種知識模型究竟有什麼用呢?Google在2012年提出Knowledge Graph,就是為了將傳統的keyword-based搜尋向基於語義的搜尋升級。知識圖譜可以用來更好的查詢複雜的關聯資訊,從語義層面理解使用者意圖,改進搜尋質量。這裡借用本體的概念給出我個人對知識圖譜的理解:知識圖譜就是用來描述真實世界中存在的各種實體,以及他們之間的關係,而實體本身會有多樣例項,屬性。就像之前“貓的例子”(如下圖2),當我們查詢“喵喵喵喵喵”時,返回的不會是抖音上很紅的《學貓叫》,而是“貓”這個實體。同時,在其他知識的補充下我們可以知道“貓”有一個例項是“茄子”,而“茄子”的主人是我,我和小胡都就職於聯通大資料,並且通話關係很密切。當我們知識庫中的實體、關係、屬性、例項等的量級非常大時就能繪製成一個巨型的網路關係拓撲圖。有了這樣的知識庫,搜尋引擎就能洞察使用者查詢背後的語義資訊,返回更為精準的資訊。換言之,知識圖譜引入了更多的含義,對事物進行搜尋,像人類一樣去思考、聯想、關聯。這也印證了Google knowledge graph的初衷:“The world is not made of strings , but is made of things.”
(圖2)
另外,如果我們把各種語言的“貓”都對映到“貓”這個本體上,再基於與名詞主體、動詞主體構建的邏輯關係或動賓短語等,通過反對映就可以實現簡易的機器翻譯。
三.圖資料庫
2018年9月,我們有一篇題為 《專家課堂|NoSQL還是SQL》 的公眾號提到圖資料庫,文中給出了NoSQL or SQL, Why NoSQL之類的話題。其中的基於場景選擇也有相應的介紹,這裡就不做贅述了。從上一節的圖中,我們可以清晰地看出,通話記錄就能以實體及關係的方式儲存。這是運營商資料的固有優勢,在我們的場景裡不用花太多時間去做基於nlp技術的實體抽取、關係抽取。我們關注的重點則是通話關係網路中,如何保證海量的動態更新的通話節點及關係載入圖中、哪些人有哪些通話行為特徵、這些圖中挖掘出的特徵如何貢獻在現有的場景模型中等等。比如在風控領域,我們正在應用圖發現相關方法探索樣本號碼或ID是否在一個詐騙社群,是否有穩定的通話社交圈,與黑產號碼存在幾度的關聯,關聯絡數是怎樣的,是否有多個電話組內關聯等。這些都將是風控、反欺詐類模型的新特徵。
測試資料集選用三個月全網使用者的通話記錄,節點屬性包括是否聯通號、手機號碼對應職住經緯度等;邊屬性包括號碼間三個月的主被叫通話次數、主被叫次數,天數,時長等。資料集大小約為750G,載入圖資料庫結果如圖3。
(圖3)
載入後根據每臺機器VertexCount和EdgeCount可以看到圖資料庫共載入了約17億節點(號碼),340億邊(通話關係)。其中NumOfSkippedVertices表達了一個去重的過程,即:每個節點只加載一遍。因此,partition size的總和只有590G左右,實際上是對資料進行了壓縮。
做一個簡單的號碼關係查詢(如圖4),在百億級邊的圖資料庫裡可以實現毫秒級響應。值得注意的有兩點:1. 查詢返回為json格式;2. 查詢語言為類sql語言。
(圖4)
我們可以將查詢語言以檔案形式儲存,通過install/run query進行查詢。同時,在後臺install一個查詢還會生成一個REST端點,這樣就可以通過http來呼叫引數化查詢。如圖5,通過查詢語言進行圖遍歷,尋找兩個號碼間的最短距離。這樣就能實現我們熟悉的六度空間理論(小世界理論),即:世界上任何兩個人最多隻需通過6個關係就能找到對方。
(圖5)
如果我們定義號碼與號碼間的通話頻次為關係權重,每個人的通話人數為通話活躍度。試想,一個人和你沒有通話記錄,但是和你的好朋友通話比較頻繁,你是不是也有可能認識這個人呢?這個查詢就是從圖中挖掘你可能認識的人。查詢輸入是待查號碼與最可能認識的k個手機號,返回是查詢號碼和輸入號碼的距離(如圖6)。
(圖6)
最後,給出一個真實的場景案例,是否能夠通過企業少數員工號碼、imei或其他ID,尋找企業員工群體,並對該群體進行分析,來反應企業實際經營地址、活躍度等情況呢?這裡給出【2步鄰居子圖】的概念(以手機號做節點為例),即:輸入號碼聯絡人及聯絡人的聯絡人(如圖7,這裡使用視覺化互動介面展示通話關係)。
(圖7)
在模型搭建過程中,我們對通話時間段、時長、頻次進行分析,評估可能存在的同事關係,並基於現有職住模型以及柵格技術挖掘企業真實經營地址。以我自己手機號為例(如圖8),可以看到返回企業員工主要聚集的工作地(數字表示工作地在相應柵格內的人數),即:聯通大資料公司兩個辦公區(職住資料取自2018年12月)、聯通集團。
(圖8)
基於對人群行為的洞察,該模型能夠幫助工商部門動態的、客觀的對企業真實位置、企業活躍情況進行評估與判斷,為相關監察監管提供資料支撐。
值得一提的是,基於聯通大資料關係圖譜,在十億級節點、百億級邊的大型網路結構中,查詢6步鄰居子圖也只需要不到1秒(如圖9)。視覺化互動介面如圖10(中間白色點為我的手機號)。
(圖9)
(圖10)
為了更細節的洞察網路中的關係,將展示閾值縮小(如圖11)。經查驗,中間環形結構上的每個點相互間都是同事關係。社交網路中環形結構上的點往往存在某種隱含關聯,同事關係、親疏關係、團伙關係、資金流向等等。基於不同樣本、不同場景的應用,相較於傳統資料庫型別,圖資料庫可以最大程度挖掘樣本間的關聯關係。
(圖11)
另外,大量經典的圖挖掘演算法,如:社群發現,Pagerank,LPA等也已ready,為傳統機器學習模型入模特徵增加更多的圖特徵。
總之,本體、知識圖譜、圖資料庫都是用節點和關係為真實世界的各個場景直觀地建模,運用“圖”這種基礎性、通用性的“語言”,“高保真”地表達這個多姿多彩世界的各種關係,並且非常直觀、自然、直接和高效。聯通資料擁有得天獨厚的“節點”、“關係”優勢,我們正堅定不移的走在圖發現的道路上!
宣告:本文來自中國聯通大資料,版權歸作者所有。文章內容僅代表作者獨立觀點,不代表安全內參立場,轉載目的在於傳遞更多資訊。如需轉載,請聯絡原作者獲取授權。