• A Unified View on Graph Neural Networks as Graph Signal Denoising


    Ma Y., Liu X., Zhao T., Liu Y., Tang J. and Shah N. A unified view on graph neural networks as graph signal denoising. In International Conference on Information and Knowledge Management (CIKM), 2021.

    往常的 GNN 所使用的 feature aggregation 部分可以看成是对之前 feature transformation 结果的一个去噪, 而去噪的方式决定了不同的网络: GCN, GAT, PPNP ...

    符号说明

    • \(\mathcal{G} = (\mathcal{V}, \mathcal{E})\), 图;
    • \(|\mathcal{V}| = N\);
    • \(A \in \mathbb{R}^{N \times N}\), 邻接矩阵;
    • \(D\), diagonal degree matrix;
    • \(L = D - A\), Laplacian matrix, 此外 \(L = I - D^{-\frac{1}{2}}AD^{-\frac{1}{2}}, L = I - D^{-1}A\) 通常称为 normalized matrix;
    • \(N(v)\), \(v\) 的邻居结点;
    • \(\tilde{N}(v) = N(v) \cup \{v\}\);
    • \(X \in \mathbb{R}^{N \times d_{in}}\), 每个 GNN Layer 的输入;
    • \(H \in \mathbb{R}^{N \times d_{out}}\), 每个 GNN Layer 的输出;

    Feature transformation and aggregation

    大部分的 GNN 都可以归结为 feature transformation and aggregation 两个部分.

    GCN

    1. Feature Transformation:

      \[X' = XW; \]

    2. Feature Aggregation:

      \[\tag{2} H = \tilde{A}X', \\ \tilde{A} = \hat{D}^{-\frac{1}{2}}\hat{A}\hat{D}^{-\frac{1}{2}}, \: \hat{A} = A + I. \]

    GAT

    1. Feature Transformation:

      \[X' = XW; \]

    2. Feature Aggregation:

      \[\tag{4} H_i = \sum_{j \in \tilde{N}(i)} \alpha_{ij}X_j', \]

      其中

      \[\alpha_{ij} = \frac{\exp(e_{ij})}{\sum_{k \in \tilde{N}(i)}\exp(e_{ik})}, \\ e_{ij} = \text{LeakyReLU}([X_i' \| X_j']\bm{a}). \]

    PPNP

    1. Feature Transformation:

      \[X' = \text{MLP}(X); \]

    2. Feature Aggregation:

      \[\tag{6} H = \alpha (I - (1 - \alpha)\tilde{A})^{-1} X', \]

      aggregation 的逆通常通过如下的多步迭代逼近 (此时称该方法为 APPNP):

      \[\tag{7} H^{(k)} = (1 - \alpha)\tilde{A}H^{(k-1)} + \alpha X' \: k = 1,\ldots, K. \]

    Graph Signal Denoising

    作者认为, 上述方法的 aggregation 实际上就是下列问题的一个特例:

    \[\tag{8} \text{argmin}_F \: \mathcal{L} = \|F - S\|_F^2 + c \cdot \text{tr}(F^TLF), \]

    \(S \leftarrow X'\), 而我们所追求的 \(H\) 就是 denoise 后的 \(F\).

    • 首先来看为什么 (8) 是一个 graph signal denosing 问题:

      1. 注意到 \(\|F - S\|_F^2\) 实际上是在要求 \(F\) 逼近 \(S\), 即 \(H\) 逼近 \(X'\);
      2. \(\text{tr}(F^TLF) = \frac{1}{2} \sum_{i \in \mathcal{V}} \sum_{j \in \mathcal{\tilde{N}}(i)} \|F_i - F_j\|_2^2\), 实际上就是一个结点和它邻居间的一个 smoothness 的限制 (注意, 公式成立要求 \(A\) 是二元的).
    • 接下来我们看看如何 GCN, GAT, PPNP 改写为 (8) 的形式.

    GCN

    • 注意到

      \[\nabla_F \mathcal{L}|_{F=S} = 2cLS, \]

      所以倘若我们采用梯度下降求解 (8), 的第一步迭代 (初始化 \(F^{(0)} = S\)) 为:

      \[F \leftarrow S - \lambda \cdot (2cLS) = (1 - 2\lambda c) S + 2\lambda c \tilde{A}S, \]

      \(\lambda = 1 / 2c, S = X'\) 的时候

      \[F \leftarrow \tilde{A} X', \]

      此为 (2).

    • 故 GCN 的 aggregation 部分就是 (8) 的一步下降.

    PPNP

    • 首先, 令 \(\nabla_F \mathcal{L} = 0\) 可得

      \[F^* = (I + cL)^{-1}S = \frac{1}{1 + c}(I - \frac{c}{1 + c} \tilde{A})^{-1} S, \]

      \(c=\frac{1}{\alpha} - 1, S = X'\) 即为 (6);

    • 考虑 (8) 的多步迭代:

      \[\begin{array}{ll} F^{(k)} &\leftarrow F^{(k-1)} - \lambda \nabla_{F}|_{F=F^{(k-1)}} \\ &= (1 - 2\lambda - 2\lambda c) F^{(k-1)} + 2\lambda S + 2\lambda c \tilde{A}F^{(k-1)}, \end{array} \]

      \(\lambda = \frac{1}{2 + 2c}\) 的时候有

      \[F^{(k)} \leftarrow \frac{1}{1 + c}S + \frac{c}{1 + c}\tilde{A}F^{(k-1)}, \]

      \(S = X', c = \frac{1}{\alpha} - 1\) 即为 (7).

    GAT

    • GAT 较为复杂, 它实际上是一种自适应的 smoothness 方法, 它对于的 graph signal denoising 问题实际上是:

      \[\tag{17} \text{argmin}_F \: \mathcal{L} = \|F - S\|_F^2 + \frac{1}{2} \sum_{i \in \mathcal{V}} c _i\sum_{j \in \mathcal{\tilde{N}}(i)} \|F_i - F_j\|_2^2. \]

    • 注意到

      \[\nabla_{F_i}\mathcal{L}|_{F_i = S_i} = \sum_{j \in \tilde{N}(i)} (c_i + c_j)(S_i - S_j); \]

    • 故 (17) 的一步迭代为:

      \[\begin{array}{ll} F_i &\leftarrow S_i - \lambda_i \cdot \nabla_{F_i} \mathcal{L}|_{F_i = S_i} \\ &= (1 - \lambda_i \sum_{j \in \tilde{N}(i)} (c_i + c_j)) S_i + \sum_{j \in \tilde{N}(i)} \lambda_i (c_i + c_j) S_j, \end{array} \]

      \(\lambda_i = 1 / \sum_{j \in \tilde{N}(i)} (c_i + c_j)\), 等价于

      \[F_i \leftarrow \sum_{j \in \tilde{N}(i)} \frac{c_i + c_j}{\sum_{k \in \tilde{N}(i)} (c_i + c_k)} S_j. \]

      我们可以把 \(\alpha_{ij}\) 理解为 \(\frac{c_i + c_j}{\lambda_i}\).

    UGNN

    如此一来, 我们可以把 aggregation 归结对如下的问题的求解或者近似:

    \[\text{argmin}_F \: \mathcal{L} = \|F - S\|_2^2 + r(\mathcal{C}, F, \mathcal{G}), \]

    其中 \(r(\cdot, \cdot, \cdot)\) 是一个正则化项, 用以引入 smoothness.

    • 作者认为, GAT 成功的一个原因就是它不是完完全全的 global-smoothness, 它是带有自适应的局部的一个 smoothness;

    • 于是作者采取了一个类似的正则化项:

      \[r(\mathcal{C}, F, \mathcal{G}) = \frac{1}{2}\sum_{i \in \mathcal{V}}c_i \sum_{j \in \tilde{N}(i)} \|\frac{F_i}{\sqrt{d_i}} - \frac{F_j}{\sqrt{d}_j}\|_2^2; \]

    • 类似上面的做法, 可以推出如下的 aggregation function (一个 GNN Layer 共 \(K\) 次迭代用以逼近上述问题):

      \[H_i^{(k)} \leftarrow 2\lambda_i X_i' + \lambda_i \sum_{v_j \in \tilde{N}(v_i)} (c_i + c_j) \frac{H_j^{(k-1)}}{\sqrt{d_id_j}}, \: k=1,\ldots, K, \]

      其中

      \[\lambda_i = 1 / (2 + \sum_{j \in \tilde{N}(i)} (c_i + c_j) / d_i). \]

    • 特别地, \(c_i\) 用如下方式拟合:

      \[c_i = s \cdot \sigma(h_1(h_2(\{X_j'|j \in \tilde{N}(i)\}))), \]

      \(h_1, h_2\) 是一些函数.

    代码

    [official]

  • 相关阅读:
    redis.conf 参数说明
    BD2 catalog编目
    Altium Designer -在PCB中统一修改元器件标号的位置
    AD使用技巧-怎样绘制圆形敷铜
    运放压百率
    Altium designer 新建快捷键
    修改AD中PCB各层的透明度
    Altium Designer 使用小技巧2
    Altium Designer 使用中的小技巧1
    网络库的设计与实现
  • 原文地址:https://www.cnblogs.com/MTandHJ/p/16738008.html
Copyright © 2020-2023  润新知