超大图上的节点表征学习
Cluster-GCN方法的原理和优点
原理:利用图节点聚类算法,将一个图的节点划分为多个簇,每一次选择几个簇的节点和这些节点对应边,构成一个子图,然后对子图训练
优点:
- 提高表征利用率,提高图神经网络的训练效率:
由于是利用图节点聚类算法将节点划分为多个簇,所以簇内边的数量要比簇间边的数量多得多,所以可以提高表征利用率,并提高图神经网络的训练效率。 - 随机选择多个簇组成batch,保证batch内类别分布:
每一次随机选择多个簇来组成一个batch,这样不会丢失簇间的边,同时也不会有batch内类别分布偏差过大的问题。 - 内存空间的优化:
基于小图进行训练,不会消耗很多内存空间,于是我们可以训练更深的神经网络,进而可以达到更高的精度。
节点表征学习
- 节点表征递推公式:\(Z^{(l+1)}=A^{\prime} X^{(l)} W^{(l)}\), \(X^{(l+1)}=\sigma\left(Z^{(l+1)}\right)Z(l+1)=A′X(l)W(l),X(l+1)=σ(Z(l+1))\)
- 训练目标:最小化损失函数来学习权重矩阵\(\displaystyle \mathcal{L}=\frac{1}{\left|\mathcal{Y}_{L}\right|} \sum_{i \in \mathcal{Y}_{L}} \operatorname{loss}\left(y_{i}\), \(z_{i}^{L}\right)L=∣YL∣1i∈YL∑loss(yi,ziL)\)
简单的Cluster-GCN方法
- 基本步骤:
- 将节点划分为\(c\)个簇,邻接矩阵被划分为大小为\(c^2\)的块矩阵
- 用块对角线邻接矩阵\(\bar{A}Aˉ\)去近似邻接矩阵AA
- 采样一个簇\(\mathcal{V}_{t}Vt\),根据$\mathcal{L}{{\bar{A}^{\prime}}{tt}}LAˉ′tt的梯度进行参数更新
- 时间复杂度:
- 每个batch的总体时间复杂度为O\left(\left|A_{t t}\right|_{0} F+ b F^{2}\right)O(∥Att∥0F+bF2)
- 每个epoch的总体时间复杂度为O\left(|A|_{0} F+N F^{2}\right)O(∥A∥0F+NF2)
- 总时间复杂度为O\left(L|A|_{0} F+LN F^{2}\right)O(L∥A∥0F+LNF2)
- 表征数:每个batch只需要计算O(b L)O(bL)的表征
- 空间复杂度:用于存储表征的内存为O(bLF)O(bLF),总空间复杂度为O(bLF + LF^2)O(bLF+LF2)

浙公网安备 33010602011771号