【图神经网络】图神经网络(GNN)学习笔记:图的基础理论

图神经网络基础


简介: 近年来,图神经网络(GNN)在社交网络、知识图、推荐系统甚至生命科学等各个领域得到了越来越广泛的应用。 GNN在对图节点之间依赖关系进行建模的强大功能,使得与图分析相关的研究领域取得了突破。本文介绍了图神经网络的基本原理,以及两种高级的算法, DeepWalkGraphSage

1. 图的概述

图(Graph)是一种结构化数据,它由一系列的对象(nodes)和关系类型(edges)组成。作为一种非欧几里得形数据,图分析被应用到节点分类、链路预测和聚类等方向。

在离散数学中,图有顶点(Vertex)以及连接顶点的边Edge构成。Vertex表示研究的对象,Edge表示两个对象之间特定的关系。图G可表示为vertex和edge的集合, 记作G=(V,E),其中V是vertex的集合,E是edge的集合。例如图1所示。其中 V = v 1 , v 2 , v 3 , v 4 , v 5 V = {v1,v2,v3,v4,v5} V=v1,v2,v3,v4,v5, E = ( v 1 , v 2 ) , ( v 1 , v 3 ) , ( v 2 , v 4 ) , ( v 2 , v 3 ) , ( v 3 , v 4 ) , ( v 4 , v 5 ) E = {(v1,v2),(v1,v3),(v2,v4),(v2,v3),(v3,v4),(v4,v5)} E=(v1,v2),(v1,v3),(v2,v4),(v2,v3),(v3,v4),(v4,v5).
图的示例

2.图的基本类型

2.1 有向图和无向图

如果图中的边存在方向性,则称这样的边为有向边 e i j = < v i , v j > e_{ij}=<v_i,v_j> eij=<vi,vj>,其中 v i v_i vi是这条有向边的起点, v j v_j vj是这条有向边的终点,包含有向边的图称为有向图。
无向图中的边为无向,边是对称的,同时包含两个方向: e i j = < v i , v j > = < v j , v i > = e j i e_{ij}=<v_i,v_j>=<v_j,v_i>=e_{ji} eij=<vi,vj>=<vj,v

### 图神经网络 (GNN) 学习资源 对于希望深入了解图神经网络(Graph Neural Networks, GNNs)的学习者来说,有多种高质量的教程、论文和技术博客可以作为参考资料。 #### 论文阅读 一些重要的研究工作奠定了现代GNN的基础。例如,《DeepWalk: Online Learning of Social Representations》探讨了如何通过随机游走的方式捕捉社交网络中的节点特征[^1];《node2vec: Scalable Feature Learning for Networks》则进一步扩展了这一思路,提出了更灵活的方法来生成节点嵌入表示;而《Semi-Supervised Classification with Graph Convolutional Networks》引入了一种基于卷积操作处理形数据的新框架——GCN(Graph Convolutional Network),它能够有效地利用未标记的数据进行半监督分类任务。 #### 教程视频 除了学术文章外,在线教育平台也提供了许多易于理解的教学材料。比如B站上有一个名为“GNN从入门到精通”的系列课程,该课程由浅入深地讲解了有关GNN的知识点,并配有实际案例分析和编程练习[^3]。 #### 技术文档与笔记整理 为了帮助初学者更好地掌握理论概念并应用于实践当中,“【GNN图神经网络学习小结and笔记汇总”这份总结性的资料非常有价值。这里不仅包含了对核心算法原理详尽解释的文字描述,还有配套代码实现供读者参考学习[^2]。 ```python import torch from torch_geometric.nn import GCNConv class Net(torch.nn.Module): def __init__(self): super(Net, self).__init__() self.conv1 = GCNConv(dataset.num_node_features, 16) self.conv2 = GCNConv(16, dataset.num_classes) def forward(self, data): x, edge_index = data.x, data.edge_index x = self.conv1(x, edge_index) x = F.relu(x) x = F.dropout(x, training=self.training) x = self.conv2(x, edge_index) return F.log_softmax(x, dim=1) ``` 上述Python代码片段展示了如何使用PyTorch Geometric库构建简单的两层GCN模型来进行节点分类预测。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

镰刀韭菜

看在我不断努力的份上,支持我吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值