目录
目 录
第1篇 图学习简介
第1章 图学习入门 3
1.1 使用图的原因 3
1.2 进行图学习的原因 5
1.3 构建图神经网络的原因 7
1.4 小结 9
1.5 延伸阅读 10
第2章 图神经网络的图论 11
2.1 技术要求 11
2.2 介绍图属性 11
2.2.1 有向图 12
2.2.2 加权图 13
2.2.3 连通图 14
2.2.4 图的类型 15
2.3 发现图概念 17
2.3.1 基础对象 17
2.3.2 图的度量 18
2.3.3 邻接矩阵表示 20
2.3.4 边列表 21
2.3.5 邻接列表 21
2.4 探索图算法 22
2.4.1 广度优先搜索 22
2.4.2 深度优先搜索 24
2.5 小结 25
第2篇 基 础 知 识
第3章 使用DeepWalk创建节点表示 29
3.1 技术要求 29
3.2 Word2Vec简介 30
3.2.1 CBOW与skip-gram 30
3.2.2 创建skip-gram 31
3.2.3 skip-gram模型 33
3.3 DeepWalk和随机游走 37
3.4 实现DeepWalk 40
3.5 小结 44
3.6 延伸阅读 45
第4章 在Node2Vec中使用有偏随机游走改进嵌入 47
4.1 技术要求 47
4.2 Node2Vec简介 48
4.2.1 定义邻域 48
4.2.2 在随机游走中引入偏差 49
4.3 实现Node2Vec 53
4.4 构建电影推荐系统 56
4.4.1 基于用户评分创建电影连接图 57
4.4.2 实现电影推荐系统 59
4.5 小结 61
4.6 延伸阅读 61
第5章 使用普通神经网络包含节点特征 63
5.1 技术要求 63
5.2 图数据集介绍 64
5.2.1 Cora数据集 64
5.2.2 Facebook Page-Page数据集 66
5.3 使用普通神经网络对节点进行分类 69
5.3.1 转换数据 69
5.3.2 创建自定义多层感知器类 70
5.3.3 创建、训练和测试多层感知器实例 72
5.4 使用普通图神经网络对节点进行分类 73
5.5 小结 78
5.6 延伸阅读 78
第6章 图卷积网络 79
6.1 技术要求 79
6.2 设计图卷积层 80
6.3 比较图卷积层和图线性层 84
6.3.1 分析数据集中的节点度 84
6.3.2 实现图卷积网络 86
6.4 通过节点回归预测网络流量 89
6.4.1 了解数据集 89
6.4.2 定义GCN类 92
6.4.3 使用MSE指标 93
6.4.4 使用RMSE和MAE指标 95
6.5 小结 96
6.6 延伸阅读 97
第7章 图注意力网络 99
7.1 技术要求 99
7.2 图注意力层简介 100
7.2.1 线性变换 100
7.2.2 激活函数 101
7.2.3 softmax归一化 101
7.2.4 多头注意力 102
7.2.5 改进的图注意力层 103
7.3 在NumPy中实现图注意力层 103
7.4 在PyTorch Geometric中实现图注意力网络 107
7.4.1 在Cora数据集上使用GATv2图注意力网络 107
7.4.2 在CiteSeer数据集上使用图注意力网络 110
7.4.3 验证假设 113
7.5 小结 115
第3篇 高 级 技 术
第8章 使用GraphSAGE扩展图神经网络 119
8.1 技术要求 119
8.2 GraphSAGE 简介 120
8.2.1 邻居采样 120
8.2.2 聚合 123
8.3 PubMed数据集上的节点分类 124
8.4 蛋白质-蛋白质相互作用的归纳学习 131
8.5 小结 135
8.6 延伸阅读 136
第9章 定义图分类的表达能力 137
9.1 技术要求 137
9.2 定义表达能力 138
9.3 图同构网络简介 140
9.4 使用GIN对图进行分类 141
9.4.1 图分类 141
9.4.2 实现GIN 142
9.4.3 验证假设 148
9.4.4 简单集成模型 150
9.5 小结 151
9.6 延伸阅读 152
第10章 使用图神经网络预测链接 153
10.1 技术要求 153
10.2 使用传统方法预测链接 154
10.2.1 启发式技术 154
10.2.2 矩阵分解 156
10.3 使用节点嵌入预测链接 157
10.3.1 GAE简介 157
10.3.2 VGAE简介 158
10.3.3 实现VGAE 159
10.4 使用SEAL预测链接 162
10.4.1 SEAL框架简介 162
10.4.2 实现SEAL框架 164
10.5 小结 169
10.6 延伸阅读 170
第11章 使用图神经网络生成图 171
11.1 技术要求 171
11.2 使用传统技术生成图 172
11.2.1 Erd?s–Rényi模型 172
11.2.2 小世界模型 174
11.3 使用图神经网络生成图 176
11.3.1 图变分自动编码器 176
11.3.2 自回归模型 178
11.3.3 生成对抗网络 179
11.4 使用MolGAN生成分子 181
11.5 小结 185
11.6 延伸阅读 185
第12章 从异构图学习 187
12.1 技术要求 187
12.2 消息传递神经网络框架 188
12.3 引入异构图 190
12.4 将同构图神经网络转换为异构图神经网络 193
12.4.1 使用DBLP数据集 193
12.4.2 实现图注意力网络作为基线 194
12.4.3 创建图注意力网络的异构版本 197
12.5 实现分层自注意力网络 199
12.6 小结 203
12.7 延伸阅读 204
第13章 时序图神经网络 205
13.1 技术要求 205
13.2 动态图简介 206
13.3 预测网络流量 206
13.3.1 EvolveGCN简介 206
13.3.2 实现EvolveGCN 209
13.4 预测COVID-19病例 216
13.4.1 MPNN-LSTM简介 217
13.4.2 可视化示例数据集 218
13.4.3 实现MPNN-LSTM 219
13.5 小结 223
13.6 延伸阅读 223
第14章 解释图神经网络 225
14.1 技术要求 225
14.2 可解释AI技术简介 226
14.3 使用GNNExplainer解释图神经网络 227
14.3.1 GNNExplainer简介 227
14.3.2 实现GNNExplainer 228
14.4 使用Captum解释图神经网络 231
14.4.1 Captum和积分梯度 232
14.4.2 实现积分梯度 232
14.5 小结 237
14.6 延伸阅读 237
第4篇 应 用
第15章 使用A3T-GCN预测交通 241
15.1 技术要求 241
15.2 探索PeMS-M数据集 242
15.2.1 可视化交通速度的变化 243
15.2.2 可视化平均交通速度和标准差 244
15.2.3 可视化速度之间的相关性 245
15.3 处理数据集 247
15.3.1 将表格数据转换为图 247
15.3.2 归一化速度数据 250
15.3.3 创建时序图 251
15.4 实现A3T-GCN架构 252
15.4.1 A3T-GCN架构简介 252
15.4.2 使用PyTorch Geometric Temporal库来实现A3T-GCN架构 253
15.4.3 评估模型性能 254
15.4.4 可视化平均预测结果 256
15.5 小结 258
15.6 延伸阅读 258
第16章 使用异构图神经网络检测异常 259
16.1 技术要求 259
16.2 探索CIDDS-001数据集 260
16.3 预处理CIDDS-001数据集 264
16.3.1 处理多种类型的数据 264
16.3.2 将DataFrame转换为图 267
16.4 实现异构图神经网络 270
16.5 小结 276
16.6 延伸阅读 276
第17章 使用LightGCN构建推荐系统 277
17.1 技术要求 277
17.2 探索Book-Crossing数据集 278
17.3 预处理Book-Crossing数据集 283
17.4 实现LightGCN架构 286
17.4.1 LightGCN架构的基本原理 287
17.4.2 使用PyTorch Geometric创建模型 288
17.4.3 编写损失函数 290
17.4.4 训练LightGCN模型 291
17.4.5 编写推荐函数 293
17.5 小结 295
17.6 延伸阅读 295
第18章 释放图神经网络在实际应用中的潜力 297