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}\):
- \(m_{i, j} \in \{0, 1\}\), hard assighments, 表示 node \(i\) 是否属于 cluster \(j\);
- \(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\) (这里省略了不少内容):