- 工業級知識圖譜:方法與實踐
- 張偉 陳華鈞 張亦弛
- 4316字
- 2021-10-15 18:54:49
2.2 行業知識建模
2.2.1 基于專家的知識建模
知識圖譜存儲了結構化知識,其中的實體、屬性和關系等是重要的數據組成部分,知識體系的構建是對概念(分類)、概念屬性以及概念之間關系的定義。因其具有很高的抽象性和概括性,目前高質量的知識體系多由專家構建而成。在早期,專家們是比較直接的人工構建知識體系。但隨著知識需求在不同領域、不同行業的增長,需要建模復雜且關聯多事實的組合信息等,人們逐步構建出能夠描述時空、事件等信息的知識框架。因此,人工構建知識體系的模式也逐漸成熟,一般人工構建知識體系的過程可以分為如下六個主要階段:確定領域及任務、知識體系復用、明確概念要素、確定分類體系、定義屬性及關系和定義約束。上述階段在實踐中并非嚴格的線性關系,有時需要回退到更早的階段。下面分別對上述各個步驟及其做法進行詳細的介紹[9]。
1.確定領域及任務
知識圖譜作為人工智能應用的基礎設施,其構建過程不能不了解具體的應用任務,也不能拋開領域建立一個高大全的、無法被廣泛使用的產品。實際知識體系與具體的領域密切相關,例如金融領域和醫學領域涉及的概念完全不同。因此在創建知識體系之前,首先應該確定知識圖譜面向的領域,限定了知識體系應該包含的知識范圍。
2.知識體系復用
知識體系具有很強的抽象性和概括性,從零開始構建不僅成本高昂,而且質量難以保證。實際上,可以先構建一個輕量級的知識體系,然后盡可能基于它們拓展[4]。因此在真正開始構建之前,應該廣泛調研現有的第三方知識體系或與之相關的資源,盡可能多地參考前人的已有成果。這些資源包括以下幾種:
1)領域詞典:例如醫學領域的CancerOntology、文化領域的藝術與建筑詞典AAT和地理學領域的地理名稱字典TGN。
2)語言學資源:在自然語言處理領域,有很多語言資源可用于幫助構建知識體系,例如WordNet、FrameNet等。
3)開源知識圖譜:現有的大規模開源知識圖譜主要有DBpedia、YAGO、Freebase、OpenCyc等,以及中文領域的OpenKG系列等。這些知識圖譜的知識體系都是由專家人工制定的,具有較高的質量,并且涵蓋的領域非常廣泛,對于制定新的知識體系具有很高的參考價值。
4)網絡百科:網絡百科是成千上萬的網絡用戶共同編輯得到的,其包含的知識范圍非常廣泛。由于百科知識是開發編輯的,因此知識的更新和新知識的添加都比較及時。網絡百科也是一個很好的參考資源,典型的有百度百科、互動百科和Wikipedia等。
3.明確概念要素
根據確定的領域,羅列期望在知識圖譜中出現的要素列表,主要包括概念、屬性及關系。這一步實際上是為后續步驟準備“原材料”,因此不需要對上述概念進行清晰的分類,只需要盡可能地羅列出期望的元素即可。
4.確定分類體系
在確定了相關要素后,需要將其中表示概念的要素組織成層級結構的分類體系。在構建過程中有兩種方式可供選擇,分別是自頂向下的方法和自底向上的方法。前者從最抽象的概念開發,逐層添加更為具體的概念;后者則相反,先從最具體的概念開始,逐層進行抽象。在構建的分類體系中,必須保證上層類別表示的概念完全包含下層類別表示的概念,也就是說所有的下層類別的實例也必須是上層類別的實例。
5.定義屬性及關系
上一步定義了知識圖譜的分類體系,需要為其中的每個類別定義屬性及關系。屬性用于描述概念的內在特征,例如人的姓名、出生日期等;關系則用于刻畫不同概念之間的關系,例如朋友關系。屬性的定義需要受分類體系的約束,下層類別必須繼承所有上層類別的屬性。例如,所有歌手都應該具有娛樂人物具有的所有屬性。這一步和上一步交叉進行,因為在定義屬性的過程中可能會發現原有分類體系的不足,需要對其修正。
6.定義約束
不同的屬性和關系具有不同的定義域和值域,例如性別和愛好等屬性只能用來描述人物相關的概念,并且年齡對應的值應該是正整數,并且不應該大于150(假設人的壽命上限是150歲),這些約束可以保證屬性的一致性,避免異常值的出現。
2.2.2 基于機器學習的知識建模
人工知識建模的方式是一個耗時耗力、高要求和高成本的過程,通常由專家依賴領域經驗構建而成,過程煩瑣、枯燥且容易出錯,維護成本高,最終知識體系的完備性和準確性與專家對領域的認知程度息息相關。因此,如何自動地從領域知識中學習構建知識體系,提高人工知識建模的效率,保證知識體系的覆蓋率和適用性具有重要意義。
本體可以組織成以下子任務:術語、同義詞、概念、概念層次結構、關系和規則[13]。因此,知識建模的過程不是單一任務而是各層中組織的子任務集[10-12]。WONG提出將本體學習技術分為基于統計的技術、基于語言學的技術和基于邏輯的技術[10]。基于統計的技術主要依賴于聚類、潛在語義分析、共現分析、對比分析和關聯規則挖掘等。基于語言學的技術幾乎適用于知識建模的所有任務,并且主要依賴于自然語言處理工具:詞性標記、句子解析、句法結構分析、依存關系分析、語義詞典、詞匯句法模式、語義模板、子分類框架和種子詞[14-16]等。基于邏輯的技術主要涉及關系和公理等更復雜的任務[10]。這些與知識表示、推理及機器學習的進步有關,包括歸納邏輯編程和邏輯推理動作。此外,可以根據不同數據類型(結構化數據、半結構化數據和非結構化數據)進行分類。非結構化數據類型是最常見的數據形式,通常利用淺層文本處理和統計分析[17]、基于規則的解析器識別自然語言單詞之間的依存關系[18]、詞性標注器、模式匹配以及具有基本語言處理的機器學習方法[18-20]。在從半結構數據構建本體的過程中,同時使用傳統的數據挖掘和Web內容挖掘技術[21,22]。接下來詳細介紹不同數據類型的知識建模方式。
1.基于非結構化數據的知識建模
非結構化數據是指沒有固定模式或沒有預定義方式組織的數據,通常指的文本數據,不適用數據庫二維表表示。絕大多數的行業數據是以文本為主要載體的非結構化數據。2012年的RMIT大學WILSON WONG教授等人發表的綜述文章[4]Ontology Learning from Text:A Look Back and into the Future對基于文本數據構建知識體系進行了較為詳細的介紹,分為以下三個主要步驟:領域概念抽取、分類體系構建和概念屬性抽取。
(1)領域概念抽取。構建知識體系需要的關鍵元素包括領域概念、概念屬性及概念之間的關系,這些關鍵元素稱為領域術語[5,6],術語是理解領域知識的核心。因此概念抽取的第一步是術語抽取,然后過濾低質量的術語,最后得到構建知識體系所需的概念集合。
1)候選術語抽取
首先是利用自然語言處理工具對文本數據進行分詞、詞性標注和句法分析等預處理,然后利用語言學規則或模板在文本中抽取特定的短語,構建領域的候選術語集。無論是數據預處理還是模板抽取短語,難免會存在錯誤,因此上述方式得到的候選術語一定會存在很多的噪聲,但該步驟的目的是抽取更多、更全的術語,對抽取術語的質量沒有嚴格的要求。
2)術語過濾
在得到候選術語集合后,如何準確地度量術語可靠性,過濾低質量的術語是該步驟的主要目的[7]。領域術語與普通詞匯往往具有不同的特征。因此,可以采用統計信息和語義信息過濾術語噪聲,例如互信息(Mutual Information,MI)、詞頻逆文檔頻率(TF-TDF)、術語相關頻率(RTF)等方法定量刻畫統計特征;用詞向量的方式捕捉術語之間的語義相關度來刻畫語義特征,并基于這些值過濾掉低質量的候選術語。
3)概念抽取
術語并不同于概念,概念是認知層面的處理單位,而術語是語言層面的單位[8]。因此需要對上一步挖掘的術語進行概念層面的識別,即將候選術語中表達相同語義的術語聚合在一起,最具代表性的方法是基于詞典的方法和基于統計的方法。基于詞典的方法是利用現有的詞典資源識別同義關系,常用資源有WordNet、HowNet和同義詞詞林等。基于統計的方法是假設相同詞義的詞匯具有相似的統計特征,常用的有基于字符串編輯距離挖掘詞匯的文本特征、基于協同過濾發現詞匯的共現特征、基于詞匯的語義向量計算相似度以及基于詞匯表示對詞匯聚類的方式等。
(2)分類體系構建。分類體系構建實際上是要獲取不同概念之間的層次關系,構建合理的層次化的概念分類體系,語言學上稱為上下位關系[9]。識別上下位關系的方法常用的有基于模板的方法[10]、基于詞典的方法和基于統計的方法。基于詞典的方法常用的資源有COW、百度百科和NLTK庫等;基于統計的方法常用的有基于層次聚類的方法,將聚類結果中不同層級類別內的術語構成了上下位關系;基于模板的方法識別詞對是否為上下位關系,轉化成二分類任務等。
(3)概念屬性抽取。除了概念間的層次關系,概念的屬性描述也是構建知識體系的重要元素。例如“酒”是一個概念,產地、酒精度和凈含量是其屬性,用來更準確、更清晰地描述概念。常用的概念的候選屬性抽取主要包括以下方法。
1)基于規則的屬性抽取:通過語言規則抽取屬性,如“x的y”的形式就表示y有可能是x的屬性。
2)基于百科統計的屬性抽取:以在線百科知識庫和開放式目錄搜索系統(Open Directory Project)為代表的知識共享平臺,在構建知識庫與開放共享方面具有獨特優勢和影響力。基于百科統計的屬性抽取是從預處理的關鍵詞、領域詞表和概念集出發,通過關鍵詞查詢、回溯歸納等過程,得到百科知識庫中相關的分類和詞條,繼而使用詞條的信息框、統計分類和詞條下的高頻屬性作為候選。
3)基于依存分析的屬性抽取:與基于百科統計的屬性抽取相比,基于依存分析的方法能夠有效地利用原始的文本數據。在依存語法中將句子中詞語間存在的支配和被支配關系稱為依存關系。這種支配關系既可能是詞之間的句法關系,也可能是語義關系。這里重點關注語義關系,結合層次概念體系,選出語義依存樹中與之對應的關系,得到候選屬性。
通過以上方法可以得到候選屬性集,再利用統計方法評估候選屬性的置信度,類似概念抽取任務,過濾低置信度的屬性,得到合理的概念屬性集。
2.基于結構化數據的知識建模
結構化數據是指以固定模式存儲的數據,也稱作行數據,是由二維表結構邏輯表達和實現的數據,嚴格地遵循數據格式與長度規范,常見的有存儲于關系數據庫的數據和面向對象數據庫中的數據。
結構化數據因為模型結構固定且便于理解,其知識建模的方式更簡單。無論是領域概念抽取還是概念屬性抽取,首先需要識別數據庫中哪些項描述實體、哪些項描述實體間關系,在進行信息抽取的時候,可以從描述實體的表中抽取出實體的概念及概念的屬性,從描述關系的表中抽取出概念間的關系。因此,基于以上獲取的概念和屬性集合,采用面向非結構化的分類體系構建方式構建一個初步的知識體系,并不斷地評估和修正,生成最終的知識體系。
3.基于半結構化數據的知識建模
半結構化數據是一種自描述的結構,它不符合結構化的數據模型結構,但包含相關標記,用來分隔語義元素以及對記錄和字段進行分層,例如XML文檔、JSON文檔和日志文檔等。由于這類數據是介于結構化數據和非結構化數據之間的一類數據,因此上述兩類方法都能應用。首先采用規則映射的方法,使用結構化數據向本體數據轉換工具,自動地將XML或HTML的標簽轉化為概念、屬性等,然后采用面向非結構化數據的方法構建知識體系。