美文网首页
Hierarchical Graph Representatio

Hierarchical Graph Representatio

作者: 建建爱读书 | 来源:发表于2020-01-09 20:14 被阅读0次

[DIFFPooLing-NIPS18]

Hierarchical structure

  • 学习graph的层次结构,层次表示
  • DIFFPOOL为deep gnn的每一层节点学习differentiable cluster assignment(S^{(l)}) ,将节点映射到一组cluster,形成下一个gnn层的coarsened input。
  • 核心思想是通过提供一个能够区分graph层次节点的pooling操作来得到一个更深,更多层次结构的gnn模型。

DIFFPOOL: differentiable pooling

提供一个可微分的module分层的pooling graph中的节点。

definition

  • G=(A, F), where A\in \{0, 1\}^{n\times n} is the adjacency matrix, F\in \mathbb{R}^{n\times d} is the node feature matrix.
  • Given a set of labels graphs \mathbb{D}=\{(G_1, y_1),(G_2,y_2),\dots,(G_n,y_n)\}.
  • graph classification: \mathord f:\mathcal{g}\to \mathcal y,即将一个graph映射到一个标签。
Graph Nerual Network

neural message passing:
H^{(k)}=M\bigg( A,H^{(k-1)};\theta^{(k)} \bigg)

  • H^{(k)}\in \mathbb{R}^{n\times d}是k层gnn的节点embedding;
  • M是一个消息传播函数:依赖于adjacency matrix 和\theta^{(k)}, 比如可以用GraphSAGE, GCN等;
  • 初始化: k=1,输入节点embedding为H^{(0)}=F

Hierarchical Graph Neural Networks and pooling layer

寻找一个通用的,端到端的区分策略以完成graph的节点分层表示

  • 给定一个gnn的输出Z=GNN(A,X) and the adjacency matrix A\in \mathbb{R}^{n\times n},目标是寻找一中方式可以得到一个新的coarsened graph:包含m<n个节点: A':\mathbb{R}^{n\times n}\to \mathbb{R}^{m\times m},\ Z': \mathbb{R}^{n\times d}\to \mathbb{R}^{m\times d}。当前层的输出作为下一层的输入。
  • 目标就是需要学习一种pooling策略,这种策略可以泛化到具有不同节点、边的图中,并且能够在推理过程中能适应不同的图结构。

Differentiable Pooling via Learned Assignments

DIFFPOOL方法通过学习gnn节点上的cluster assignment matrix: S,来实现上述目标。

Pooling with an assignment matrix

  • 定义第l层学到的cluster assignment matrix: S^{(l)}\in\mathbb R^{(n_l\times n_{l+1})},\ n_l<n_{l+1};

  • assignment matrix 表示第l层的每一个节点到第l+1层的每一个节点(或cluster)的概率.

粗化输入图,生成新的adjacency matrix A^{(l+1)}和新的embeddings matrix: X^{(l+1)}:

(A^{(l+1)},X^{(l+1)}=DIFFPOOL(A^{(l)},X^{(l)})

X^{l+1}={S^{(l)}}^TZ^{(l)}\in \mathbb R^{n_{l+1}\times d}

A^{(l+1)}={S^{(l)}}^TA^{(l)}S^{(l)}\in\mathbb R^{n_{l+1}\times n_{l+1}}

Learning the assignment matrix

Z^{(l)}=\text{GNN}_{l,\text{embed}}(A^{(l)},X^{(l)})

S^{(l)}=\text{softmax}(\text{GNN}_{l,\text{pool}}(A^{(l)},X^{(l)}))

  • \text{GNN}_{l,\text{embed}}为第l层的输入节点生成新的embedding;
  • \text{GNN}_{l,\text{pool}}表示第l层的pooling GNN,生成的是从输入n_{l}节点到n_{l+1}个cluster的概率;
  • \text{GNN}_{l,\text{pool}}的输出位数对应于第l层预定义的最大clusters数,是模型的超参数;
  • 使用cluster的adjacency matrix A^{(l)}和特征矩阵X^{(l)}生成一个assignment matrix S^{(l)}.
DIFFPOOL示意图
  • 在每一层,运行一个gnn模型:输入 (A^{(l)},X^{(l)})
    • 获得节点的embeddings:Z^{(l)}=\text{GNN}_{l,\text{embed}}(A^{(l)},X^{(l)});
    • cluster assignment matrix:S^{(l)}=\text{softmax}(\text{GNN}_{l,\text{pool}}(A^{(l)},X^{(l)})).
  • DIFFPOOL操作,得到下一层gnn的输入:(A^{(l+1)},X^{(l+1)}).
    • X^{l+1}={S^{(l)}}^TZ^{(l)}\in \mathbb R^{n_{l+1}\times d};
    • A^{(l+1)}={S^{(l)}}^TA^{(l)}S^{(l)}\in\mathbb R^{n_{l+1}\times n_{l+1}}.

层次化的gnn加入了pooling层,能够捕捉graph的层次信息。

相关文章

网友评论

      本文标题:Hierarchical Graph Representatio

      本文链接:https://www.haomeiwen.com/subject/wqruactx.html