Coggle专业的数据科学、大模型和数据竞赛社区
首页竞赛博客教程模型应用
首页竞赛博客教程模型应用常见链接在线工具

内容

  • 竞赛
  • 博客
  • 教程
  • 模型

资源

  • 常见链接
  • 工具
  • 应用

关于

  • 关于 Coggle
  • 隐私政策

© 2026 Coggle Community. All rights reserved.

  1. 首页
  2. 博客
  3. 图神经网络入门
图神经网络深度学习

图神经网络入门

Coggle 阿水·2022年4月1日

Part1 图介绍

图(Graphs)是一种对物体(objects)和他们之间的关系(relationships)建模的数据结构,物体以结点(nodes)表示,关系以边(edges)表示。图是复杂系统中常用的信息载体,可以表示现实中许多复杂关系,如社交网络、犯罪网络、交通网络等。

常见任务

  • 图嵌入:将原始图数据转换到低维空间并保 留关键信息,从而提升节点分类、链接预测、节点聚类等下游任务的性能;
  • 节点分类:对图中某些节点对应的类别,从而预测出生于没有标签的节点属于哪一个类别,该任务也被称为半监督节点分类。
  • 节点聚类:
  • 节点中心性:
  • 链接预测:
  • 异常检测:
  • 图分类:
  • 社区检测
  • 图聚类:
  • 图匹配:
  • 图相似度:
  • 图搜索:
  • 图数据增强:
  • 图攻击与防御:通过对某些节点的特征进行扰动、或者对图结构进行扰动使得图神经网络对于特定节点分类任务失效;

图类型

图分析

  • 节点的度(Node Degree):计算出每个节点连接边的条数,作为衡量节点的指标
  • 节点中心性(Node Centrality):

推荐公开课

  • 坦福大学的CS224W课程:http://web.stanford.edu/class/cs224w/
  • Graph Neural Networks Foundations, Frontiers, and Applications:https://graph-neural-networks.github.io/index.html

常见库


图数据库

图数据库本质也是一个存储系统,它和常见的 KV 存储系统、MySQL 存储系统的相比主要区别在于目标数据的逻辑关系不同和访问模式不同,对于数据内在关系是图模型以及在图上游走类和模式匹配类的查询,比如社交关系查询,图数据库会有更大的性能优势和更加简洁高效的接口。

  • Neo4j, https://neo4j.com/
  • HugeGraph, https://hugegraph.apache.org/
  • JanusGraph, https://docs.janusgraph.org/
  • NebulaGraph, https://www.nebula-graph.io/

  • igraph

https://igraph.readthedocs.io/en/stable/

igraph 是网络分析工具的集合,强调效率、便携性和易用性。 igraph 是开源且免费的。 igraph 可以用 R、Python、Mathematica 和 C/C++ 进行编程。

  • https://karateclub.readthedocs.io/en/latest/index.html

  • StellarGraph

https://stellargraph.readthedocs.io/en/stable/index.html

StellarGraph 库为图机器学习提供最先进的算法,使发现模式和回答有关图结构数据的问题变得容易。

  • PyG

https://github.com/pyg-team/pytorch_geometric

PyG(PyTorch Geometric)是一个建立在 PyTorch 之上的库,可以轻松编写和训练图形神经网络(GNN),用于与结构化数据相关的广泛应用。

  • PyTorch Geometric

https://pytorch-geometric.readthedocs.io/en/latest/

PyTorch Geometric (PyG) 是一个用于深度学习图形等不规则结构的 Python 库。该项目由两位博士开发和发布。来自多特蒙德大学的学生 Matthias Fey 和 Jan E. Lenssen。

除了一般的图形数据结构和处理方法外,它还包含关系学习和 3D 数据处理领域的各种最近发布的方法。PyTorch Geometric 通过利用稀疏 GPU 加速、提供专用 CUDA 内核以及为不同大小的输入示例引入高效的小批量处理来实现高数据吞吐量。

  • Deep Graph Library (DGL)

https://www.dgl.ai/

Deep Graph Library (DGL) 是另一个易于使用、高性能和可扩展的 Python 库,用于图的深度学习。它有一个非常干净简洁的 API。DGL 引入了一个有用的高级抽象,允许自动批处理。

  • Graph Nets

https://github.com/deepmind/graph_nets

Graph Nets用于在 Tensorflow 和 Sonnet 中构建图形网络。该库适用于 TensorFlow 的 CPU 和 GPU 版本。它提供了灵活性,几乎任何现有的 GNN 都可以使用 6 个核心函数来实现,并且可以扩展到时间图。Graph Nets 需要 TensorFlow 1,所以它感觉已经过时了,尽管它只有大约 3 年的历史。

  • Spektral

https://graphneural.network/

Spektral 是一个基于 Keras API 和 TensorFlow 2 的开源 Python 图深度学习库。该库的主要目标是提供一个简单、灵活的框架来创建 GNN。您可以使用 Spektral 对社交网络的用户进行分类、预测分子特性、使用 GAN 生成新图、聚类节点、预测链接以及任何其他由图描述数据的任务。

  • StellarGraph

https://stellargraph.readthedocs.io/

  • OpenNE: An open source toolkit for Network Embedding

https://github.com/thunlp/OpenNE

  • PyTorch-BigGraph

https://github.com/facebookresearch/PyTorch-BigGraph

Part2 任务数据集

  • Plain Graphs
Name#nodes#edges#labelsType
Youtube1,138,4992,990,44347undirected
TWeibo2,320,89550,655,143100directed
Orkut3,072,441117,185,084100undirected
In-20041,382,90816,539,643-directed
DBLP5,425,96317,298,032-undirected
Pokec1,632,80330,622,564-directed
LiveJournal4,847,57168,475,391-directed
IT-200441,291,5941,135,718,909-directed
Twitter41,652,2301,468,365,182-directed
Friendster65,608,3661,806,067,135-undirected
UK-2007105,896,5553,738,733,648-directed
UK-union133,633,0405,475,109,924-directed
ClueWeb12978,408,09842,574,107,469-directed
ClueWeb091,684,868,3227,939,635,651-directed
  • Attributed Graphs
NameType#nodes#edges#attributes#labels
Wikidirected240517981497319
Coradirected2708542914337
Citeseerdirected3312466037036
Pubmeddirected19717443385003
BlogCatalogundirected519634348681896
PPIundirected5694481871650121
Redditundirected2329651160691930041
Flickrundirected7575479476120479
Facebookundirected4039882341283193
Twitterdirected8130617681492168394065
Google+directed1076141367345315907468
TWeibodirected23208955065514316578
MAGdirected592497199781472532000100
MAG-SCdirected1054156026521999427842408

Part3 领域模型介绍

图嵌入

基于矩阵分解的图嵌入

基于矩阵分解的静态图嵌入模型对节点关联信息矩阵和属性信息矩阵进行特征分解,然后将分解得到的属性嵌入和结构嵌入进行融合,生成节点的低维嵌入表示。

基于随机游走的图嵌入

基于随机游走的图嵌入方法将节点转化为词,将随机游走序列作为句子,利用Skip-Gram 生成节点的嵌入向量。随机游走法可以保留图的结构特性,并且在无法完整观察的大型图上仍有不错的表现。

  • DeepWalk: Online Learning of Social Representations (KDD'14). [Paper]

  • LINE: Large-scale Information Network Embedding (WWW'15). [Paper]

  • node2vec: Scalable Feature Learning for Networks (KDD'16). [Paper]

基于自编码器的图嵌入

通过对数据中的非线性结构进行建模,自编码器使隐藏层学习到的表示维度小于输入数据,即对原始数据进行降维。

基于图神经网络的图嵌入

图神经网络是专门处理图数据的深度模型,其利用节点间的消息传递来捕捉某种依赖关系,使生成的嵌入可以保留任意深度的邻域信息。

  • Watch Your Step: Learning Node Embeddings via Graph Attention (NIPS'18). [Paper]

  • Deep Graph Infomax (ICLR'19). [Paper] [OpenReview]

节点分类

  • Node classification by Harmonic function
  • Node classification by Local and Global Consistency

目录

  • Part1 图介绍
  • 常见任务
  • 图类型
  • 图分析
  • 推荐公开课
  • 常见库
  • 图数据库
  • Part2 任务数据集
  • Part3 领域模型介绍
  • 图嵌入
  • 基于矩阵分解的图嵌入
  • 基于随机游走的图嵌入
  • 基于自编码器的图嵌入
  • 基于图神经网络的图嵌入
  • 节点分类

相关文章

深度学习表格数据

表格深度学习综述

深度学习在表格数据上的应用挑战与最新进展,对比 GBDT 等经典方法的优劣势。

Coggle 阿水·2022年10月1日
时序预测NLP深度学习

时序预测任务

系统介绍时序预测的经典方法和深度学习方案,附带完整代码示例。

Coggle 阿水·2022年2月11日