图神经网络
图神经网络(Graph Neural Network, GNN)是一种深度学习模型,专门用于处理图结构数据。它能够捕捉节点的邻域结构信息,广泛应用于各种领域,如社交网络分析、生物信息学、推荐系统等。
GNN的核心思想是通过节点间的连接关系来传递和更新信息。基本的GNN模型包括递归图神经网络(Recursive GNN, RecGNN)和卷积图神经网络(Convolutional GNN, ConvGNN)。RecGNN通过递归地应用相同的参数集来提取节点的高级表示,而ConvGNN则通过图卷积层来学习节点特征的高级表示。
GNN可以针对不同类型的任务进行输出,包括节点级输出(如节点分类和回归任务)、边级输出(如边分类和链接预测任务)以及图级输出(如图分类任务)。在训练GNN时,可以根据任务和数据标签的可用性采用不同的训练策略,包括半监督学习、监督学习和无监督学习。
GNN
流程
- 聚合
- 更新
- 循环
假设每个节点的特征为: F A , F B , F C , F D , F E F_A, F_B, F_C, F_D, F_E FA,FB,FC,FD,FE
1. 聚合
节点A的邻居信息: N = W 1 F B + W 2 F C + W 3 F D N = W_1F_B + W_2F_C + W_3F_D N=W1FB+W2FC+W3FD,其中 W 1 , W 2 , W 3 W_1, W_2, W_3 W1,W2,W3表示可训练参数,这些参数也可以手动设置。
节点A的信息: σ ( W ⋅ F A + α ⋅ N ) \sigma(W \cdot F_A + \alpha \cdot N) σ(W⋅FA+α⋅N),其中 σ \sigma σ是激活函数, W W W是可训练参数
同理,节点B、C、D、E
以同样的方式聚合信息。
- 第一次聚合:节点
A
可以包含节点A、B、C、D
的信息。- 第二次聚合:节点
A
可以包含节点A、B、C、D、E
的信息,因为节点C
会在第一次聚合后包含节点E
的信息
2. 更新、循环
多次聚合、得到Loss
,更新参数、循环训练。
GNN是一个特征提取的方法,GNN的层数越多,其感受野越大,每个节点考虑其他点的信息越多,考虑越全面。
GCN
GCN(Graph Convolutional Network)是GNN的一种特定形式,专注于使用卷积操作来处理图数据。GCN通过在图上定义滤波器来学习节点表示,这些滤波器可以捕捉局部图结构。GCN的关键优势是其参数共享机制和对图结构的局部感知能力,这使得GCN在处理大规模图数据时非常高效 。
图中常见的任务:
- 节点分类(Node Classification):
- 任务目标:预测图中每个节点的类别标签。
- 应用场景:社交网络中用户分类、生物信息学中基因功能预测等。
- 图分类(Graph Classification):
- 任务目标:对整个图进行分类,例如区分不同的化学分子结构。
- 应用场景:分子结构分析、社交网络中的社区检测等。
- 链接预测(Link Prediction):
- 任务目标:预测图中节点间是否存在链接或边。
- 应用场景:推荐系统中的好友推荐、社交网络中的潜在联系发现等。
- 图聚类(Graph Clustering)/社区检测(Community Detection):
- 任务目标:将图中的节点分组,使得同一组内的节点相互之间的连接比其他组的节点更紧密。
- 应用场景:社交网络分析、生物网络中的模块识别等。
- 图嵌入(Graph Embedding):
- 任务目标:将图的节点或整个图映射到低维向量空间,以便于进行可视化或作为其他机器学习任务的输入。
- 应用场景:节点相似性度量、图的可视化等。
- 图生成(Graph Generation):
- 任务目标:生成新的图结构或扩展现有图。
- 应用场景:分子结构生成、社交网络演化模拟等。
- 图编辑或图重构(Graph Editing/Reconstruction):
- 任务目标:对现有图进行修改或重构,以改善其某些性质或适应特定的需求。
- 应用场景:网络结构优化、社交网络信息更新等。
- 异常检测(Anomaly Detection):
- 任务目标:在图中识别异常或不正常的模式。
- 应用场景:网络安全中的入侵检测、社交网络中的欺诈行为识别等。
- 信息传播(Information Diffusion):
- 任务目标:模拟和预测信息在图中的传播过程。
- 应用场景:疾病传播模型、社交媒体中的消息扩散等。
- 知识图谱补全(Knowledge Graph Completion):
- 任务目标:预测知识图谱中缺失的实体间的关系。
- 应用场景:知识库的自动填充、推荐系统等。
- 图匹配(Graph Matching):
- 任务目标:在两个或多个图之间找到节点和边的最佳对应关系。
- 应用场景:模式识别、计算机视觉中的物体识别等。
GCN属于半监督学习(不需要每个节点都有标签都可以进行训练),计算Loss时,只需要考虑有标签的节点即可。