乾貨 | 初學者入門必看的「知識圖譜」解讀(上)

  • 2019 年 10 月 4 日
  • 筆記

本文為 AI 研習社社區用戶 @鄒佳敏 的部落格文章,其知乎專欄為:AI的怎怎,歪歪不喜歡。歡迎掃描底部社區名片訪問 @鄒佳敏 的主頁,查看更多內容。

本系列參考了市面上已知的,幾乎全部「知識圖譜」相關文章,並總結提煉出一套適合初學者入門的「知識圖譜」的知識體系,希望大家能有所收穫。

一,知識圖譜—盲人摸象

大家都說,自己在做知識圖譜,但從不同人分享的PPT來看,講述的重點都不一樣,那知識圖譜到底是什麼?

二,語義網路 vs. 語義網

1,語義網路(Semantic Network)

Quillian在1968年提出的知識表達模式,其用相互連接的節點和邊來表示知識。完全由用戶自定義,無任何標準和規範,難以用於實踐。

2,語義網(Semantic Web)

Tim.Lee在1998年提出的一個新概念,描述互聯網中資源和數據之間的關係,使得互聯網上的數據變得機器可讀。常被用來指代一整套技術棧框架。

即,語義網是比語義網路更高級的概念,它提供了一整套規範和技術棧來解決實際問題。

三,語義網的技術棧

1,技術棧簡介

(1)編碼方式(UNICODE),資源標識符(URI):數據的編碼方式和表示方式 (2)數據序列化方法(Syntax):數據的序列化方法,包括但不僅限於XML,N-Triples,Turtle,Json-LD (3)數據描述框架(RDF):數據模型,表示知識的一種方法和手段 (4)RDFs/OWL:工業標準,使用預定義的辭彙,對RDF進行類和屬性定義,即,Schema (5)RIF/SWRL:推理規則(Rule),使用預定義的規範,使基於RDFs和OWL描述的RDF數據,具有推理能力 (6)SPARSQL:基於RDF+(RDFs/OWL: optional)的查詢語言 (7)其他:Cryptography + Logic + Proof + Trust:中間層概念,決定應用層如何確定數據的可靠,精確和值得信賴

2,技術棧詳解

  • (1), URI和字面量

URI:類似URL,使用全局唯一的標識符來表示知識中的不同元素。比如,

http://www.kg.com/person/1: 表示人物(person)概念中id=1的某個人,

http://www.kg.com/ontology/fullName: 表示屬性(ontology)中的fullName屬性,

http://www.kg.com/ontology/hasBirthPlace: 表示屬性(ontology)中的在"哪兒出生(hasBirthPlace)"的關係。

其中:http://www.kg.com是圖譜id

字面量:"1976-09-18"^{}^{}date: 表示date類型的值

  • (2),RDF

一個用URI和字面量表示的三元組數據模型,即,任何知識都可以通過(subject, predicate, object)來拆解。

其中,subject和predicate只能是URI,而obeject可以是URI或字面量。當object是URI時,表示(實體,對象屬性,實體),簡稱關係;當object是字面量時,表示(實體,數據屬性,值),簡稱屬性。

  • (3),XML-Syntax

RDF本質上只定義了知識的表示規範,但不同實現對應不同的序列化方法。類似,UNICODE是規範,UTF8,UTF16或UTF32是實現方式。

即,XML:基於XML的RDF表示;Json-LD:基於Json的RDF表示;N-Triples:基於三元組的RDF表示等等。比如,N-Triples的表示:

(3).1, (實體,關係屬性,實體): <http://www.kg.com/person/1> <http://www.kg.com/ontology/hasBirthPlace> <http://www.kg.com/place/10086>.

(3).2, (實體,數據屬性,值): <http://www.kg.com/person/1> <http://www.kg.com/ontology/fullName> "想飛的貓"^{}^{}string.

即,XML-Syntax可以理解為RDF的落地物理數據,類似存儲在MySQL中某一行的數據

  • (4),RDFs/OWL

用概念(Class),對象屬性(Object Property)和數據屬性(Data Property)來分別表示實體,關係和數據。

比如,定義,Person表示"人物"概念,hasChild表示"父母"的對象屬性,fullName表示"全名"的數據屬性。

即,(RDFs/OWL)可以理解為RDF的業務欄位定義,類似MySQL中對每個欄位的定義:欄位名,類型等,使RDF具有了真正的語義含義。

  • (5),RIF/SWRL

依附於OWL,它們是集成在OWL上,對概念和屬性的約束和限定。它使OWL從此具備了語義推理能力,比如:

(5).1, A rdfs:subProperty B -> A是B的子屬性,比如,A是對象屬性"hasSon",B是對象屬性"hasChild";

(5).2, A owl:TransitiveProperty -> A屬性具有傳遞性,比如,A是對象屬性「位於」;

(5).3, A owl:inverseOf B -> A屬性與B屬性具有相反性,比如,A是對象屬性「父母」, B是對象屬性子女;

(5).4,A owl:equivalentClass B -> 在融合不同的語義網時,如果2個網路都基於OWL,可以直接限定本體映射。比如,網路1用A(Human)表示人物,網路2用B(Person)表示人物。

  • (6),SPARQL

查詢RDF數據模型的語言,基於(實體,對象屬性,實體)和(實體,數據屬性,值)的限定,匹配查詢數據結果。

SELECT ?n WHERE {   ?s rdf:type :Person.   ?s :personName '周星馳'.   ?s :hasActedIn ?o.   ?o :movieTitle ?n  }

四,語義網的推理能力

使用語義網的推理能力,可以豐富和擴展不完備的缺失數據,甚至識別並判定錯誤關係或錯誤屬性。

1,基於本體的推理:

RDFs/OWL是本體描述語言,所以,它們本身對概念和屬性的約束和限定就構成了W3C規範里,自帶的推理能力。比如:

2,基於規則的推理

用戶自定義規則,使用第3方工具(Jena),基於已定義好的RDFs/OWL文件,根據業務需求,指定新的概念和屬性,比如:

(1), ruleComedian:

(?p :hasActedIn ?m) (?m :hasGenre ?g) (?g :genreName '喜劇') -> (?p rdf:type :Comedian)

(2), ruleTranstive:

(?p :isLocated ?m) (?m :isLocated ?n) -> (?p :isLocated ?n)

3,基於學習的推理

基於語義網,使用機器/深度學習方法,自動發現普通人難以發掘的新的概念或屬性,作為其他推理能力的擴充。比如: 圖嵌入