本書全面、系統地介紹了單機和分布式圖分析算法的理論基礎、框架、實戰應用等,側重理論與實踐相結合。在內容組織上,首先,本書整體介紹圖分析技術的發展歷程和現狀,并分析圖分析技術面臨的挑戰。其次,本書系統介紹了以下內容:單機圖分析算法的基本原理、常用場景和基礎解法;分布式圖分析技術的關鍵步驟解析及調優策略指導;業界經典的大數據平臺和主流的分布式開發框架,以及分布式圖計算框架的運行機制和任務調度策略;結合工業界軟硬件(鯤鵬芯片和鯤鵬BoostKit加速庫)對分布式圖分析算法進行調優的方法。最后,本書將分布式圖分析技術應用于實際場景,幫助讀者基于業務場景進行分布式圖計算框架選型。
本書既可以幫助對大數據圖分析算法感興趣的讀者了解典型圖分析算法的原理與優化技術,也可以作為華為鯤鵬圖分析算法框架下的實踐參考書。
深入介紹圖數據挖掘的算法原理和分布式實現
詳述企業級圖分析算法的極致性能優化
結合案例解析鯤鵬BoostKit大數據圖分析算法庫實戰應用
隨著大數據時代的到來,圖數據規模呈爆炸式增長。圖數據作為一種刻畫實體間關聯關系的數據模型,具有極強的多元關系表達能力,其蘊含的價值在科學研究、制造業、金融、互聯網等諸多領域產生了巨大影響。近年來,對圖數據的分析、挖掘得到了工業界與學術界的廣泛關注。
華為公司自主研發設計的鯤鵬高性能處理器不斷演進,其高性能、低功耗、高集成、高吞吐的特性給圖數據分析注入了新的活力。然而,機遇與挑戰并存,圖數據存在規模巨大、關聯數據復雜以及類型多樣等諸多特點,這些特點對大規模圖數據的分析與挖掘提出了新的挑戰。例如,如何面向高性能硬件特性設計高效的分布式圖分析算法以解決分布式圖分析并行難、通信代價高、計算復雜度高等問題,如何通過圖分析算法選型構建高可用的圖分析應用以應對復雜多樣的業務需求。
正是由于長期共同的研究興趣,我們與華為公司的領域專家開展了圖算法優化的相關研究。也正是由于這樣的契機,我們有幸合作撰寫了本書。這也給我們提供了一個全面且系統地將研究成果與實踐相結合的機會,由衷感謝華為公司的信任和支持。本書針對大規模圖數據分析算法,介紹圖分析算法的算法原理與優化技術,以及在華為鯤鵬等分布式圖分析框架下的應用實踐。針對大規模圖數據的特點與挑戰,本書將以分布式圖算法為切入點,介紹大規模圖數據算法在數據結構選擇、硬件環境適配、計算開銷等方面的特定優化。部分優化方法在實踐中,特別是在大圖數據分析任務中可將性能提升超過兩個數量級。因此,本書既可以幫助對大數據圖分析算法感興趣的讀者了解典型圖分析算法的原理與優化技術,也可以作為華為鯤鵬圖分析算法框架下的實踐參考。
在此,衷心感謝為本書內容做出重要貢獻的喬鵬鵬、趙帥、李逸文、王欣洲、苗壯、崔博遠、鄒媛婷、趙影、王朝陽、程果、曹夢婕同學;衷心感謝華為公司計算產品線算法專家王工藝對本書的大力支持;衷心感謝華為公司俞麗君、李子健兩位老師對本書內容提出的意見與建議,并在撰寫過程中與我們并肩作戰;同時也感謝華為公司參與本書審讀工作的各位老師,包括弋飛、周亭亭、張言哲、陳偉、鐘韜、韓慶森、楊勇、耿雪萍。
因作者水平有限,本書難免存在不足及疏漏,歡迎各位讀者批評指正。
張志威,北京理工大學計算機學院教授,博士生導師,入選國家高層次人才計劃。主持國家自然科學基金重點項目、科技部重點研發計劃項目課題等多項國家與省部級科研項目。主要研究方向為大規模圖數據管理與分析、分布式計算、數據湖、區塊鏈等。在ACM SIGMOD、KDD、ICDE、VLDB..Journal等發表中國計算機學會(CCF)A類論文40余篇。多次擔任ACM SIGMOD、VLDB、AAAI等國際學術會議程序委員會委員。
袁野,北京理工大學基礎科學研究院院長,教授、博士生導師,國家杰青、優青基金獲得者,CCF杰出會員,IEEE、ACM高級會員。主持國家自然科學基金重點項目,科技部重點研發項目等多項國家級科研項目。曾獲國家科技進步二等獎,中國電子學會自然科學獎一等獎等多項省部級獎項。同時擔任中國計算機學會(CCF)數據庫專業委員會副主任、大數據專家委員會委員。曾作為香港科技大學、香港中文大學、英國愛丁堡大學訪問學者。主要研究方向為大數據管理與分析。在ACM..SIGMOD、VLDB、ICDE、VLDB Journal、IEEE Trans. TKDE、IEEE Trans. TPDS等發表CCF A類論文100余篇。
曹莉,華為公司圖分析算法專家,擁有近15年的圖算法創新應用與研究經驗,作為華為公司首個Spark分布式圖分析算法專家,深入了解金融、互聯網、交通、運營商、HPC等行業客戶需求,帶領團隊構建了基于鯤鵬的大數據BoostKit圖分析算法加速庫,支持社團挖掘、中心性分析、路徑分析、拓撲度量、相似性分析等典型40+算法,并在鯤鵬社區(hikunpeng)上線發布。
叢書序
前言
本書閱讀導引
第1章 圖分析技術概述001
1.1 圖分析技術的重要性002
1.1.1 發展脈絡002
1.1.3 應用發展013
1.2 圖分析技術體系015
1.2.1 圖數據庫技術015
1.2.2 圖計算技術018
1.2.3 圖學習技術021
1.2.4 圖生成技術024
1.2.5 圖可視化技術028
1.3 大數據背景下圖分析技術面臨的挑戰030
第2章 經典圖算法033
2.1 路徑分析034
2.1.1 最短路徑算法034
2.1.2 環路檢測算法041
2.2 社區挖掘046
2.2.1 連通分量算法046
2.2.2 Louvain算法049
2.3 中心性分析052
2.3.1 Betweenness算法052
2.3.2 K-Core分解算法060
2.4 度量統計063
2.4.1 三角形計數算法064
2.4.2 集聚系數算法066
2.5 相似性分析067
2.5.1 SimRank算法068
2.5.2 子圖匹配算法069
第3章 分布式圖計算框架073
3.1 分布式大數據平臺概述074
3.1.1 Hadoop074
3.1.2 Spark079
3.1.3 Flink082
3.1.4 小結085
3.2 分布式圖計算框架核心技術086
3.2.1 編程模型086
3.2.2 通信模型088
3.2.3 執行模型090
3.2.4 計算模型091
3.2.5 圖劃分093
3.3 經典分布式圖計算框架094
3.3.1 Pregel095
3.3.2 GraphLab096
3.3.3 GraphX098
3.3.4 Gemini099
3.4 分布式圖計算的技術挑戰100
第4章 鯤鵬BoostKit圖分析算法加速庫103
4.1 鯤鵬芯片104
4.1.1 鯤鵬芯片的發展歷程104
4.1.2 鯤鵬芯片的架構105
4.1.3 鯤鵬920的特性107
4.2 鯤鵬BoostKit概述108
4.2.1 鯤鵬應用使能套件BoostKit108
4.2.2 大數據使能套件111
4.3 鯤鵬BoostKit圖分析算法加速庫簡介115
4.3.1 算法庫概述115
4.3.2 算法加速庫安裝部署119
4.3.3 算法庫集成開發125
4.3.4 算法庫調測樣例129
4.4 鯤鵬BoostKit圖分析算法加速庫調優指南131
4.4.1 平臺側調優131
4.4.2 資源側調優133
4.4.3 算法側調優136
第5章 基于鯤鵬的分布式圖分析算法優化實戰139
5.1 環路檢測算法140
5.1.1 分布式實現141
5.1.2 難點分析143
5.1.3 關鍵步驟與優化點解析145
5.1.4 鯤鵬BoostKit算法API介紹152
5.2 Louvain算法153
5.2.1 分布式實現154
5.2.2 難點分析157
5.2.3 關鍵步驟與優化點解析159
5.2.4 鯤鵬BoostKit算法API介紹165
5.3 Betweenness算法166
5.3.1 分布式實現167
5.3.2 難點分析171
5.3.3 關鍵步驟與優化點解析173
5.3.4 鯤鵬BoostKit算法API介紹177
5.4 PageRank算法179
5.4.1 分布式實現180
5.4.2 難點分析182
5.4.3 關鍵步驟與優化點解析183
5.4.4 鯤鵬BoostKit算法API介紹188
5.5 K-Core分解算法189
5.5.1 分布式實現191
5.5.2 難點分析193
5.5.3 關鍵步驟與優化點解析194
5.5.4 鯤鵬BoostKit算法API介紹199
5.6 子圖匹配算法200
5.6.1 分布式實現200
5.6.2 難點分析204
5.6.3 關鍵步驟與優化點解析204
5.6.4 鯤鵬BoostKit算法API介紹207
第6章 圖分析算法應用實戰211
6.1 網頁搜索排名案例212
6.1.1 場景介紹212
6.1.2 整體方案213
6.1.3 關鍵步驟215
6.1.4 小結221
6.2 視頻推薦案例222
6.2.1 場景介紹222
6.2.2 整體方案222
6.2.3 關鍵步驟224
6.2.4 小結229
6.3 金融風險識別案例230
6.3.1 場景介紹230
6.3.2 整體方案230
6.3.3 關鍵步驟232
6.3.4 小結240
參考文獻241