原生圖數據庫三個被低估的優點
譯文譯者 | 布加迪
審校 | 孫淑娟
如果你被告知圖數據庫的目的是使你能夠將組織的數據視為一個圖,那么你還沒有被告知足夠多的信息。
圖數據庫為你解決的真正問題是:系統中的故障在哪里?哪些交易模式可能表明惡意企圖?哪些治療組合對于最難治的疾病最有效?
將關系融入到數據中后,數據會在你最需要的時候顯示這種關系。
它不僅僅涉及可視化的圓圈和箭頭。可視化插件不是原生圖數據庫。原生圖工具解釋了關系,以及由關系衍生而來的所有概念(比如相關性、完整性、概率、可靠性、偏誤和脆弱性)。這樣一來,來自這些關系的信息可以被數據庫定位、分析,然后向你解釋。
一、認知問題
圖數據庫生產商Neo4j的用戶創新高級主管Michael Hunger表示,人類通常會觀察世界,然后處理他們所看到的相互關聯的元素。
但是當這些人需要用關系數據庫來表示這些相同的元素時,問題在于,一旦他們實際使用技術即數據庫,就需要忘記所有的相互關系。
關系可以融入到關系數據庫中,但需要付出相當大的精力,加上大量的內存和存儲——當這些資源由云平臺提供時,需要高昂的費用。
因此為了節省時間和金錢,組織往往淡化理解相互關系方面的需求。后來當它們需要深入分析時,依賴只能從數據庫模式的表層推斷信息的附件和擴展件。
技術研究公司Omdia的人工智能平臺、分析和數據首席分析師Bradley Shimmin表示,不僅僅是金融公司需要了解欺詐檢測,其他公司也需要能夠了解員工下個月會不會辭職。
圖分析能夠跨多個維度來查看,為數據添加的上下文和含義,而表格數據對上下文和含義一無所知。
二、什么是原生圖數據庫?
在傳統的關系數據庫模型中,數據分布在多個表中,通過鍵連接。運行SQL查詢通常意味著連接多個表和多個索引查詢。

圖1.美國小企業創新研究(SBIR)計劃的
創業生態系統模型
在這里被描述為Neo4j圖數據庫模型
相比之下,在Neo4j屬性圖模型中,重點是數據元素之間的關系。這些元素作為“節點”來存儲,其屬性可以由任意數量的鍵/值對表示。
節點可以通過任意數量的關系來連接。節點和關系都可能有“屬性”。在圖模型中,關系數據庫表中的列或行表示為節點的屬性。
使用原生圖數據庫,整個堆棧都圍繞這個數據模型進行了優化,從查詢語言到文件存儲,不一而足。原生圖數據庫在分析這種關系時會更高效,因為它們一開始就被融入到模型中。
區分原生圖數據庫和運行在關系數據庫上的圖層非常重要。后者以圖的形式提供結果,但仍必須執行連接及其他操作,才能將來自整個數據庫的數據匯集在一起。這會導致延遲和過多消耗計算資源,規模擴展后這一切會暴露得更明顯。
開發圖數據庫在創建過程中需要額外的工作,因為你還得插入這些關系。所涉及的工作量以后會得到回報,你可以更輕松地推斷出數據之間的聯系。
回報來自這三個被低估的優點:
1.可遍歷性:建立聯系
圖數據庫使你能夠“遵循”關系。如果你讀取數據,又想要追蹤或遍歷這些關系,你會受益匪淺。
Neo4j的開發者關系工程師William Lyon指出了一項名為“無索引鄰近”的功能,該功能是圖數據庫所特有的。這基本上意味著你可以從一個節點遍歷到任何其他節點,無需進行索引查找。

圖2.圖模型的一部分,其中三個Twitter用戶相互關注
但關注程度不成比例
可遍歷性揭露了它們之間關系的范圍和限制
這種可遍歷性不僅使跟蹤數據之間的關系變得更容易,還減少了執行查詢所需的計算,從而減少了管理計算過程所需的人力。
至于關系數據庫,你必須計算組合在一起的內容,然后要有某種方法將它們合并在一起。這意味著更多的連接或跳點。數據庫中的數據量越大,所需的連接和跳點勢必越多。
相比之下,換成圖數據庫,數據庫中是否有80億人并不重要。如果專注于Joe,只對Joe的關系感興趣,可以完全忽略其他人。
這還使得圖數據庫對于分析層次數據特別有用,比如分析一家擁有200000名員工和數十個管理層的公司。

圖3.由于可遍歷性,Neo4j的Cypher查詢語言
用四行代碼揭示了三層深度的關系
而不是用復雜的腳本
在關系數據庫中對這種龐大而復雜的層次結構進行操作意味著數十萬個自連接:將人員或員工表與經理、與他們的經理或與每個人員指定的經理相連接。
換成圖數據庫,這只是跟蹤層次結構上下關系的問題。
圖數據庫格式對數據科學家也特別有吸引力——他們不喜歡與關系數據庫打交道,因為它有已執行的嚴格的模式。在開始工作之前,你必須事先定義并實施數據的模式。
相比之下,圖方法更快、更直觀,使你更容易迭代完善數據模型。
2.可解釋性:便攜式白板
如果人類從關系和聯系來看待世界,那么數據庫應該能夠推斷出關系和聯系的含義。
這個原則好比你試圖找到的結果的輸出具有“對白板友好性”。當研究型醫師與同事交流結果時,通常以Excel表格或某種表格的格式表示。大體而言,這些格式等同于完整的數據庫。
同時,圖向人類展示了一個即時的信息結果。你可以把白板上的這個豐富模型放到數據庫中,因為關系和實體是一等公民,但你也并不失去所有業務人員。
推薦系統是圖數據庫的核心用例。如果你能說“我們向你推薦這本書,因為它與你評價很高的其他書有相似的元素”,這是極具價值的推薦。
網絡特性使你能夠推斷出某些節點可能對其他節點產生的影響程度:“聚類是什么?誰最有影響力?誰連接聚類?誰必不可少?”
這種分析級別也許只能由關系數據庫通過非常復雜的聚合過程和所謂的“知識發現迭代”來完成,這一切使得之前描述的SQL交叉連接馬拉松看起來更像是百米沖刺。
印第安納大學的研究人員試圖找出帕金森病各種病因當中的遺傳關系方面的模式,出于一些重要的原因選擇了Neo4j作為其原生圖數據庫,其中一個原因是,圖查詢返回的模式本身可以表示為圖。
從他們的角度來看,不僅數據庫本身被表示為知識圖,連輸出也是如此。
3.公平性:將原始數據放入上下文
高質量的結果需要高質量的數據。圖數據庫在公平和消除偏誤方面顯示出更多被低估的優點,尤其是在用于機器學習和人工智能的龐大數據集。
偏誤可能來自兩個方面:偏差的數據被饋入到算法,以及研究人員在他們提出的問題方面有偏見。使用圖模型,就可以在設計階段突出并消除潛在的偏誤。
數據科學家自然會希望確保他們的訓練數據在被饋入到機器學習算法之前具有代表性、無偏誤。在數據準備階段使用原生圖數據庫可能有助于將原始信息置于上下文中,避免將偏誤饋入到模型的可能性。
所以看看你的圖的聚類,如果只有一個大聚類,那么就有偏誤,就有問題。你需要回過頭去,確保擁有良好的分布式聚類。
神經網絡本身就是圖。這意味著當你訓練模型時,神經網絡會發生變化。如果你呈現一個圖,并使其易于訪問、可變和可視化,那么就可以確定網絡如何獲取權重。
換句話說,從模型生成的任何特定的輸出都很容易追溯起源。可遍歷性是雙向的。
所有這些優點是否意味著關系模型已窮途末路?不太可能。但是正如Shimmin特別指出,圖數據庫是“一項至關重要的技術,我非常希望看到它更深入地全面集成到傳統的分析工作負載中。”
原文鏈接:https://thenewstack.io/the-3-underrated-strengths-of-a-native-graph-database/























