新一代圖數(shù)據(jù)庫(kù)已經(jīng)在市場(chǎng)上站穩(wěn)腳跟,與之相伴的一代查詢(xún)語(yǔ)言也應(yīng)運(yùn)而生。包括Gremlin、Cypher以及GQL等在內(nèi)的各類(lèi)圖數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言,專(zhuān)門(mén)幫助用戶(hù)解包圖內(nèi)信息。
從本質(zhì)上講,一切數(shù)據(jù)庫(kù)都需要一種與客戶(hù)交流的方式,而查詢(xún)語(yǔ)言的職責(zé)正是定義數(shù)據(jù)庫(kù)能夠做些什么。良好的圖數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言應(yīng)該以盡可能簡(jiǎn)單的方式幫助開(kāi)發(fā)人員根據(jù)數(shù)據(jù)庫(kù)內(nèi)定義的網(wǎng)絡(luò)提出復(fù)雜問(wèn)題,進(jìn)而釋放出圖數(shù)據(jù)庫(kù)的強(qiáng)大力量。最初,這些語(yǔ)言各自面向不同的新數(shù)據(jù)庫(kù)以專(zhuān)有方案的形式存在,但最近一段時(shí)間各查詢(xún)語(yǔ)言間的開(kāi)放標(biāo)準(zhǔn)正在加速建立。
在關(guān)系數(shù)據(jù)庫(kù)領(lǐng)域,SQL(結(jié)構(gòu)化查詢(xún)語(yǔ)言)多年以來(lái)一直是行業(yè)的主導(dǎo)標(biāo)準(zhǔn)。它定義了一種在表內(nèi)搜索符合特定條件的數(shù)據(jù)行的核心方法。如果數(shù)據(jù)跨越多個(gè)表,SQL還提供一種表對(duì)齊方法,以便將所有信息連接至統(tǒng)一的集合之內(nèi)。SQL特別擅長(zhǎng)查找包含與某些規(guī)定相匹配的特定字段的特定條目集合,但也就僅此而已了。
經(jīng)典關(guān)系數(shù)據(jù)庫(kù)也能存儲(chǔ)圖,因此在圖數(shù)據(jù)庫(kù)出現(xiàn)之前,這也是開(kāi)發(fā)人員所能仰仗的唯一選擇。SQL能夠回答一部分基礎(chǔ)問(wèn)題,但傳統(tǒng)查詢(xún)語(yǔ)言卻往往處理不了那些最有用、最具吸引力的問(wèn)題。事實(shí)上,關(guān)系數(shù)據(jù)庫(kù)在表達(dá)極端復(fù)雜關(guān)系方面遠(yuǎn)遠(yuǎn)不及圖數(shù)據(jù)庫(kù),而關(guān)系數(shù)據(jù)庫(kù)查詢(xún)的唯一解決方案就是返回大塊數(shù)據(jù)以供客戶(hù)端軟件運(yùn)行進(jìn)一步分析。
所以大家應(yīng)該理解了,圖查詢(xún)語(yǔ)言的誕生是為了回答更為復(fù)雜的問(wèn)題,例如:
圖數(shù)據(jù)庫(kù)需要多種不同模型,其中某些查詢(xún)需要跟蹤多條鏈接或跳點(diǎn)。最初,每種圖數(shù)據(jù)庫(kù)都使用自己的專(zhuān)有查詢(xún)語(yǔ)言。好在最近幾年,圖數(shù)據(jù)庫(kù)廠商開(kāi)始添加新的實(shí)現(xiàn)并致力于推動(dòng)開(kāi)源標(biāo)準(zhǔn)以實(shí)現(xiàn)交叉支持。目前最常見(jiàn)的圖查詢(xún)語(yǔ)言包括:
GraphQL——顧名思義,它肯定支持圖查詢(xún);但GraphQL實(shí)際是一種更為通用的查詢(xún)語(yǔ)言,能夠高效搜索大部分文檔與關(guān)系數(shù)據(jù)庫(kù)。它雖然也能發(fā)掘出一部分圖數(shù)據(jù)庫(kù)用途,但總體來(lái)講只是在支持與關(guān)系數(shù)據(jù)庫(kù)相同的常規(guī)查詢(xún)。
不同查詢(xún)語(yǔ)言之間存在著一系列本質(zhì)差異。有些查詢(xún)語(yǔ)言屬于“聲明性”,另一些則屬于“過(guò)程性”。也就是說(shuō),有些是讓開(kāi)發(fā)者通過(guò)編寫(xiě)定義子集的簡(jiǎn)單規(guī)則來(lái)聲明自己“想干什么”,再由數(shù)據(jù)庫(kù)應(yīng)用這些規(guī)則、使用可用的索引構(gòu)建搜索計(jì)劃、再找到一切可能的匹配項(xiàng)。
例如,用戶(hù)可能需要查找相距10英里之內(nèi)的所有超過(guò)10000美元的銀行交易行為,或者是搜索互有聯(lián)系而且在過(guò)去兩周之內(nèi)沒(méi)發(fā)過(guò)新帖的社交媒體用戶(hù)。這些規(guī)則可以包括對(duì)標(biāo)準(zhǔn)查詢(xún)語(yǔ)言(“WHERE AGE<20”)中找到的值的所有過(guò)濾,再加上關(guān)于網(wǎng)絡(luò)連接的其他復(fù)雜規(guī)則(“IS RELATED TO”)。一般來(lái)說(shuō),圖查詢(xún)語(yǔ)言在搜索關(guān)系圖方面表現(xiàn)得最為突出。
而過(guò)程性查詢(xún)語(yǔ)言則更接近于傳統(tǒng)計(jì)算機(jī)語(yǔ)言,允許開(kāi)發(fā)人員控制數(shù)據(jù)庫(kù)搜索條目的具體方式,一般是編寫(xiě)循環(huán)或者其他控制結(jié)構(gòu)??偟膩?lái)講,聲明式語(yǔ)言更易于理解和使用,因?yàn)樗[藏掉了大部分搜索工作;但過(guò)程性語(yǔ)言則更為強(qiáng)大。一部分?jǐn)?shù)據(jù)庫(kù)能夠同時(shí)支持這兩種查詢(xún)方式。
另一個(gè)主要區(qū)別,則來(lái)自數(shù)據(jù)庫(kù)結(jié)構(gòu)本身。有些數(shù)據(jù)庫(kù)支持RDF,有些則支持所謂屬性圖。RDF模型屬于W3C標(biāo)準(zhǔn),最初用于對(duì)語(yǔ)義信息進(jìn)行編碼。屬性圖模型則往往更通用也更靈活。同樣的,一部分?jǐn)?shù)據(jù)庫(kù)能夠同時(shí)支持這兩種模型。
傳統(tǒng)用戶(hù)如何快速適應(yīng)圖查詢(xún)語(yǔ)言?
Oracle向常規(guī)SQL查詢(xún)語(yǔ)言中添加了圖搜索功能,由此為主數(shù)據(jù)庫(kù)實(shí)現(xiàn)了圖功能。這種名為PGQL(屬性圖查詢(xún)語(yǔ)言)的擴(kuò)展提供了一種簡(jiǎn)潔的方法,可供開(kāi)發(fā)者快速搜索圖片并創(chuàng)建關(guān)于匹配條件的頂點(diǎn)報(bào)告。其圖分析框架以數(shù)十種常見(jiàn)算法為起點(diǎn),通過(guò)擴(kuò)展逐步為基礎(chǔ)數(shù)據(jù)構(gòu)建起復(fù)雜的摘要。另外,它還同時(shí)支持屬性圖與RDF圖。
微軟在2017年向其SQL Server添加了圖功能,并使用匹配屬性模式的MATCH子句擴(kuò)展了其SQL版本。搜索操作可以通過(guò)命令式查詢(xún)的存儲(chǔ)過(guò)程進(jìn)行擴(kuò)展。Azure云中的Microsoft Cosmos數(shù)據(jù)庫(kù)支持Apache TinkerPop API,因此能夠支持所有Gremlin式查詢(xún)。
亞馬遜的主要圖數(shù)據(jù)庫(kù)為Amazon Neptune,同樣支持屬性圖與RDF圖。屬性圖可以使用Gremlin類(lèi)查詢(xún)進(jìn)行搜索,而RDF圖則適合由SPARQL進(jìn)行搜索。
IBM公司一直與多家圖數(shù)據(jù)庫(kù)廠商合作,例如Neo4J,并在自家云中提供相關(guān)的產(chǎn)品即服務(wù)。此服務(wù)名為IBM Graph,除了使用支持Gremlin的TinkerPop API以外,這項(xiàng)服務(wù)還提供其他用于基礎(chǔ)檢索的簡(jiǎn)單API。
后起之秀們的故事
近年來(lái),Neo4J已經(jīng)成為最具影響力的圖數(shù)據(jù)庫(kù)之一,而且目前仍是這一領(lǐng)域的領(lǐng)導(dǎo)者。但其仍是一家獨(dú)立企業(yè),因此在本文中同樣被納入“后起之秀”的范疇。順帶一提,其實(shí)很多參與圖數(shù)據(jù)庫(kù)市場(chǎng)的廠商都有著悠久的發(fā)展歷史。
Neo4J鼓勵(lì)其他公司通過(guò)OpenCypher項(xiàng)目使用其查詢(xún)語(yǔ)言Cypher。此外,Neo4J也是GQL標(biāo)準(zhǔn)化進(jìn)程的主要推動(dòng)者,同時(shí)支持使用GraphQL執(zhí)行一部分查詢(xún)。
TigerGraph選擇的是存儲(chǔ)屬性圖并使用GSQL進(jìn)行查詢(xún)的路線,這是一種簡(jiǎn)化并發(fā)處理工實(shí)現(xiàn)大規(guī)模數(shù)據(jù)集擴(kuò)展能力的過(guò)程性方法。該數(shù)據(jù)庫(kù)背后的廠商提供一款復(fù)雜的可視化工具GraphStudio,能夠以產(chǎn)品及云服務(wù)的形式供用戶(hù)探索并查詢(xún)數(shù)據(jù)集內(nèi)容。
OrientDB則是一套開(kāi)源數(shù)據(jù)庫(kù),可使用Gremlin和SQL進(jìn)行查詢(xún)。它的締造廠商已經(jīng)被SQP所收購(gòu),因此相關(guān)產(chǎn)品目前正在與SAP自家產(chǎn)品線進(jìn)行集成。
ArangoDB在設(shè)計(jì)上支持圖與NoSQL文檔數(shù)據(jù)集。這款開(kāi)源數(shù)據(jù)庫(kù)既提供社區(qū)版,也提供服務(wù)形式的付費(fèi)商業(yè)版。其關(guān)聯(lián)的查詢(xún)語(yǔ)言被稱(chēng)為SQL,提供的是過(guò)程性數(shù)據(jù)搜索方法。
AllegoGraph存儲(chǔ)RDF圖,并使用SPARQL、RDFS++以及多種編程語(yǔ)言擴(kuò)展(例如邏輯編程語(yǔ)言Prolog,以及Allegro Common LISP)實(shí)現(xiàn)查詢(xún)。其知識(shí)圖譜瀏覽器Gruff能夠在常規(guī)網(wǎng)絡(luò)瀏覽器中運(yùn)行,借此實(shí)現(xiàn)可視化查詢(xún)。該產(chǎn)品同時(shí)適用于本地安裝和亞馬遜云科技等公有云平臺(tái)。
Ontotext專(zhuān)注于創(chuàng)建大型知識(shí)圖譜,其GraphDB可支持對(duì)RDF圖執(zhí)行SPARQL查詢(xún)。Ontotext提供三個(gè)版本(免費(fèi)版、標(biāo)準(zhǔn)版與企業(yè)版),三者的功能基本相同,但免費(fèi)版僅支持兩項(xiàng)并發(fā)查詢(xún)。
圖數(shù)據(jù)庫(kù)查詢(xún)語(yǔ)言有哪些局限?
圖查詢(xún)語(yǔ)言的核心,在于提供一種簡(jiǎn)潔的方式以搜索匹配特定模式的特定條目組合。但有些問(wèn)題,無(wú)論其內(nèi)容多么明確,都很難通過(guò)圖查詢(xún)語(yǔ)言得到有效回答。
以查找“團(tuán)”(即相互間高度連接的頂點(diǎn)子集)為例,雖然這個(gè)問(wèn)題本身屬于NP完全問(wèn)題,但可能難以通過(guò)圖查詢(xún)語(yǔ)言得到有效解決。隨著問(wèn)題規(guī)模的擴(kuò)大,尋找答案的時(shí)間往往呈指數(shù)級(jí)增長(zhǎng)——換句話說(shuō),這些問(wèn)題不具備可擴(kuò)展性。如果錯(cuò)誤使用圖查詢(xún)語(yǔ)言,我們很可能在不經(jīng)意間寫(xiě)出一條需要極長(zhǎng)時(shí)間才能解決的高成本查詢(xún)。
好文章,需要你的鼓勵(lì)
新加坡國(guó)立大學(xué)研究團(tuán)隊(duì)開(kāi)發(fā)了SPIRAL框架,通過(guò)讓AI與自己對(duì)弈零和游戲來(lái)提升推理能力。實(shí)驗(yàn)顯示,僅訓(xùn)練AI玩簡(jiǎn)單撲克游戲就能讓其數(shù)學(xué)推理能力提升8.6%,通用推理提升8.4%,且無(wú)需任何數(shù)學(xué)題目作為訓(xùn)練材料。研究發(fā)現(xiàn)游戲中的三種推理模式能成功轉(zhuǎn)移到數(shù)學(xué)解題中,為AI訓(xùn)練提供了新思路。
同濟(jì)大學(xué)團(tuán)隊(duì)開(kāi)發(fā)的GIGA-ToF技術(shù)通過(guò)融合多幀圖像的"圖結(jié)構(gòu)"信息,創(chuàng)新性地解決了3D相機(jī)噪聲問(wèn)題。該技術(shù)利用圖像間的不變幾何關(guān)系,結(jié)合深度學(xué)習(xí)和數(shù)學(xué)優(yōu)化方法,在合成數(shù)據(jù)集上實(shí)現(xiàn)37.9%的精度提升,并在真實(shí)設(shè)備上展現(xiàn)出色泛化能力,為機(jī)器人、AR和自動(dòng)駕駛等領(lǐng)域提供更可靠的3D視覺(jué)解決方案。
伊利諾伊大學(xué)研究團(tuán)隊(duì)通過(guò)對(duì)比實(shí)驗(yàn)發(fā)現(xiàn),經(jīng)過(guò)強(qiáng)化學(xué)習(xí)訓(xùn)練的視覺(jué)語(yǔ)言模型雖然表現(xiàn)出"頓悟時(shí)刻"現(xiàn)象,但這些自我糾錯(cuò)行為并不能實(shí)際提升推理準(zhǔn)確率。研究揭示了AI模型存在"生成-驗(yàn)證差距",即生成答案的能力強(qiáng)于驗(yàn)證答案質(zhì)量的能力,且模型在自我驗(yàn)證時(shí)無(wú)法有效利用視覺(jué)信息,為AI多模態(tài)推理發(fā)展提供了重要啟示。
MIT等頂尖機(jī)構(gòu)聯(lián)合提出SparseLoRA技術(shù),通過(guò)動(dòng)態(tài)稀疏性實(shí)現(xiàn)大語(yǔ)言模型訓(xùn)練加速1.6倍,計(jì)算成本降低2.2倍。該方法使用SVD稀疏性估計(jì)器智能選擇重要計(jì)算部分,在保持模型性能的同時(shí)顯著提升訓(xùn)練效率,已在多個(gè)任務(wù)上驗(yàn)證有效性。