首页 > 图书中心 >图书详情
PyTorch图神经网络
作者:[美]马克西姆·拉伯恩 著 唐 盛 译
定价:109元
印次:1-1
ISBN:9787302677222
出版日期:2025.01.01
印刷日期:2024.12.25
"《PyTorch图神经网络》详细阐述了与图神经网络相关的基本解决方案,主要包括图学习入门、图神经网络的图论、使用DeepWalk创建节点表示、在Node2Vec中使用有偏随机游走改进嵌入、使用普通神经网络包含节点特征、图卷积网络、图注意力网络、使用GraphSAGE扩展图神经网络、定义图分类的表达能力、使用图神经网络预测链接、使用图神经网络生成图、从异构图学习、时序图神经网络、解释图神经网络、使用A3T-GCN预测交通、使用异构图神经网络检测异常、使用LightGCN构建推荐系统、释放图神经网络在实际应用中的潜力等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学用书和参考手册。 "
more >前 言 在短短十年内,图神经网络(graph neural network,GNN)已成为一种重要且流行的深度学习架构。GNN对各个行业产生了重大影响,例如在药物发现领域,GNN预测了一种名为halicin的新抗生素;GNN改进了Google地图上的预计到达时间计算。许多科技公司和大学都在探索GNN在各种应用中的潜力,包括推荐系统、假新闻检测和芯片设计等。GNN具有巨大的潜力和许多尚未发现的应用领域,已成为解决全球问题的关键工具。 本书的目标是提供图神经网络在世界范围的全面且实用的概述。我们将从探索图论和图学习的基本概念开始,然后深入研究使用最广泛和最成熟的图神经网络架构。随着探索内容的不断展开,我们还将介绍图神经网络的最新进展,并阐释一些旨在解决特定任务(如图生成、链接预测等)的专用架构。 除了以上内容,本书还将通过3个实际项目为读者提供实践经验。这些项目涵盖GNN的关键现实应用,包括流量预测、异常检测和推荐系统。通过这些项目,读者将更深入地了解GNN的工作原理,并培养在实际场景中实现它们的技能。 本书为每一章的技术和相关应用提供了简洁可读的代码,使读者有动手实践的机会,读者可以在GitHub和Google Colab上轻松访问这些内容。 读完本书后,读者将对图学习和GNN领域有一个全面的了解,并将有能力为更广泛的应用设计和实现这些模型。 本书读者 本书面向有兴趣了解图神经网络以及如何将其应用于解决各种现实世界问题的个人。本书非常适合想要获得设计和实现图神经网络实践经验的数据科学家、机器学习工程师和人工智能(AI)专业人士。 本书是为具有深度学习和机器学习基础知识的个人编写的。当然,它也为该领域的新手提供了图论和图学习的基本概念的全面介绍。 对于想要在这个快速发展的研究领域扩展知识的计算机科学、数学和工程领域的研究人员和学生来说,本书也非常有用。 内容介绍 本书共分4篇18章,具体内容如下。 第1篇:图学习简介,包括第1章和第2章。 第1章“图学习入门”,从多个方面介绍了图神经网络,包括图神经网络对现代数据分析和机器学习的重要性。本章首先探讨了图作为数据表示的相关性及其在各个领域的广泛使用情况,然后深入阐释了图学习的重要性,包括不同的应用和技术。最后,本章还重点介绍了一些图神经网络架构,并强调其与其他方法相比的独特功能和性能。 第2章“图神经网络的图论”,涵盖了图论的基础知识,并介绍了各种类型的图,包括它们的属性和应用。本章还探讨了基本的图概念,例如邻接矩阵表示、图的度量(如中心性度量)以及图算法等,主要介绍了广度优先搜索(BFS)和深度优先搜索(DFS)算法。 第2篇:基础知识,包括第3~7章。 第3章“使用DeepWalk创建节点表示”,重点介绍了DeepWalk,它是将机器学习应用于图数据的先驱。DeepWalk架构的主要目标是生成节点表示,然后其他模型可以将获得的节点表示用于节点分类等下游任务。本章深入探讨了DeepWalk的两个关键组成部分—Word2Vec和随机游走,并且特别介绍了Word2Vec skip-gram模型。 第4章“在Node2Vec中使用有偏随机游走改进嵌入”,重点介绍了Node2Vec架构,该架构实际上基于上一章介绍的DeepWalk架构。本章探讨了对Node2Vec中随机游走生成所做的修改以及如何为特定图选择最佳参数。在Zachary’s Karate Club数据集上对Node2Vec与DeepWalk实现进行了比较,以突出这两种架构之间的差异。最后还介绍了Node2Vec的实际应用,即构建一个电影推荐系统。 第5章“使用普通神经网络包含节点特征”,探讨了如何将节点和边的特征等附加信息集成到图嵌入中以产生更准确的结果。本章首先比较了普通神经网络仅在节点特征(被视为表格数据集)上的性能,然后尝试向神经网络添加拓扑信息,从而创建了一个简单的普通图神经网络架构。 第6章“图卷积网络”,重点介绍了图卷积网络(graph convolutional network,GCN)架构及其作为图神经网络蓝图的重要性。本章讨论了普通图神经网络层的局限性,并解释了图卷积网络背后的动机,详细介绍了图卷积网络层的工作原理、其相对于普通图神经网络层的性能改进,以及使用PyTorch Geometric 在Cora和Facebook Page-Page数据集上的实现。本章还探讨了节点回归的任务以及将表格数据转换为图的好处。 第7章“图注意力网络”,重点介绍了图注意力网络(graph attention network,GAT),它是对图卷积网络的改进。本章通过使用自注意力的概念解释了图注意力网络的工作原理,并提供了对图注意力层的逐步理解。本章还使用NumPy从头开始实现了图注意力层。本章最后还演示了图注意力网络在两个数据集(Cora和CiteSeer)上的使用,目标是进行节点分类,并将其分类准确率与图卷积网络进行了比较。 第3篇:高级技术,包括第8~14章。 第8章“使用GraphSAGE扩展图神经网络”,重点介绍GraphSAGE架构及其有效处理大型图的能力。本章阐释了GraphSAGE背后的两个主要思想,包括其邻居采样技术和聚合算子,介绍了Uber Eats和Pinterest等科技公司提出的图神经网络的变体,以及GraphSAGE在归纳学习方面的优势。本章最后还演示了如何实现GraphSAGE执行节点分类和多标签分类任务。 第9章“定义图分类的表达能力”,探讨了图神经网络中表达能力的概念以及如何使用它来设计更好的模型。本章介绍Weisfeiler-Leman(WL)测试,该测试提供了理解图神经网络表达能力的框架。本章使用WL测试来比较不同的图神经网络层并确定最具表现力的层。基于这一结果,使用PyTorch Geometric设计并实现了更强大的图神经网络。本章最后还比较了蛋白质数据集上不同的图形分类方法。 第10章“使用图神经网络预测链接”,重点介绍图的链接预测任务。本章探讨了传统技术(例如启发式技巧和矩阵分解),也介绍了基于图神经网络的方法。本章解释了链接预测的概念及其对社交网络和推荐系统的重要性,介绍了传统技术的局限性以及使用基于图神经网络的方法的好处。本章探索了来自两个不同系列的3种基于图神经网络的技术,第一个系列基于节点嵌入并执行基于图神经网络的矩阵分解,第二个系列侧重于子图的表示。最 后,本章还在PyTorch Geometric中实现各种链接预测技术,并为解决给定问题选择最佳方法。 第11章“使用图神经网络生成图”,探讨了图生成领域的技术,其中涉及寻找创建新图的方法。本章首先介绍了传统技术,例如Erds–Rényi模型和小世界模型。然后,重点关注了基于图神经网络的图生成的3个解决方案系列:基于图变分自动编码器(graph variational autoencoder,GVAE)、自回归和基于生成对抗网络(generative adversarial network,GAN)的模型。最后,介绍了基于GAN的框架与强化学习(reinforcement learning,RL)的实现,并使用DeepChem库和TensorFlow生成了新的化合物。 第12章“从异构图学习”,重点介绍了异构GNN。异构图包含不同类型的节点和边,这与仅涉及一种类型的节点和一种类型的边的同构图相反。本章首先回顾了同构图神经网络的消息传递神经网络(message passing neural network,MPNN)框架,然后将该框架扩展到异构网络。最后,本章还介绍了一种创建异构数据集的技术,将同构架构转换为异构架构,并讨论了专门为处理异构网络而设计的架构。 第13章“时序图神经网络”,重点介绍了时序图神经网络,也称为时空图神经网络(spatio-temporal GNN),这是一种可以处理边和特征随时间变化的图的图神经网络。本章首先阐释了动态图的概念和时间图神经网络的应用(主要是时间序列预测),然后讨论了时序图神经网络在网络流量预测中的应用,以及如何利用时序信息改进结果,最后描述了另一种专为动态图设计的时序图神经网络架构,并将其应用于流行病预测任务。 第14章“解释图神经网络”,探讨了更好地理解图神经网络模型的预测和行为的各种技术。本章重点介绍了两种流行的解释方法:GNNExplainer和积分梯度,并介绍了这些方法在使用MUTAG数据集的图形分类任务和使用Twitch社交网络的节点分类任务中的应用。 第4篇:应用,包括第15~18章。 第15章“使用A3T-GCN预测交通”,重点介绍时序图神经网络在交通预测领域的应用,强调了智慧城市中准确的交通预测的重要性以及复杂的空间和时间依赖性所导致的交通预测的挑战。本章介绍了处理新数据集以创建时间图的步骤,以及实现新型时序图神经网络以预测未来交通速度的步骤。最后,本章还将时序图神经网络的预测结果与基线解决方案进行了比较,以验证架构的相关性。 第16章“使用异构图神经网络检测异常”,主要演示了图神经网络在异常检测领域中的应用。图神经网络具有捕获复杂关系的能力,非常适合检测异常,并且可以有效地处理大量数据。本章介绍了如何使用CIDDS-001 数据集实现图神经网络以在计算机网络中进行入侵检测,演示了如何处理数据集、构建相关特征、实现异构图神经网络以及评估结果以确定其检测网络流量异常的有效性等操作。 第17章“使用LightGCN构建推荐系统”,重点介绍图神经网络在推荐系统中的应用。推荐系统的目标是根据用户的兴趣和过去的交互向用户提供个性化推荐。图神经网络非常适合这项任务,因为它可以有效地整合用户和项目之间的复杂关系。本章详细介绍了LightGCN架构,它是专门为推荐系统设计的图神经网络。本章使用Book-Crossing数据集演示了如何使用LightGCN架构构建具有协同过滤功能的图书推荐系统。 第18章“释放图神经网络在实际应用中的潜力”,总结了本书内容,并展望了图神经网络的未来。 充分利用本书 读者应该对图论和机器学习概念(例如监督学习和无监督学习、训练和模型评估等)有基本的了解,以最大限度地增强学习体验。熟悉PyTorch等深度学习框架也很有用,但并不是必需的,因为本书将全面介绍数学概念及其实现。 本书涉及的软件和操作系统需求如表P.1所示。 表P.1 本书涉及的软件和操作系统需求 本书需要使用的软件 操作系统需求 Python 3.8.15 Windows、macOS或Linux PyTorch 1.13.1 Windows、macOS或Linux PyTorch Geometric 2.2.0 Windows、macOS或Linux 要安装Python 3.8.15,可以从Python官方网站下载最新版本,其网址如下: https://www.python.org/downloads/ 强烈建议使用虚拟环境,例如venv或conda。 如果想使用NVIDIA的图形处理单元(graphics processing unit,GPU)来加速训练和推理,则需要安装CUDA和cuDNN。 CUDA是NVIDIA公司为GPU上的通用计算而开发的并行计算平台和API。要安装CUDA,可以按照NVIDIA网站上的说明进行操作,其网址如下: https://developer.nvidia.com/cuda-downloads cuDNN是NVIDIA公司开发的库,可以为深度学习算法提供高度优化的基元GPU实现。要安装cuDNN,需要在NVIDIA网站上创建一个账户,然后从cuDNN下载页面下载该库,其网址如下: https://developer.nvidia.com/cudnn 可以在NVIDIA公司网站上查看支持CUDA的GPU产品列表,其网址如下: https://developer.nvidia.com/cuda-gpus 要安装PyTorch 1.13.1,可以按照PyTorch官方网站上的说明进行操作,其网址如下: https://pytorch.org/ 可以选择最适合自己的系统(包括CUDA和cuDNN)的安装方法。 要安装PyTorch Geometric 2.2.0,可以按照其官方GitHub存储库中的说明进行操作,其网址如下: https://pytorch-geometric.readthedocs.io/en/2.2.0/notes/installation.html 注意,需要首先在系统上安装PyTorch。 第11章“使用图神经网络生成图”需要使用TensorFlow 2.4。要安装它,可以按照TensorFlow官方网站上的说明进行操作,其网址如下: https://www.tensorflow.org/install 可以选择最适合自己的系统和要使用的TensorFlow版本的安装方法。 第14章“解释图神经网络”需要使用旧版本的PyTorch Geometric(2.0.4版)。建议为本章创建一个特定的虚拟环境。 第15章“使用A3T-GCN预测交通”、第16章“使用异构图神经网络检测异常”和第17章“使用LightGCN构建推荐系统”需要占用较多的GPU内存,可以通过减小代码中训练集来降低它。 大多数章节需要使用其他Python库,可以使用pip install <name==version> 命令安装它们,或根据自己的配置使用其他安装程序(如conda)。以下是所需软件包及其相应版本的完整列表: pandas==1.5.2 gensim==4.3.0 networkx==2.8.8 matplotlib==3.6.3 node2vec==0.4.6 seaborn==0.12.2 scikit-learn==1.2.0 deepchem==2.7.1 torch-geometric-temporal==0.54.0 captum==0.6.0 完整的要求列表可在本书配套GitHub存储库中找到,其网址如下: https://github.com/PacktPublishing/Hands-On-Graph-Neural-Networks-Using-Python 或者,也可以直接在Google Colab中导入笔记本计算机,其网址如下: https://colab.research.google.com 下载示例代码文件 本书的代码包已经在GitHub上托管,网址如下,欢迎访问: https://github.com/PacktPublishing/Hands-On-Graph-Neural-Networks-Using-Python 如果代码有更新,也会在现有GitHub存储库上更新。 下载彩色图像 我们提供了一个PDF文件,其中包含本书中使用的屏幕截图/图表的彩色图像。可以通过以下地址下载: https://packt.link/JnpTe 本书约定 本书中使用了许多文本约定。 (1)代码格式文本:表示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄等。以下段落就是一个示例。 BookCrossing社区网址如下: https://www.bookcrossing.com/ (2)有关代码块的设置如下所示: DG = nx.DiGraph() DG.add_edges_from([('A', 'B'), ('A', 'C'), ('B', 'D'), ('B', 'E'), ('C', 'F'), ('C', 'G')]) (3)输出结果采用加粗形式显示: list(books.columns) ['ISBN', 'Book-Title', 'Book-Author', 'Year-Of-Publication', 'Publisher', 'Image-URL-S', 'Image-URL-M', 'Image-URL-L'] (4)术语或重要单词在括号内保留其英文原文,方便读者对照查看。示例如下: 协同过滤(collaborative filtering)是一种用于向用户提供个性化推荐的技术。它基于这样的思想:具有相似偏好或行为的用户更有可能拥有相似的兴趣。协同过滤算法使用此信息来识别模式并根据相似用户的偏好向用户提出建议。 (5)本书使用了以下两个图标。 表示警告或重要的注意事项。 表示提示或小技巧。
more >