Inductive Representation Learning on Large Graphs

Hamilton W. L., Ying R. and Leskovec J. Inductive representation learning on large graphs. In Advances in Neural Information Processing Systems (NIPS), 2017.

以往的 GCN 通常会对图中的每个结点赋予 embeddings, 但是这严重限制了扩展性, 并造成资源浪费, 本文所提出的 GraphSAGE 则是通过网络来生成每个结点的 embedding.

符号说明

  • \(\mathcal{G} = (\mathcal{V}, \mathcal{E})\), 图;
  • \(\bm{x}_v, v \in \mathcal{V}\), 每个结点 \(v\) 的特征, 倘若没有特征, 可以用诸如 degree 等替代;
  • \(\mathcal{N}(v)\), 结点 \(v\) 的一阶邻居结点;

算法

  • 初始化结点特征 \(h_v^0 = \bm{x}_v\);
  • 每一层对每一个结点 \(v\) 进行如下操作:
    1. \(\bm{h}_{\mathcal{N}(v)}^k \leftarrow \text{AGGREGATE}_k(\{\bm{h}_u^{k-1}, \forall u \in \mathcal{N}(v)\})\);
    2. \(\bm{h}_v^k \leftarrow \sigma(\mathbf{W}^k \cdot \text{CONCAT}(\bm{h}_v^{k-1}, h_{\mathcal{N}(v)}^k))\), 其中 \(\mathbf{W}^{k}\) 为第 \(k\) 层的权重矩阵;
    3. \(\bm{h}_v^k \leftarrow \bm{h}_v^k / \|\bm{h}_v^k\|_2\);
  • 最后 \(\bm{z}_v \leftarrow \bm{h}_v^K\) (\(K\) 为总共的层数);
  • 采用如下的损失进行优化:

    \[J_{\mathcal{G}} (\bm{z}_u) = -\log (\sigma(\bm{z}_u^T \bm{z}_v)) - Q \cdot \mathbb{E}_{v_n \sim P_n(v)} \log (\sigma(-\bm{z}_u^T \bm{z}_{v_n})), \]

    其中 \(\bm{z}_v, \bm{z}_{v_n}\) 分别为 \(\bm{z}_u\) 的正负样本, \(Q\) 为负样本的数量.

算法中的 Aggregator 作者提供了三种:

  1. Mean aggregator:

    \[\bm{h}_v^k \leftarrow \sigma(\mathbf{W} \cdot \text{MEAN}(\{\bm{h}_v^{k-1} \}\cup \{\bm{h}_u^{k-1}, \forall u \in \mathcal{N}(v)\})); \]

  2. LSTM aggregator;

  3. Pooling aggregator:

    \[\max(\{\sigma(\mathbf{W}_{pool} \bm{h}_{u}^k + \bm{b}), \forall u \in \mathcal{N}(v)\}), \]

    其中 \(\max(\cdot)\) 是 element-wise 的.

注: 对于邻居结点 \(\mathcal{N}(v)\), 作者并不采用全部的邻居, 而是采样固定数量的邻居.

代码

[official]

posted @ 2022-08-31 11:22  馒头and花卷  阅读(85)  评论(0编辑  收藏  举报