圖計算簡單來講就是研究在這些大量資料中,如何高效計算、儲存並管理圖資料等問題的領域。傳統的關係型資料暴露出了建模缺陷、水平伸縮等問題,於是具有更強大表達能力的圖資料受到業界極大的重視。如果把關係資料模型比作火車的話,那麼現在的圖資料建模可比作高鐵。
大規模圖資料時代下的圖計算
圖(Graph)是一種重要的資料結構,它由節點V(或稱為頂點,即個體),與邊E(即個體之間的聯絡)構成,我們一般將圖表示為G(V,E)。圖資料的典型例子有網頁連結關係、社交網路、商品推薦等。
對應網際網路來說,可以把web網頁看作頂點,頁面之間的超連結關係作為邊;對應社交網路來說,可以把使用者看作頂點,使用者之間建立的關係看作邊。
比如微信的社交網路,是由節點(個人、公眾號)和邊(關注、點贊)構成的圖;淘寶的交易網路,是由節點(個人、商品)和邊(購買、收藏)構成的圖。
如此一來,抽象出來的圖資料便可作為研究和商用的基礎,由此探究出“世界上任意兩個人之間的人脈距離”、“關鍵意見領袖”等。將這些應用到商業領域,其底層的運算往往是圖相關的演算法。
比如圖的最短路徑演算法可以做好友推薦,計算關係緊密程度;對圖做PageRank可以用於傳播影響力分析,找出問題的中心,做搜尋引擎的網頁排名;最小連通圖可以識別洗錢或虛假交易等等。
近年來,圖資料規模呈指數級增長,可能達到數十億的頂點和數萬億的邊,且還在不斷增長,單機模式下的圖計算已經不適合目前資料的增長,傳統的分散式大資料處理平臺比如MapReduce、Spark也出現網路和磁碟讀寫開銷大、運算速度慢、處理效率極低的問題。
圖計算的特徵
初提圖計算,很多人會以為這是一種專門進行影象處理的技術。事實上,圖計算中的“圖”是針對“圖論”而言的,是一種以“圖論”為基礎的對現實世界的一種“圖”結構的抽象表達,以及在這種資料結構上的計算模式。
圖資料結構很好的表達了資料之間的關聯性,關聯性計算是大資料計算的核心——通過獲得資料的關聯性,可以從噪音很多的海量資料中抽取有用的資訊。
圖計算技術解決了傳統的計算模式下關聯查詢的效率低、成本高的問題,在問題域中對關係進行了完整的刻畫,並且具有豐富、高效和敏捷的資料分析能力,其特徵有如下三點:
a. 基於圖抽象的資料模型
圖計算系統將圖結構化資料表示為屬性圖,它將使用者定義的屬性與每個頂點和邊緣相關聯。屬性可以包括後設資料(例如,使用者簡檔和時間戳)和程式狀態(例如,頂點的PageRank或相關的親和度)。源自社交網路和網路圖等自然現象的屬性圖通常具有高度偏斜的冪律度分佈和比頂點更多的邊數。
b. 圖資料模型並行抽象
圖的經典演算法中,從PageRank到潛在因子分析演算法都是基於相鄰頂點和邊的屬性迭代地變換頂點屬性,這種迭代區域性變換的常見模式形成了圖並行抽象的基礎。在圖並行抽象中,使用者定義的頂點程式同時為每個頂點實現,並通過訊息(例如Pregel)或共享狀態(例如PowerGraph)與相鄰頂點程式互動。每個頂點程式都可以讀取和修改其頂點屬性,在某些情況下可以讀取和修改相鄰的頂點屬性。
c. 圖模型系統優化
對圖資料模型進行抽象和對稀疏圖模型結構進行限制,使一系列重要的系統得到了優化。
比如GraphLab的GAS模型更偏向共享記憶體風格,允許使用者的自定義函式訪問當前頂點的整個鄰域,可抽象成Gather、Apply和Scatter三個階段。GAS模式的設計主要是為了適應點分割的圖儲存模式,從而避免Pregel模型對於鄰域很多的頂點、需要處理的訊息非常龐大時會發生的假死或崩潰問題。
面臨的技術挑戰
圖計算領域面臨大資料環境帶來的巨大挑戰。隨著圖資料量上升速度的加快,圖資料庫和圖計算受關注程度也在不斷提高。雖然各類圖計算系統在不斷優化,但是挑戰依然存在。
圖提供了非常靈活的抽象,用於描述離散物件之間的關係。科學計算、資料分析和其他領域的許多實際問題可以通過圖以其基本形式建模,並通過適當的圖演算法求解。隨著圖的問題規模越來越大,複雜性越來越大,它們很容易超過單處理器的計算和記憶體容量。鑑於平行計算在許多科學計算領域取得了成功,並行處理似乎可以克服圖計算中單個處理器資源受到的限制。
當整體計算問題解決方法得到很好的平衡時,應用程式可以更好地執行和擴充套件,即,當需要解決的問題、用於解決問題的演算法、用於表達演算法的軟體以及執行軟體的硬體使兩者都能很好地相互匹配。在很大程度上,並行科學計算的成功歸功於這些方面,與典型的科學應用完全匹配。
解決科學領域中典型問題(通常涉及求解偏微分方程系統)的常用習語已經發展併成為科學計算界的標準實踐。同樣,適用於典型問題的硬體平臺和程式設計模型也變得很普遍。世界各地的機房包含執行用MPI編碼的商用叢集。
不過,對於開發主流並行科學應用程式而言,效果良好的演算法、軟體和硬體對於大規模圖問題並不一定有效。圖問題具有一些固有的特徵,使它們與當前的計算問題解決方法不匹配。大圖計算是大資料計算中的一個子問題,除了滿足大資料的基本特性之外,大圖計算還有著自身的計算特性,相應地面臨著新的挑戰。特別是,圖問題的以下屬性對高效並行性提出了重大挑戰。
a. 區域性性差
圖表示著不同實體之間的關係,而在實際的問題當中,這些關係經常是不規則和無結構的,因此圖的計算和訪存模式都沒有好的區域性性,而在現有的計算機體系架構上,程式的效能獲得往往需要利用好區域性性。所以,如何對圖資料進行佈局和劃分,並且提出相應的計算模型來提升資料的區域性性,是提高圖計算效能的重要方面,也是面臨的關鍵挑戰。
b. 資料及圖結構驅動的計算
圖計算基本上完全是由圖中的資料所驅動的。當執行圖演算法時,演算法是依據圖中的點和邊來進行指導,而不是直接通過程式中的程式碼展現出來。所以,不同的圖結構在相同的演算法實現上,將會有著不同的計算效能。因此,如何使得不同圖結構在同一個系統上都有較優的處理結果,也是一大難題。
c. 圖資料的非結構化特性
圖計算中圖資料往往是非結構化和不規則的,在利用分散式框架進行圖計算時,首先需要對圖進行劃分,將負載分配到各個節點上,而圖的這種非結構化特性很難實現對圖的有效劃分,從而達到儲存、通訊和計算的負載均衡。一旦劃分不合理,節點間不均衡的負載將會使系統的擴充性受到嚴重的限制,處理能力也將無法符合系統的計算規模。
d. 高訪存/計算比
絕大部分的大圖計算規模使得記憶體中無法儲存下所有的資料,計算中磁碟的I/O必不可少,而且大部分圖演算法呈現出迭代的特徵,即整個演算法需要進行多次迭代,每次迭代需要遍歷整個圖結構,而且每次迭代時所進行的計算又相對較少。因此,呈現出高的訪存/計算比。另外,圖計算的區域性性差,使得計算在等待I/O上花費了巨大的開銷。
圖計算框架
接下來對主流的圖計算框架進行簡介。
依據大規模圖計算系統的使用場景以及計算平臺架構的不同,我們將其分為單機記憶體圖計算系統、單機外存圖計算系統、分散式記憶體圖計算系統和分散式外存圖計算系統。
單機記憶體圖處理系統就是圖處理系統執行在單機環境,並且將圖資料全部緩衝到記憶體當中。單機外存圖處理系統就是圖處理系統執行在單機環境,並且通過計算將圖資料不斷地與記憶體和磁碟進行互動的高效圖演算法。
分散式記憶體系統就是圖處理系統執行在分散式叢集環境,並且所有的圖資料載入到記憶體當中。分散式外存圖計算系統將單機外存系統(Single-machine out-of-core systems)擴充為叢集,能夠處理邊數量級為trillion的圖。
技術資源
Open Academic Graph(OAG)是通過連結Microsoft Academic Grapg(MAG)和AMIner兩個大型學術圖表生成的。(https://www.aminer.cn/oag2019 )我們將OAG2019的統計資料呈現為下面三個圖,包括Venue Collection、Paper Collection和Author Collection三部分。
Venue Colletion
Paper Collection
Author Collection
學者情況概覽
本節對這些學者進行了簡單的統計分析,包括他們的分佈地圖、遷徙狀況、機構分佈等。
全球圖計算領域活躍學者分佈圖
由AMiner繪製的全球圖計算領域活躍學者所在地區的分佈地圖(如上圖所示)可以看出,圖計算領域學者在北美洲最為集中,亞洲次之,歐洲西部該領域的人才分佈也較多。
分國家來看,美國東部該領域學者較為集中,其次是中國,歐洲主要在德國和英國擁有該領域較多數量的學者。
下圖是國內圖計算領域活躍學者的分佈圖,由該圖可見,國內學者集中分佈在長三角、珠三角以及京津冀等地區。從全域性來看,內陸地區的學者分佈數量相對沿海地區要少,沿海地區珠三角是全國學者分佈最為集中的地區,內陸地區的學者則主要集中分佈在華北及我國東北三省地區,學者數量呈由南到北逐漸減少的分佈狀態。
中國圖計算領域活躍學者分佈圖
除了地區分佈,我們還對圖計算領域學者的遷徙路徑做了分析。由下圖可以看出,美國是圖計算領域人才流動大國,人才輸入和輸出幅度領先於其他國家,且從資料來看人才流入大於人才流出。中國、英國、印度等國人才遷徙流量小於美國,其中中國與印度有輕微的人才流失現象。除美國和中國外,其餘各國圖計算學者的流失和引進是相對比較均衡的。
全球圖計算領域活躍學者遷徙圖
人才的頻繁流入流出,使得該領域的學術交流活動增加,帶動了人才質量的提升的同時,也促進了領域理論及技術的更新迭代,至此逐漸形成一種良性迴圈的過程。
全球圖計算領域活躍學者機構分佈
如上圖所示,是對全球計算機圖計算領域學者所屬機構的統計,資料顯示多名學者就職於同一機構的現象較為普遍,機構所擁有的學者數量越多,一定程度上越能反映出該機構的科研與創新能力,直觀地印證其在該領域具備更強的競爭力,因此我們對錶現最突出的機構進行了以上排名。
在圖計算領域,Microsoft(微軟)擁有的影響力學者數量最多,共55人,位於榜首,Facebook以26名位居第二,University of California(加利福尼亞大學)共擁有20名學者位居第三。中國擁有10位以上學者的機構有香港中文大學和中國科學技術大學,分別擁有17名和11名學者。中國擁有該領域學者數10人以下的機構分別有Peking University(北京大學)、Hong Kong University of Science and Technology(香港科技大學)、Fudan University(復旦大學)以及Tsinghua University(清華大學)。
產業應用
圖就在我們身邊,它們遍佈各地,如Facebook、谷歌、Twitter、電信、生物、醫藥、營銷和股票市場。同時,它們影響電腦科學的眾多領域,包括軟體工程、資料庫和積體電路的設計。
目前,圖計算已應用於醫療、金融、社交分析、自然科學以及交通等領域,很多網際網路公司以及很多年輕的人工智慧領域創業公司也都開展了圖計算相關的業務。以下我們就圖計算的主要應用場景與公司進行簡介。
a. 醫療行業的應用
圖計算的出現使得對病人的智慧診斷成為可能。對病人開具處方需要依據病人的病情特徵與以往的健康情況,以及藥物的相關情況。過去的醫療大多依賴於醫生的個人經驗與病人的自我描述,傳統的資料處理系統無法一次性調出多個與病人情況、保險情況、藥物情況相關的資料庫——挑戰在於資訊必須由多個線上資源拼湊而成,包括列出疾病和治療的電子病歷、醫療保險或其他跟蹤醫療服務的資料庫、描述藥物的資料庫,在某些情況下,還有跟蹤臨床試驗的獨立資料庫。
b. 金融行業的應用
在金融實體模型中,存在著許許多多不同型別的關係,以及數十億的結點和邊。有些是相對靜態的,如企業之間的股權關係、個人客戶之間的親屬關係,有些則是不斷地在動態變化,如轉賬關係、貿易關係等等。這些靜態或者動態的關係背後,隱藏著很多以前我們不知道的資訊。
之前,我們在對某個金融業務場景進行資料分析和挖掘過程中,通常都是從個體(如企業、個人、賬戶等)本身的角度出發,去分析個體與個體之間的差異和不同,很少從個體之間的關聯關係角度去分析,因此會忽略很多原本的客觀存在,也就更無法準確達到該業務場景的資料分析和挖掘目標。而圖計算和基於圖的認知分析正是在這方面彌補了傳統分析技術的不足,幫助我們從金融的本質角度來看這個問題,從實體和實體之間的經濟行為關係出發來分析問題。
c. 網際網路行業的應用
目前大資料在網際網路公司主要應用在廣告、報表、推薦系統等業務上。在廣告業務方面需要大資料做應用分析、效果分析、定向優化等,在推薦系統方面則需要大資料優化相關排名、個性化推薦以及熱點點選分析等。圖計算的出現滿足了這些計算量大、效率要求高的應用場景的需求。
圖計算模型在大資料公司,尤其是IT公司是非常流行的一大模型,它是很多實際問題最直接的解決方法。近幾年,隨著資料的多樣化,資料量的大幅度提升和算力的突破性進展,超大規模圖計算在大資料公司發揮著越來越重要的作用,尤其是以深度學習和圖計算結合的大規模圖表徵為代表的系列演算法。
圖計算的發展和應用有井噴之勢,各大公司也相應推出圖計算平臺,例如Google Pregel、Facebook Graph、騰訊星圖、華為圖引擎服務GES、百度Hugegraph、阿里雲關係網路分析、費馬科技、亞馬遜Neptune、TigerGraph等平臺。