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