图神经网络 GNN 入门

参考链接

A Gentle Introduction to Graph Neural Networks (distill.pub)

零基础多图详解图神经网络(GNN/GCN)【论文精读】_哔哩哔哩_bilibili

目录

图的基本构成

图的表示方法

图的示例

图网络的基本任务

图网络的处理

影响图网络效果的超参数

图网络的评价指标


图的基本构成

边又可分为有向边和无向的 

 顶点、边和全局(master node)可能有多个属性,如下图

图的表示方法

邻接矩阵法:

  • 矩阵的的横纵坐标是所有的顶点,对应两个点之间记录边的情况(边的权重、边的指向)等;
  • 有n和顶点,邻接矩阵就是 n*n 的;
  • 如果 n 很大,对应的图的邻接矩阵也会很大
  • 邻接矩阵通常是很稀疏的,想要高效存储同时做高效计算很难

邻接列表:

  • 维护三个矩阵,分别存储顶点属性、边属性和边的关系
  • 只存相连接的边

图的示例

下面给出了一些可建模成图网络的数据,除了上面的图片,自然语言文本、人物关系也可以建模成图网络

注意,一个数据可能对应不同的邻接矩阵

一些常见图网络的数据规模

图网络的基本任务

图网络的输入是一个图网络,输出是一个拓扑结构相同的图网络;输入输出的属性可能会有所不同

1、全局级别的,如给定一个分子式的图网络结构,预测该分子的属性(气味、颜色等,或者该图网络中是否包含两个环)

2、节点级的,如对图网络中的节点做分类(人物属性预测)

3、边级别的,如对图网络中的边进行预测(人物关系预测)

图网络的处理

上面说过,图网络的输入是一个图网络,输出是一个拓扑结构相同的图网络;输入输出的属性可能会有所不同

那基本的方法就是对顶点、边和全局属性分别单独做变换(过全连接层),得到输出的图

 上面的图网络处理只考虑了,也可以对输入的缺失属性做补全,如用顶点预测补全边,或者用边预测补全顶点;

或者对顶点和边之间的信息做融合后再过券还能连接网络

影响图网络效果的超参数

跟其他基于学习的模型一样,受到下列参数的影响

  1. 学习率(learning rate):学习率决定了每次参数更新的步长大小,过大的学习率会导致模型不稳定过小的学习率会导致收敛速度慢

  2. 批大小(batch size):批大小决定了每次训练时输入模型的样本数量,过小的批大小会导致模型难以优化,过大的批大小会占用过多计算资源

  3. 正则化项(regularization):在损失函数中添加正则化项来限制模型的权重,防止过拟合

  4. 网络层数(number layers):神经网络层数的选择需要考虑模型的复杂度和有效性,过多的层数会增加训练难度和计算开销,过少的层数会影响模型表达能力

  5. 激活函数(activation function):激活函数用来引入非线性因素,提高模型的表达能力和性能,不同的激活函数适用于不同的场景

  6. 优化器(optimizer):优化器决定了参数更新的方式,不同的优化器适用于不同的任务,如 Adam、SGD 等

  7. 模型结构(model architecture):模型结构的选择需要综合考虑数据特征和任务需求,如图卷积网络、深度学习网络等

  8. 正则化项(regularization):在损失函数中加入正则化项,如 L1 或 L2 正则项等,可有效防止过拟合

  9. 随机正则化策略:通过类似 dropout 的随机正则化方式,可以减少 GNN 的过拟合风险

同时,图网络还受到下列图相关的参数的影响

  1. 图结构的表示方式:图可以用多种方式来表示,例如邻接矩阵、邻接表、边列表等。选择适合特定任务的图构表示方式可以提高模型的效果

  2. 图卷积神经网络的层数和跨层连接方式:GCN可根据具体任务的特点设计合适的层数和跨层连接方式

  3. 聚合方式(aggregation):对于每个节点,GCN采用邻域节点的特征值来计算新的节点特征。这里可以采用不同的聚合方式,例如平均聚合、最大聚合等

  4. 权重共享策略:GCN中可以在同节点间共享权重,这种策略可以有效减少需要训练的参数数量

图网络的评价指标

  1. 准确率、召回率,和通过混淆矩阵算得的 F1 Score 等

  2. AUC-ROC:评估二分类模型的准确性,可以评估模型在不同阈值下的性能。

  3. 平均精度均值(mAP):用于评估排序模型(比如谱聚类、社区发现等)的性能。

  4. 正确率代价曲线(Precision-Recall curve):显示不同阈值下的模型的准确率和召回率,可以用于评估模型性能。

  5. 迁移学习效果:用于评价将已经学习过的知识迁移到新任务的准确性。

  6. 训练时间和模型大小:对实时应用、移动设备等有限资源的场景,需要考虑模型大小和训练时间等因素。

下一篇介绍异构图、超图等其他图

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
GNN(Graph Neural Network)神经网络在Matlab中的实现可以使用多种方法,下面介绍其中一种常见的方法。 一种实现GNN的方法是使用Matlab的深度学习工具箱(Deep Learning Toolbox)。首先,确保已经安装了该工具箱。然后,可以按照以下步骤进行操作: 1. 准备数据:将数据表示为邻接矩阵或边列表。邻接矩阵是一个N×N的矩阵,其中N是节点的数量,如果两个节点之间存在边,则对应的矩阵元素为1或其他非零值。边列表是一个M×2的矩阵,其中M是边的数量,每一行包含连接的两个节点的索引。 2. 创建GNN模型:使用Matlab的深度学习工具箱中提供的函数创建GNN模型。可以选择使用已有的GNN网络结构,如Graph Convolutional Network (GCN)、GraphSAGE等,或者根据自己的需求自定义网络结构。 3. 配置训练参数:设置训练参数,包括学习率、迭代次数、批大小等。 4. 数据准备:将训练数据划分为训练集、验证集和测试集,并对输入数据进行预处理,如归一化、特征提取等。 5. 训练模型:使用训练数据对GNN模型进行训练。使用Matlab的深度学习工具箱中提供的训练函数,如trainNetwork等。 6. 评估模型:使用测试数据对训练好的模型进行评估,包括计算准确率、损失函数等。 请注意,以上只是一种实现GNN神经网络的方法之一,具体实现方式可能因需求和数据形式而有所不同。可以根据具体情况进行调整和修改。希望对你有帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值