圖計算:一張圖秒級洞察千億級複雜關係

程式猿da哥發表於2018-08-29

圖計算:一張圖秒級洞察千億級複雜關係

在資料規模越來越大、資料結構越來越複雜的大資料時代,傳統的關係型資料暴露出了建模缺陷、水平伸縮等問題,於是具有更強大表達能力的圖資料受到業界極大的重視。如果把關係資料模型比做火車的話,那麼現在的圖資料建模可比做高鐵。

什麼是圖呢?

圖(Graph),將資訊中的實體,以及實體之間的關係,分別抽象表達成為頂點以及頂點間的邊這樣的結構資料。

像Facebook和Twitter這樣的社交網路,其資料天生就適合於圖表示法。諸多典型的大資料應用易於透過圖來進行建模,如交通網路、CDR通話圖、使用者與產品之間的二分圖、論文中作者之間的合作關係網、文章之間的索引關係、金融交易網路等等。

於是,基於圖資料的分析技術—關係分析(圖計算)應運而生。圖計算系統就是針對圖結構資料處理的系統,並在這樣的資料上進行針對性最佳化的高效計算。

圖計算:一張圖秒級洞察千億級複雜關係

我們可以用圖這個通用的、富有表現力的結構來建模各種場景,從宇宙火箭的建造到道路系統,從食物的供應鏈及原產地追蹤到人們的病歷。

在許多實際場合中我們都能找到圖分析的應用。

例如:

在金融風控中,將多種變數(如賬號、交易、資金)之間的關係透過圖聯絡在一起,共同分析其對金融安全的影響,典型的金融異構系統,如洗錢、龐氏騙局等都能反映出特定的圖結構。

在大圖上做環路檢測可以有效識別迴圈轉賬,幫助預防信用卡詐騙;

分析可疑人物的近鄰好友和基於屬性圖的社團發現可以進一步挖掘出騙子團伙或者殭屍賬號。

知識圖譜透過圖來建立知識概念之間的聯絡,並在此基礎上設計推理演算法。

知識圖譜常用來進行知識推理,從語義層面理解使用者意圖,改進搜尋質量。

LinkedIn的知識圖譜對會員顯式輸入的技能,比如“分散式系統”、“Hadoop”等,自動推理出其他技能,比如“產品管理”、“NoSQL”等。特別是AI和機器學習中需要處理很多由實體和關係構成的資訊。例如,在推薦系統中,使用者和電影就是實體,他們之間的喜好構成了實體間的關係;搜尋查詢和商品也是實體,他們之間的點選率構成了實體間的關係。

業界洞察

整個圖計算領域可進一步細分為查詢分析、計算引擎、儲存管理、視覺化等子方向。目前並沒有一種涵蓋所有子方向的圖引擎。例如圖資料庫Neo4j、Titan等擅長於圖資料的實時查詢,但並不能高效地據進行離線分析;分析引擎Turi、GraphX側重圖資料的離線分析和挖掘,卻不能對屬性圖進行管理,且不支援實時查詢。

同時,圖計算領域也面臨大資料環境下帶來的巨大挑戰。就當前的社交網路而言,對全網做查詢分析就意味著對數十億節點(人物)數百億邊(關係)的大圖進行操作。而規模更大的網際網路、物聯網可達到百億節點千億邊甚至以上。在如此巨大資料量的情況下,實現高效高併發的查詢是當前一大難點。

一方面,鑑於圖資料結構的稀疏性,並不能透過GPU等硬體手段上取得很好的加速。

另一方面,圖的區域性性也有別於傳統機器學習系統的資料組織形式。

社交網路中一個人的平均好友數達到數百,那他的2度好友就會達到數十萬之多,於是探索一個人ego-net(對圖中某節點做擴線查詢得到的子圖)往往會遍歷上千萬甚至更多條邊。

在多機環境下,這些邊往往分佈在不同的機器上,進一步增大了遍歷的難度。此外,隨著資料複雜性的增加,節點和邊往往帶有屬性資訊。這些資訊既可以是固有屬性(如年齡、性別等),也可以是計算得到的結果(如介數中心度、pagerank值等),這些計算結果往往又是下一次查詢的輸入。屬性管理與互動式計算查詢,是圖領域的另一大挑戰。

華為人工智慧平臺上的EYWA圖引擎提供了從底層的圖儲存和管理、核心的高效能運算引擎、直到面向上層的圖分析和圖查詢,一整套的關係網路分析解決方案,其基本特徵如下:

 高效能

EYWA基於邊集流的塊狀資料組織兼顧了圖計算與圖資料查詢的效能要求,並整合了多種面向行業領域的最佳化演算法。它透過最佳化的prefetch策略降低磁碟的IO操作的效能損耗,同時也透過鬆弛BSP模型來降低通訊IO帶來的效能損耗。相比Powergraph, GraphX, Powerlyra等計算速度提速4~10倍以上,而圖資料查詢的效能提升更加明顯,具備秒級多跳實時查詢的強大效能。

 一體化

EYWA實現圖計算、圖查詢和圖儲存的一體化:提供基於屬性圖模型的資料儲存,支援基本查詢(點查、邊查、遍歷、屬性過濾等),常用的圖演算法(PageRank, SSSP, K-core, graph metrics等)可以基於圖的結構和屬性進行計算,並將結果回寫到圖的某一屬性中便於後續查詢。

圖計算:一張圖秒級洞察千億級複雜關係

EYWA已經在百億節點和千億邊的大規模圖實踐上驗證了其高併發、低時延的能力。

其中一份實驗用到的公開資料集是基於史丹佛大學SNAP研究組提供的Friendster, 來自真實的社會網路。我們用全球計算機排名Graph500提供的Kronecker程式碼在對該資料集進行擴充套件,形成了具有2.5億點110億邊的大圖和5.2億點和1011億邊的超大圖。透過擴線查詢模擬對社交網路節點的ego-net的探索,我們的實驗結果顯示在百億邊圖100併發下的3跳擴線查詢總響應時間基本在0.1秒以內。

以下是針對不同併發請求數EYWA系統的響應時間(上:併發狀態下單個請求的執行時間;下:所有併發請求執行完成的總時間);千億邊圖100併發下3跳擴線查詢總響應時間在0.5~3秒(隨種子節點不同而變化)。

圖計算:一張圖秒級洞察千億級複雜關係

圖計算:一張圖秒級洞察千億級複雜關係

EYWA圖引擎支援基於屬性圖模型的複雜屬性管理、內建了20餘種拓撲度量和基本圖分析演算法,並透過服務化API將圖引擎的能力開放出去,提供全方位的關係網路洞察。

在電信網路等行業實踐中,利用EYWA我們很自然地表達了各類交換機、路由器、終端裝置等網元構成的物理通訊網路,以及在其上抽象出來的邏輯網路,並在此基礎上執行復雜的網路規劃模擬演算法,極大提升了業務工作效率;

在金融、公共安全等行業實踐中,利用EYWA可表達大量的人物、賬戶、商家、手機等相互關聯的不同實體,並透過頂點和邊上的屬性(如人物的年齡、性別,賬戶的建立時間,人和商家之間的交易金額等)精細描述真實世界的資訊。基於EYWA大規模高併發的支援,以及內建的最短路徑、中間人查詢、迴路分析、鄰居子圖等分析功能,客戶能夠高效地進行反欺詐、團伙發現等業務計算、幫助業務人員發現大量關聯資料背後有價值的隱藏資訊。

轉自:華為雲社群  作者:mr.FangYang 

原文連結:

華為圖引擎服務:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548113/viewspace-2213069/,如需轉載,請註明出處,否則將追究法律責任。

相關文章