01 知識圖譜概論

最小森林發表於2020-04-07

image

01 知識圖譜概論

本文是王昊奮老師《知識圖譜》系列筆記第1篇。

1 知識圖譜與語義技術概覽

本次課程主要從三個方面來介紹:

  • 1.1 知識圖譜的概念演化(重點:理解相關概念、做到不混淆)
  • 1.2 常見的知識庫
  • 1.3 知識圖譜技術體系(對相關技術有所印象,後面分章講解)

1.1 知識圖譜的概念演化

知識圖譜(Knowledge Graph, KG)的概念演化可以用下面這幅圖來概括:

image

1.1.1 語義網路(Semantic Networks)
1.1.2 本體論(Ontology)
1.1.3 全球資訊網 Web
1.1.4 語義網(THe Semantic Web)
1.1.5 連結資料(LInked Data)
1.1.6 知識圖譜(Knowledge Graphs)

這幾個概念是知識圖譜的起源和發展,為了打好更牢固的基礎,下面通過時間順序,分別理解這六個概念。

1.1.1 語義網路(Semantic Networks)

對於初學者來講,語義網路這個概念很容易和語義網(Semantic Web)相混淆。為了行文一致,除非特別說明,語義網路指Semantic Network,語義網指Semantic Web。

語義網路是由Quillian於上世紀60年代提出的知識表達模式,其用相互連線的節點和邊來表示知識。節點表示物件、概念,邊表示節點之間的關係。

image

語義網路的優點

  1. 容易理解和展示。

  2. 相關概念容易聚類。

語義網路的缺點

  1. 節點和邊的值沒有標準,完全是由使用者自己定義。

  2. 多源資料融合比較困難,因為沒有標準。

  3. 無法區分概念節點和物件節點。

  4. 無法對節點和邊的標籤(label,我理解是schema層,後面會介紹)進行定義。

簡而言之:語義網路可以比較容易地讓我們理解語義和語義關係。其表達形式簡單直白,符合自然。然而,由於缺少標準,其比較難應用於實踐。

1.1.2 本體論(Ontology)

1980s出現了本體論(Ontology),該本體是由哲學概念引入到人工智慧領域的,用來刻畫知識。

本體、知識庫、知識圖譜之間的關係?

從抽象層面看,本體最抽象,其次是知識庫,最後才是知識圖譜。

舉個例子,如果我們要做圖書領域的知識庫或者知識圖譜,首先要對圖書進行分類,這個分類就是本體,比如說,圖書分為計算機類和電子類,計算機類有分為網路、人工智慧;

有了這個分類後,我們就可以把圖書都分到每個類別,比如說《Zero to One》是一本進口原版書,然後這本書有各種屬性-屬性值,比如說書的作者是Peter Thiel,這些資料就構成了一個圖書知識圖譜,而這裡分類知識圖譜加在一起可以看成是一個圖書知識庫

1.1.3 全球資訊網 Web

在1989年Time Berners-Lee發明了全球資訊網,實現了文字間的連結。

單純是文字 網頁之間的指向連線,沒有語義。

在全球資訊網誕生之初,網路上的內容只是人類可讀,而計算機無法理解和處理。比如,我們瀏覽一個網頁,我們能夠輕鬆理解網頁上面的內容,而計算機只知道這是一個網頁。網頁裡面有圖片,有連結,但是計算機並不知道圖片是關於什麼的,也不清楚連結指向的頁面和當前頁面有何關係。

1.1.4 語義網(THe Semantic Web)

在全球資訊網誕生之初,計算機只知道這是一連結,但是計算機並不知道連結指向的頁面和當前頁面有何關係。

語義網正是為了使得網路上的資料變得機器可讀而提出的一個通用框架。

1998年語義網(THe Semantic Web)被提出,它從超文字連結到語義連結

Semantic”就是用更豐富的方式來表達資料背後的含義,讓機器能夠理解資料。

Web”則是希望這些資料相互連結,組成一個龐大的資訊網路,正如網際網路中相互連結的網頁,只不過基本單位變為粒度更小的資料,如下圖。

1.1.5 連結資料(LInked Data)

2006年Tim突出強調語義網的本質是要建立開放資料之間的連結,即連結資料(LInked Data)。

連結資料起初是用於定義如何利用語義網技術在網上釋出資料,其強調在不同的資料集間建立連結。

連結資料也被當做是語義網技術一個更簡潔,簡單的描述。

當它指語義網技術時,它更強調“Web”,弱化了“Semantic”的部分。

對應到語義網技術棧,它傾向於使用RDF和SPARQL(RDF查詢語言)技術,對於Schema層的技術,RDFS或者OWL,則很少使用。

連結資料應該是最接近知識圖譜的一個概念,從某種角度說,知識圖譜是對連結資料這個概念的進一步包裝。

1.1.6 知識圖譜(Knowledge Graphs)

2012年穀歌提出知識圖譜(Knowledge Graphs) 重點關注 節點和屬性

知識圖譜是由一些相互連線的實體和它們的屬性構成的。最簡單情況下它長這樣:

image

1.2 常見的知識庫

  1. 英文知識庫
  • CYC常識資料庫(鳥會飛,狗會跑)
  • wordnet:詞典知識庫(China 是中國、瓷器)
  • conceptnet(常識common sense資料庫)三元組形式
  • freebase:免費開源的,倒閉了。
  • wikidata:眾包的、免費的、最大的、谷歌的
  • DBPedia:資料庫版(規則版)的維基百科
  • YAGO:把維基百科與wordnet概念融合,概念設計更好。
  • babelnet:多語言的知識庫
  • nell:卡內每基隆大學的,從web自動抽取的。永不停息,並不斷驗證自己。
  • concept graph:微軟的,把一個名詞進行擴充套件,可以用來消除歧義。
  1. 中文知識庫:
  • zhishi.me :把百度百科和互動百科和維基百科 進行了融合。
  • cnSchema:開方的中文版 Schema.org

我們將知識圖譜分成兩大類,一類叫 Common Sense Knowledge Graph(常識知識圖譜),另外一類叫Encyclopedia Knowledge Graph(百科全書知識圖譜)。這兩類知識圖譜有很明顯的區別。

  • 針對 Common Sense Knowledge Graph,
  1. 針對 Common Sense Knowledge Graph,通常而言我們會挖掘這些詞之間的 linguistic knowledge;
  2. 對於 Common Sense Knowledge Graph,一般而言我們比較在乎的 relation 包括 isA relation,isPropertyOf relation。
  3. 對於Common Sense Knowledge Graph 通常帶有一定概率,
  4. Common Sense Knowledge Graph 比較有代表性的工作包括 WordNet、KnowItAll、NELL,以及 Microsoft Concept Graph。
  • 對於 Encyclopedia Knowledge Graph
  1. 對於 Encyclopedia Knowledge Graph,我們通常會在乎它的 Entities,和這些 Entities 之間的 Facts。
  2. 對於 Encyclopedia Knowledge Graph,通常我們會預定義一些謂詞,比如說DayOfbirth,LocatedIn,SpouseOf。
  3. Encyclopedia Knowledge Graph 通常非黑即白,那麼構建這種知識圖譜的時候我們在乎的是 Precision(準確率)。
  4. 而 Encyclopedia Knowledge Graph 則有 Freepase、Yago、Google Knowledge Graph,以及正在構建中的“美團大腦”。

1.3 知識圖譜技術體系

1.3.1 知識表示

知識表示研究怎麼利用計算機符號來表示人腦中的知識,以及怎麼通過符號之間的運算來模擬人腦的推理過程。

知識表示的演化過程,其中最主要根本的變化是從基於數理邏輯的知識表示過渡到基於向量空間學習的分散式知識表示。

下圖給出官方推薦的語義網知識表示框架:
image

其中最底層的是URI/IRI是網路連結,其上是XML和RDF為資源表示框架。

SPARQL是知識查詢語言。

被藍色部分覆蓋的是推理模組,它包含了如RDFS和OWL這樣的支援推理的表示框架

。在往上就是trust和interaction部分(推理之類)。

1.3.1.1 RDF

RDF(Resource Description Framework)即資源描述框架,是W3C制定的。用於描述實體/資源的標準資料模型。在知識圖譜中,我們用RDF形式化地表示三元關係。(Subject, predicate, object)。例如:

image

1.3.1.2 RDFs

RDFS(RDF schema)在RDF的基礎上定義了一些固定的關鍵詞如:Class,subClassOf,type, Property, subPropertyOf, Domain, Range以及多了Schema層。它的表示為:

image

1.3.1.3 OWL

OWL(Web Ontology Language), 這個本體就是從哲學那面借鑑來的。OWL在RDF的基礎上擴充了Schema層(比如什麼是金融企業,什麼是企業,什麼是公司),使它支援推理等操作。如:

image

媽媽類是 父母類 與 婦女類 的交集。 祖父是 父親的父親

1.3.1.4 SPARQL

SPARQL是RDF的查詢語言,它基於RDF資料模型,可以對不同的資料集撰寫複雜的連線,由所有主流的圖資料庫支援,後面專門講到資料儲存的時候會講到。其操作如:

image

類似與子圖匹配。

1.3.1.5 JSON-LD

JSON for Linking Data: 適用於作為程式之間做資料交換,在網頁中嵌入語義資料和Restful Web Service。儲存格式如:

image

1.3.1.6 知識圖譜的分散式表示–KG Embedding

其實看到 Embedding這個詞我們就知道,它是一個向量嵌入。詳細來說就是在保留語義的同時,將知識圖譜中的實體和關係對映到連續的稠密的低維向量空間。

image

1.3.2 知識抽取

知識抽取是一個結合NLP和KR的工作,它的目標是抽取KR用的三元組、多元關係、模態知識等。具體流程如下:

image

  1. 首先從網路上獲取大量的各種非結構化的文字資料,經過文字預處理後得到乾淨的文字資料。
  2. 而後藉助機器學習相關程式對文字進行分詞、詞性標註、詞法解析、依存分析等工作,此時詞法及句法層次的分析結束,
  3. 接下來對該文字進行NER和實體連結工作,為關係抽取和時間抽取做準備,
  4. 最終形成KR用的三元組、多元關係、模態知識等構成知識圖譜。

知識抽取的方法:

  1. 知識工程:
    1. 正規表示式
    2. 模版匹配:bootstrap:從種子資料中學習patterns,再利用其去抽取更多的資料。
    3. 規則約束:POS、NER約束
  2. 基於本體的抽取:
    1. 知識挖掘(推理):
      1. PRA基於圖的抽取
      2. transE基於向量的抽取
  3. 基於模型的抽取:SVM、CRF、LSTM

1.3.3 知識儲存

主要有兩類:(1)基於關聯式資料庫的儲存;(2)基於原生圖的儲存。

1.3.4 知識問答

知識問答(Knowledge-Based Question Answering, KBQA)是基於知識庫的問題回答,它以直接而準確的方式回答使用者自然語言提問的自動問答系統,它將構成下一代搜尋引擎的基本形態。

如搜尋姚明的身高,就可以給出226cm的回答。其實現流程為:

image

1.3.5 知識推理

簡單而言,推理就是指基於已知事實推出未知的事實的計算過程。

按照解決方法分類可分為:基於描述邏輯的推理、基於規則挖掘的推理、基於概率邏輯的推理、基於表示學習與神經網路的推理。

按照推理型別分類可分為:預設推理、連續變化推理、空間推理、因果關係推理等等。

1.3.6 知識融合

實體融合(Knowledge Fusion),也叫資料連線(Data Linking)等,目的是在不同的資料集中找出一個實體的描述記錄,主要目的是對不同的資料來源中的實體進行整合,形成更加全面的實體資訊。典型的工具為Dedupe(一個基於python的工具包)和LIMES(設定閾值之後根據圖資料庫 合併)。

1.3.7 知識眾包

允許各網站基於一定的方式如RDFa、JASON-LD等方式在網頁和郵件等資料來源中嵌入語義化資料,讓個人和企業定製自己的知識圖譜資訊。

相關文章