12張圖、6個故事,終于有人把圖數據庫的原理講明白了
人類到底是如何思考的呢?顯然,這是一個沒有標準答案的問題。
但如果我們把這個問題提煉成一個數學問題,并用數學的語言來描述它的話,人類在本質上是用圖的方式來思考的。
我們身處的這個世界是高維的、關聯的、不斷延展的,我們從來到這個世界到離開它的那一刻,一直都在與這個世界互動——我們每時每刻接觸的所有的實體(一個個人、一件件事、一條條新聞或舊聞、一個個知識點、一本本書,甚至一縷縷情緒),這些實體都存儲在我們的大腦(記憶)中。【注:在圖數據庫術語中,實體(Entity),也稱之為點(node)或頂點(Vertex)】
人腦很像是一臺設計精密的計算機,同時還擁有一種能夠無遠弗屆的思維能力,什么是“無遠弗屆”?即沒有思緒觸達不到的地方,這其實就是一種超深度的圖檢索、圖遍歷的能力。早在上個世紀40年代,社交網絡的概念還沒有被發明出來之前,研究人員就已經試圖用圖網絡的模型來描述和解釋大腦的運作機制了。
▲圖:用網絡圖的模型來解釋大腦運作機制
我們想象一下,帶有屬性的圖,可以用來表達世間一切事物,無論它們是關聯的還是離散的。當事物是關聯的時候,它們形成了一張網絡;而當它們離散開來的時候,則更像是關系型數據庫的表中的一行行的數據(筆者在這里要表達的要點是:圖是高維的,但是高維可以向下兼容并表述低維空間的內容,反之則不成立。或者說用低維的關系型數據庫來表達高維的圖則極其困難,通常是事倍功半甚至無功而返)。所以說,圖的表達方式和人類大腦神經元網絡——如何存儲與認知事物有著極大的相通性!
▲圖:傳統的關系數據庫與圖數據庫對比
我們總是不斷地在關聯、發散,再關聯、再發散,而當我們需要定位并搜索某個人或事物的時候,我們是通過一種哈希化的方式直接定位找到那個實體的,這個搜索過程并非關系型數據庫搜索加速中用到的常見的以樹狀索引為主的技術。【注:哈希是一種數據結構,又稱為相鄰哈希(Adjacency Hash或Adjacency Hash<*>)】
而當我們進行舉一反三式的發散思維的時候,我們相當于在圖或網絡上面進行某種實時過濾或動態遍歷搜索。當我們說一個人上知天文下知地理的時候,當我們在“旁征博引”的時候,我們似乎讓思緒從一張圖上跳到了另一張圖上,而我們的大腦存儲了很多張圖,這些圖或聯動或互動,根據我們的需要隨時來提供服務。如果圖數據庫可以實現同樣的人腦運作的方式,那么有什么理由不能相信圖數據庫就是終極的數據庫呢?當然,前提是我們得在下面這一點上達成共識:人腦就是終極的數據庫。我們甚至可以說,在強人工智能可以實現之前,讓圖數據庫先成為終極的人工數據庫或許是一條必經之路。
舉個例子,腦海中想到你最喜歡的一道菜——紅燒肉,你是怎么想到它的?按照現代web搜索引擎技術,輸入“紅”字,推薦出“燒”字,再輸入“燒”字,推薦出包含“紅燒肉”字樣的列表——或許人類的大腦并不是嚴格意義上用了這種倒排索引的搜索技術,但是這并不重要,因為定位到“紅燒肉”只是我們的一個起點,在圖思維方式中,如何延展到后續的諸多節點才是關鍵。?
從紅燒肉開始,你或許會想到湖南紅燒肉、東坡肉、蘇東坡、宋詞、李清照、岳飛、文天祥、崖山海戰、忽必烈、成吉思汗、蒙古西征……所謂舉一反三、旁征博引,大抵如此。
▲圖:由紅燒肉引發的思維關聯
當我們的思緒定位在某一個知識點的時候,只要我們想,它就可以一步步地關聯下去——從紅燒肉到湖南紅燒肉是一個細化分類的1步關聯操作,從湖南紅燒肉到蘇東坡也是如此。以此類推,上面的例子中的一連串的“旁征博引”實際上是一個在圖數據庫(或知識圖譜)中不斷關聯(屬性圖過濾或剪枝)操作的過程。
以下圖為例,從坦博拉火山爆發到滑鐵盧之役、自行車發明、印象主義的誕生,凡此種種的跨越時空的“蝴蝶效應”揭示了萬物皆關聯的本質。直面大腦是如何思考的這類問題最直接的回答就是——我們天然是用圖的思維方式!
▲圖:從火山爆發延展出的蝴蝶效應
我們學到的每一個知識都不是孤立的,這些與日俱增的知識點構建起來了龐大的知識網絡,讓我們隨時可以從中抽取、歸納、整理、編織、推導、關聯。人類歷史上所有的智者、文豪、天才、販夫走卒、路人甲乙,他(她)們的每一次驚世駭俗的靈光乍現或平常之極的循規蹈矩都是在用圖的思維在實踐。靈光乍現只因為在圖思維的道路上延展得更深、更廣、更快;循規蹈矩只是在圖思維上走得太淺層。
為了更好地說明問題,我們以《三字經》為例,來分析一下人是如何以圖的方式閱讀思考的。
▲圖:傳統啟蒙讀物《三字經》中“孟母三遷”故事
讀到“昔孟母,擇鄰處”這句話時,短短的6個字在我們腦海中形成了一張簡單的網絡(圖),其中包括孟母、孟子的形象,并從他們母子之間的關系發散、推導到更多關聯的實體,最終形成一張“顯而易見”多步關聯圖譜,如下圖所示。(對于那些初次接觸《三字經》或孟母故事的讀者,當你了解一個個知識點的過程就是在構造關聯知識圖譜的過程,一旦圖譜形成后,就可以像調用圖數據庫一樣隨時對它所存儲的圖譜進行查詢與分析。)
▲圖:由孟母三遷推演出“擇鄰(教育環境)處”的決策路徑
類似的,“融四歲、能讓梨”,其背后所反映的歷史名人故事,在我們的腦海中也是以一張簡單的圖的形式存在的。
我們無時不在地將每個文字、每個詞組關聯、發散、再關聯……從孟母擇鄰處的故事中,我們的大腦推演出了很多字面上沒有直接表達的內容,從孟母的居所選擇分化出:
- 好鄰居vs.壞鄰居
- 上進子女vs.厭學子女
- ……
這種推演讓我們從邏輯層面清晰地理解了孟母的“擇鄰處”的決策。而孔融讓梨的故事則是一種圖上的行為模式的對比分析:4歲的孔融vs.4歲的普通孩子,由此或可引出中國人的那句老話:三歲看小七歲看老。
▲圖:傳統啟蒙讀物《三字經》中“孔融讓梨”的故事
▲圖:孔融4歲VS.普通孩子4歲
我們再來看一個《三字經》中的例子:“有古文大小篆,隸草繼不可亂”,從大篆到小篆,再到隸書、草書,中國書法史的沿革與脈絡清晰可見。
▲圖:《三字經》中的漢字之演變
每一種書法的時代特征(肇始、鼎盛、衰落、中興、延續)以及它們各自的來龍去脈,各自的代表人物、作品,這是一張可以無限延展的網絡,但是當我們聚焦并把延展的幅度限定得很小的時候,我們可以得到如下的一張小圖譜。
▲圖:圖解書法演變歷程
在本質上,每一張網絡都是一張圖。每一個人的腦子里面都裝滿了圖,善于利用圖去思考、去發散、去歸納總結、去融會貫通。如果一張圖不能解決問題,那就再加一張!
通過本文的背景介紹,希望讀者能夠做好準備,更好地進入圖數據庫的世界。
本文摘編于《圖數據庫原理、架構與應用》,經出版方授權發布。(書號:9787111708100)轉載請保留文章來源。