圖計算:一張圖秒級洞察千億級複雜關係
在資料規模越來越大、資料結構越來越複雜的大資料時代,傳統的關係型資料暴露出了建模缺陷、水平伸縮等問題,於是具有更強大表達能力的圖資料受到業界極大的重視。如果把關係資料模型比做火車的話,那麼現在的圖資料建模可比做高鐵。
什麼是圖呢?
圖(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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 《紅樓夢》人物關係有多複雜?一張圖幫你理清楚!
- 複利計算再升級
- 關於計算時間複雜度和空間複雜度時間複雜度
- 計算機二級Java複習1計算機Java
- 一張圖搞定七種 JOIN 關係
- 資料結構-邏輯關係&物理關係、時間複雜度、空間複雜度、順序表資料結構時間複雜度
- 時間複雜度怎麼算?如何計算時間複雜度?時間複雜度
- 4.14複利計算再升級總結
- 部門層級關係表
- 樹形或級聯關係
- 【集合論】關係閉包 ( 關係閉包求法 | 關係圖求閉包 | 關係矩陣求閉包 | 閉包運算與關係性質 | 閉包複合運算 )矩陣
- 時間複雜度的計算時間複雜度
- 【AI繪畫】秒級出圖 快速生成大師級畫作AI
- 一張圖理清計算機常見編碼的關係。ASCII、Unicode都不是事兒計算機ASCIIUnicode
- 關係等級儲存問題
- 如何與上級保持良好關係
- Jacek Sliwinski:論述遊戲設計複雜性與成功的關係遊戲設計
- 一張圖讓你記住uml的常用關係的簡單圖例
- React,Redux,React-redux的錯綜複雜關係ReactRedux
- 對於我們的複利計算程式的升級
- 網路模型複雜度計算方法模型複雜度
- 超級詳細的闡述:大資料、雲端計算和人工智慧的關係大資料人工智慧
- 偏相關係數計算
- 如何管理前端專案中的複雜依賴關係前端
- 一張圖秒懂js盒模型JS模型
- 基於HBase構建千億級文字資料相似度計算與快速去重系統
- 計算機四級網路工程師複習提綱計算機工程師
- 面對複雜業務,if-else coder 如何升級?
- mysql同步es,秒級MySql
- dtolnay/semver-trick:Rust中如何避免複雜的級聯性協調升級?Rust
- 8 張圖掌握 Laravel 的 Eloquent 關聯關係Laravel
- 大資料之亞秒級實時計算技術學哪些內容?大資料
- Java中各程式碼層級的關係Java
- sessions 與 processes 的計算關係Session
- B站千億級點贊系統服務架構設計架構
- 註冊,人人都有一臺超級計算機計算機
- MySQL超級複雜? 恆訊科技分享幾個使用技巧MySql
- 全球最快的十大超級計算機–資訊圖計算機