前兩次介紹了知識圖譜的基本概念和知識圖譜的構建方式,這次介紹一下知識圖譜系統(tǒng)的構建過程。
如圖所示,從原始的數(shù)據(jù)到形成知識圖譜,經(jīng)歷了知識抽取、知識融合(實體對齊)、數(shù)據(jù)模型構建、質量評估等步驟。
原始的數(shù)據(jù),按照數(shù)據(jù)的結構化程度來分,可以分為結構化數(shù)據(jù)、半結構化數(shù)據(jù)和非結構化數(shù)據(jù),根據(jù)數(shù)據(jù)的不同的結構化形式,采用不同的方法,將數(shù)據(jù)轉換為三元組的形式,然后對三元組的數(shù)據(jù)進行知識融合,主要是實體對齊,以及和數(shù)據(jù)模型進行結合,經(jīng)過融合之后,會形成標準的數(shù)據(jù)表示,為了發(fā)現(xiàn)新知識,可以依據(jù)一定的推理規(guī)則,產生隱含的知識,所有形成的知識經(jīng)過一定的質量評估,最終進入知識圖譜,依據(jù)知識圖譜這個數(shù)據(jù)平臺,可以實現(xiàn)語義搜索,智能問答,推薦系統(tǒng)等一些應用。
以下對知識圖譜構建中的步驟進行詳細的介紹。
我們將原始數(shù)據(jù)分為結構化數(shù)據(jù)、半結構化數(shù)據(jù)和非結構化數(shù)據(jù),根據(jù)不同的數(shù)據(jù)類型,我們采用不同的方法進行處理。
針對結構化數(shù)據(jù),通常是關系型數(shù)據(jù)庫的數(shù)據(jù),數(shù)據(jù)結構清晰,把關系型數(shù)據(jù)庫中的數(shù)據(jù)轉換為RDF數(shù)據(jù)(linked data),普遍采用的技術是D2R技術。D2R主要包括D2R Server,D2RQ Engine和D2RRQ Mapping語言。
D2R Server 是一個 HTTP Server,它的主要功能提供對RDF數(shù)據(jù)的查詢訪問接口,以供上層的RDF瀏覽器、SPARQL查詢客戶端以及傳統(tǒng)的 HTML 瀏覽器調用。 D2RQ Engine的主要功能是使用一個可定制的 D2RQ Mapping 文件將關系型數(shù)據(jù)庫中的數(shù)據(jù)換成 RDF 格式。D2RQ engine 并沒有將關系型數(shù)據(jù)庫發(fā)布成真實的 RDF 數(shù)據(jù),而是使用 D2RQ Mapping 文件將其映射成虛擬的 RDF 格式。該文件的作用是在訪問關系型數(shù)據(jù)時將 RDF 數(shù)據(jù)的查詢語言 SPARQL 轉換為 RDB 數(shù)據(jù)的查詢語言 SQL,并將 SQL 查詢結果轉換為 RDF 三元組或者 SPARQL 查詢結果。D2RQ Engine 是建立在 Jena(Jena 是一個創(chuàng)建 Semantic Web 應用的 Java 平臺,它提供了基于 RDF,SPARQL 等的編程環(huán)境)的接口之上。 D2RQ Mapping 語言的主要功能是定義將關系型數(shù)據(jù)轉換成 RDF 格式的 Mapping 規(guī)則。
半結構化數(shù)據(jù),主要是指那些具有一定的數(shù)據(jù)結構,但需要進一步提取整理的數(shù)據(jù)。比如百科的數(shù)據(jù),網(wǎng)頁中的數(shù)據(jù)等。對于這類數(shù)據(jù),主要采用包裝器的方式進行處理。
包裝器是一個能夠將數(shù)據(jù)從HTML網(wǎng)頁中抽取出來,并且將它們還原為結構化的數(shù)據(jù)的軟件程序。網(wǎng)頁數(shù)據(jù)輸入到包裝器中,通過包裝器的處理,輸出為我們需要的信息。
對于一般的有規(guī)律的頁面,我們可以使用正則表達式的方式寫出XPath和CSS選擇器表達式來提取網(wǎng)頁中的元素。但這樣的通用性很差,因此也可以通過包裝器歸納這種基于有監(jiān)督學習的方法,自動的從標注好的訓練樣例集合中學習數(shù)據(jù)抽取規(guī)則,用于從其他相同標記或相同網(wǎng)頁模板抽取目標數(shù)據(jù)。
對于非結構化的文本數(shù)據(jù),我們抽取的知識包括實體、關系、屬性。對應的研究問題就有三個,一是實體抽取,也稱為命名實體識別,此處的實體包括概念,人物,組織,地名,時間等等。二是關系抽取,也就是實體和實體之間的關系,也是文本中的重要知識,需要采用一定的技術手段將關系信息提取出來。三是屬性抽取,也就是實體的屬性信息,和關系比較類似,關系反映實體的外部聯(lián)系,屬性體現(xiàn)實體的內部特征。
非結構化數(shù)據(jù)的抽取問題,研究的人比較多,對于具體的語料環(huán)境,采取的技術也不盡相同。舉個例子,比如關系抽取,有的人采用深度學習的方法,將兩個實體,他們的關系,以及出處的句子作為訓練數(shù)據(jù),訓練出一個模型,然后對于測試數(shù)據(jù)進行關系抽取,測試數(shù)據(jù)需要提供兩個實體和出處的句子,模型在訓練得到的已知關系中查找,得出測試數(shù)據(jù)中兩個實體之間的關系。這是一種關系抽取的方法。還有人用句法依存特征,來獲取關系,這種方法認為,實體和實體之間的關系可以組成主謂賓結構,在一個句子中,找出主謂關系和動賓關系,其中的謂詞和動詞如果是一個詞,那么這個詞就是一個關系。比如說“小明吃了一個蘋果”,主謂關系是“小明吃”,動賓關系是“吃蘋果”,那么就認為“吃”是一個關系。
當然,還有其它很多方法,可以在一定程度上實現(xiàn)實體抽取,關系抽取和屬性抽取,效果可能會有差異,這需要在實踐中測試和完善。
知識融合,簡單理解,就是將多個知識庫中的知識進行整合,形成一個知識庫的過程,在這個過程中,主要需要解決的問題就是實體對齊。不同的知識庫,收集知識的側重點不同,對于同一個實體,有知識庫的可能側重于其本身某個方面的描述,有的知識庫可能側重于描述實體與其它實體的關系,知識融合的目的就是將不同知識庫對實體的描述進行整合,從而獲得實體的完整描述。
比如,對于歷史人物曹操的描述,在百度百科、互動百科、維基百科等不同的知識庫中,描述有一些差別,曹操所屬時代,百度百科為東漢,互動百科為東漢末年,維基百科為東漢末期;曹操的主要成就,百度百科為“實行屯田制,安撫流民消滅群雄,統(tǒng)一北方,奠定曹魏政權的基礎,開創(chuàng)建安文學,提倡薄葬”,互動百科為“統(tǒng)一北方”,維基百科為“統(tǒng)一了東漢帝國核心地區(qū)”。
由此可以看出,不同的知識庫對于同一個實體的描述,還是有一些差異,所屬時代的描述差別在于年代的具體程度,主要成就的差別在于成就的范圍不同,等等,通過知識融合,可以將不同知識庫中的知識進行互補融合,形成全面、準確、完整的實體描述。 知識融合過程中,主要涉及到的工作就是實體對齊,也包括關系對齊,屬性對齊,可以通過相似度計算,聚合,聚類等技術來實現(xiàn)。
上一篇文章,我們闡述過知識圖譜的構建方法,提到知識圖譜的數(shù)據(jù)整體上可以分為數(shù)據(jù)模型和具體數(shù)據(jù),數(shù)據(jù)模型就是知識圖譜的數(shù)據(jù)組織框架,不同的知識圖譜,會采用不同的數(shù)據(jù)模型。對于行業(yè)知識圖譜來說,行業(yè)術語、行業(yè)數(shù)據(jù)都相對比較清晰,可以采用自頂向下的方式來建設知識圖譜,也就是先確定知識圖譜的數(shù)據(jù)模型,然后,根據(jù)數(shù)據(jù)模型約定的框架,再補充數(shù)據(jù),完成知識圖譜的建設。 數(shù)據(jù)模型的構建,一般都會找一個基礎的參考模型,這個參考模型,可以參照行業(yè)的相關數(shù)據(jù)標準,整合標準中對數(shù)據(jù)的要求,慢慢形成一個基礎的數(shù)據(jù)模型,再根據(jù)實際收集的數(shù)據(jù)情況,來完善數(shù)據(jù)模型。也可以從公共知識圖譜數(shù)據(jù)模型中抽取,將與行業(yè)有關的數(shù)據(jù)模型從公共知識圖譜數(shù)據(jù)模型中提取出來,然后結合行業(yè)知識進行完善。
知識推理,就是根據(jù)已有的數(shù)據(jù)模型和數(shù)據(jù),依據(jù)推理規(guī)則,獲取新的知識或者結論,新的知識或結論應該是滿足語義的。知識推理,依據(jù)描述邏輯系統(tǒng)實現(xiàn)。描述邏輯(Description Logic)是基于對象的知識表示的形式化,也叫概念表示語言或術語邏輯,是一階謂詞邏輯的一個可判定子集。
一個描述邏輯系統(tǒng)由四個基本部分組成: 最基本的元素:概念、關系、個體;TBox術語集:概念術語的公理集合; Abox斷言集:個體的斷言集合;TBox 和 ABox上的推理機制。
描述邏輯涉及到的內容也比較多,此處舉幾個例子,比如實體的分類包含關系,一個電腦椅是椅子,椅子是家具,可以說,一個電腦椅是家具。常識規(guī)則的推理,一個男人的孩子是A,一個女人的孩子是A,可以知道,這個男人和女人是配偶。
通過推理發(fā)現(xiàn)新的知識,應用比較多,說明知識圖譜的時候也經(jīng)常不自覺的會應用推理,比如前兩年比較受人關注的王寶強離婚案,為什么會聘用張起淮做律師,通過知識圖譜可以很清楚知道,王寶強和馮小剛關系比較密切,馮小剛聘用張起淮作為律師顧問,所以王寶強很容易和張起淮建立關系,這也可以看作是知識推理的范疇。當然,更確切地說,應該是規(guī)則的范疇。推理更強調的是固有的邏輯,規(guī)則一般是和業(yè)務相關的自定義邏輯,但推理和規(guī)則都是通過邏輯準則,獲取新的知識或發(fā)現(xiàn),在這里先不做區(qū)分。
質量評估,就是對最后的結果數(shù)據(jù)進行評估,將合格的數(shù)據(jù)放入知識圖譜中。質量評估的方法,根據(jù)所構建的知識圖譜的不同,對數(shù)據(jù)要求的差異而有所差別??偟哪康氖且@得合乎要求的知識圖譜數(shù)據(jù),要求的標準根據(jù)具體情況確定。 比如對于公共領域的知識圖譜,知識的獲取采用了眾包的方法,對于同一個知識點,可能會有很多人來完成,如果這個知識點只有一個答案,可以采用的一種策略是,將多人的標注結果進行比較,取投票多的結果作為最終的結果。當然,這是不嚴謹?shù)模驗檎胬硗莆赵谏贁?shù)人的手里,特別是針對一些行業(yè)的知識圖譜,表現(xiàn)尤為突出。行業(yè)內的一條知識,可能只有行業(yè)專家能夠給出權威正確的答案,如果讓大眾投票來決定,可能會得到一條錯誤的知識。所以,針對行業(yè)知識圖譜,可能會采用不同于公共知識圖譜的策略,來進行知識的質量評估。
以上零零散散的將知識圖譜的構建過程,大體做了一個描述,知識圖譜的構建是一個復雜的系統(tǒng)工程,涉及到的知識和技術都很多,肯定會有很多知識或技術沒有說到,或者是描述的比較淺顯,沒有把握住一些構建方法的本質,希望大家補充,我會在后面做項目的過程中,不斷細化構建過程,將構建中碰到的具體問題,再進行詳細的描述說明。
聯(lián)系客服