Structpool structured graph pooling via conditional random fields

Yuan H. and Ji S. Structpool: structured graph pooling via conditional random fields. ICLR, 2020.

一种图的 pooling 方法, 我并没有搞懂其中的原理, 这里只是记录一下.

符号说明

  • \(G\), 图;
  • \(X \in \mathbb{R}^{n \times c}\), node features;
  • \(A \in \{0, 1\}^{n \times n}\), 邻接矩阵;
  • \(\hat{A} = A + I\).

StructPool

  • GNN 的 Pooling, 即将一些相似的点聚合成 supernode:

    \[X \in \mathbb{R}^{n \times \tilde{c}} \rightarrow \tilde{X} \in \mathbb{R}^{k \times \tilde{c}}, \\ A \in \mathbb{R}^{n \times n} \rightarrow \tilde{A} \in \mathbb{R}^{k \times k}. \]

  • 作者的具体做法是, 学习一个 assignment matrix \(M \in \mathbb{R}^{n \times k}\):

    1. \(m_{i, j} \in \{0, 1\}\), hard assighments, 表示 node \(i\) 是否属于 cluster \(j\);
    2. \(m_{i, j} \in [0, 1], \sum_j m_{i, j} = 1\), soft assignments, 表示 node \(i\) 属于 cluster \(j\) 的概率.
  • 有了分配矩阵后, 可以通过

    \[\tilde{X} = M^T X, \tilde{A} = g(M^T A M), \]

    完成 pooling. 作者说:

    \[g(z) = \left \{ \begin{array}{ll} 1 & z > 0 \\ 0 & \text{else}. \end{array} \right . \]

    但是, \(M^T A M\) 的元素难不成还有负的, 如果是 hard aggsighments 可能 0 还多点, soft 可能出现 0 吗?

  • 作者利用 conditional random field (CRF) 来构造 (M), 具体地, 假设 \(Y = \{Y_1, \cdots, Y_n\}\)\(n\) 随机变量表示结点 \(i\) 属于哪个 clusters, 故其从 \(k\) 个 clusters 中取值 \(Y_i \in \{1, 2, \ldots, k\}\).

  • 我们定义给定 \(X\), \(Y\) 的条件分布为:

    \[P(Y|X) = \frac{1}{Z(X)} \exp(- \sum_{c \in C_{G'}} \psi_c (Y_c|X)), \]

    这里 \(C_{G'}\)\(Y\) 的一些组合.

  • 故它的 Gibbs energy distribution 为:

    \[E(y|X) = \sum_{c \in C_{G'}} \psi_c(y_c|X). \]

  • 最大化 \(P(Y|X)\) 等价于最小化 \(E(y|X)\).

  • 进一步假设:

    \[E(y|X) = \sum_{i} \psi_u(y_i) + \sum_{i \not = j} \psi_p(y_i, y_j) a_{i,j}^l, \]

    即只包含一元和二元组合. 二元组合中仅有 \(l\)-hop 连通的结点 \((i, j)\) 非零.

  • 最后, 总的来说, 用如下算法求解 \(M\) (这里省略了不少内容):

代码

official

posted @ 2023-05-15 21:27  馒头and花卷  阅读(36)  评论(0编辑  收藏  举报