DiffPool: Hierarchical Graph Representation Learning with Differentiable Pooling

本文提出了一种分层的图池化机制DiffPool,通过将原始图的部分节点映射成粗粒度图上的一个节点模型能够学习到图的层级结构,在池化多次后将图映射成一个节点,进而得到整张图的表示。

本文被NIPS2018接收,地址:Hierarchical Graph Representation Learning with Differentiable Pooling

Motivation

在有机分子中,人们希望能够编码局部的分子结构(原子间的化学键)以及图的粗粒度结构(代表分子功能的结构单元),但当前的GNN无法以分层的方式聚合信息。为了解决这个问题,本文提出了一种图上的层级池化方法DiffPool,通过将多个节点映射成一个簇的方式得到粗粒度的图,在池化多次后,图上的节点个数逐渐减少,最终只剩下一个节点,这样在得到不同层级结构的基础上最终得到整张图的特征表示向量。
DiffPool: Hierarchical Graph Representation Learning with Differentiable Pooling_第1张图片

Method

Differentiable Pooling via Learned Assignments

pooling with an assignment matrix

通过 S ( l ) ∈ R n l × n l + 1 S^{(l)} \in \mathbb{R}^{n_{l} \times n_{l+1}} S(l)Rnl×nl+1可以实现从第 l l l层向第 l + 1 l+1 l+1层节点的映射过程, n l n_{l} nl表示第 l l l层节点的个数, S ( l ) [ i , j ] S^{(l)}[i,j] S(l)[i,j] l l l层上节点 i i i映射到 l + 1 l+1 l+1层上节点 j j j的概率,第 l + 1 l+1 l+1层的节点特征矩阵 X ( l + 1 ) X^{(l+1)} X(l+1)和邻接矩阵 A ( l + 1 ) A^{(l+1)} A(l+1)通过 S ( l ) S^{(l)} S(l)可以得到 X ( l + 1 ) = S ( l ) T Z ( l ) ∈ R n l + 1 × d A ( l + 1 ) = S ( l ) T A ( l ) S ( l ) ∈ R n l + 1 × n l + 1 \begin{array}{l} X^{(l+1)}=S^{(l)^{T}} Z^{(l)} \in \mathbb{R}^{n_{l+1} \times d} \\ A^{(l+1)}=S^{(l)^{T}} A^{(l)} S^{(l)} \in \mathbb{R}^{n_{l+1} \times n_{l+1}} \end{array} X(l+1)=S(l)TZ(l)Rnl+1×dA(l+1)=S(l)TA(l)S(l)Rnl+1×nl+1注意到 A ( l + 1 ) A^{(l+1)} A(l+1)可能所有的值都不为0,图上的节点可能全部两两相连, A ( l + 1 ) [ i , j ] A^{(l+1)}[i,j] A(l+1)[i,j]可以看做节点 i i i到节点 j j j的连接强度(connectivity strength)。

learning the assignment matrix

assignment matrix S ( l ) S^{(l)} S(l) 和embedding matrix Z ( l ) Z^{(l)} Z(l)可通过两个GNN得到
Z ( l ) = G N N l , e m b e d ( A ( l ) , X ( l ) ) Z^{(l)}=\mathrm{GNN}_{l, \mathrm{embed}}\left(A^{(l)}, X^{(l)}\right) Z(l)=GNNl,embed(A(l),X(l)) S ( l ) = softmax ⁡ ( G N N l , p o o l ( A ( l ) , X ( l ) ) ) S^{(l)}=\operatorname{softmax}\left(\mathrm{GNN}_{l, \mathrm{pool}}\left(A^{(l)}, X^{(l)}\right)\right) S(l)=softmax(GNNl,pool(A(l),X(l))) G N N l , p o o l \mathrm{GNN}_{l, \mathrm{pool}} GNNl,pool的结果上按行做 s o f t m a x softmax softmax,可以得到图上每一个节点对应下一层图上的每一个节点的可能性。

The embedding GNN generates new embeddings for the input nodes at this layer, while the pooling GNN generates a probabilistic assignment of the input nodes to n l + 1 n_{l+1} nl+1clusters.

Auxiliary Link Prediction Objective and Entropy Regularization

一个直观的想法是在原图上距离更近的节点们(更加连通)更容易被映射为粗粒度图上的一个节点,所以模型在训练时要minimize L L P = ∥ A ( l ) , S ( l ) S ( l ) T ∥ F L_{\mathrm{LP}}=\left\|A^{(l)}, S^{(l)} S^{(l)^{T}}\right\|_{F} LLP=A(l),S(l)S(l)TF ∣ ∣ ⋅ ∣ ∣ F || \cdot||_F F是Frobenius norm,也就是说 A ( l ) A^{(l)} A(l)要尽量地和 S ( l ) S ( l ) T S^{(l)} S^{(l)^{T}} S(l)S(l)T接近。 A ( l ) [ i , j ] A^{(l)}[i,j] A(l)[i,j]代表的是图上i,j之间的连通强度,又因为 S ( l ) S ( l ) T [ i , j ] = ∑ k S ( l ) [ i , k ] S ( l ) T [ k , j ] S^{(l)} S^{(l)^{T}}[i,j]=\sum_{k}S^{(l)}[i,k] S^{(l)^{T}}[k,j] S(l)S(l)T[i,j]=kS(l)[i,k]S(l)T[k,j],当i,j同属于某一簇k的可能性高时 S ( l ) S ( l ) T [ i , j ] S^{(l)} S^{(l)^{T}}[i,j] S(l)S(l)T[i,j]会比较大,所以通过优化 L L P L_{\mathrm{LP}} LLP可以让相邻的节点更容易被映射到同一个簇(下一层的节点)上。

另外, S S S的每一行 S i S_i Si代表原图上的第 i i i个节点向下一层的各个节点映射的概率,所以 S i S_i Si应该接近一个one-hot的向量,即第 i i i个节点仅向下一层的一个节点映射。所以还需要minimize L E = 1 n ∑ i = 1 n H ( S i ) L_{\mathrm{E}}=\frac{1}{n} \sum_{i=1}^{n} H\left(S_{i}\right) LE=n1i=1nH(Si),通过减少熵的方式减少映射分布的不确定性。

你可能感兴趣的:(图神经网络)