一文读懂知识图谱的主要技术
導讀:
知識圖譜主要技術包括知識獲取、知識表示、知識存儲、知識建模、知識融合、知識理解、知識運維等七個方面
知識圖譜主要技術包括知識獲取、知識表示、知識存儲、知識建模、知識融合、知識理解、知識運維等七個方面,通過面向結構化、半結構化和非結構化數據構建知識圖譜為不同領域的應用提供支持,具體的技術架構如圖4.1所示。
一、知識獲取
知識圖譜中的知識來源于結構化、半結構化和非結構化的信息資源,如圖4.2所示。通過知識抽取技術從這些不同結構和類型的數據中提取出計算機可理解和計算的結構化數據,以供進一步的分析和利用。知識獲取即是從不同來源、不同結構的數據中進行知識提取,形成結構化的知識并存入到知識圖譜中。當前,知識獲取主要針對文本數據進行,需要解決的抽取問題包括:實體抽取、關系抽取、屬性抽取和事件抽取。
知識獲取作為構建知識圖譜的第一步,通常有以下四種方式:眾包法、爬蟲、機器學習、專家法。
眾包法:允許任何人創建、修改、查詢的知識庫,就是常說的眾包模式,百度百科,維基百科就是典型的例子。此類場景下知識庫存儲的不是大量的雜亂的文本,而是機器可讀,具有一定結構的數據格式(以百度某詞條為例)。現代通過眾包法建立的知識圖譜如谷歌和百度的知識圖譜都已經包含超過千億級別的三元組,阿里巴巴于2017年8月份發布的僅包含核心商品數據的知識圖譜也已經達到百億級別。
爬蟲:網頁開發者將網頁中出現的實體、實體屬性、關系按照某種規則做上標記,Google、百度等搜索引擎通過爬蟲就能獲取到這些數據,從而達到知識圖譜數據積累。當前不同語言的爬蟲框架有不少,例如python的Scrapy,java的WebMagic等,通過簡單的配置即可完成爬蟲的規則定義、爬取、清洗、去重、入庫等操作,從而獲取知識。
機器學習:通過機器學習將數據變成了可理解的知識,例如通過文本分類、主題模型等機器學習模型,可以獲取文本的特征,而這些特征就可以理解為知識。
專家法:專家法通常用于垂直領域的工程實踐,通過專家的經驗,歸納總結后形成知識,例如在知識圖譜中的事件圖譜通常是由專家的經驗形成的。
二、知識表示
知識是人類在認識和改造客觀世界的過程中總結出的客觀事實、概念、定理和公理的集合。知識具有不同的分類方式,例如按照知識的作用范圍可分為常識性知識與領域性知識。知識表示是將現實世界中存在的知識轉換成計算機可識別和處理的內容,是一種描述知識的數據結構,用于對知識的一種描述或約定。知識表示在人工智能的構建中具有關鍵作用,通過適當的方式表示知識,形成盡可能全面的知識表達,使機器通過學習這些知識,表現出類似于人類的行為。知識表示是知識工程中一個重要的研究課題,也是知識圖譜研究中知識獲取、融合、建模、計算與應用的基礎,如圖4.3所示。
知識表示方法主要分為基于符號的知識表示方法與基于表示學習的知識表示方法。
1、基于符號的知識表示方法基于符號的知識表示方法分為早期知識表示方法與語義網知識表示方法。其中,早期的知識表示方法包括一階謂詞邏輯表示法、產生式規則表示法、框架表示法與語義網絡表示法。
(1)一階謂詞邏輯表示法
基于謂詞邏輯的知識表示方法,通過命題、邏輯聯結詞、個體、謂詞與量詞等要素組成的謂詞公式描述事物的對象、性質、狀況和關系。一階謂詞邏輯表示法以數理邏輯為基礎,表示結果較為精確,表達較為自然,形式上接近人類自然語言。但是也存在表示能力較差,只能表達確定性知識,對于過程性和非確定性知識表達有限的問題。
(2)產生式規則表示法
上世紀40年代,邏輯學家Post提出了產生式規則表示。根據知識之間具有因果關聯關系的邏輯,形成了“IF-THEN”的知識表示形式,該形式是早期專家系統常用的知識表示方法之一。這種表示方法與人類的因果判斷方式大致相同,直觀,自然,便于推理。除此之外,產生式規則表示法知識的表達范疇較廣,包括確定性知識,設置置信度的不確定性知識,啟發式知識與過程性知識。但是產生式規則表示法由于具有統一的表示格式,當知識規模較大時,知識推理效率較低,容易出現組合爆炸問題。
(3)框架表示法
20世紀70年代初,美國人工智能專家M.Minsky提出了一種用于表示知識的“框架理論”。來源于人們對客觀世界中各種事物的認識都是以一種類似框架的架構存儲在記憶中的思想,形成了框架表示法。框架是一種通用數據結構,用于存儲人們過去積累的信息和經驗。在框架結構中,能夠借助過去經驗中的概念分析和解釋新的信息情況。在表達知識時,框架能夠表示事物的類別、個體、屬性和關系等內容。框架結構一般由“框架名-槽名-側面-值”四部分組成,即一個框架由若干各個槽組成,其中槽用于描述所論事物某一方面的屬性;一個槽由若干個側面組成,用于描述相應屬性的一個方面,每個側面擁有若干值。框架具有繼承性、結構化、自然性等優點,但復雜的框架構建成本較高,對知識庫的質量要求較高,同時表達不夠靈活,很難與其他的數據集相互關聯使用。
(4)語義網絡表示法
1960年,認知科學家AllanM.Collins提出了語義網絡(SemanticNetwork)的知識表示方法。語義網絡是一種通過實體以及實體間語義關系表達知識的有向圖。在圖中,節點表示事物、屬性、概念、狀態、事件、情況、動作等含義,節點之間的弧表示它所連接的兩個節點之間的語義關系,根據表示的知識情況需要定義弧上的標識,一般該標識是謂詞邏輯中的謂詞,常用的標識包括實例關系、分類關系、成員關系、屬性關系、包含關系、時間關系、位置關系等。語義網絡由語義基元構成,語義基元可通過三元組(節點1,弧,節點2)描述,語義網絡由若干個語義基元及其之間的語義關聯關系組成。語義網絡表示法具有廣泛的表示范圍和強大的表示能力,表示形式簡單直接、容易理解、符合自然。然而語義網絡存在節點與邊的值沒有標準,完全由用戶自己定義,不便于知識的共享問題、無法區分知識描述與知識實例等問題。
2、基于表示學習的知識表示方法
早期知識表示方法與語義網知識表示法通過符號顯式地表示概念及其關系。事實上,許多知識具有不易符號化、隱含性等特點,因此僅通過顯式表示的知識無法獲得全面的知識特征。此外,語義計算是知識表示的重要目標,基于符號的知識表示方法無法有效計算實體間的語義關系,如圖4.4和4.5所示。
三、知識存儲
知識存儲是針對知識圖譜的知識表示形式設計底層存儲方式,完成各類知識的存儲,以支持對大規模圖數據的有效管理和計算。知識存儲的對象包括基本屬性知識、關聯知識、事件知識、時序知識和資源類知識等。知識存儲方式的質量直接影響到知識圖譜中知識查詢、知識計算及知識更新的效率。
從存儲結構劃分,知識存儲分為基于表結構的存儲和基于圖結構的存儲,如圖4.6所示
四、知識融合
知識融合的概念最早出現在1983年發表的文獻[HOLSAPPLEC,etal,1983]中,并在20世紀九十年代得到研究者的廣泛關注。而另一種知識融合的定義是指對來自多源的不同概念、上下文和不同表達等信息進行融合的過程[維基百科]。[A.Smirnov,etal,2002]認為知識融合的目標是產生新的知識,是對松耦合來源中的知識進行集成,構成一個合成的資源,用來補充不完全的知識和獲取新知識。[唐曉波,魏巍,etal,2015]在總結眾多知識融合概念的基礎上認為知識融合是知識組織與信息融合的交叉學科,它面向需求和創新,通過對眾多分散、異構資源上知識的獲取、匹配、集成、挖掘等處理,獲取隱含的或有價值的新知識,同時優化知識的結構和內涵,提供知識服務。
知識融合是一個不斷發展變化的概念,盡管以往研究人員的具體表述不同、所站角度不同、強調的側重點不同,但這些研究成果中還是存在很多共性,這些共性反應了知識融合的固有特征,可以將知識融合與其他類似或相近的概念區分開來。知識融合是面向知識服務和決策問題,以多源異構數據為基礎,在本體庫和規則庫的支持下,通過知識抽取和轉換獲得隱藏在數據資源中的知識因子及其關聯關系,進而在語義層次上組合、推理、創造出新知識的過程,并且這個過程需要根據數據源的變化和用戶反饋進行實時動態調整。從流程角度對知識融合概念進行分解,如圖4.11所示。
五、知識建模
知識建模是指建立知識圖譜的數據模型,即采用什么樣的方式來表達知識,構建一個本體模型對知識進行描述。在本體模型中需要構建本體的概念,屬性以及概念之間的關系。知識建模的過程是知識圖譜構建的基礎,高質量的數據模型能避免許多不必要、重復性的知識獲取工作,有效提高知識圖譜構建的效率,降低領域數據融合的成本。不同領域的知識具有不同的數據特點,可分別構建不同的本體模型。
知識建模一般有自頂向下和自底向上兩種途徑:1.自頂向下的方法(如圖4.12所示)是指在構建知識圖譜時首先定義數據模式即本體,一般通過領域專家人工編制。從最頂層的概念開始定義,然后逐步細化,形成結構良好的分類層次結構。2.自底向上的方法則相反(如圖4.13所示),首先對現有實體進行歸納組織,形成底層的概念,再逐步往上抽象形成上層的概念。自底向上的方法則多用于開放域知識圖普的本體構建,因為開放的世界太過復雜,用自頂向下的方法無法考慮周全,且隨著世界變化,對應的概念還在增長,自底向上的方法則可滿足概念不斷增長的需要。
知識建模目前的實際操作過程,可分為手工建模方式和半自動建模方式。手工建模方式適用于對知識建模容量小、質量高的要求,但是無法滿足大規模的知構建,是一個耗時、昂貴、需要專業知識的任務;混合方式將自然語言處理與手工方式結合,適于規模大且語義復雜的圖譜。
六、知識計算
隨著知識圖譜技術及應用的不斷發展,圖譜質量和知識完備性成為影響知識圖譜應用的兩大重要難題,以圖譜質量提升、潛在關系挖掘與補全、知識統計與知識推理作為主要研究內容的知識計算成為知識圖譜應用的重要研究方向。知識計算是基于已構建的知識圖譜進行能力輸出的過程,是知識圖譜能力輸出的主要方式。知識計算概念內涵如圖4.16所示,主要包括知識統計與圖挖掘、知識推理兩大部分內容,知識統計與圖挖掘重點研究的是知識查詢、指標統計和圖挖掘;知識推理重點研究的是基于圖譜的邏輯推理算法,主要包括基于符號的推理和基于統計的推理。
知識計算的概念中明確了以下幾個層面的問題:
(1)知識計算是針對已構建的知識圖譜所存在的問題:不完備性和存在錯誤信息,在此基礎上通過將知識統計與圖挖掘、知識推理等方法與傳統應用相結合進行能力輸出,為傳統應用形態進行賦能,進而提高知識的完備性和擴大知識的覆蓋面。
(2)知識計算中兩種具有代表性的能力:知識統計與圖挖掘、知識推理。知識統計和圖挖掘的方法是基于圖特征的算法來進行社區計算、相似子圖計算、鏈接預測、不一致檢測等;知識推理的目標在于從給定知識圖譜中推導出新的實體、關系和屬性。通過這兩種能力實現對已有圖譜的知識補全、知識糾錯、知識更新、知識鏈接等功能。在此基礎上,知識計算的能力輸出可應用于用戶精準畫像、決策數據、輔助決策意見、智能問答/搜索等方面。
七、知識運維
由于構建全量的行業知識圖譜成本很高,在真實的場景落地過程中,一般遵循小步快走、快速迭代的原則進行知識圖譜的構建和逐步演化。知識運維是指在知識圖譜初次構建完成之后,根據用戶的使用反饋、不斷出現的同類型知識以及增加的新的知識來源進行全量行業知識圖譜的演化和完善的過程,運維過程中需要保證知識圖譜的質量可控及逐步的豐富衍化。知識圖譜的運維過程是個工程化的體系,覆蓋了知識圖譜的從知識獲取至知識計算等的整個生命周期。
知識圖譜的運維包括兩個方面的關注點:一個是從數據源方面的基于增量數據的知識圖譜的構建過程監控,另一個是通過知識圖譜的應用層發現的知識錯誤和新的業務需求:例如錯誤的實體屬性值、缺失的實體間關系、未識別的實體、重復實體等問題。這些運維暴露的問題會在知識圖譜構建的流程、算法組合、算法調整、可新增業務知識優先級排列等方面進行修正,提升知識質量和豐富知識的內容。知識圖譜運維需要基于用戶反饋和專家人工的問題發現及修正、自動的運行監控、算法調整后的更新相結合,因此是一個人機協同,專家和算法相互配合的一個過程。知識運維的全過程如圖4.22所示:
互聯互通社區
互聯互通社區-IT智庫,是互聯互通社區IT架構、前沿技術平臺。包含科技趨勢、總體架構、產業架構、技術架構、系統架構、業務架構等內容,內容簡練,皆屬干貨,合作請+微信:hulianhutongshequ.
總結
以上是生活随笔為你收集整理的一文读懂知识图谱的主要技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 方维直播增加三级分销推广功能
- 下一篇: SAP ABAP 系列丛书推荐:ABAP