一、看到的不僅僅是字符串
當(dāng)你看見下面這一串文本你會(huì)聯(lián)想到什么?
Ronaldo Luís Nazário de Lima
估計(jì)絕大多數(shù)中國人不明白上面的文本代表什么意思。沒關(guān)系,我們看看它對(duì)應(yīng)的中文:
羅納爾多·路易斯·納薩里奧·德·利馬
這下大部分人都知道這是一個(gè)人的名字了,當(dāng)然,不出什么意外,還是個(gè)外國人。但還是有一部分人不知道這個(gè)人具體是誰。下面是關(guān)于他的某張:
從這張我們又得到了額外信息,他是一位足球運(yùn)動(dòng)員。對(duì)足球不熟悉的可能還是對(duì)他沒有什么印象。那么再看看下面這張:
我再加上當(dāng)初那洗腦的廣告詞:“保護(hù)嗓子,請(qǐng)用金嗓子喉片。 廣西金嗓子!”。這下應(yīng)該許多人都知道他是誰了,畢竟多年前被這洗腦的廣告語摧殘了很長一段時(shí)間。
之所以舉這樣一個(gè)例子,是因?yàn)椋?jì)算機(jī)一直面臨著這樣的困境——無法獲取網(wǎng)絡(luò)文本的語義信息。盡管近些年人工智能得到了長足的發(fā)展,在某些任務(wù)上取得超越人類的成績,但離一臺(tái)機(jī)器擁有一個(gè)兩三歲小孩的智力這樣一個(gè)目標(biāo)還有一段距離。這距離的背后很大一部分原因是機(jī)器缺少知識(shí)。如同上面的例子,機(jī)器看到文本的反應(yīng)和我們看到羅納爾多葡萄牙語原名的反應(yīng)別無二致。為了讓機(jī)器能夠理解文本背后的含義,我們需要對(duì)可描述的事物 (實(shí)體) 進(jìn)行建模,填充它的屬性,拓展它和其他事物的聯(lián)系,即,構(gòu)建機(jī)器的先驗(yàn)知識(shí)。就以羅納爾多這個(gè)例子說明,當(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)祟愒诳吹绞煜さ氖挛铮瑫?huì)做一些聯(lián)想和推理是很類似的。
Notice: 需要說明的是,上面的知識(shí)圖并不代表知識(shí)圖譜的實(shí)際組織形式,相反,它還會(huì)讓讀者對(duì)知識(shí)圖譜產(chǎn)生一定的誤解。在下一個(gè)部分,我會(huì)給出這張圖所包含內(nèi)容在知識(shí)圖譜中更形式化的表示。實(shí)際上,我看到許多介紹知識(shí)圖譜的文章都喜歡給出此種類型的圖,卻又不給出相應(yīng)的說明,這可能會(huì)讓讀者一開始就進(jìn)入理解的誤區(qū)。
Google 為了提升搜索引擎返回的答案質(zhì)量和用戶查詢的效率,于 2012 年 5 月 16 日發(fā)布了知識(shí)圖譜 (Knowledge Graph)。有知識(shí)圖譜作為輔助,搜索引擎能夠洞察用戶查詢背后的語義信息,返回更為精準(zhǔn)、結(jié)構(gòu)化的信息,更大可能地滿足用戶的查詢需求。Google 知識(shí)圖譜的宣傳語“things not strings”給出了知識(shí)圖譜的精髓,即,不要無意義的字符串,而是獲取字符串背后隱含的對(duì)象或事物。還是以羅納爾多為例,我們想知道羅納爾多的相關(guān)信息 (很多情況下,用戶的搜索意圖可能也是模糊的,這里我們輸入的查詢?yōu)椤傲_納爾多”),在之前的版本,我們只能得到包含這個(gè)字符串的相關(guān)網(wǎng)頁作為返回結(jié)果,然后不得不進(jìn)入某些網(wǎng)頁查找我們感興趣的信息;現(xiàn)在,除了相關(guān)網(wǎng)頁,搜索引擎還會(huì)返回一個(gè)“知識(shí)卡片”,包含了查詢對(duì)象的基本信息和其相關(guān)的其他對(duì)象 (C 羅名字簡稱也為羅納爾多,搜索引擎只是根據(jù)“羅納爾多”的指代概率返回了“肥羅”這個(gè)羅納爾多的基本資料,但也許你需要 C 羅的相關(guān)信息,那么搜索引擎把 C 羅這個(gè)實(shí)體作為備選項(xiàng)列出),如下圖紅色方框中的內(nèi)容。如果我們只是想知道羅納爾多的國籍、年齡、婚姻狀況、子女信息,那么我們不用再做多余的操作。在最短的時(shí)間內(nèi),我們獲取了最為簡潔,最為準(zhǔn)確的信息。
當(dāng)然,這只是知識(shí)圖譜在搜索引擎上的一部分應(yīng)用場(chǎng)景。舉這個(gè)例子也是為了表明,知識(shí)圖譜這樣一種概念、或者技術(shù),它的誕生是符合計(jì)算機(jī)科學(xué)、互聯(lián)網(wǎng)發(fā)展潮流的。關(guān)于知識(shí)圖譜的更多應(yīng)用,會(huì)在之后的另一篇文章中給出。
二、知識(shí)圖譜的前世今生
通過上面這個(gè)例子,讀者應(yīng)該對(duì)知識(shí)圖譜有了一個(gè)初步的印象,其本質(zhì)是為了表示知識(shí)。其實(shí)知識(shí)圖譜的概念并不新,它背后的思想可以追溯到上個(gè)世紀(jì)五六十年代所提出的一種知識(shí)表示形式——語義網(wǎng)絡(luò) (Semantic Network)。語義網(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)形式上,語義網(wǎng)絡(luò)和知識(shí)圖譜相似,但語義網(wǎng)絡(luò)更側(cè)重于描述概念與概念之間的關(guān)系,(有點(diǎn)像生物的層次分類體系——界門綱目科屬種),而知識(shí)圖譜則更偏重于描述實(shí)體之間的關(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)都和知識(shí)圖譜有著千絲萬縷的關(guān)系,可以說它們是知識(shí)圖譜前身。
目前,知識(shí)圖譜并沒有一個(gè)標(biāo)準(zhǔn)的定義 (gold standard definition)。我在這里借用一下“Exploiting Linked Data and Knowledge Graphs in Large Organisations”這本書對(duì)于知識(shí)圖譜的定義:
A knowledge graph consists of a set of interconnected typed entities and their attributes.
即,知識(shí)圖譜是由一些相互連接的實(shí)體和他們的屬性構(gòu)成的。換句話說,知識(shí)圖譜是由一條條知識(shí)組成,每條知識(shí)表示為一個(gè) SPO 三元組 (Subject-Predicate-Object)。
在知識(shí)圖譜中,我們用 RDF 形式化地表示這種三元關(guān)系。RDF(Resource Description Framework),即資源描述框架,是 W3C 制定的,用于描述實(shí)體 / 資源的標(biāo)準(zhǔn)數(shù)據(jù)模型。RDF 圖中一共有三種類型,International Resource Identifiers(IRIs),blank nodes 和 literals。下面是 SPO 每個(gè)部分的類型約束:
Subject 可以是 IRI 或 blank node。
Predicate 是 IRI。
Object 三種類型都可以。IRI 我們可以看做是 URI 或者 URL 的泛化和推廣,它在整個(gè)網(wǎng)絡(luò)或者圖中唯一定義了一個(gè)實(shí)體 / 資源,和我們的身份證號(hào)類似。
literal 是字面量,我們可以把它看做是帶有數(shù)據(jù)類型的純文本,比如我們?cè)诘谝粋(gè)部分中提到的羅納爾多原名可以表示為"Ronaldo Luís Nazário de Lima"^^xsd:string。
blank node 簡單來說就是沒有 IRI 和 literal 的資源,或者說匿名資源。關(guān)于其作用,有興趣的讀者可以參考 W3C 的文檔,這里不再贅述。我個(gè)人認(rèn)為 blank node 的存在有點(diǎn)多余,不僅會(huì)給對(duì) RDF 的理解帶來額外的困難,并且在處理的時(shí)候也會(huì)引入一些問題。通常我更愿意用帶有 IRI 的 node 來充當(dāng) blank node,行使其功能,有點(diǎn)類似 freebase 中 CVT(compound value type) 的概念。最后的參考資料會(huì)給出一篇寫 blank node 缺陷的博客,有興趣的讀者可以看一看。
那么“羅納爾多的中文名是羅納爾多·路易斯·納扎里奧·達(dá)·利馬”這樣一個(gè)三元組用 RDF 形式來表示就是:
我們其實(shí)可以認(rèn)為知識(shí)圖譜就包含兩種節(jié)點(diǎn)類型,資源和字面量。借用數(shù)據(jù)結(jié)構(gòu)中樹的概念,字面量類似葉子節(jié)點(diǎn),出度為 0。現(xiàn)在讀者應(yīng)該知道為什么我會(huì)說之前那幅圖不準(zhǔn)確,并會(huì)誤導(dǎo)大家對(duì)知識(shí)圖譜的理解了吧。"羅納爾多·路易斯·納薩里奧·德·利馬"作為字面量,是不能有指向外部節(jié)點(diǎn)的邊的,況且之前的圖并不能直觀地體現(xiàn)知識(shí)圖譜中資源 / 實(shí)體 (用 IRI 表示) 這樣一個(gè)極其重要的概念。
三、總結(jié)
本文通過羅納爾多這個(gè)例子引出了知識(shí)圖譜的現(xiàn)實(shí)需求,繼而給出了知識(shí)圖譜的定義和相關(guān)概念,并介紹了知識(shí)圖譜的 RDF 形式化表示。作為一篇科普文章,文中省略了許多技術(shù)細(xì)節(jié)。后續(xù)我會(huì)根據(jù)語義網(wǎng)技術(shù)棧(Semantic Web Stack,如下圖)來介紹知識(shí)圖譜實(shí)現(xiàn)過程中所需要的具體技術(shù)。另外,可能會(huì)結(jié)合實(shí)踐,介紹如何利用關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)來構(gòu)建一個(gè)知識(shí)圖譜,并搭建一個(gè)簡易的基于知識(shí)圖譜的問答系統(tǒng) (KBQA)。
課程目錄
1. 1.1語言與知識(shí)
2. 1.2知識(shí)圖譜的起源
3. 1.3知識(shí)圖譜的價(jià)值
4. 1.4知識(shí)圖譜的技術(shù)內(nèi)涵
5. 2.1什么是知識(shí)表示
6. 2.2人工智能歷史發(fā)展長河中的知識(shí)表示
7. 2.3知識(shí)圖譜的符號(hào)表示方法
8. 2.4知識(shí)圖譜的向量表示方法
9. 3.1基于關(guān)系型數(shù)據(jù)庫的知識(shí)圖譜存儲(chǔ)
10. 3.2基于原生圖數(shù)據(jù)庫的知識(shí)圖譜存儲(chǔ)
11. 3.3原生圖數(shù)據(jù)庫實(shí)現(xiàn)原理淺析
12. 4.1重新理解知識(shí)工程與知識(shí)獲取
13. 4.2.1知識(shí)抽取實(shí)體識(shí)別與分類(一)
14. 4.2.2知識(shí)抽取實(shí)體識(shí)別與分類(二)
15. 4.3.1知識(shí)抽取關(guān)系抽取與屬性補(bǔ)全(一)
16. 4.3.2知識(shí)抽取關(guān)系抽取與屬性補(bǔ)全(二)
17. 4.4知識(shí)抽取概念抽取
18. 4.5知識(shí)抽取事件識(shí)別與抽取
19. 4.6知識(shí)抽取技術(shù)前沿
20. 5.1什么是推理
21. 5.2知識(shí)圖譜推理簡介
22. 5.3.1基于Ontology的推理
23. 5.3.2基于規(guī)則的推理
24. 5.4.1基于嵌入學(xué)習(xí)的知識(shí)圖譜推理
25. 5.4.2基于規(guī)則學(xué)習(xí)的知識(shí)圖譜推理
26. 5.4.3OntologyEmbedding本體概念層推理
27. 6.1知識(shí)圖譜融合概述
28. 6.2概念層融合本體匹配
29. 6.3實(shí)例層的融合實(shí)體對(duì)齊
30. 6.4知識(shí)融合技術(shù)前沿
31. 7.1智能問答系統(tǒng)概述
32. 7.2基于查詢模版的知識(shí)圖譜問答
33. 7.3基于語義解析的知識(shí)圖譜問答
34. 7.4基于檢索排序的知識(shí)圖譜問答
35. 7.5基于深度學(xué)習(xí)的知識(shí)圖譜問答
36. 8.1圖的基本知識(shí)
37. 8.2基礎(chǔ)圖算法
38. 8.3.1圖神經(jīng)網(wǎng)絡(luò)與圖表示學(xué)習(xí)(一)
39. 8.3.2圖神經(jīng)網(wǎng)絡(luò)與圖表示學(xué)習(xí)(二)
40. 8.4圖神經(jīng)網(wǎng)絡(luò)與知識(shí)圖譜
41. 9.1多模態(tài)知識(shí)圖譜
42. 9.2知識(shí)圖譜與語言預(yù)訓(xùn)練
43. 9.3事理知識(shí)圖譜
44. 9.4知識(shí)圖譜與低資源學(xué)習(xí)