近年來,互聯網技術和應用模式的快速發展在改變人們生活方式的同時也產生了巨大的數據資源。預計到2020年,全球的數據總量將達到35ZB(1ZB=270B),其中75%來自個人(主要是圖片、視頻和音樂),遠遠超過人類有史以來所有印刷材料的數據總量(200PB1)。
隨著互聯網、物聯網、云計算等技術的迅猛發展,網絡空間(cyberspace)中各類應用層出不窮,引發了數據規模的爆炸式增長,形成了網絡空間的大數據(簡稱網絡大數據)。
網絡大數據中包含大量有價值的數據,根據其產生方式的不同可分為Web內容數據、Web結構數據、自媒體數據、日志數據等。如何從網絡大數據中獲得有價值的知識,并對其進行深入的計算和分析,已成為國內外工業界和學術界研究的熱點。目前,世界各個組織建立的知識庫多達50余種,相關的應用系統更是達到了上百種。其中,有代表性的知識庫或應用系統有KnowItAll, TextRunner, NELL, Probase, Satori,PROSPERA, SOFIE以及一些基于維基百科等在線百科知識構建的知識庫DBpedia, YAG,Omega, WikiTaxonomy。除此之外,一些著名的商業網站、公司和政府也發布了類似的知識搜索和計算平臺,如Evi公司的TrueKnowledge知識搜索平臺2、美國官方政府網站Data.gov, Wolfram的知識計算平臺WolframAlpha、谷歌的知識圖譜KnowledgeGraph、臉書(Facebook)推出的實體搜索服務Graph Search等。
就規模而言,擁有概念最多的知識庫是Probase,目前其核心概念約有270萬個,概念總量達到千萬級。它是基于概率化構建的知識庫,支持針對短文本的語義理解。包含實體最多的是WolframAlpha,有10萬億個實體。近年來,影響力比較大的知識庫或知識搜索服務有谷歌的知識圖譜,包含5億個實體對象和350億條實體間的關系信息,而且規模也在隨著信息的增長不斷增大。除此之外,比較有特色的還有國內搜狗知立方系統,側重于基于圖的邏輯推理計算,包括利用語義網的三元組推理補充實體數據、對用戶查詢詞進行語義理解以及句法分析等。
本文將提出一種面向網絡大數據的、開放的、自適應的、可演化的、可計算的知識計算引擎——OpenKN。
OpenKN的整體架構
圖1描述了OpenKN作為計算引擎的主要架構。OpenKN主要由知識庫構建(knowledge baseconstruction)、知識驗證與計算(knowledge validation and verification, knowledgecomputation)、知識存儲(knowledgerepositories)、知識服務與應用(knowledge services andapplication)4個模塊組成。這些模塊實現了一個全生命周期的知識處理,從知識獲取、知識融合、知識驗證與計算、知識存儲到知識服務與應用的知識處理工作流程。
知識庫的構建
知識庫的構建從邏輯角度講,包括知識獲取和知識融合兩個方面。其中知識獲取的主要目的是從開放網頁、在線百科和核心詞表等數據中抽取概念、實例、屬性和關系。知識融合的主要目的是實現知識的時序融合和多數據源融合。
圖2進一步描述了知識庫構建的思路。
OpenKN構建的知識庫包含兩部分:
(1)存儲眾所周知的常識性知識的通用基礎庫(general foundation base),這些知識可從維基百科等在線百科中直接抽取獲得。
(2)特定領域的知識庫,從左至右依次為領域1到領域n。基于每一個領域知識的特點不同,每一個特定領域知識庫又可進一步劃分為三部分:導出的通用基礎庫 (induced GFB)、領域基礎庫(domain foundation base)和領域網絡庫(domain Web base)。
具體地講,導出的通用基礎庫是指從常識知識中選取的和領域相關的知識構成的知識庫。領域基礎庫是用來描述領域相關的其他基本知識。領域基礎庫中的知識主要來自領域字典、核心詞匯表等。為了獲取當前最新最實時的領域知識,領域網絡庫用來從開放的互聯網網頁中抽取領域相關的最新知識。在圖2中,橙色點和黑色點代表從網頁中抽取獲得的知識,點之間的邊代表知識間的關聯關系。隨著網頁數量的不斷增加和內容的不斷更新,領域知識庫可實現自適應增長(self-grew)。
上述這些知識庫的構建共同完成知識獲取的全過程。此外,我們利用已有的公開知識庫,如Freebase,YAGO等實現了知識融合。在完成OpenKN的知識庫構建工作后,我們得到的知識稱為顯式的知識。
知識計算
除了顯式的知識,通過OpenKN的知識計算功能,包括屬性計算、關系計算,實例計算等,我們還可以進一步獲得隱式的或推斷的知識。
知識驗證與處理
為了檢驗顯式知識和隱式知識的完備性、相關性與一致性,我們需要對知識進行校驗,這稱為知識驗證過程。主要是專家或特定的知識計算方法檢查冗余的、沖突的、矛盾的或者不完整的知識。
知識存儲
經過驗證的海量知識,在OpenKN里存儲在一個基于圖的數據庫 (Graph DataBase,GDB)以及關系數據庫中。其中,GDB中存儲的是顯式的知識,關系數據庫中存儲的是隱式的知識。GDB作為大數據存儲基礎設施,支持大于100億條知識的存儲。與傳統的數據庫模型(Neo4j, Titan)相比,GDB通過定義點和邊的圖數據模型來存儲知識,這里的點和邊都有各自唯一的ID并且支持一系列的多值屬性。GDB描述了一個與現有的圖模型不同的異構網絡,稱為可演化知識網絡。
OpenKN的兩個主要特征——自適應性和可演化性,加在一起詮釋了OpenKN的“Open”的含義。
OpenKN的自適應性
OpenKN的自適應性主要體現在自適應知識演化處理和自適應知識獲取策略兩個方面。如圖3所示,自適應知識演化處理用來描述知識演化的規律,它分為知識庫的自我更新和與其他知識庫的句法——語義級融合兩個階段。在自我更新階段,知識演化通過作用在知識庫上的兩個基本運算和一系列的規則完成,即邏輯加⊕和邏輯乘⊙運算,以及一系列基本的規則。這些規則被用于本源知識庫(primitive KB)上的演化。這里的本源知識庫定義為不可以被其他知識庫通過邏輯加和邏輯乘來表示的知識庫。
如果我們把所有知識庫組成的集合定義為一個向量空間,那么根據線性代數的基本知識,這些本源知識庫實際上構成了該線性空間的一組基。對于向量空間的若干術語,可參考文獻。另一方面,對于兩個不同知識庫的融合可分為兩個操作,語義級的融合S⊕和句法級的融合T⊕。自適應知識獲取策略的主要目的是獲取隨時空演化的動態知識。
如圖3所示,自適應知識獲取策略使用一個稱為過濾器的組件來產生句法——語義級的抽取模板,例如Such-As, Is-A,來對網絡數據進行知識抽取。過濾器由規則和新數據感知器組成,其中規則保證不同類型的知識庫中抽取得到知識的一致性,新數據感知器主要用于檢測是否有新的數據產生以動態調整我們的抽取策略。抽取模板的調整是通過其自適應的調整和與抽取結果的反饋來迭代實現的。在自適應調整階段,例如當Such-As模板遇到例外情況時,如句子“animals other thandogs such as cats” ,它不僅可以從概率的角度發現這個特例,還可以通過模糊本體技術來識別這種情況,相關術語可參考文獻。在抽取結果的反饋階段,抽取模板通過抽取結果的正確性進行打分,實現所謂的外部校正。
OpenKN的自適應性可以有效地滿足網絡大數據的快速變化帶來的挑戰。一方面,它可以使知識庫具有捕獲新數據的能力,另一方面,不同的規則如基本規則,保證了知識的實時更新。
OpenKN之所以稱為可演化知識網絡,主要是因為:一方面網絡可以不斷獲取最新的知識,并進行自我更新;另一方面,知識網絡可以將其他知識庫中的知識轉化為自己可以利用的標準形式,吸納到自身的知識網絡中進而形成新的知識網絡。這兩個過程如圖5和圖6所示。在圖5中,最左側的網絡是一個確定的可演化知識網絡,當從網頁中獲取了新的知識后,可以通過兩個步驟將新知識融合到現有的網絡中。首先,將新知識表示為一個知識網絡,并將其與現有網絡進行“鏈接”。其次,將新的知識網絡中的點和邊與已有網絡中的相應的點和邊進行“作用”,最終形成一個網絡。在圖6中,現有的知識庫先轉化為一個知識網絡,然后如圖5所示,和已有的知識網絡進行融合。
可演化知識網絡的演化特性構成一個完整的演化周期,包括演化識別與感知、演化定位、演化評估和管理等階段。這種演化的非剛性同時保證了網絡的時新性。
演化計算算子庫
OpenKN的演化計算可規范化為兩類不同的算子或操作,即對點的操作和對邊的操作。具體地講,對點的操作單元可分為點的抽取、點的融合以及點的推理三個子操作,對邊的操作也可分為相應的三個類似的子操作,即關系抽取、關系融合、關系推斷。這里提到的所有操作均涉及到對點和邊上的時間與空間信息的操作,并且這些操作與前文提到的自適應知識演化過程和自適應知識獲取策略是一致的。即點和邊的抽取實現了自適應知識獲取,其他操作構成了自適應知識演化過程。OpenKN的演化計算算子庫首次將知識獲取的整個流程中涉及的方法納入到一個體系當中,便于深入理解每個方法之間的關系,為不同的方法及其之間的銜接與相互作用提供了一個全面的視角。
目前,OpenKN這一知識計算引擎能夠處理的點規模達到3000萬,邊的規模達到10億級,同時處理規模仍在不斷擴張中。
總結
網絡大數據具有多源異構性、時效性、高噪聲等特點,不但非結構化數據多,而且數據的實時性強。網絡大數據背后蘊含著豐富的、復雜關聯的知識。要有效利用網絡大數據的價值就須進行數據的去冗分類、去粗取精,從數據中挖掘知識, 對大數據網絡背后的知識進行深入分析。本文提出了一種面向網絡大數據的知識計算引擎——OpenKN。它的主要特點是自適應性和可演化性。這使得OpenKN可以更好地感知動態變化的網絡知識,同時對潛在的和變化的時序知識進行推斷和預測,更好地為網絡大數據下的知識挖掘提供服務。
作者: