1. 程式人生 > >知識圖譜之入門篇

知識圖譜之入門篇

知識圖譜大體概念

最近在看知識圖譜方面的知識,補了很多知識,現在基本有個大體上的瞭解,記錄於此。
首先,為什麼會提出知識圖譜的概念?這是自全球資訊網之後,所有的網頁或者說文字都被連結了,這就是現在我們的網際網路。但是全球資訊網的創始人,叫Tim Berners-Lee,又提出了語義網的概念,大概也就是現在所謂的知識圖譜吧,連結的不再是文字(html),而是知識。
在到後來,其實知識圖譜的正式提出和實用應該是谷歌,谷歌有個概念值得玩味:Things not strings。這個感覺有點抽象,不過想想還是能明白的。然後國內百度和搜狗也有知識圖譜的專案,使得搜尋顯得更智慧,舉個簡單的例子搜尋:姚明的身高是多少?結果:這裡寫圖片描述


可以看到最上面,百度直接給我們返回了229cm這個答案,右邊有相關人物,有他的女兒等相關人,這背後就是在百度的知識圖譜中存在姚明這個節點,有他的許多的屬性和相關聯的節點,因為按正常的搜尋,返回的應該是一個網頁,類似下面的百度知道,有人提問:姚明的身高是多少?然後有人回答答案,這是百度基於爬取的網頁後全文檢索的結果。

知識譜圖相關技術

要實現這樣的知識圖譜,任務還是很艱鉅的。首先這樣的知識應該如何表示?這樣的知識從哪裡來?應該如何儲存?如何提供快速的搜尋?
首先,這樣的知識可以用三元組的形式表示,(主,謂,賓)的形式,用來描述兩個事物之間的關係(姚明和女兒是父女關係),或者描述事物的屬性(姚明的身高是229CM)。三元組可以很好的表示知識。然後有個叫RDF(Resource Description Framework)的東西,中文叫資源描述框架。它是由W3C推薦的標準。今天這篇是入門,只涉及主要的概念,具體的就不多囉嗦了(其實還有RDFS,OWL,本體等很多相關概念……)。然後就是要回答知識從哪來?如果是開放域的問題,這個問題更加棘手,現在的一些只是譜圖我的理解都是從各大百科抽取詞條以及相關的屬性知識,但是所有的詞條也不能代表所有的知識,只能說現在知識圖譜專案,只有更大沒有最大,知識無法被窮盡(哲學上是不是要批判我這種?不可知論?我並不是知識無法被學習被瞭解這個意思哈)。但是我相信特定領域應該是可以把知識圖譜做的相對比較全的,至少普通使用者夠用的程度。知識獲取應該是知識圖譜相中比較難得,術語好些是知識抽取與挖掘,涉及到的東西也很多,對於特定領域肯定是需要投入相對一部分人去人工整理和校正知識。
然後加入我們有了這些個知識,我們應該如何儲存才能被高效的使用?這個方面我現在還沒有怎麼弄太明白,好像傳統的關係型資料庫也是可以的儲存的,但是就不太高效檢索了,基本應該是走圖資料庫的方向。圖資料庫的具體實現我也沒有去了解,但是前人也已經造了很多輪子,Jena這個開源專案就是用來幹這個的(後面會介紹怎麼用)當然還看到個北大的開源專案gStore,好像也不錯,都可以試試。
在完成了前面的所以的工作後,後面的工作才能展開,知識推理,語義搜尋,知識問答,最後才是知識的智慧表示。這裡想說下知識圖譜儲存的資料和傳統資料庫儲存的資料的區別,我覺得知識圖譜儲存的準確的來說是知識,是可以推理的,即基於原有的儲存內容產生新的新的內容(基於推理得到),而傳統的資料,基於關係的資料庫,雖然表的屬性之間也有一定的關係,基於外來鍵也可以有關聯,但是這種關係是沒法快速和高效的提供結果的,後面介紹。

總結:

1.介紹了知識圖譜大概可以用來幹什麼。
2.介紹了知識圖譜相關的技術概念,知識抽取與挖掘的概念,知識表示,知識儲存,只是推理,語義搜尋等