知識圖譜綜合

前言

本文爲讀書筆記,整理自高等教育出版社出版,趙軍主編的人工智能叢書《知識圖譜》及部分公開網絡資料。如有侵權,請立馬告之。

1 介紹

1.1 基本概念

目前主流的知識圖譜採用 資源描述框架 (RDF) 進行知識表示,以 RDF 三元組的形式存儲現實世界中的實體以及實體之間的關係,表示爲 G=(E,R,S)\mathcal{G}=(\mathcal{E},\mathcal{R},\mathcal{S}),承載了實體集、關係集和三元組集 (頭實體、尾實體和關係)。例如,Freebase 中,三元組 “/people/person/nationality (Jorge Amado, Brazil)”,表示 “Jorge Amado” 的國籍爲 “Brazil”;其中,“Jorge Amado” 爲頭實體,“Brazil” 爲尾實體,“/people/person/nationality” 爲關係。實際應用中,尾實體除獨立的實體外,也可以爲頭實體的屬性,例如數字、日期、字符串等。

1.2 應用場景

知識圖譜由谷歌於 2012 年在論文中首次提出,初衷是優化搜索結果和廣告推薦。如今,除 推薦系統智能問答 外,也廣泛應用於 挖掘實體的潛在聯繫。例如在自然語言推理任務中,我們希望知識圖譜能幫助完成諸如 “A 的出生地在某地,同時他來自於中國;那麼僅僅通過 B 的出生地也在某地,我們可以推斷出 B 來自中國” 等一系列任務。

1.3 公共領域

目前已知且公開的大規模知識圖譜包括 Freebase、Wikidata、DBpedia、YAGO、NELL 以及 Knowledge Vault 等,加之傳統的知識庫,有以下所示:

  • Cyc:通用的常識知識庫,目的是將上百萬條知識編碼爲機器可處理的形式,並在此基礎上實現知識推理等智能信息處理任務;目前包含 50 萬實體,3 萬個關係以及 500 萬事實;
  • WordNet:普林斯頓大學公佈的英文電子詞典和本體,採用人工標註的方法,將英文單詞按照單詞的詞義組成一個大的概念網絡;詞語被聚類成同義詞集 (Synset),每個同義詞集表示一個基本的詞彙語義概念,詞集之間的語法關係包括同義關係、反義關係、上位關係、下位關係、整體關係、部分關係、蘊含關係、因果關係、近似關係等;包含 155,287 個單詞,117,659 個同義詞集;
  • Hownet:即知網,由董振東教授主持開發的一個語言認知知識庫/常識知識庫,以概念爲中心,基於義原描述了概念與概念之間以及概念所具有的屬性之間的關係,每一個概念可以由多種語言的詞彙進行描述 (主要是中文和英語);包含 800 多個義原,11,000 個詞語;
  • ConceptNet:開放的、多語言的知識圖譜,最早起源於 MIT Media Lab 的一個衆包項目 Open Mind Common Sense,致力於幫助計算機理解人們日常使用的單詞的意義;
  • YAGO:由德國馬克斯·普朗克研究院主持研究的大型語義知識庫;基於 WordNet 的知識體系,將 Wikipedia 中的類別與 WordNet 中的同義詞集進行關聯,同時將 Wikipedia 中的條目掛載到 WordNet 的體系下,既自動擴充了知識庫,又對海量的知識進行了組織和整理;擁有一百萬個實體以及超過五百萬條關係事實數據;
  • BabelNet:多語言詞彙級的語義網絡和本體;主要特點是將 Wikipedia 鏈接到最常用的英語類義詞典 WordNet 上,這一點類似於 YAGO,但 BabelNet 加入了多語言支持;覆蓋了 284 種語言,包括全部的歐洲語言、大多數亞洲語言等;
  • DBpedia:從 Wikipedia 中的結構化數據 (Infobox) 中抽取知識;實體包含人物、地點、作品、機構、物種和疾病;支持 127 種語言,描述了 1,731 萬個實體,總共包含 95 億事實三元組;
  • Freebase:基於 Wikipedia、使用羣體智能方法建立的包含 5,813 萬實體、32 億個實體關係三元組的結構化知識資源,是公開可獲取的規模最大的知識圖譜之一;是第一個嘗試利用協同智慧構建完全結構化知識圖譜的系統,不過可惜的是,目前已停止更新;
  • KnowItAllTextRunnerReVerb:自動從網絡數據中抽取信息進而構建知識庫,是實現語義搜索的重要支撐技術;區別於傳統的文本信息抽取系統,這裏要抽取的關係不再是預定義的,抽取的範圍是開放域文本;
  • NELL:卡內基梅隆大學基於 “Read the Web” 項目開發的一套永不停歇的語言系統 (Never-Ending Language Learning);本身是一套語言學習系統,每天不間斷地執行兩項任務:閱讀和學習;閱讀是從 Web 文本中獲取知識,並添加到內部知識庫,學習任務是使用機器學習算法獲取新知識,鞏固和擴展對知識的理解;
  • Kowledge Vault:Google 於 2014 年創建的一個大規模知識圖譜;相較於 Google 之前基於 Freebase 的知識圖譜版本,Knowledge Vault 不再採用衆包的方式進行圖譜構建,而是試圖通過算法自動蒐集網上信息,通過機器學習方法對已有的結構化數據 (例如 YAGO、Freebase、網頁中的表格數據等) 進行集成和融合,將其變爲可用知識;目前,Knowledge Vault 已經收集了 16 億個事實,其中 2.71 億具有高度置信度,準確率在 90% 左右。

除了以上通用領域知識圖譜以外,存在衆多特定領域的垂直領域知識圖譜,包括影視領域的 IMDB、音樂領域的 MusicBrainZ、醫療衛生領域的 SIDER 等。

針對知識圖譜構建過程中的不同困難,學術界著有一定量的論文提供解決方案,近年來在發表數量上也呈現加速上升的趨勢。由知乎用戶育心總結的,2005 年至 2019 年 80 篇知識圖譜領域經典論文集,呈現如下分佈:
在這裏插入圖片描述

1.4 生命週期

知識圖譜的生命週期,第一個階段爲 知識獲取;從非結構化文本中獲取知識主要包含以下基本任務:

  • 實體識別 (entity recognition):命名實體 (named entity) 通常包含三大類 (實體類、時間類和數字類)、七小類 (人名、地名、機構名、時間、日期、貨幣和百分比);在知識圖譜領域,實體識別不僅僅侷限於命名實體,也包括其他類別的實體,特別是領域實體,例如股票名、汽車品牌、餐館名等;與實體識別相關的任務是 實體抽取 (entity extraction),其區別在於實體抽取的目標是在給定語料的情況下,構建一個實體列表,並不需要在每個句子中確定實體的邊界,例如,構建一個歌曲名列表;
  • 實體消歧 (entity disambiguation):目的在於消除實體的歧義,解決一詞多義的問題,例如將打網球的李娜與歌手李娜、跳水運動員李娜等區分開來;從技術路線上劃分,實體消歧任務可以分爲 實體鏈接 (entity linking) 和 實體聚類 (entity clustering) 兩種類型;實體鏈接是將給定文本中的某一個實體指稱項鍊接到已有知識圖譜中的某個實體上,因爲在知識圖譜中,每個實體具有唯一的編號,鏈接的結果就是消除了文本指稱項的歧義;實體聚類的假設是已有知識圖譜中並沒有已經確定的實體,在給定一個語料庫的前提下,通過聚類的方法消除語料中所有同一實體指稱項的歧義,具有相同所指的實體指稱項應該被聚爲同一類別;
  • 關係抽取 (relation extraction):關係抽取的目標在於獲取兩個實體之間的語義關係;語義關係可以是 一元關係 (unary relation) (例如實體的類型),也可以是 二元關係 (binary relation) (例如實體的屬性),或是更高階的關係;根據抽取對象的不同,已有關係抽取任務可分爲:關係分類、屬性抽取、關係實例抽取;關係分類用於判別兩個實體間的關係;屬性抽取在於給定一個實體及一個預定義關係,抽取另一個實體;關係實例抽取則同時包含判斷實體間關係及把滿足該關係的實體抽取出來;
  • 事件抽取 (event extraction):事件抽取任務的目標是從描述事件信息的文本中抽取出用戶感興趣的事件信息並以結構化的形式呈現出來;與關係抽取的不同在於,一個事件通常包含多個關係三元組,涉及更多的實體和關係,因而更爲困難;但事件抽取才更符合人們的正常認知規律,因此突破三元組的認知限制,以事件爲主體構建知識圖譜不可或缺。

第二個階段,知識融合 (knowledge fusion) 則是對不同來源、不同語言或不同結構的知識進行融合,從而對現有知識圖譜進行補充、更新和去重。

第三個階段,知識存儲 (knowledge storage) 方面, 涉及到數據庫索引的效率,六重索引取代三元組稱爲更受歡迎的 RDF 格式存儲方式;此外,另一種流行的存儲基於圖數據庫的形式,例如開源圖數據庫 Neo4j,優點是具有完善的圖查詢語言,支持大多數的圖挖掘算法,缺點是數據更新慢,大節點的處理開銷大;目前來看,圖數據庫的方法比 RDF 數據庫更爲廣泛;關於子圖篩選、子圖同構判定等技術是目前圖數據庫的研究熱點。

第四個階段,知識推理 (knowledge reasoning) 指導我們如何在數據稀疏的情況下,完成隱含知識的挖掘;目前主流的方法分爲兩種:1) 基於傳統邏輯規則進行推理,其研究熱點在於如何自動學習推理規則,以及如何解決推理過程中的規則衝突問題,2) 基於表示學習的推理,即採用學習的方式,將傳統推理過程轉化爲基於分佈式表示的語義向量相似度計算任務,這類方法優點是容錯率高、可學習,缺點也顯而易見,即不可解釋,缺乏語義約束。 除了對已有的知識圖譜進行補全外,知識推理也可直接應用於相關任務,例如自動問答系統。

第五個階段,知識應用 (knowledge application) 在四個方向上使得知識圖譜得以發揮重要價值,分別爲 智能搜索自動問答推薦決策支持;智能搜索和自動問答應用圖信息檢索及知識推理,將適配的結果返回給用戶,如谷歌搜索的即時結果;推薦方面,利用知識圖譜中實體 (商品) 的關係向用戶推薦相關產品,如百度搜索右側的相關推薦;決策支持上,通過將知識圖譜可視化提供給決策者,便於其進行知識管理與決策思考,如天眼查的股權結構圖。

2 知識表示

知識應用的難點在於知識推理,而知識推理的難點在於 知識表示 (knowledge representation)。

2.1 經典知識表示體系

經典的知識表示方法包括邏輯 (Logic)、語義網絡 (Semantic Network)、框架 (Framework)、腳本 (Script) 以及 語義網 (Semantic Web):

簡介 示例 優點 缺點
邏輯 包含命題邏輯、一階邏輯以及高階邏輯;命題邏輯通過與(\land)、或(\lor)、非(¬\lnot)、蘊含(\Rightarrow)、當且僅當(\Leftrightarrow)等邏輯符將多個子命題組合成複合命題實現知識推理;一階邏輯引入全稱量詞()\forall)以及存在量詞(\exists),得以量化實體和概念;更高階的,二階邏輯可以量化集合,三階邏輯可以量化集合的集合,以此類推 Z=Z = 如果鯨目中的一類北部有背鰭,那麼它是海豚科;X1=X_1 = 鯨魚有背鰭;X2=X_2 = 這種鯨魚屬於海豚科;Z=(X1X2Z = (X_1 \Rightarrow X_2) 利用簡單統一的方式描述知識,讓知識表示和知識推理分離,使得推理方法可以不依賴於具體領域 難以表示過程性知識和不確定性知識;當知識中的屬性、謂詞和命題數量增大時,推理過程因爲符號的組合爆炸問題,計算複雜度呈指數級增長趨勢
語義網絡 構建通過語義關係連接的有向圖知識網絡,將知識表示爲相互連接的點和邊的模式,節點表示實體、事件、值等,邊表示對象之間的語義關係;語義網絡中最基本的語義單元稱爲語義基元,用三元組形式表示,如<節點1,關係,節點2>;關係包括實例關係、分類關係、成員關係、包含關係、位置關係等 珊瑚是一種動物,記爲 <E1,R,E2><E_1,R,E_2>E1=E_1 = 珊瑚;E2=E_2 = 動物;R=R= 是一種 方便計算機的存儲和檢索 推理過程不如一階邏輯簡單明瞭,需要針對不同的關係做不同處理
框架 繼承人類認識世界的方式,以框架的結構存儲知識;每一個框架包含多個槽;例如<教師實例>{<姓名>{張三}, <年齡>{30}} 框架1:<教師>;槽1:<姓名>;槽2:<年齡>;槽3:<學校>;槽4:<院系> - 無法適應真實世界的多樣性和複雜性;不同系統之間的框架難以對齊
腳本 按時間順序描述事物的發生,表示的知識有確定的時間或因果順序 顧客去餐廳喫飯;第一場,進入餐廳;第二場,點餐;第三場,上菜進餐 能處理有一定時序關係的槽信息 對元素基本屬性的表述能力有限,也難以描述多變的事件可能的發展方向

2.2 資源描述框架(RDF)

資源描述框架 (Resource Description Framework) 是近年來絕大多數知識圖譜和知識庫遵從的知識表示方法,因其表達清晰、便於計算機檢索和存儲,1999 年由 W3C 發佈後逐漸成爲主流。RDF 歸屬於 語義網 體系中的第二個層次,在 XML 的基礎上進行擴展而成。其吸收了語義網絡基於三元組表示知識的特性,對關係進行一定約束,以保證框架下不同的知識庫能夠有效融合。RDF 下,對於二元知識 “馬克思·普朗克出生于丹麥基爾”表示爲:

            ~~~~~~~~~~~~ <馬克思·普朗克,出生於,丹麥基爾>

在應對二元以上的多元知識,例如 “馬克思·普朗克於 1858 年出生于丹麥基爾” 表示爲:

            ~~~~~~~~~~~~ <出生信息 135,人物,馬克思·普朗克>
            ~~~~~~~~~~~~ <出生信息 135,時間,1858 年>
            ~~~~~~~~~~~~ <出生信息 135,地點,丹麥基爾>

單單如此,RDF 很難對同一領域中的不同知識進行交互和融合,因此 RDF Schema (RDFs) 被提出用來定義領域相關的知識,關注類別和屬性的層次結構以及繼承關係,例如:

            ~~~~~~~~~~~~ <人物,rdf:type,rdf:Class>
            ~~~~~~~~~~~~ <國籍,rdf:type,rdf:Property>
            ~~~~~~~~~~~~ <國籍,rdfs:domain,人物>
            ~~~~~~~~~~~~ <國籍,rdfs:range,xsd:string>

除以上示例之外,還存在 rdfs:subClassOf 等其他表示層次結構的 schema 關係,詳細介紹可參見 RDFs 官網。爲更好地表示知識,許多研究人員將三元組擴充爲包含時間和空間信息的五元組、六元組或更高元的組合表示。

2.3 知識表示學習

在這裏插入圖片描述

深度學習成爲潮流後,各類表示學習模型層出不窮,針對知識圖譜中的三元組同樣衍生出衆多優秀的表示學習模型,該領域稱爲 知識圖譜嵌入 (Knowledge Graph Embedding) 或 知識表示學習 (Knowledge Representation Learning)。其目的在於通過特定的語義結構,將實體和關係嵌入到等維度的向量空間中 (關係有時候表示爲矩陣)。以 Trans 系列的 TransE 爲例,模型的學習目標是使得任意一個三元組 <E1,R,E2><E_1,R,E_2>,最終的向量表示滿足 ZE1+ZRZE2Z_{E_1}+Z_{R}\approx Z_{E_2}。知識表示學習能夠在知識圖譜內部發揮顯著作用,常用於知識融合和知識推理。劉知遠在《知識表示學習的研究與進展》中對該領域進行了深刻而細緻的總結。

3 知識體系

知識體系主要包括三個方面的核心內容:對概念的分類、概念屬性的描述以及概念之間相互關係的定義。知識體系的基本形態包括 詞彙 (Terms)、概念 (Concepts)、分類關係 (Taxonomic Relations)、非分類關係 (Non-Taxonomic Relations) 和 公理 (Axioms) 這五個不同層次。

3.1 人工構建知識體系

完全自動地構建知識體系,雖然是人們的終極目標,但是實踐證明目前還難以達到,特別是最後兩個層次的知識體系。人工構建知識體系主要分爲以下六個主要階段:

  1. 確定領域及任務:知識體系與具體的領域密切相關,例如金融領域和醫學領域涉及的概念完全不同。因此在創建知識體系之前,首先應該確定知識圖譜面向的領域。
  2. 體系複用:知識體系具有很強的抽象性和概括性,從零構建不僅成本高昂,而且質量難以保證。實際上可以先構建一個輕量級的知識體系,然後儘可能基於它們進行擴展。因此,真正進行構建之前,應當廣泛調研現有的第三方知識體系或與之相關的資源。
  3. 羅列元素:根據確定的領域,羅列期望在知識圖譜中出現的要素列表,主要包括概念、屬性以及關係。
  4. 確定分類體系:確定了相關要素之後,需要將其中表示概念的要素組織成層級結構的分類體系。例如,歌手是娛樂人物的下層類別,所有歌手都是娛樂人物。
  5. 定義屬性及關係:爲每個類別定義屬性及關係,用於描述概念的內在特徵。例如,人的出生日期。
  6. 定義約束:不同的屬性和關係具有不同的定義域和值域,利用此類數據對抽取的信息進行約束。例如,“年齡” 的值應該是正整數並小於 150 歲。

3.2 自動構建知識體系

上文中提到,目前無法做到完全自動地構建知識體系,因此目前主流的方式是通過自動和人工相結合的方法。

(1)  ~ 領域概念抽取

  • 抽取候選術語:利用自然語言處理工具對文本進行 詞法句法分析,然後利用語言學規則或模板在文本中抽取特定的字符串,並將字符串當作領域屬於的候選。該步驟的目的是儘可能多地將真正的術語包括進來,因此對抽取術語的質量沒有嚴格要求。

  • 術語過濾:對上一步抽取的候選術語進行過濾。領域術語與普通詞彙在語料中往往具有不同的統計特徵,例如普通詞彙無論在領域內還是領域外一般具有相似的分佈,而領域術語在領域內外的分佈會有明顯的區別。在實際操作中,可以利用 互信息 (Mutual Information)、TF-IDFRTF 等方法刻量候選術語的統計特徵,並給予這些值過濾低質量的候選術語。

  • 術語合併:術語中常常出現同義詞,例如電腦和計算機其實是同一種概念。代表性的術語合併策略分爲兩種,一種基於現有的詞典資源,例如 WordNetHowNet同義詞詞林 等;另一種基於機器學習,認爲同義詞應當具有相似的上下文語境,將大量語料投入 Word2Vec、ELMo、BERT 等預訓練模型進行訓練,獲取詞彙的向量表示並進行聚類,聚類結果即爲同義詞的識別結果。

(2)  ~ 分類體系的構建

與人工相同,分類體系的構建在於確認不同概念之間的繼承關係,語言學上稱爲 上下位關係。與術語合併類似,上下位關係的識別分爲基於詞典的方法和基於機器學習的方法,方式與前者基本一致。

(3)  ~ 概念屬性及關係抽取

以上步驟獲取了知識體系涉及的概念及概念間的分類關係,還需要爲概念定義屬性及關係。在實踐中,一般將關係也視作概念的屬性,採用統一的過程對它們進行抽取。方法與抽取概念的過程類似,首先利用詞法、句法分析等工具對文本進行預處理,並通過規則或模板的方法爲給定的概念獲取候選的屬性集合。

4 實體識別

命名實體識別 (Named Entity Recognition, NER) 旨在從非結構化的文本中抽取命名實體。命名實體大致可分爲三大類 (實體類、時間類、數字類) 及七小類 (人名、結構名、地名、時間、日期、貨幣和百分比)。不同領域的任務對命名實體類別粒度的需求不同,例如有些任務中只需要識別出一個實體是人,有的任務中需要識別出一個實體是教師、學生或者醫生。

有關命名實體識別已經大量研究,大致有兩種方法:基於規則基於機器學習,兩者可同時結合使用。前者準確率較高,接近人類的思考方式,但成本昂貴,規則的制定依賴領域專家,可移植性差。後者依賴大量人工標註數據,且對算力和存儲空間提出一定要求。在這裏我們主要介紹後者。

4.1 基於機器學習

研究歷史上出現過許多用於命名實體識別的機器學習模型,最終經受歷史考驗,至今仍然廣泛使用的代表是 條件隨機場 (Conditional Random Field, CRF)。CRF 是知名的圖概率模型之一,可以接受任何 1/0 取值形式的特徵,同時考慮節點的自身特徵以及節點與節點間的轉移特徵,對節點的標籤進行預測。應用在命名實體識別任務上的 CRF 通常指的是線性 CRF,應用於一階馬爾可夫鏈。條件隨機場下的概率分佈:
P(YX;λ,μ)=exp(i=1njλjtj(yi1,yi,x,i)+i=1nkμksk(yi,x,i))P(Y|X;\lambda,\mu)=\exp \Big( \sum_{i=1}^n\sum_j \lambda_j t_j(y_{i-1},y_i,x,i) +\sum_{i=1}^n\sum_k \mu_ks_k(y_i,x,i) \Big)

括號內前半部分對應節點的轉移特徵,後半部分對應狀態特徵,λ\lambdaμ\mu 爲各個特徵函數對應的參數,轉移特徵函數 tt 及狀態特徵函數 ss 取值皆爲 {1,0}\{1,0\}。訓練時採用 SGDL-BFGS 等優化算法最大化 PP,通過全局歸一化避免標記偏置問題;推理時採用 維特比算法 (Viterbi) 或 束優化 (Beam Search) 尋求最優轉移路徑。

出於條件隨機場優秀的特徵描述能力,使用者可以自由地定義各類二元特徵加入到模型的訓練中。因此命名實體任務多采用各類自然語言處理工具預先提取豐富的語法和句法信息作爲狀態特徵,例如 詞性標註句法分析語義角色標註 等,通過節點之間的特徵共現對既有的狀態特徵進行補充。

深度學習進入該領域後,提出另一種解決思路,使用編碼器編碼過後的語義向量代替原有的特徵函數和特徵參數,形成端到端的網絡進行訓練。這樣做的好處在於避免了大量人工設計特徵的環節,同時可以使用遷移學習將應用迅速落地。常見的一種架構在於使用 Word2Vec+biLSTM+CRF 的搭配。ELMoBERT 等大型預訓練模型問世後,預訓練語言模型逐漸代替 Word2Vec,成爲優質的語義向量提取器。BERT 甚至可以直接摒棄 CRF,通過預訓練加微調的方式包攬上下游任務,直接輸出序列標籤。

4.2 細粒度實體識別

在特定領域的命名實體任務中,傳統的三大類和七小類已無法滿足信息抽取的需要,因此有了 細粒度實體識別。例如人可以細分爲藝人、運動員、教師、工程師等。NELL 中包含了數百個人工預先定義的實體類別,Freebase 中更是高達上千種,兩個系統中的實體類別都在動態增加。

細粒度實體識別的難點在於標註數據的構建,基於人工的方式顯然很難滿足大規模語料的需求,一種常見的方式在於自動識別細粒度實體類別,利用 回標 的方法進行自動標註。常見的方法包括利用上下文 聚類 對提取的同類別實體進行無監督分類。這種方法標註速度快,但容易帶來噪音。

4.3 距離監督

英文名爲 Distant Supervision,自 2006 年首次提出後便廣泛應用於知識圖譜項目中,主要在於實體識別和關係抽取任務中。其目的在於充分利用既有知識庫的先驗知識,來爲本項目的各類任務提供信息支持。具體的應用體現在使用既有知識庫的模板對數據進行快速標註,如同 Open IE;另一方面,也可以通過在該知識庫下進行知識檢索,驗證抽取實體的可信度,常見的做法在於使用搜索引擎反饋的信息確認實體。

5 實體消歧

旨在於解決一詞多義的問題,實體消歧的方法分爲 實體鏈接 (Entity Linking) 和 實體聚類 (Entity Clustering) 兩種。

5.1 實體聚類

以聚類方式實現消歧的系統首先對每一個實體指稱項,抽取其特徵 (如上下文中的詞、實體、概念),並將其表示爲特徵向量,而後採用某種聚類算法對特徵向量進行聚類,使得聚類結果中每一個類別都對應到一個目標實體上。特徵向量的構建包括以下三種方式:

  • 基於表層特徵:最爲直接和簡單的方式是使用上下文構建 詞袋,在此基礎上延伸可使用 TF-IDF句法語義 特徵也可作爲向量的構建考量;有研究者預先訓練一個 最大熵模型 判斷兩個指稱項表示的是否是同一個實體,利用模型推理得出的概率值作爲相似度傳入 凝聚式合併算法 (Agglomerative Clustering Algorithm) 對指稱項進行聚類。
  • 基於擴展特徵:在表層特徵的基礎上,抽取人物的傳記屬性來擴展特徵,例如出生日期、出生地等。
  • 基於社會化網絡:完全依賴於抽取的上下文關係,而非表層特徵。依據上下文社會化關係爲每一個實體建立圖網絡,採用隨機遊走的算法計算實體之間的相似度;計算實體共現的方法也能達成識別的目的。

後兩種方式需要在關係抽取完成後進行。

5.2 實體鏈接

實體鏈接在於將實體指稱項鍊接到知識庫中的特定實體 (如果知識庫中不包含待消歧項,則將實體指稱項鍊接到空實體 NIL)。這裏也常常使用 距離監督 構建待鏈接實體列表,列表中同時包含了實體的描述、結構化信息、輔助性信息。由於待鏈接實體列表的長度可能高達上百萬,將實體指稱項與每一個實體一對一地匹配是不可能的,因此在鏈接前需要根據規則或知識先過濾掉大部分候選項。最行之有效的方法是使用現有的詞典,此外可以使用基於構詞法的模糊匹配算法,例如 Metaphone AlgorithmSoft TF-IDF。候選過後,通過爲每一位候選實體進行打分,將得分最高的實體作爲鏈接目標。打分的方法目前分爲四種:

  • 向量空間模型:主要基於實體指稱項上下文與目標實體上下文中特徵的共現信息來確定相似度,共現信息指的是基於 Term (通常爲詞,還可能包括概念、類別等) 組成的向量。

  • 主題一致性模型:使用上下文抽取的其他實體指稱項,組成實體指稱項集合,與目標實體進行一致性評斷。一致性的計算目前大部分採用目標實體與上下文中其他實體的加權語義關聯平均:
    Coherence(e,o)=eiOw(e,o)sr(e,ei)eiOw(e,o)Coherence(e,o)=\frac{\sum_{e_i\in O}w(e,o)sr(e,e_i)}{\sum_{e_i\in O}w(e,o)}w(e,o)=eiOsr(e,ei)Ow(e,o)=\frac{\sum_{e_i\in O}sr(e,e_i)}{|O|}其中,oo 是實體指稱項,OO 是實體指稱項上下文實體集合,sr(e,ei)sr(e,e_i) 是實體 ee 和實體 eie_i 之間的語義關聯值。

  • 協同實體鏈接模型:考慮全文中所有實體指稱項的關聯性。Kulkarni 等人提出的協同實體鏈接辦法將單篇文檔的協同實體鏈接看成是優化任務,目標函數如下:
    max1(So2)ssSor(ys,ys)+1SowTfs(ys)\max\frac{1}{\dbinom{|S_o|}{2}}\sum_{s\ne s' \in S_o}r(y_s,y_{s'})+\frac{1}{|S_o|}w^Tf_s(y_s)其中,ysy_s 指的是實體指稱項 ss 的目標實體,SoS_o 是單篇文檔內所有實體指稱項的集合,r(ys,ys)r(y_s,y_{s'}) 是目標實體之間的語義關聯,fs(ys)f_s(y_s) 是實體指稱項 ss 與其目標實體 ysy_s 的一致性打分。從公式可以看出,第一部分對單篇文檔內所有實體指稱項的目標實體之間的關係進行建模,第二部分對單篇文檔內實體指稱項與目標實體之間的一致性進行建模。突出的建模方法包括圖算法、動態規劃。

  • 基於神經網絡的模型:傳統方法的核心,在於實體與實體、實體與文本、文本與文本相似度的計算,特徵的抽取往往可擴展性較差,表示能力不足,從而造成誤差傳遞。基於深度學習的方法緩解了上述問題,做法在於通過預訓練獲得文檔和實體的語義表達,在該表達的基礎上計算點積或餘弦相似度完成匹配。多層自編碼器卷積神經網絡多粒度的卷積神經網絡 是常用的幾個模型。由於基於神經網絡的方法不需要人工設計複雜的特徵,易於捕獲深層語義,取得了比較好的性能,佔據了實體消歧的主導地位。

6 關係抽取

對於非結構化的文本,關係抽取可分爲 開放域 (open domain) 和 限定域 (domain-specific)。限定域關係抽取預先定義提取的關係類別,通常需要大量的訓練語料或語法規則;開放域則不限關係種類。本質上,關係抽取和實體抽取的過程相對類似,皆爲從非結構化文本中抽取詞組,因此本節將以相對簡略的方式進行概述。

6.1 限定域關係抽取

限定域關係抽取分爲以下幾種方法:

  • 基於模板:模板的獲取可通過人工定義或自動學習完成。自動學習的方法衍生出兩個問題:如何學習用於抽取關係的模板,以及如何將學習到的模板進行聚類。針對以上問題,已有的方法多采樣 自提升 (Bootstrapping) 策略,利用實體對在文本中獲取模板信息,再利用獲取到的模板抽取更多的實體對,進行聯合迭代式地交替抽取和學習。模板可以是基於詞彙的,也可以是基於句法或語義的。
  • 基於特徵工程:提取詞彙、句法、語義特徵後使用 SVM 等分類模型或 CRF 等序列標註模型進行訓練,通過在非結構化文本上進行分類推理提取關係。
  • 基於神經網絡:通過 Word2VecBERT 等大型預訓練模型獲取詞彙的分佈式表達,輸送給基於 RNN 或 Transformer 的神經網絡進行序列標註,抽取關係詞組。

爲應對以上方法對語料的大量需求,一些 弱監督學習方法 被應用於關係抽取,上文中提到的 距離監督 是其中的典型代表。

6.2 開放域關係抽取

開放域關係抽取同樣需要應用自然語言處理工具,從文本中提取詞彙、句法和語義特徵,通過序列標註模型實現關係抽取。但在此基礎上,需要引入 可信度 (confidence) 對抽取的三元組進行事實判定。可信度的計算可基於 距離監督,也可基於初始的 種子模板。由於開放域關係抽取抽取到的關係難以自動形成知識體系,映射至知識圖譜中,因而基於限定域的關係抽取是目前的主流方向。

7 知識融合

融合異構的知識圖譜,使其提供更全面的知識信息,重要性是毋庸置疑的。

7.1 框架匹配

依據使用技術的不同,框架匹配可以分爲 元素級匹配結構級匹配。元素級匹配獨立判斷兩個知識圖譜中的元素是否應該匹配,不考慮其他元素的匹配情況。結構級匹配利用知識圖譜的結構,在元素匹配過程中考慮其他相關元素匹配情況。

(1)  ~ 元素級匹配

最基本的方法基於字符串匹配,將字符串看作字母的精確序列、字母的集合、單詞集等。字符串越相似,則它們越有可能表示相同的概念。實際應用中,廣泛採用的匹配方法包括 前綴距離後綴距離編輯距離 以及 n元語法距離 等。爲解決以上方法匹配過程中的一詞多義和一義多詞問題,引入基於語言學的技術可以更好地計算元素之間的關聯性,例如 同義詞反義詞形態變體語法變體同一詞根上詞彙形式和功能的變化語法結構的變化 等。同時,還能使用元素的取值範圍、關係的對稱性加強匹配程度,稱爲 基於約束 的匹配。上文中反覆提到的 詞典,也可以用於元素之間的匹配。

(2)  ~ 結構級匹配

結構級匹配的假設是,相似的概念具有相似的概念結構。基於結構的匹配技術主要有三種:基於圖的技術基於分類體系的技術基於統計分析的技術。基於圖的技術通過尋求最大公共子圖實現匹配,通常計算量很大,一般採用 EMLabel Propagation 等迭代算法近似求解。基於分類體系的技術是基於圖的技術的擴展,只關注諸如類型和子父類的特殊關係。基於統計分析的技術在已有樣本的基礎上對概念、屬性、實例、關係等對象進行分組,從而計算它們之間的距離,典型的技術包括 形式概念分析基於距離的分類相關性分析 以及 頻度分佈

7.2 實體對齊

傳統的實體對齊方式分爲 成對實體對齊協同實體對齊 兩種。成對實體對齊獨立地判斷兩實體是否對應同一物理現象,通過匹配實體屬性等特徵判斷它們的對齊程度。協同實體對齊認爲不同實體間的對齊是相互影響的,通過協調不同對象間的匹配情況得以達到一個全局最優的對齊結果。

知識表示學習 同樣可應用於實體對齊,通過知識庫聯合表示學習,將知識映射至同一個向量空間裏,通過計算向量相似度實現實體對齊。這種方法不依賴於人工設定的規則和特徵,可以非常容易地遷移到不同語言、不同領域地知識庫對齊任務中。例如,給定兩個知識庫,通過簡單的字符串匹配方法產生種子對,使用 TransE 對實體和關係進行表徵訓練,訓練目的是使得種子對中的兩個實體的向量儘量相似。

7.3 衝突檢測與消解

不同知識庫對同一知識的表達可能會衝突,例如明星的身高,對沖突的檢測和消解是知識融合的重要步驟。衝突消解技術上可分爲兩類:基於投票基於質量估計。基於投票的方法如其名,基於質量估計的方法考慮不同知識來源的可信度,最終選擇較高質量的結果,例如根據 HITSPageRank 算法計算不同數據來源的可信度。

8 知識存儲

8.1 存儲形式

知識圖譜的存儲形式通常爲以下三種:

  • 三元組表:直接對 RDF 事實三元組進行存儲,簡單直接,易於理解。但整個知識圖譜存儲在一張大表裏無疑十分低效,查詢、插入、刪除和修改等操作的開銷過大。代表產品包括 JenaOracleSesame3storeSORRstarVirtuoso
  • 類型表:爲每種類型構建一張表,同一類型的實例存放在相同的表中,表中每一列代表一種屬性,每一行代表一個實例,表與表之間的指針代表了繼承關係。這樣的類型表通常由關係型數據庫進行存儲,雖彌補了三元組表的不足,但容易造成大量空值。知名的關係型數據庫包括 MySQLDB2OracleMicrosoft SQL ServerPostgreSQL 等。
  • :將每一個實體認作節點,關係認作節點的屬性指向另一個實體,以圖結構的形式將知識圖譜存儲在數據庫中。這樣的結構有利於知識的查詢和推理,也有利於實施圖相關的算法。常用的圖數據庫包括 Neo4jOrientDBInfoGridHyperGraphDBInfiniteGraph 等。

8.2 圖數據庫

基於圖結構的存儲存在諸多優勢,因而成爲目前的主流,下面對各類圖數據庫進行詳細介紹:

  • Neo4j:開源的圖數據庫系統,基於 Java 實現,是一個具備完全事務特性的高性能數據庫,具有成熟數據庫的所有特性。Neo4j 是一個本地數據庫 (又稱基於文件的數據庫),這意味着不需要啓動數據庫服務器,應用程序不用通過網絡訪問數據庫服務,而是直接在本地對其進行操作,因此訪問速度快。因其開源、高性能、輕量級等優勢,Neo4j 受到越來越多的關注。
  • OrientDB:開源文檔 - 圖數據庫系統,兼具圖數據庫對數據強大的表示及組織能力以及文檔數據庫的靈活性和很好的可擴展性。OrientDB 具有多種模式可選,包括全模式、無模式和混合模式。全模式要求數據庫中的所有類別都必須有嚴格的模式,所有字段都強制約束;無模式則相反,不需要爲類別定義模式,存儲的數據記錄可以有任何字段;混合模式則允許爲類別定義若干字段,同時支持自定義字段。該數據庫同樣是本地的,支持許多數據庫的高級特性,如事務、快速索引、SQL 查詢等。
  • InfoGrid:開源的互聯網圖數據庫,提供了很多額外的組件,可以很方便地構建基於圖結構的網絡應用。InfoGrid 實際上是一個 Java 語言的開源項目集,其中 InfoGrid 圖數據庫項目是其核心,其他的項目包括 InfoGrid 存儲項目、InfoGrid 用戶接口項目等。
  • HyperGraphDB:同樣是開源的存儲系統,依託於 BerkeleyDB 數據庫。和上述圖數據庫相比,HyperGraphDB 最大的特點在於 “超圖”,一條邊可以指向多個節點。實際上,HyperGraphDB 的邊還可以指向其他邊。如此以來具有更強大的表示能力。
  • InfiniteGraph:基於 Java 語言開發的圖數據庫系統,是一個分佈式數據庫系統。和 MySQL 等傳統關係數據庫類似,InfiniteGraph 需要作爲服務項目進行安裝,應用程序只能通過訪問數據庫服務對數據庫進行操作。InfiniteGraph 借鑑了面向對象的概念,將圖中的每個節點及邊看作一個對象。具體地說,所有的節點都繼承自基類 BaseVertex,所有的邊都繼承自基類 BaseEdge。

9 知識推理

作爲知識圖譜生態鏈中的重要環節,知識推理既可用於 知識補全,也可服務於 知識問答。例如我們希望在知道 “廊坊在河北省”、“河北省在中國華北” 的同時,能夠推理出 “廊坊位於中國華北”。當前主流的知識推理方法主要分爲以下三種:

  • 基於概率或邏輯:儘管人爲構造的推理規則能獲得極高的準確度,但這樣的方法可移植性較差,且在應對大型知識圖譜時無能爲力,因而如何從既有的知識體系中自動地挖掘出可信度較高的關係路徑是當下的主要難題。傳統的推理策略採用 計數最大化後驗概率 等統計學習的方法生成規則路徑。按照推理中特徵的模式和來源,可分爲 概率圖模型概率邏輯推理關聯規則挖掘。概率圖模型的代表有基於有向圖的 貝葉斯網絡 (Bayesian Network) 和基於無向圖的 馬爾可夫網絡 (Markov Network),以及在此基礎上衍生出的一派優秀的推理模型,例如 基於馬爾可夫性的蒙特卡洛採樣 (MCMC) 和 Metropolis Hasting 算法,可參考《概率圖模型:原理與技術》。概率邏輯推理將概率圖模型與一階邏輯相結合,如 馬爾可夫邏輯網 (Markov Logic Network),爲每一條邏輯規則附加權重,通過訓練調整權重大小。關聯規則挖掘則不同於前兩者,沒有嚴格的邏輯定義,將邏輯規則作爲具有結構的特徵,利用數理統計的方式評估特徵的支持度、置信度或其他預定義的統計量,通過將統計數據作爲特徵值加入到最終的統計模型中進行推理。

  • 基於知識表示學習:在將知識圖譜中的實體和關係表示爲等維度的向量後,可通過相加相減和矩陣相乘等數值運算的方式獲得推理後的隱性語義表示,將其與目標實體或目標關係向量進行距離運算後判斷推理關係。基於知識表示學習的推理方法解決了維度災難和數據稀疏的問題,神經網絡彈性的超參數設定使得該方法能同時應用於大型和小型知識圖譜,是目前表現最爲穩定的方法。ConvEDistMul 是其中的優秀代表。

近年來一種基於強化學習的新思路被應用於知識推理,但由於強化學習本身表現不穩定,狀態和獎勵函數難以設定,未能大規模勝過當下的主流方法。

10 知識問答與對話

廣義而言,問答可依據底層支持的數據庫分爲四種:知識圖譜問答文本問答表格問答 以及 社區問答。其中文本問答通常又稱爲 閱讀理解 (Reading Comprehension),旨在從非結構化文本中直接獲取答案。而我們在此討論的即爲知識圖譜問答,常作爲搜索引擎和對話機器人的後臺程序作爲技術支撐。知識圖譜問答在流程上通常分爲以下幾步:

  1. 語義解析:將 query 轉換爲邏輯表示式。知名的語義表示模型包括 組合範疇語法 (Combinatory Categorial Grammers, CCG)、一階謂詞邏輯 (First-Order Predicate Logic) 和 lambda 演算 等。
  2. 實體鏈接:將邏輯表達式中的實體和關係與知識圖譜進行對齊。
  3. 知識推理:當既有知識庫無法滿足邏輯表達式下的答案抽取需求時,通過知識推理獲取目標答案。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章