轉載自:KG的前世今生,本文主要介紹為什么需要知識圖譜,什么是知識圖譜以及知識圖譜的形式化表示。
一、為什么需要知識圖譜?
當你看到下面這行文本時會想到什么?
Ronaldo Luís Nazário de Lima
估計大多數人不明白這串文本表達了什么。讓我們看看它的中文翻譯:
羅納爾多·路易斯·納薩里奧·德·利馬
現在大多數人應該能夠明白這是一個外國人的名字。熟悉足球的人可能會知道這是一個巴西足球運動員,綽號“肥羅”。
舉這個例子是為了說明,計算機面臨這樣的困境——無法獲取網絡文本的語義信息。盡管人工智能得到了長足的發展,但是距一台機器擁有一個兩三歲小孩的智力還有一段距離,很大一部分原因是機器缺乏先驗知識。機器看到這個字符串的反應和大多數不懂葡萄牙語不看足球的人看到這個字符串的反應是一樣的。為了讓機器能夠明白文本背后的含義,需要構建機器的先驗知識,即對事物進行建模,填充其屬性,擴展它和其他事物的關聯關系。以羅納爾多為例,通過對“羅納爾多”實體進行擴展,我們可以得到如下的知識圖。
Google為了提升搜索引擎返回的答案質量,推出了知識圖譜概念。有知識圖譜的輔助,搜索引擎能夠根據用戶查詢背后的語義信息,返回更准確、更結構化的信息。Google知識圖譜的宣傳語“things not strings”道出了知識圖譜的精髓:不要無意義的字符串,需要文本背后的對象或事物。以羅納爾多為例,當用戶以“羅納爾多”作為關鍵詞進行搜索,沒有知識圖譜的情況下,我們只能得到包含這個關鍵詞的網頁,然后不得不點擊進入相關網頁查找需要的信息。有了知識圖譜,搜索引擎在返回相關網頁的同時,還會返回一個包含查詢對象基本信息的”知識卡片“,如果我們需要的信息就在卡片中,就無需進一步操作了。也就是說,知識圖譜能夠提升查詢效率,讓我們獲得更精准、更結構化的信息。

二、什么是知識圖譜?
知識圖譜的概念可以追溯到上世紀六十年代提出的一種知識表示形式——語義網絡。語義網絡,Semantic Network,由相互連接的節點和邊組成,節點表示概念或對象,邊表示節點與節點之間的關系。在表現形式上,語義網絡和知識圖譜相似,但語義網絡側重於描述概念與概念之間的關系,知識圖譜側重於描述實體與實體之間的關系。除了語義網絡,語義網(Semantic Web)和鏈接數據(Linked Data)也和知識圖譜有着千絲萬縷的關系,可以說是知識圖譜的前身。
目前,知識圖譜沒有標准的定義,借用下面這句話描述知識圖譜:
A knowledge graph consists of a set of interconnected typed entities and their attributes.
知識圖譜是由一些相互連接的實體以及它們的屬性構成的。知識圖譜由一條條知識組成,每條知識可以表示為一個SPO三元組(Subject-Predicate-Object)。
在知識圖譜中我們用 RDF 形式化的表示這種三元關系。RDF,Resource Description Framework,資源描述框架,是W3C制定的一種用於描述實體/資源的標准數據模型。RDF中有三種類型:IRI、blank node和literals,常用的是 IRI 和 literals,至於 blank node 為什么不常用請參考原文(因為我也沒看太明白)。IRI,International Resource Identifier,可以看做是 URI 或 URL 的泛化,用於在整個知識圖譜中唯一的表示一個實體/資源。literals,字面量,可以看做是帶有數據類型的純文本,比如羅納爾多的全名是 Ronaldo Luís Nazário de Lima 這個字面量可以表示為:
"Ronaldo Luís Nazário de Lima"^^xsd:string
那么,“羅納爾多的全名是Ronaldo Luís Nazário de Lima”這個 SPO 三元組用 RDF 形式表示就是:
@prefix kg: <http://www.kg.com/ontology/> http://www.kg.com/person/1 kg:fullName "Ronaldo Luís Nazário de Lima"^^xsd:string
"http://www.kg.com/person/1"是一個 IRI,唯一表示“羅納爾多”這個人類的實體。“kg:fullName”也是一個 IRI,表示“全名”這樣一個屬性,其中“kg:”是“http://www.kg.com/ontology/”的縮寫。
將之前的那張圖用更正式的形式表示出來:
三、小結
本文通過羅納爾多這個例子引出知識圖譜解決的問題,接着給出知識圖譜的概念及其 RDF 形式化的表示。
下一篇會介紹和知識圖譜相關的幾個大概念。