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