领域应用 | 从本体论开始说起——运营商关系图谱的构建及应用
本文轉載自公眾號:中國聯通大數據。
聯通大數據技術專家閆龍將從“本體論”說起,為大家介紹聯通大數據關系圖譜的構建與應用。
萬維網之父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,為傳統機器學習模型入模特征增加更多的圖特征。
總之,本體、知識圖譜、圖數據庫都是用節點和關系為真實世界的各個場景直觀地建模,運用“圖”這種基礎性、通用性的“語言”,“高保真”地表達這個多姿多彩世界的各種關系,并且非常直觀、自然、直接和高效。聯通數據擁有得天獨厚的“節點”、“關系”優勢,我們正堅定不移的走在圖發現的道路上!
OpenKG
開放知識圖譜(簡稱 OpenKG)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 博客。
總結
以上是生活随笔為你收集整理的领域应用 | 从本体论开始说起——运营商关系图谱的构建及应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2019 阿里Java 4轮面试题,含必
- 下一篇: 会议交流 | 人工智能与机器学习创新峰会