Graph neural network

This is an old revision of this page, as edited by Sheng-Yu PJ Huang (talk | contribs) at 20:51, 28 June 2021 (add "specify graph"). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

In deep learning, a graph neural network (GNN) is a subarea of neural network, which is designed to process graph structured data or data that is able to be formulated as a graph potentially[1][2] (e.g. social network, polygon mesh, point cloud). Since graph data is non-Euclidean, relations between data points cannot be easily represented by their ordering when recording them, and hence standard CNN is not able to be directly applied to graph data. On the other hand, GNN not only be able to applied to non-Euclidean data but also Euclidean data such as sentences, images or videos since such data can be represented as graph data if organized properly.

Graph with 5 nodes.

Pipeline of GNN model

The design pipeline for a GNN model can be generally derived as four steps: find graph structure, specify graph, build model, and design loss functions.

 
The general design pipeline for a GNN model.[3]

Find graph structure

In graph theory, a graph is denoted by:

  •  , a set of vertices (also called nodes or points);
  •  , a set of edges (either directed or undirected, also called links or lines).

If the input data is already in graph structure, then this step is done. Otherwise, you need to observe the data first and reorganize it to be a graph according to your requirement, while not destroying the data's property (so that your model won't face the "garbage in, garbage out" problem).

Specify graph

 
An example of scene graph.[4]

After a graph structure is found in the given data, the type of this graph should also be specified. A graph can be simply categorize as directed/undirected or homogeneous/heterogeneous. Note that for heterogeneous graphs, each edge may differ to the others by its property. For example, each edge in a scene graph[5] has different meaning to represent the relation between nodes.

Design loss function

References

  1. ^ "Graph neural networks: A review of methods and applications". AI Open. 1: 57–81. 2020-01-01. doi:10.1016/j.aiopen.2021.01.001. ISSN 2666-6510.
  2. ^ Zhang, Si; Tong, Hanghang; Xu, Jiejun; Maciejewski, Ross (2019-11-10). "Graph convolutional networks: a comprehensive review". Computational Social Networks. 6 (1): 11. doi:10.1186/s40649-019-0069-y. ISSN 2197-4314.{{cite journal}}: CS1 maint: unflagged free DOI (link)
  3. ^ "Graph neural networks: A review of methods and applications". AI Open. 1: 57–81. 2020-01-01. doi:10.1016/j.aiopen.2021.01.001. ISSN 2666-6510.
  4. ^ Johnson, Justin; Krishna, Ranjay; Stark, Michael; Li, Li-Jia; Shamma, David A.; Bernstein, Michael S.; Fei-Fei, Li (2015-06). "Image retrieval using scene graphs". 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR): 3668–3678. doi:10.1109/CVPR.2015.7298990. {{cite journal}}: Check date values in: |date= (help)
  5. ^ Johnson, Justin; Krishna, Ranjay; Stark, Michael; Li, Li-Jia; Shamma, David A.; Bernstein, Michael S.; Fei-Fei, Li (2015-06). "Image retrieval using scene graphs". 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR): 3668–3678. doi:10.1109/CVPR.2015.7298990. {{cite journal}}: Check date values in: |date= (help)