【知識圖譜】知識表示:知識圖譜如何表示結構化的知識?
- 2019 年 11 月 26 日
- 筆記
互聯網時代,人類在與自然和社會的交互中生產了異常龐大的數據,這些數據中包含了大量描述自然界和人類社會客觀規律有用資訊。如何將這些資訊有效組織起來,進行結構化的存儲,就是知識圖譜的內容。
那麼,在知識圖譜中以什麼樣的形式對現實世界中的知識進行表示與存儲呢?本編介紹知識圖譜中的知識表示,以回答上面的問題。
作者&編輯 | 小Dream哥
1 什麼是知識表示
知識表示是知識圖譜中非常重要的概念,知識表示之於知識圖譜的重要性,就好比內功心法之於絕世武功的重要性。比如在英雄大會中,楊過一開始只練了打狗棒法的招數,用他小半調子的打狗棒法無法打贏金輪法王的徒弟霍都,當黃蓉跟他透露了打狗棒法的心法之後,瞬間就擊退了敵人。
知識圖譜中的知識表示也是如此,例如,要對所存儲的知識進行應用,其中最關鍵的就是要能夠進行知識的推理,而知識的表示形式和手段決定了知識推理的形式和難度;此外,知識表示的形式也決定了知識獲取的形式和難度。可見,一種合適的知識表示方法對知識圖譜的構建至關重要。
所以,我們在學習知識圖譜這個絕世武功之時,也需要熟悉它的內功心法,知識表示。
那麼,什麼是知識表示呢?筆者認為可以從如下兩個方面理解什麼是知識表示:
1.知識表示表示了什麼?
知識表示表示的是人類關於外部世界的結論,這些結論應該是無需實踐,僅僅通過思考和推理就可以得到。這樣說,可能還有一些抽象,簡單的理解,知識表示表示的就是人類世界的一些經驗、事實、思想等。例如,物理課本上的各種概念和定理;今年中國娛樂圈發生的各種狗血事件;馬克思主義中國化的各種具體論述和歷史經驗等。
2.如何對人類世界的經驗進行表示?
也就是知識表示的具體手段和形式。具體的手段和形式,在後面介紹具體知識表示方法大家就會清楚,這裡先介紹所有知識表示的方法所應該具有的特點。
知識表示通常由大量的本體論約定的概念和實體組成,通過某一種有效的方式組織起來,使得知識系統能夠得以搭建並支援高效的知識推理,方便人們表達和分享對世界的認知。
那麼,到底有哪些知識表示的方法呢?現在流行的知識圖譜採用的是哪一套知識表示的方法呢?下面來進行介紹。
2 知識表示的方法
知識圖譜,或者說知識系統的研究其實由來已久。在很早的時候,不管是人工智慧的研究者還是互聯網的工程師們,都試圖建立完善的知識系統,以便更好的應用人類的知識成果。所以,知識表示的研究也由來已久,包括邏輯表示法、語義網路、框架表示法、腳本表示法、基於語義網的知識描述體系等。
限於篇幅,本文介紹比較重要的語義網路,框架表示法以及基於語義網的知識描述體系。
1)語義網路
語義網路是Quillan M Ross1966年在研究人類聯想記憶時提出的一種心理學模型。總的來說,語義網路是一種由有向圖表示的知識系統,它將知識表示為相互連接的點和邊,節點代表概念,邊則代表概念之間的語義關係。
語義網路中最基本的單元稱為語義基元,可以用我們熟悉的三元組表示:<節點1,關係,節點2>,例如,通過語義網路,可以把「香港坐落於中國南部」表示為下圖中的三元組形式:<香港,坐落於,中國南部>

當然,語義網路中的關係可以有很多種,例如實例關係,分類關係,成員關係等。語義網路就是由大量的實體以及他們之間的關係構成,語義網路通過這樣一種的簡單的方式描述現實世界中所有的知識。他的優點是便於電腦的存儲和檢索,缺點是推理過程較複雜,也不完善,需要對不同的關係做不同的處理。
此外,需要注意的是在語義網路中,並沒有對節點和邊進行標準的定義,也就是完全用戶自定義的。沒有標準,一方面,會增加知識分享的難度;另一方面,知識描述和知識實例難以分隔。
建立於1988年的知網(Hownet)是一個典型的語義網路,它由董振東教授建立,感興趣的同學可以關注下。董振東教授認為知識庫或者知識圖譜的構建應該首先由知識工程師設計好完備的知識框架,再由相關領域的專家填充領域知識,是一種典型的自頂向下的構建模式。
2)知識框架表示法
知識框架表示法是人工智慧學者Minsky在1975年提出來的。所謂知識框架法,就是通過模仿人類認識世界的模式,將現實世界中的事物根據具體的情況抽象成一定的框架,框架中定義了這個事物應該或者可能具有屬性,也被稱為槽(slot)。
舉個具體的例子大家就明白了,如下圖所示,通過框架表示法來表示「電腦主機」,它總共有6個屬性,也就是槽,包括「主機名稱」,「生產廠商」等。"聯想主機"是「電腦主機」這個概念的一個示例,分別對各個屬性的值進行了填充。

有編程經驗的同學應該很快就能理解框架表示法。它跟面向對象的編程的思想如出一轍,都是對現實世界的模仿。面向對象的編程里的類就是框架表示法里定義的框架;面向對象的編程里的類屬性對應框架表示法里的槽;面向對象的編程里的對象對應框架表示法里的具體實例。
框架表示法的優點在於其強大的結構表達能力和接近人類的思維過程;其缺點在於,面對現實世界的複雜性和多樣性,框架體系設計的難度太大;另一方面,不同框架系統之間的框架很難對齊,難以建立一個統一的標準;此外,基於框架體系的思想,很難實現知識體系的自動化構建。
一個比較有名的基於框架的知識庫叫FrameNet,感興趣的同學可以關注了解。
3)語義網中的知識表示法
首先要說的是,這裡的語義網與上面的語義網路是完全不同的概念。語義網的概念來源於互聯網,人們期望互聯網能夠更為有效的組織資訊,使得互聯網內豐富的資源得到充分的利用,而不是像現在這樣,互聯網中的資訊僅僅通過薄弱的結構組織起來。因此,語義網也叫Web3.0。
那麼,在語義網中,如何實現知識的表示的呢?目前,語義網中存在三種知識描述體系,包括XML,RDF和OWL,他們定義了互聯網中知識表示的形式。
1.XML
全稱是可擴展標記語言(eXtensible Markup Language),是最早的語義網路標記語言。XML是從網頁標籤式語言向語義表達語言的一次飛躍。XML源於HTML,相比於HTML,XML可擴展性更強,結構性更強。因此,在語義網路中得以應用。在語義網路中,XML標籤不再僅僅是網頁格式的標誌,而是含有自身的語義。
如下圖所示,是一個用XML表示「影星」這個概念的例子,它定義了「名字」,「出生地」,「民族」等屬性,能夠完整的表示這個概念。
<影星>
<名字>張國榮</名字>
<出生地>中國香港</出生地>
<民族>漢</民族>
<代表作>霸王別姬</代表作>
</影星>
2.RDF(Resource Description Frame)
資源描述框架(RDF)也是W3C提出的一種語義網描述框架,它假定任何複雜的語義都可以通過若干個三元組的組合來表示,並定義這種三元組的形式為「對象-屬性-值」或「主語-謂語-賓語」。怎麼樣,是不是非常的耳熟?其實他與語義網路並沒有本質的差別,差別在於,RDF規範化了所有的屬性和概念,避免了語義網路不便於分享和難以區隔知識描述和知識實例的缺點。
因此,RDF可以有一套完整的知識查詢語言,叫SPARQL。
3.OWL(Web Ontology Language)
網路本體語言(OWL),是RDF的改進版。OWL在RDF的基礎上定義了自己獨有的語法,主要包括頭部和主體兩個部分。
頭部:OWL描述一個本體(概念)時,會預先訂製一系列的命名空間,並使用命名空間中預定義的標籤來形成某個概念的頭部,例如電影明星本體的頭部可以這樣表示:
<owl:Ontology rdf:about="">
<rdfs:comment>一個概念的例子</rdfs:comment>
<rdfs:label>電影明星</rdfs:label>
</owl:Ontology>
其中<owl:Ontology rdf:about="">表示模組當前描述的概念。
主體:OWL的主體是用來描述概念的類別、實例、屬性之間相互關聯的部分,它是OWL的核心。例如上面電影明顯的概念可以有如下的組成部分:
<owl:Ontology rdf:ID="電影明星">
<rdfs:Name rdf:resource="張國榮">
<rdfs:Birthplace rdf:resource="中國香港">
</owl:ObjectProperty>
總的來說,OWL也是基於三元組的方式來描述知識,相比於RDF,OWL更為規範,功能更強。
3 知識圖譜中的知識表示
知識圖譜中的知識表示方法,總體來是,就是以本體為核心,以RDF的三元組模式為基礎框架,但更多的體現實體、類別、屬性、關係等多顆粒度多層次的語義關係。
這裡正式介紹一下本體的概念,所謂本體,實際上就是知識圖譜中的一個概念,它用一些屬性或特徵,描述了客觀世界某一類事物的共性特徵;並通過「關係」描述它與其他本體之間的關係。例如,本體「作家」,有「代表作」,「獲獎」等屬性,與本體「藝術家」屬於「從屬關係」。
在知識圖譜中,知識表示有知識定義(知識體系)與知識實例兩個層面。
知識定義(知識體系)描述了本體以及本體之間的關係,是上層建築。知識實例是本體的一個一個實例,對應的是真實的數據存儲層。
此外,因為知識圖譜最重要的功能就是實現知識推理,進行語義計算。為此,一些知識的數值化表示方法的研究開始出現。基於數值化的知識表示,有利於知識推理,但目前僅處於研究階段,感興趣的同學可以自行搜索學習。
總結
知識圖譜是人工智慧技術最重要的基礎設施,是電腦能夠實現推理、預測等類似人類思考能力的關鍵。在知識圖譜中,如何有效表示現實世界中的知識,就是知識表示的內容。知識表示的研究由來已久,在如今的知識圖譜領域,基於語義網的框架(三元組)來表示知識。