為什么需要知識(shí)圖譜? 什么是知識(shí)圖譜? 標(biāo)題的命名順序可能讓有的讀者不太習(xí)慣。通常在介紹一個(gè)陌生事物的應(yīng)用前,我們會(huì)給出其定義。之所以換個(gè)順序,是為了不讓讀者一開(kāi)始就接觸比較冰冷生硬的概念刻板描述(后面我盡量用更具體、準(zhǔn)確的例子來(lái)表達(dá)),另一方面也是為了通過(guò)現(xiàn)實(shí)生活中的例子自然的引入知識(shí)圖譜的概念。希望通過(guò)這種方式加深讀者的印象和理解。為了減輕讀者理解的負(fù)擔(dān),我盡可能地避免引入過(guò)多的概念和技術(shù)細(xì)節(jié),將其留到后續(xù)的文章進(jìn)行介紹。 言歸正傳,本文主要分為三個(gè)部分。第一個(gè)部分介紹我們?yōu)槭裁葱枰R(shí)圖譜,第二個(gè)部分介紹知識(shí)圖譜的相關(guān)概念及其形式化表示。最后,作一個(gè)簡(jiǎn)單的總結(jié),并介紹該專(zhuān)欄后續(xù)文章會(huì)涉及的內(nèi)容。 01 看到的不僅僅是字符串 當(dāng)你看見(jiàn)下面這一串文本你會(huì)聯(lián)想到什么? Ronaldo Luís Nazário de Lima 估計(jì)絕大多數(shù)中國(guó)人不明白上面的文本代表什么意思。沒(méi)關(guān)系,我們看看它對(duì)應(yīng)的中文: 羅納爾多·路易斯·納薩里奧·德·利馬 這下大部分人都知道這是一個(gè)人的名字了,當(dāng)然,不出什么意外,還是個(gè)外國(guó)人。但還是有一部分人不知道這個(gè)人具體是誰(shuí)。下面是關(guān)于他的某張圖片: 從這張圖片我們又得到了額外信息,他是一位足球運(yùn)動(dòng)員。對(duì)足球不熟悉的可能還是對(duì)他沒(méi)有什么印象。那么再看看下面這張圖片: 我再加上當(dāng)初那洗腦的廣告詞:“保護(hù)嗓子,請(qǐng)用金嗓子喉片。廣西金嗓子!”。這下應(yīng)該許多人都知道他是誰(shuí)了,畢竟多年前被這洗腦的廣告語(yǔ)摧殘了很長(zhǎng)一段時(shí)間。 之所以舉這樣一個(gè)例子,是因?yàn)?,?jì)算機(jī)一直面臨著這樣的困境——無(wú)法獲取網(wǎng)絡(luò)文本的語(yǔ)義信息。盡管近些年人工智能得到了長(zhǎng)足的發(fā)展,在某些任務(wù)上取得超越人類(lèi)的成績(jī),但離一臺(tái)機(jī)器擁有一個(gè)兩三歲小孩的智力這樣一個(gè)目標(biāo)還有一段距離。這距離的背后很大一部分原因是機(jī)器缺少知識(shí)。如同上面的例子,機(jī)器看到文本的反應(yīng)和我們看到羅納爾多葡萄牙語(yǔ)原名的反應(yīng)別無(wú)二致。為了讓機(jī)器能夠理解文本背后的含義,我們需要對(duì)可描述的事物(實(shí)體)進(jìn)行建模,填充它的屬性,拓展它和其他事物的聯(lián)系,即,構(gòu)建機(jī)器的先驗(yàn)知識(shí)。就以羅納爾多這個(gè)例子說(shuō)明,當(dāng)我們圍繞這個(gè)實(shí)體進(jìn)行相應(yīng)的擴(kuò)展,我們就可以得到下面這張知識(shí)圖。 機(jī)器擁有了這樣的先驗(yàn)知識(shí),當(dāng)它再次看到Ronaldo Luís Nazário de Lima,它就會(huì)“想”:“這是一個(gè)名字叫Ronaldo Luís Nazário de Lima的巴西足球運(yùn)動(dòng)員。”這和我們?nèi)祟?lèi)在看到熟悉的事物,會(huì)做一些聯(lián)想和推理是很類(lèi)似的。 Notice: 需要說(shuō)明的是,上面的知識(shí)圖并不代表知識(shí)圖譜的實(shí)際組織形式。相反,它還會(huì)讓讀者對(duì)知識(shí)圖譜產(chǎn)生一定的誤解。在下一個(gè)部分,我會(huì)給出這張圖所包含內(nèi)容在知識(shí)圖譜中更形式化的表示。實(shí)際上,我看到許多介紹知識(shí)圖譜的文章都喜歡給出此種類(lèi)型的圖,卻又不給出相應(yīng)的說(shuō)明,這可能會(huì)讓讀者一開(kāi)始就進(jìn)入理解的誤區(qū)。 Google為了提升搜索引擎返回的答案質(zhì)量和用戶查詢的效率,于2012年5月16日發(fā)布了知識(shí)圖譜(Knowledge Graph)。有知識(shí)圖譜作為輔助,搜索引擎能夠洞察用戶查詢背后的語(yǔ)義信息,返回更為精準(zhǔn)、結(jié)構(gòu)化的信息,更大可能地滿足用戶的查詢需求。Google知識(shí)圖譜的宣傳語(yǔ)“things not strings”給出了知識(shí)圖譜的精髓,即,不要無(wú)意義的字符串,而是獲取字符串背后隱含的對(duì)象或事物。 還是以羅納爾多為例,我們想知道羅納爾多的相關(guān)信息(很多情況下,用戶的搜索意圖可能也是模糊的,這里我們輸入的查詢?yōu)椤傲_納爾多”),在之前的版本,我們只能得到包含這個(gè)字符串的相關(guān)網(wǎng)頁(yè)作為返回結(jié)果,然后不得不進(jìn)入某些網(wǎng)頁(yè)查找我們感興趣的信息;現(xiàn)在,除了相關(guān)網(wǎng)頁(yè),搜索引擎還會(huì)返回一個(gè)“知識(shí)卡片”,包含了查詢對(duì)象的基本信息和其相關(guān)的其他對(duì)象(C羅名字簡(jiǎn)稱(chēng)也為羅納爾多,搜索引擎只是根據(jù)“羅納爾多”的指代概率返回了“肥羅”這個(gè)羅納爾多的基本資料,但也許你需要C羅的相關(guān)信息,那么搜索引擎把C羅這個(gè)實(shí)體作為備選項(xiàng)列出),如下圖紅色方框中的內(nèi)容。如果我們只是想知道羅納爾多的國(guó)籍、年齡、婚姻狀況、子女信息,那么我們不用再做多余的操作。在最短的時(shí)間內(nèi),我們獲取了最為簡(jiǎn)潔,最為準(zhǔn)確的信息。 當(dāng)然,這只是知識(shí)圖譜在搜索引擎上的一部分應(yīng)用場(chǎng)景。舉這個(gè)例子也是為了表明,知識(shí)圖譜這樣一種概念、或者技術(shù),它的誕生是符合計(jì)算機(jī)科學(xué)、互聯(lián)網(wǎng)發(fā)展潮流的。 02 知識(shí)圖譜的前世今生 通過(guò)上面這個(gè)例子,讀者應(yīng)該對(duì)知識(shí)圖譜有了一個(gè)初步的印象,其本質(zhì)是為了表示知識(shí)。其實(shí)知識(shí)圖譜的概念并不新,它背后的思想可以追溯到上個(gè)世紀(jì)五六十年代所提出的一種知識(shí)表示形式——語(yǔ)義網(wǎng)絡(luò)(Semantic Network)。語(yǔ)義網(wǎng)絡(luò)由相互連接的節(jié)點(diǎn)和邊組成,節(jié)點(diǎn)表示概念或者對(duì)象,邊表示他們之間的關(guān)系(is-a關(guān)系,比如:貓是一種哺乳動(dòng)物;part-of關(guān)系,比如:脊椎是哺乳動(dòng)物的一部分),如下圖。在表現(xiàn)形式上,語(yǔ)義網(wǎng)絡(luò)和知識(shí)圖譜相似,但語(yǔ)義網(wǎng)絡(luò)更側(cè)重于描述概念與概念之間的關(guān)系,(有點(diǎn)像生物的層次分類(lèi)體系——界門(mén)綱目科屬種),而知識(shí)圖譜則更偏重于描述實(shí)體之間的關(guān)聯(lián)。 除了語(yǔ)義網(wǎng)絡(luò),人工智能的分支——專(zhuān)家系統(tǒng),萬(wàn)維網(wǎng)之父Tim Berners Lee于1998年提出的語(yǔ)義網(wǎng)(Semantic Web)和在2006年提出的關(guān)聯(lián)數(shù)據(jù)(Linked Data)都和知識(shí)圖譜有著千絲萬(wàn)縷的關(guān)系,可以說(shuō)它們是知識(shí)圖譜前身。 目前,知識(shí)圖譜并沒(méi)有一個(gè)標(biāo)準(zhǔn)的定義(gold standard definition)。我在這里借用一下“Exploiting Linked Data and Knowledge Graphs in Large Organisations”這本書(shū)對(duì)于知識(shí)圖譜的定義: A knowledge graph consists of a set of interconnected typed entities and their attributes. 即,知識(shí)圖譜是由一些相互連接的實(shí)體和他們的屬性構(gòu)成的。換句話說(shuō),知識(shí)圖譜是由一條條知識(shí)組成,每條知識(shí)表示為一個(gè)SPO三元組(Subject-Predicate-Object)。 在知識(shí)圖譜中,我們用 RDF 形式化地來(lái)表示這種三元關(guān)系。RDF(Resource Description Framework),即資源描述框架,是W3C制定的,用于描述實(shí)體/資源的標(biāo)準(zhǔn)數(shù)據(jù)模型。RDF圖中一共有三種類(lèi)型,International Resource Identifiers(IRIs),blank nodes 和 literals。下面是SPO每個(gè)部分的類(lèi)型約束:
IRI——我們可以看做是URI或者URL的泛化和推廣,它在整個(gè)網(wǎng)絡(luò)或者圖中唯一定義了一個(gè)實(shí)體/資源,和我們的身份證號(hào)類(lèi)似。 literal是字面量,我們可以把它看做是帶有數(shù)據(jù)類(lèi)型的純文本,比如我們?cè)诘谝粋€(gè)部分中提到的羅納爾多原名可以表示為'Ronaldo Luís Nazário de Lima'^^xsd:string。 blank node簡(jiǎn)單來(lái)說(shuō)就是沒(méi)有IRI和literal的資源,或者說(shuō)匿名資源。關(guān)于其作用,有興趣的讀者可以參考W3C的文檔,這里不再贅述。我個(gè)人認(rèn)為blank node的存在有點(diǎn)多余,不僅會(huì)給對(duì)RDF的理解帶來(lái)額外的困難,并且在處理的時(shí)候也會(huì)引入一些問(wèn)題。通常我更愿意用帶有IRI的node來(lái)充當(dāng)blank node,行使其功能,有點(diǎn)類(lèi)似freebase中CVT(compound value type)的概念。最后的參考資料會(huì)給出一篇寫(xiě)blank node缺陷的博客,有興趣的讀者可以看一看。 那么“羅納爾多的中文名是羅納爾多·路易斯·納扎里奧·達(dá)·利馬”這樣一個(gè)三元組用RDF形式來(lái)表示就是: 'www./person/1'是一個(gè)IRI,用來(lái)唯一的表示“羅納爾多”這個(gè)實(shí)體。'kg:chineseName'也是一個(gè)IRI,用來(lái)表示“中文名”這樣一個(gè)屬性。'kg:'是RDF文件中所定義的prefix,如下所示: @prefix kg: <http://www./ontology/> 即,kg:chineseName其實(shí)就是'http:// www./ontology/chineseName'的縮寫(xiě)。 將上面的知識(shí)圖用更正式的形式畫(huà)出來(lái): 我們其實(shí)可以認(rèn)為知識(shí)圖譜就包含兩種節(jié)點(diǎn)類(lèi)型,資源和字面量。借用數(shù)據(jù)結(jié)構(gòu)中樹(shù)的概念,字面量類(lèi)似葉子節(jié)點(diǎn),出度為0?,F(xiàn)在讀者應(yīng)該知道為什么我會(huì)說(shuō)之前那幅圖不準(zhǔn)確,并會(huì)誤導(dǎo)大家對(duì)知識(shí)圖譜的理解了吧。'羅納爾多·路易斯·納薩里奧·德·利馬'作為字面量,是不能有指向外部節(jié)點(diǎn)的邊的,況且之前的圖并不能直觀地體現(xiàn)知識(shí)圖譜中資源/實(shí)體(用IRI表示)這樣一個(gè)極其重要的概念。 03 總結(jié) 本文通過(guò)羅納爾多這個(gè)例子引出了知識(shí)圖譜的現(xiàn)實(shí)需求,繼而給出了知識(shí)圖譜的定義和相關(guān)概念,并介紹了知識(shí)圖譜的RDF形式化表示。作為一篇科普文章,文中省略了許多技術(shù)細(xì)節(jié)。后續(xù)我會(huì)根據(jù)語(yǔ)義網(wǎng)技術(shù)棧(Semantic Web Stack,如下圖)來(lái)介紹知識(shí)圖譜實(shí)現(xiàn)過(guò)程中所需要的具體技術(shù)。另外,可能會(huì)結(jié)合實(shí)踐,介紹如何利用關(guān)系型數(shù)據(jù)庫(kù)中的數(shù)據(jù)來(lái)構(gòu)建一個(gè)知識(shí)圖譜,并搭建一個(gè)簡(jiǎn)易的基于知識(shí)圖譜的問(wèn)答系統(tǒng)(KBQA)。
|
|
來(lái)自: 虎牙變大貓 > 《AI/VR/AR》