zoukankan      html  css  js  c++  java
  • GNN Visualization

    Introduction

    There are some traditional method for visualizing GNN and explanation system for it. But there is no specific visualization method for GNN. Based on the difference between GNN and other neural networks, there should be a specific method for GNN visualization.

    Background

    Machine learning task for graphs:

      node classification

      link prediction

      graph classification

    Here is a classical GNN model for node classification.

    Here is a classical GNN model for graph classification.

    Aims of visualization is to better understand how GNN helps to solve the tasks. So when doing visualization, they need to be dealed with separately. 

    Graph Neural Network

    Similar to Convolutional Neural Network, GNN also learns the weights for every features and sum them. The difference is that GNN aggregate from local neighbor rather than two-dimensional matrix. For multi-layer GNN, it can gradually learn more abstract features with the increasement of layers. It can be represented as:

     

    where W is the learning weight, A is adjacency matrix, H is hidden layer embeddings and σ is the activation function.  

    We can also transform the learning processes into three parts: Transform, Aggregate and Update. All the variants of GNN consist of these three parts.

    Transform:

      Transform the current node features to new features, usually using weights (HW)

    Aggregate:

      Aggregate information from neighborhood and calculates an aggregated message via an aggregation method

    Update:

      Update the representation of l layer from l-1 layer non-linearly.

    Here is a figure for GNN family.

    Classical Neural Network Visualization Method

    From the perspective of interpretability:

      simple proxy models of full neural networks

        linear models or sets of rules

        model-agnostic way

      identify important aspects of the computation

        feature gradients

        backpropagation of neurons’ contributions

        counterfactual reasoning

      attention mechanisms like GAT learned

        edge attention values can indicate important graph structure, the values are the same for predictions across all nodes.

    From the perspective of concrete technique:

      Representation plotting (direct plotting, t-SNE)

      Saliency map

      Variance and average

      Decomposition

      Attention

      ... ...

    Graph Neural Network Visualization

    1) saliency map

    Here we first uses saliency map to visualize GNN. We uses 

    Datasets

    Cora 

    The Cora dataset consists of 2708 scientific publications classified into one of seven classes. The citation network consists of 5429 links. Each publication in the dataset is described by a 0/1-valued word vector indicating the absence/presence of the corresponding word from the dictionary. The dictionary consists of 1433 unique words.

    For visualization task, it will be an important problem to visualize the 1433 dimensions. So the dimension selection will be a key point. 

    https://relational.fit.cvut.cz/dataset/CORA

    Reference

    Paper Reference:

    https://cs.stanford.edu/people/jure/pubs/gnnexplainer-neurips19.pdf (GNNExplainer)

    https://arxiv.org/pdf/1812.00279.pdf   (knowledge graph)

    http://openaccess.thecvf.com/content_CVPR_2019/papers/Pope_Explainability_Methods_for_Graph_Convolutional_Neural_Networks_CVPR_2019_paper.pdf    ( computer vision)

    https://arxiv.org/pdf/1807.03404.pdf (Materials Science)

    https://graphreason.github.io/papers/25.pdf (2019ICML workshop)

    https://arxiv.org/abs/1903.03768(unpublished)

    https://arxiv.org/pdf/1710.10903.pdf (GAT)

    Code Reference:

    https://github.com/rusty1s/pytorch_geometric

    https://github.com/baldassarreFe/graph-network-explainability

    https://github.com/RexYing/gnn-model-explainer

    Blog Reference:

  • 相关阅读:
    LoadRunner使用记录
    JVM&GC详解
    常用网络操作命令
    IP地址、子网掩码、网络号、主机号、网络地址、主机地址详解
    交换机配置记录
    持续集成与自动化部署---代码流水线管理及Jenkins和gitlab集成
    Git的安装与使用详解
    性能测试---问题记录
    性能测试---实战篇
    c++实用快捷键
  • 原文地址:https://www.cnblogs.com/sbj123456789/p/12817144.html
Copyright © 2011-2022 走看看