互聯(lián)網(wǎng)時代,人類在與自然和社會的交互中生產(chǎn)了異常龐大的數(shù)據(jù),這些數(shù)據(jù)中包含了大量描述自然界和人類社會客觀規(guī)律有用信息。如何將這些信息有效組織起來,進行結(jié)構(gòu)化的存儲,就是知識圖譜的內(nèi)容。
那么,在知識圖譜中以什么樣的形式對現(xiàn)實世界中的知識進行表示與存儲呢?本編介紹知識圖譜中的知識表示,以回答上面的問題。
作者&編輯 | 小Dream哥
1 什么是知識表示
知識表示是知識圖譜中非常重要的概念,知識表示之于知識圖譜的重要性,就好比內(nèi)功心法之于絕世武功的重要性。比如在英雄大會中,楊過一開始只練了打狗棒法的招數(shù),用他小半調(diào)子的打狗棒法無法打贏金輪法王的徒弟霍都,當(dāng)黃蓉跟他透露了打狗棒法的心法之后,瞬間就擊退了敵人。
知識圖譜中的知識表示也是如此,例如,要對所存儲的知識進行應(yīng)用,其中最關(guān)鍵的就是要能夠進行知識的推理,而知識的表示形式和手段決定了知識推理的形式和難度;此外,知識表示的形式也決定了知識獲取的形式和難度??梢?,一種合適的知識表示方法對知識圖譜的構(gòu)建至關(guān)重要。
所以,我們在學(xué)習(xí)知識圖譜這個絕世武功之時,也需要熟悉它的內(nèi)功心法,知識表示。
那么,什么是知識表示呢?筆者認(rèn)為可以從如下兩個方面理解什么是知識表示:
1.知識表示表示了什么?
知識表示表示的是人類關(guān)于外部世界的結(jié)論,這些結(jié)論應(yīng)該是無需實踐,僅僅通過思考和推理就可以得到。這樣說,可能還有一些抽象,簡單的理解,知識表示表示的就是人類世界的一些經(jīng)驗、事實、思想等。例如,物理課本上的各種概念和定理;今年中國娛樂圈發(fā)生的各種狗血事件;馬克思主義中國化的各種具體論述和歷史經(jīng)驗等。
2.如何對人類世界的經(jīng)驗進行表示?
也就是知識表示的具體手段和形式。具體的手段和形式,在后面介紹具體知識表示方法大家就會清楚,這里先介紹所有知識表示的方法所應(yīng)該具有的特點。
知識表示通常由大量的本體論約定的概念和實體組成,通過某一種有效的方式組織起來,使得知識系統(tǒng)能夠得以搭建并支持高效的知識推理,方便人們表達(dá)和分享對世界的認(rèn)知。
那么,到底有哪些知識表示的方法呢?現(xiàn)在流行的知識圖譜采用的是哪一套知識表示的方法呢?下面來進行介紹。
2 知識表示的方法
知識圖譜,或者說知識系統(tǒng)的研究其實由來已久。在很早的時候,不管是人工智能的研究者還是互聯(lián)網(wǎng)的工程師們,都試圖建立完善的知識系統(tǒng),以便更好的應(yīng)用人類的知識成果。所以,知識表示的研究也由來已久,包括邏輯表示法、語義網(wǎng)絡(luò)、框架表示法、腳本表示法、基于語義網(wǎng)的知識描述體系等。
限于篇幅,本文介紹比較重要的語義網(wǎng)絡(luò),框架表示法以及基于語義網(wǎng)的知識描述體系。
1)語義網(wǎng)絡(luò)
語義網(wǎng)絡(luò)是Quillan M Ross1966年在研究人類聯(lián)想記憶時提出的一種心理學(xué)模型??偟膩碚f,語義網(wǎng)絡(luò)是一種由有向圖表示的知識系統(tǒng),它將知識表示為相互連接的點和邊,節(jié)點代表概念,邊則代表概念之間的語義關(guān)系。
語義網(wǎng)絡(luò)中最基本的單元稱為語義基元,可以用我們熟悉的三元組表示:<節(jié)點1,關(guān)系,節(jié)點2>,例如,通過語義網(wǎng)絡(luò),可以把“香港坐落于中國南部”表示為下圖中的三元組形式:<香港,坐落于,中國南部>
當(dāng)然,語義網(wǎng)絡(luò)中的關(guān)系可以有很多種,例如實例關(guān)系,分類關(guān)系,成員關(guān)系等。語義網(wǎng)絡(luò)就是由大量的實體以及他們之間的關(guān)系構(gòu)成,語義網(wǎng)絡(luò)通過這樣一種的簡單的方式描述現(xiàn)實世界中所有的知識。他的優(yōu)點是便于計算機的存儲和檢索,缺點是推理過程較復(fù)雜,也不完善,需要對不同的關(guān)系做不同的處理。
此外,需要注意的是在語義網(wǎng)絡(luò)中,并沒有對節(jié)點和邊進行標(biāo)準(zhǔn)的定義,也就是完全用戶自定義的。沒有標(biāo)準(zhǔn),一方面,會增加知識分享的難度;另一方面,知識描述和知識實例難以分隔。
建立于1988年的知網(wǎng)(Hownet)是一個典型的語義網(wǎng)絡(luò),它由董振東教授建立,感興趣的同學(xué)可以關(guān)注下。董振東教授認(rèn)為知識庫或者知識圖譜的構(gòu)建應(yīng)該首先由知識工程師設(shè)計好完備的知識框架,再由相關(guān)領(lǐng)域的專家填充領(lǐng)域知識,是一種典型的自頂向下的構(gòu)建模式。
2)知識框架表示法
知識框架表示法是人工智能學(xué)者Minsky在1975年提出來的。所謂知識框架法,就是通過模仿人類認(rèn)識世界的模式,將現(xiàn)實世界中的事物根據(jù)具體的情況抽象成一定的框架,框架中定義了這個事物應(yīng)該或者可能具有屬性,也被稱為槽(slot)。
舉個具體的例子大家就明白了,如下圖所示,通過框架表示法來表示“計算機主機”,它總共有6個屬性,也就是槽,包括“主機名稱”,“生產(chǎn)廠商”等。"聯(lián)想主機"是“計算機主機”這個概念的一個示例,分別對各個屬性的值進行了填充。
有編程經(jīng)驗的同學(xué)應(yīng)該很快就能理解框架表示法。它跟面向?qū)ο蟮木幊?/strong>的思想如出一轍,都是對現(xiàn)實世界的模仿。面向?qū)ο蟮木幊汤锏念惥褪强蚣鼙硎痉ɡ锒x的框架;面向?qū)ο蟮木幊汤锏念悓傩詫?yīng)框架表示法里的槽;面向?qū)ο蟮木幊汤锏膶ο髮?yīng)框架表示法里的具體實例。
框架表示法的優(yōu)點在于其強大的結(jié)構(gòu)表達(dá)能力和接近人類的思維過程;其缺點在于,面對現(xiàn)實世界的復(fù)雜性和多樣性,框架體系設(shè)計的難度太大;另一方面,不同框架系統(tǒng)之間的框架很難對齊,難以建立一個統(tǒng)一的標(biāo)準(zhǔn);此外,基于框架體系的思想,很難實現(xiàn)知識體系的自動化構(gòu)建。
一個比較有名的基于框架的知識庫叫FrameNet,感興趣的同學(xué)可以關(guān)注了解。
3)語義網(wǎng)中的知識表示法
首先要說的是,這里的語義網(wǎng)與上面的語義網(wǎng)絡(luò)是完全不同的概念。語義網(wǎng)的概念來源于互聯(lián)網(wǎng),人們期望互聯(lián)網(wǎng)能夠更為有效的組織信息,使得互聯(lián)網(wǎng)內(nèi)豐富的資源得到充分的利用,而不是像現(xiàn)在這樣,互聯(lián)網(wǎng)中的信息僅僅通過薄弱的結(jié)構(gòu)組織起來。因此,語義網(wǎng)也叫Web3.0。
那么,在語義網(wǎng)中,如何實現(xiàn)知識的表示的呢?目前,語義網(wǎng)中存在三種知識描述體系,包括XML,RDF和OWL,他們定義了互聯(lián)網(wǎng)中知識表示的形式。
1.XML
全稱是可擴展標(biāo)記語言(eXtensible Markup Language),是最早的語義網(wǎng)絡(luò)標(biāo)記語言。XML是從網(wǎng)頁標(biāo)簽式語言向語義表達(dá)語言的一次飛躍。XML源于HTML,相比于HTML,XML可擴展性更強,結(jié)構(gòu)性更強。因此,在語義網(wǎng)絡(luò)中得以應(yīng)用。在語義網(wǎng)絡(luò)中,XML標(biāo)簽不再僅僅是網(wǎng)頁格式的標(biāo)志,而是含有自身的語義。
如下圖所示,是一個用XML表示“影星”這個概念的例子,它定義了“名字”,“出生地”,“民族”等屬性,能夠完整的表示這個概念。
<影星>
<名字>張國榮</名字>
<出生地>中國香港</出生地>
<民族>漢</民族>
<代表作>霸王別姬</代表作>
</影星>
2.RDF(Resource Description Frame)
資源描述框架(RDF)也是W3C提出的一種語義網(wǎng)描述框架,它假定任何復(fù)雜的語義都可以通過若干個三元組的組合來表示,并定義這種三元組的形式為“對象-屬性-值”或“主語-謂語-賓語”。怎么樣,是不是非常的耳熟?其實他與語義網(wǎng)絡(luò)并沒有本質(zhì)的差別,差別在于,RDF規(guī)范化了所有的屬性和概念,避免了語義網(wǎng)絡(luò)不便于分享和難以區(qū)隔知識描述和知識實例的缺點。
因此,RDF可以有一套完整的知識查詢語言,叫SPARQL。
3.OWL(Web Ontology Language)
網(wǎng)絡(luò)本體語言(OWL),是RDF的改進版。OWL在RDF的基礎(chǔ)上定義了自己獨有的語法,主要包括頭部和主體兩個部分。
頭部:OWL描述一個本體(概念)時,會預(yù)先定制一系列的命名空間,并使用命名空間中預(yù)定義的標(biāo)簽來形成某個概念的頭部,例如電影明星本體的頭部可以這樣表示:
<owl:Ontology rdf:about="">
<rdfs:comment>一個概念的例子</rdfs:comment>
<rdfs:label>電影明星</rdfs:label>
</owl:Ontology>
其中<owl:Ontology rdf:about="">表示模塊當(dāng)前描述的概念。
主體:OWL的主體是用來描述概念的類別、實例、屬性之間相互關(guān)聯(lián)的部分,它是OWL的核心。例如上面電影明顯的概念可以有如下的組成部分:
<owl:Ontology rdf:ID="電影明星">
<rdfs:Name rdf:resource="張國榮">
<rdfs:Birthplace rdf:resource="中國香港">
</owl:ObjectProperty>
總的來說,OWL也是基于三元組的方式來描述知識,相比于RDF,OWL更為規(guī)范,功能更強。
3 知識圖譜中的知識表示
知識圖譜中的知識表示方法,總體來是,就是以本體為核心,以RDF的三元組模式為基礎(chǔ)框架,但更多的體現(xiàn)實體、類別、屬性、關(guān)系等多顆粒度多層次的語義關(guān)系。
這里正式介紹一下本體的概念,所謂本體,實際上就是知識圖譜中的一個概念,它用一些屬性或特征,描述了客觀世界某一類事物的共性特征;并通過“關(guān)系”描述它與其他本體之間的關(guān)系。例如,本體“作家”,有“代表作”,“獲獎”等屬性,與本體“藝術(shù)家”屬于“從屬關(guān)系”。
在知識圖譜中,知識表示有知識定義(知識體系)與知識實例兩個層面。
知識定義(知識體系)描述了本體以及本體之間的關(guān)系,是上層建筑。知識實例是本體的一個一個實例,對應(yīng)的是真實的數(shù)據(jù)存儲層。
此外,因為知識圖譜最重要的功能就是實現(xiàn)知識推理,進行語義計算。為此,一些知識的數(shù)值化表示方法的研究開始出現(xiàn)。基于數(shù)值化的知識表示,有利于知識推理,但目前僅處于研究階段,感興趣的同學(xué)可以自行搜索學(xué)習(xí)。
知識圖譜是人工智能技術(shù)最重要的基礎(chǔ)設(shè)施,是計算機能夠?qū)崿F(xiàn)推理、預(yù)測等類似人類思考能力的關(guān)鍵。在知識圖譜中,如何有效表示現(xiàn)實世界中的知識,就是知識表示的內(nèi)容。知識表示的研究由來已久,在如今的知識圖譜領(lǐng)域,基于語義網(wǎng)的框架(三元組)來表示知識。