Loading

超大图上的节点表征学习

Cluster-GCN方法的原理和优点

原理:利用图节点聚类算法,将一个图的节点划分为多个簇,每一次选择几个簇的节点和这些节点对应边,构成一个子图,然后对子图训练

优点

  1. 提高表征利用率,提高图神经网络的训练效率:
    由于是利用图节点聚类算法将节点划分为多个簇,所以簇内边的数量要比簇间边的数量多得多,所以可以提高表征利用率,并提高图神经网络的训练效率。
  2. 随机选择多个簇组成batch,保证batch内类别分布:
    每一次随机选择多个簇来组成一个batch,这样不会丢失簇间的边,同时也不会有batch内类别分布偏差过大的问题。
  3. 内存空间的优化:
    基于小图进行训练,不会消耗很多内存空间,于是我们可以训练更深的神经网络,进而可以达到更高的精度。

节点表征学习

  • 节点表征递推公式:\(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方法

  • 基本步骤:
    1. 将节点划分为\(c\)个簇,邻接矩阵被划分为大小为\(c^2\)的块矩阵
    2. 用块对角线邻接矩阵\(\bar{A}Aˉ\)去近似邻接矩阵AA
    3. 采样一个簇\(\mathcal{V}_{t}Vt\),根据$\mathcal{L}{{\bar{A}^{\prime}}{tt}}LAˉ′tt的梯度进行参数更新
  • 时间复杂度:
    1. 每个batch的总体时间复杂度为O\left(\left|A_{t t}\right|_{0} F+ b F^{2}\right)O(∥Att∥0F+bF2)
    2. 每个epoch的总体时间复杂度为O\left(|A|_{0} F+N F^{2}\right)O(∥A∥0F+NF2)
    3. 总时间复杂度为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)
posted @ 2021-07-03 21:31  橘猫非猫gkd  阅读(141)  评论(0)    收藏  举报