Abstract
Graph neural networks denote a group of neural network models introduced forthe representation learning tasks on graph data specifically. Graph neuralnetworks have been demonstrated to be effective for capturing network structureinformation, and the learned representations can achieve the stateoftheartperformance on node and graph classification tasks. Besides the differentapplication scenarios, the architectures of graph neural network models alsodepend on the studied graph types a lot. Graph data studied in research can begenerally categorized into two main types, i.e., small graphs vs. giantnetworks, which differ from each other a lot in the size, instance number andlabel annotation. Several different types of graph neural network models havebeen introduced for learning the representations from such different types ofgraphs already. In this paper, for these two different types of graph data, wewill introduce the graph neural networks introduced in recent years. To be morespecific, the graph neural networks introduced in this paper include IsoNN,SDBN, LF&ER, GCN, GAT, DifNN, GNL, GraphSage and seGEN. Among these graphneural network models, IsoNN, SDBN and LF&ER are initially proposed for smallgraphs and the remaining ones are initially proposed for giant networksinstead. The readers are also suggested to refer to these papers for detailedinformation when reading this tutorial paper.
Quick Read (beta)
Graph Neural Networks for Small Graph and Giant Network Representation Learning: An Overview
Abstract
Graph neural networks denote a group of neural network models introduced for the representation learning tasks on graph data specifically. Graph neural networks have been demonstrated to be effective for capturing network structure information, and the learned representations can achieve the stateoftheart performance on node and graph classification tasks. Besides the different application scenarios, the architectures of graph neural network models also depend on the studied graph types a lot. Graph data studied in research can be generally categorized into two main types, i.e., small graphs vs. giant networks, which differ from each other a lot in the size, instance number and label annotation. Several different types of graph neural network models have been introduced for learning the representations from such different types of graphs already. In this paper, for these two different types of graph data, we will introduce the graph neural networks introduced in recent years. To be more specific, the graph neural networks introduced in this paper include IsoNN [4], SDBN [7], LF&ER [6], GCN [3], GAT [5], DifNN [8], GNL [1], GraphSage [2] and seGEN [9]. Among these graph neural network models, IsoNN, SDBN and LF&ER are initially proposed for small graphs and the remaining ones are initially proposed for giant networks instead. The readers are also suggested to refer to these papers for detailed information when reading this tutorial paper.
arrows \usetikzlibrarygraphs
Founder and Director
Information Fusion and Mining Laboratory
(First Version: July 2019; Revision: July 2019.)
Keywords:
Graph Neural Network; Representation Learning; Graph Mining; Deep Learning
Contents
 1 Introduction
 2 Graph Neural Networks for Small Graphs
 3 Graph Neural Networks for Giant Networks
 4 Challenges and Opportunities
 5 Summary
1 Introduction
In the era of big data, graph provides a generalized representation of many different types of interconnected data collected from various disciplines. Besides the unique attributes possessed by individual nodes, the extensive connections among the nodes can convey very complex yet important information. Graph data are very difficult to deal with because of their various shapes (e.g., small brain graphs vs. giant online social networks), complex structures (containing various kinds of nodes and extensive connections) and diverse attributes (attached to the nodes and links). Great challenges exist in handling the graph data with traditional machine learning algorithms directly, which usually take feature vectors as the input. Viewed in such a perspective, learning the feature vector representations of graph data will be an important problem.
The graph data studied in research can be generally categorized into two main types, i.e., small graphs vs. giant networks, which differ from each other a lot in the size, instance number and label annotation.

•
The small graphs we study are generally of a much smaller size, but with a large number of instances, and each graph instance is annotated with certain labels. The representative examples include the human brain graph, molecular graph, and realestate community graph, whose nodes (usually only in hundreds) represent the brain regions, atoms and POIs, respectively.

•
On the contrary, giant networks in research usually involve a large number of nodes/links, but with only one single network instance, and individual nodes are labeled instead of the network. Examples of giant networks include social network (e.g., Facebook), eCommerce network (e.g., Amazon) and bibliographic network (e.g., DBLP), which all contain millions even billions of nodes.
Due to these property distinctions, the representation learning algorithms proposed for small graphs and giant networks are very different. To solve the small graph oriented problems, the existing graph neural networks focus on learning a representation of the whole graph (not the individual nodes) based on the graph structure and attribute information. Several different graph neural network models have been introduced already, including IsoNN (Isomorphic Neural Network) [4], SDBN (Structural Deep Brain Network) [7] and LF&ER (Deep Autoencoder based Latent Feature Extraction) [6]. These models are proposed for different small graph oriented application scenarios, covering both brain graphs and community POI graphs, which can also be applied to other application settings with minor extensions.
Meanwhile, for the giant network studies, in recent years, many research works propose to apply graph neural networks to learn their lowdimensional feature representations, where each node is represented as a feature vector. With these learned node representations, the graph neural network model can directly infer the potential labels of the nodes/links. To achieve such objectives, several different type of graph neural network models have been introduced, including GCN (Graph Convolutional Network) [3], GAT (Graph Attention Network) [5], DifNN (Deep Diffusive Neural Network) [8], GNL (Graph Neural Lasso), GraphSage (Graph Sample and Aggregate) [2] and seGEN (Sample and Ensemble Genetic Evolutionary Network) [9].
In this paper, we will introduce the aforementioned graph neural networks proposed for small graphs and giant networks, respectively. This tutorial paper will be updated accordingly as we observe the latest developments on this topic.
2 Graph Neural Networks for Small Graphs
In this section, we will introduce the graph neural networks proposed for the representation learning tasks on small graphs. Formally, we can represent the set of small graphs to be studied in this section as $\mathcal{G}=({G}_{1},{\mathbf{y}}_{1}),({G}_{2},{\mathbf{y}}_{2}),\mathrm{\cdots},({G}_{n},{\mathbf{y}}_{n})$, where ${G}_{i}=({\mathcal{V}}_{i},{\mathcal{E}}_{i})$ denotes a small graph instance and ${\mathbf{y}}_{i}\in {\mathbb{R}}^{{d}_{y}}$ denotes its label vector. Given a graph ${G}_{i}\in \mathcal{G}$, we can denote its network size as the number of involved nodes, i.e., ${\mathcal{V}}_{i}$. Normally, the small graphs to be studied in set $\mathcal{G}$ are of the same size. Meanwhile, depending on the application scenarios, the objective labels of the graph instances can be binaryclass/multiclass vectors. The small graph oriented graph neural networks aim at learning a mapping, i.e., $f:\mathcal{G}\to {\mathbb{R}}^{{d}_{h}}$, to project the graph instances to their feature vector representations, which will be further utilized to infer their corresponding labels. Specifically, the graph neural network models to be introduced in this section include IsoNN [4], SDBN [7] and LF&ER [6]. The readers are also suggested to refer to these papers for detailed information when reading this tutorial paper.
2.1 IsoNN: Isomorphic Neural Network
Graph isomorphic neural network (IsoNN) proposed in [4] recently aims at extracting meaningful subgraph patterns from the input graph for representation learning. Subgraph mining techniques have been demonstrated to be effective for feature extraction in the existing works. Instead of designing the subgraph templates manually, IsoNN proposes to integrate the subgraph based feature extraction approaches into the neural network framework for automatic feature representation learning. As illustrated in Figure 1, IsoNN includes two main components: graph Isomorphic feature extraction component and classification component. IsoNN can be in a deeper architecture by involving multiple graph isomorphic feature extraction components so that the model will learn more complex subgraph patterns.
The graph isomorphic feature extraction component in IsoNN targets at the automatic subgraph pattern learning and brain graph feature extraction with the following three layers:graph isomorphic layer, minpooling layer 1 and minpooling layer 2, which will be introduced as follows, respectively. Meanwhile, the classification component used in IsoNN involves several fully connected layers, which project the learned isomorphic features to the corresponding graph labels.
2.1.1 Graph Isomorphic Layer
In IsoNN, the subgraph based feature extraction process is achieved by a novel graph isomorphic layer. Formally, given a brain graph $G=(\mathcal{V},\mathcal{E})$, its adjacency matrix can be represented as $\mathbf{A}\in {\mathbb{R}}^{\mathcal{V}\times \mathcal{V}}$. In order to find the existence of specific subgraph patterns in the input graph, IsoNN matches the input graph with a set of subgraph templates. Instead of defining these subgraph templates manually as the existing works, each template is denoted as a kernel variable ${\mathbf{K}}_{i}\in {\mathbb{R}}^{k\times k},\forall i\in \{1,2,\mathrm{\cdots},c\}$ and IsoNN will learn these kernel variables automatically. Here, $k$ denotes the node number in the templates and $c$ is the channel number. Meanwhile, to match one template (i.e., the kernel variable matrix ${\mathbf{K}}_{i}$) with regions in the input graph (i.e., submatrices in $\mathbf{A}$), IsoNN uses a set of permutation matrices, which map both rows and columns of the kernel matrix to the submatrices in $\mathbf{A}$ effectively. The permutation matrix can be represented as $\mathbf{P}\in {\{0,1\}}^{k\times k}$ that shares the same dimensions with the kernel matrix. Given a kernel variable matrix ${\mathbf{K}}_{i}$ and a regional submatrix ${\mathbf{M}}_{(s,t)}\in {\mathbb{R}}^{k\times k}$ in $\mathbf{A}$ (where ${\mathbf{M}}_{(s,t)}(1:k,1:k)=\mathbf{A}(s:s+k1,t:t+k1)$ and index pair $s,t\in \{1,2,\mathrm{\cdots},(\mathcal{V}k+1)\}$), there may exist $k!$ different such permutation matrices and the optimal one can be denoted as ${\mathbf{P}}^{*}$:
$${\mathbf{P}}^{*}=\mathrm{arg}\underset{\mathbf{P}\in \mathcal{P}}{\mathrm{min}}{\parallel {\mathrm{\mathbf{P}\mathbf{K}}}_{i}{\mathbf{P}}^{\top}{\mathbf{M}}_{(s,t)}\parallel}_{F}^{2},$$  (1) 
where $\mathcal{P}=\{{\mathbf{P}}_{1},{\mathbf{P}}_{2},\mathrm{\cdots},{\mathbf{P}}_{k!}\}$ covers all the potential permutation matrices. The Fnorm term measures the mapping loss, which is also used as the graph isomorphic feature in IsoNN. Formally, the isomorphic feature extracted based on the kernel ${\mathbf{K}}_{i}$ for the regional submatrix ${\mathbf{M}}_{(s,t)}$ in $\mathbf{A}$ can be represented as
${z}_{i,(s,t)}$  $={\parallel {\mathbf{P}}^{*}{\mathbf{K}}_{i}{({\mathbf{P}}^{*})}^{\top}{\mathbf{M}}_{(s,t)}\parallel}_{F}^{2}$  (2)  
$=\mathrm{min}{\{\parallel {\mathrm{\mathbf{P}\mathbf{K}}}_{i}{\mathbf{P}}^{\top}{\mathbf{M}}_{(s,t)}{\parallel}_{F}^{2}\}}_{\mathbf{P}\in \mathcal{P}}$  
$=\mathrm{min}({\overline{\mathbf{z}}}_{i,(s,t)}(1:k!)),$ 
where vector ${\overline{\mathbf{z}}}_{i,(s,t)}\in {\mathbb{R}}^{k!}$ with ${\overline{\mathbf{z}}}_{i,(s,t)}(j)={\parallel {\mathbf{P}}_{j}{\mathbf{K}}_{i}{\mathbf{P}}_{j}^{\top}{\mathbf{M}}_{(s,t)}\parallel}_{F}^{2},\forall j\in \{1,2,\mathrm{\cdots},k!\}$ denoting the features computed on the permutation matrix ${\mathbf{P}}_{j}\in \mathcal{P}$. Furthermore, by shifting the kernel matrix ${\mathbf{K}}_{i}$ on regional submatrices in $\mathbf{A}$, the isomorphic features extracted by IsoNN from the input graph can be denoted as a 3way tensor ${\mathcal{Z}}_{i}\in {\mathbb{R}}^{k!\times (\mathcal{V}k+1)\times (\mathcal{V}k+1)}$, where ${\mathcal{Z}}_{i}(1:k!,s,t)={\overline{\mathbf{z}}}_{i,(s,t)}(1:k!)$.
2.1.2 Minpooling Layers
$\bullet $ Minpooling Layer 1: As indicated by the Figure 1, IsoNN computes the final isomorphic features with the optimal permutation matrix for the kernel ${\mathbf{K}}_{i}$ via two steps: (1) computing all the potential isomorphic features via different permutation matrices with the graph isomorphic layer, and (2) identifying the optimal features with the minpooling layer 1 and layer 2. Formally, given the tensor ${\mathcal{Z}}_{i}$ computed by ${\mathbf{K}}_{i}$ in the graph isomorphic layer, IsoNN will identify the optimal permutation matrices via the minpooling layer 1. From tensor ${\mathcal{Z}}_{i}$, the features computed with the optimal permutation matrices can be denoted as ${\mathbf{Z}}_{i}$, where
$${\mathbf{Z}}_{i}(s,t)=\mathrm{min}\{{\mathcal{Z}}_{i}(1:k!,s,t)\},\forall s,t\in \{1,2,\mathrm{\cdots},(\mathcal{V}k+1)\}.$$  (3) 
The minpooling layer 1 learns the optimal feature matrix ${\mathbf{Z}}_{i}$ for kernel ${\mathbf{K}}_{i}$ along the first dimension of tensor ${\mathcal{Z}}_{i}$, which are computed by the optimal permutation matrices. In a similar way, for the remaining kernels, their optimal graph isomorphic features can be obtained and denoted as matrices ${\mathbf{Z}}_{1}$, ${\mathbf{Z}}_{2}$, $\mathrm{\cdots}$, ${\mathbf{Z}}_{c}$, respectively.
$\bullet $ Minpooling Layer 2: For the same region in the input graph, different kernels can be applied to match the regional submatrix. Inspired by this, IsoNN incorporates the minpooling layer 2, so that the model can find the best kernels that match the regions in $\mathbf{A}$. With inputs ${\mathbf{Z}}_{1},{\mathbf{Z}}_{2},\mathrm{\cdots},{\mathbf{Z}}_{c}$, the minpooling layer 2 in IsoNN can identify the optimal features across all the kernels, which can be denoted as matrix $\mathbf{Q}$ with
$$\mathbf{Q}(s,t)=min\{{\mathbf{Z}}_{1}(s,t),{\mathbf{Z}}_{2}(s,t),\mathrm{\cdots},{\mathbf{Z}}_{c}(s,t)\},\forall s,t\in \{1,2,\mathrm{\cdots},(\mathcal{V}k+1)\}.$$  (4) 
Entry $\mathbf{Q}(s,t)$ denotes the graph isomorphic feature computed by the best subgraph kernel on the regional matrix ${\mathbf{M}}_{(s,t)}$ in $\mathbf{A}$. Thus, via minpooling layer 2, let $\mathbf{Q}$ be the final isomorphic feature matrix, which preserves the best subgraph patterns contributing to the classification result. In addition, minpooling layer 2 also effectively shrinks the feature length and greatly reduces the number of variables to be learned in the following classification component.
2.1.3 Classification Component
Given a brain graph instance ${G}_{g}\in \mathcal{B}$ ($\mathcal{B}\subset \mathcal{T}$ denotes the training batch), its extracted isomorphic feature matrix can be denoted as ${\mathbf{Q}}_{g}$. By feeding its flat vectorized representation vector ${\mathbf{q}}_{g}=vec({\mathbf{Q}}_{g})$ as the input into the classification component (with three fullyconnected layers), the predicted label vector by IsoNN on the instance can be represented as ${\widehat{\mathbf{y}}}_{g}$. Several frequently used loss functions, e.g., crossentropy, can be used to measure the introduced loss between ${\widehat{\mathbf{y}}}_{g}$ and the groundtruth label vector ${\mathbf{y}}_{g}$. Formally, the fullyconnected (FC) layers and the loss function used in IsoNN can be represented as follows:
$$\text{FC Layers:}\{\begin{array}{cc}{\mathbf{d}}_{1}=\hfill & \sigma ({\mathbf{W}}_{1}{\mathbf{q}}_{g}+{\mathbf{b}}_{1}),\hfill \\ {\mathbf{d}}_{2}=\hfill & \sigma ({\mathbf{W}}_{2}{\mathbf{d}}_{1}+{\mathbf{b}}_{2}),\hfill \\ {\widehat{\mathbf{y}}}_{g}=\hfill & softmax({\mathbf{W}}_{3}{\mathbf{d}}_{2}+{\mathbf{b}}_{3});\hfill \end{array}$$  (5) 
and
$$\text{Loss Function:}\mathrm{\ell}(\mathbf{\Theta})=\sum _{g\in \mathcal{B}}\sum _{j}{\mathbf{y}}_{g}(j)\mathrm{log}{\widehat{\mathbf{y}}}_{g}(j),$$  (6) 
where ${\mathbf{W}}_{i}$ and ${\mathbf{b}}_{i}$ are the weight and biase in ${i}_{th}$ layer, $\sigma (\cdot )$ denotes the sigmoid activation function and $softmax(\cdot )$ is the softmax function for output normalization. Variables $\mathbf{\Theta}=({\{\mathbf{K}\}}_{i=1}^{k},{\{{\mathbf{W}}_{i},{\mathbf{b}}_{i}\}}_{i=1}^{3})$ (including the kernel matrices and weight/bias terms) involved in the model can be effectively learned with the error back propagation algorithm by minimizing the above loss function. For more information about IsoNN, the readers are suggested to refer to [4] for detailed descriptions.
2.2 SDBN: Structural Deep Brain Network
Structural Deep Brain Network (SDBN) initially proposed [7] applies the deep convolutional neural network to the brain graph mining problem, which can be viewed as an integration of convolutional neural network and autoencoder. Similar to IsoNN, SDBN also observes the orderless property with the brain graph data, and introduce a graph reordering approach to resolve the problem.
As illustrated in Figure 2, besides the necessary graph data processing and representation, SDBN involves three main steps to learn the final representations and labels fo the graph instances, i.e., graph reordering, structural augmentation and convolutional feature learning, which will be introduced as follows, respectively.
2.2.1 Graph Reordering
Given the graph set $\mathcal{G}=\{{G}_{1},{G}_{2},\mathrm{\cdots},{G}_{n}\}$, the goal of graph reordering is to find a node labeling ${\mathrm{\ell}}_{n}$ such that for any two graphs ${G}_{i},{G}_{j}\in \mathcal{G}$ randomly draw from $\mathcal{G}$, the expected differences between the distance of the graph connectivity adjacency matrices based on ${\mathrm{\ell}}_{n}$ and the distance of the graphs in the graph space is minimized. Formally, for each graph instance ${G}_{i}\in \mathcal{G}$, its connectivity adjacency matrix can be denoted as ${\mathbf{A}}_{i}$. Let ${d}_{\mathcal{A}}$ and ${d}_{\mathcal{G}}$ denote the distance metrics on the adjacency matrix domain $\mathcal{A}$ and graph domain $\mathcal{G}$ respectively, the graph reordering problem can be formulated as the following optimization problem:
$$\mathrm{arg}\underset{{\mathrm{\ell}}_{n}}{\mathrm{min}}{\mathbb{E}}_{{G}_{i},{G}_{j}\in \mathcal{G}}\left(\parallel {d}_{\mathcal{A}}({\mathbf{A}}_{i},{\mathbf{A}}_{j}){d}_{\mathcal{G}}({G}_{i},{G}_{j})\parallel \right).$$  (7) 
Graph reordering is a combinatorial optimization problem, which has also be demonstrated to be NPhard and is computationally infeasible to address in polynomial time. SDBN proposes to apply the spectral clustering to help reorder the nodes and brain graph connectivity instead. Formally, based on the brain graph adjacency matrix ${\mathbf{A}}_{i}$ of ${G}_{i}$, its corresponding Laplacian matrix can be represented as ${\mathbf{L}}_{i}$. The spectral clustering algorithm aims at partitioning the brain graph ${G}_{i}$ into $K$ modules, where the nodemodule belonging relationships are denoted by matrix $\mathbf{F}\in {\mathbb{R}}^{\mathcal{V}\times K}$. The optimal $\mathbf{F}$ can be effectively learned with the following objective function:
$\underset{\mathbf{F}}{\mathrm{min}}tr\left({\mathbf{F}}^{\top}{\mathbf{L}}_{i}\mathbf{F}\right)$  $s.t.{\mathbf{F}}^{\top}\mathbf{F}=\mathbf{I},$  (8) 
where $\mathbf{I}\in {\{0,1\}}^{K\times K}$ denotes an identity matrix and the constraint is added to ensure one node is assigned to one module only. From the learned optimal $\mathbf{F}$, SDBN can assign the nodes in graph ${G}_{i}$ to their modules $\mathcal{M}=\{{M}_{1},{M}_{2},\mathrm{\cdots},{M}_{K}\}$, where $\mathcal{V}={\bigcup}_{i=1}^{K}{M}_{i}$ and ${M}_{i}\cap {M}_{j}=\mathrm{\varnothing},\forall i\ne j$ and $i,j\in \{1,2,\mathrm{\cdots},K\}$. Such learned modules $\mathcal{M}$ can help reorder the nodes in the graph into relatively compact regions, and the graph connectivity adjacency matrix ${\mathbf{A}}_{i}$ after reordering can be denoted as ${\stackrel{~}{\mathbf{A}}}_{i}$. Similar operations will be performed on the other graph instances in the set $\mathcal{G}$.
2.2.2 Structural Augmentation
Prior to feeding the reordered graph adjacency matrix to the deep convolutional neural network for representation learning, SDBN proposes to augment the network structure by both refining the connectivity adjacency matrix and creating an additional module identification channel.

•
Reordered Adjacency Matrix Refinement: Formally, for graph ${G}_{i}\in \mathcal{G}$, based on its reordered adjacency matrix ${\stackrel{~}{\mathbf{A}}}_{i}$ obtained from the previous step, SDBN proposes to refine its entry values with the following equation:
$${\stackrel{~}{\mathbf{A}}}_{i}(p,q)=\{\begin{array}{cc}1\hfill & \text{for}{v}_{p},{v}_{q}\in {M}_{k},\exists {M}_{k}\in \mathcal{M};\hfill \\ \u03f5\hfill & \text{otherwise}.\hfill \end{array}$$ (9) In the equation, term $\u03f5$ denotes a small constant.

•
Module Identification Channel Creation: From the reordered adjacency matrix ${\stackrel{~}{\mathbf{A}}}_{i}$ for graph ${G}_{i}\in \mathcal{G}$, the learned module identity information is actually not preserved. To effectively incorporate such information in the model, SDBN proposes to create one more channel ${\mathbf{M}}_{i}\in {\mathbb{R}}^{\mathcal{V}\times \mathcal{V}}$ for graph ${G}_{i}$, whose entry values can be denoted as follows:
$${\mathbf{M}}_{i}(p,q)=\{\begin{array}{cc}k\hfill & \text{for}{v}_{p},{v}_{q}\in {M}_{k},\exists {M}_{k}\in \mathcal{M};\hfill \\ 0\hfill & \text{otherwise}.\hfill \end{array}$$ (10)
Formally, based on the above operations, the inputs for the representation learning component on graph ${G}_{i}$ will be ${\mathbf{X}}_{i}=[{\stackrel{~}{\mathbf{A}}}_{i};{\mathbf{M}}_{i}]$, which encodes much more information and can help learn more useful representations.
2.2.3 Learning of the SDBN Model
As illustrated in Figure 3, based on the input matrix $\mathbf{X}$ for the graphs in $\mathcal{G}$ (here, the subscript of $\mathbf{X}$ is not indicated and it can represent any graphs in $\mathcal{G}$), SDBN proposes to apply the convolutional neural network for the graph representation learning. To be specific, the convolutional neural network used in SDBN involves two operators: conv and pool, which can be stacked together multiple times to form a deep architecture.
Formally, according to Figure 3, the intermediate representations of the input graphs as well as the corresponding labels in the SDBN can be represented with the following equations:
$$\{\begin{array}{cc}{\mathbf{X}}^{(1)}\hfill & =pool\left(conv(\mathbf{X};\mathbf{\Theta})\right);\hfill \\ {\mathbf{X}}^{(2)}\hfill & =pool\left(conv({\mathbf{X}}^{(1)};\mathbf{\Theta})\right);\hfill \\ \mathbf{x}\hfill & =reshape({\mathbf{X}}^{(2)});\hfill \\ \widehat{\mathbf{y}}\hfill & =FC(\mathbf{x};\mathbf{\Theta}),\hfill \end{array}$$  (11) 
where $reshape(\cdot )$ flattens the matrix to a matrix and $FC(\cdot )$ denotes the fullyconnected layers in the model. In the above equations, $\mathbf{\Theta}$ denotes the involved variables in the model, which will be optimized.
Based on the above model, for all the graph instances ${G}_{i}\in \mathcal{G}$, we can represent the introduced loss terms by the model as
$$\mathrm{\ell}(\mathbf{\Theta})=\sum _{{G}_{i}\in \mathcal{G}}\mathrm{\ell}({G}_{i};\mathbf{\Theta})=\sum _{{G}_{i}\in \mathcal{G}}\mathrm{\ell}({\mathbf{y}}_{i},{\widehat{\mathbf{y}}}_{i}),$$  (12) 
where ${\mathbf{y}}_{i}$ and ${\widehat{\mathbf{y}}}_{i}$ represent the groundtruth label vector and the inferred label vector of graph ${G}_{i}$, respectively.
Meanwhile, in addition to the above loss term, SDBN also incorporates the autoencoder into the model learning process via the depool and deconv operations. The conv and pool operators mentioned above compose the encoder part, whereas the deconv and depool operators will form the decoder part. Formally, based on the learned intermediate representation ${\mathbf{X}}^{(2)}$ of the input graph matrix $\mathbf{X}$, SDBN computes the recovered representations as follows:
${\widehat{\mathbf{X}}}^{(1)}$  $=deconv(depool\left({\mathbf{X}}^{(2)}\right);\mathbf{\Theta});$  (13)  
$\widehat{\mathbf{X}}$  $=deconv(depool\left({\widehat{\mathbf{X}}}^{(1)}\right);\mathbf{\Theta}).$ 
By minimizing the difference between ${\widehat{\mathbf{X}}}^{(1)}$ and ${\mathbf{X}}^{(1)}$, as well as the difference between $\widehat{\mathbf{X}}$ and $\mathbf{X}$, i.e.,
$$\mathrm{\ell}({\widehat{\mathbf{X}}}^{(1)},{\mathbf{X}}^{(1)})={\parallel {\widehat{\mathbf{X}}}^{(1)}{\mathbf{X}}^{(1)}\parallel}_{2}^{2};\text{and}\mathrm{\ell}(\widehat{\mathbf{X}},\mathbf{X})={\parallel \widehat{\mathbf{X}}\mathbf{X}\parallel}_{2}^{2}$$  (14) 
SDBN can effectively learn the involved variables in the model. As illustrated in Figure 3, the decoder step can work in different manner, which will lead to different regularization terms on the intermediate representations. The performance comparison between IsoNN and SDBN is also reported in [4], and the readers may refer to [4, 7] for more detailed information of the models and the experimental evaluation results.
2.3 LF&ER: Deep Autoencoder based Latent Feature Extraction
Deep Autoencoder based Latent Feature Extraction (LF&ER) initially proposed in [6] serves an a latent feature extraction component in the final model introduced in that paper. Based on the input community realestate POI graphs, LF&ER aims to learn the latent representations of the POI graphs, which will be used to infer the community vibrancy scores.
2.3.1 Deep Autoencoder Model
The LF&ER model works based on the deep autoencoder actually. Autoencoder is an unsupervised neural network model, which projects the instances in original feature representations into a lowerdimensional feature space via a series of nonlinear mappings. Figure 4 shows that autoencoder model involves two steps: encode and decode. The encode part projects the original feature vector to the objective feature space, while the decode step recovers the latent feature representation to a reconstruction space. In autoencoder model, we generally need to ensure that the original feature representation of instances should be as similar to the reconstructed feature representation as possible.
Formally, let $\mathbf{x}$ represent the original feature representation of instance $i$, and ${\mathbf{y}}^{(1)},{\mathbf{y}}^{(2)},\mathrm{\cdots},{\mathbf{y}}^{(o)}$ be the latent feature representations of the instance at hidden layers $1,2,\mathrm{\cdots},o$ in the encode step respectively, the encoding result in the objective lowerdimension feature space can be represented as $\mathbf{z}\in {\mathbb{R}}^{{d}_{z}}$ with dimension ${d}_{z}$. Formally, the relationship between these vector variables can be represented with the following equations:
$$\{\begin{array}{cc}{\mathbf{y}}^{(1)}\hfill & =\sigma ({\mathbf{W}}^{(1)}\mathbf{x}+{\mathbf{b}}^{(1)}),\hfill \\ {\mathbf{y}}^{(k)}\hfill & =\sigma ({\mathbf{W}}^{(k)}{\mathbf{y}}^{(k1)}+{\mathbf{b}}^{(k)}),\forall k\in \{2,3,\mathrm{\cdots},o\},\hfill \\ \mathbf{z}\hfill & =\sigma ({\mathbf{W}}^{(o+1)}{\mathbf{y}}^{(o)}+{\mathbf{b}}^{(o+1)}).\hfill \end{array}$$  (15) 
Meanwhile, in the decode step, the input will be the latent feature vector $\mathbf{z}$ (i.e., the output of the encode step), and the final output will be the reconstructed vector $\widehat{\mathbf{x}}$. The latent feature vectors at each hidden layers can be represented as ${\widehat{\mathbf{y}}}^{(o)},{\widehat{\mathbf{y}}}^{(o1)},\mathrm{\cdots},{\widehat{\mathbf{y}}}^{(1)}$. The relationship between these vector variables can be denoted as
$$\{\begin{array}{cc}{\widehat{\mathbf{y}}}^{(o)}\hfill & =\sigma ({\widehat{\mathbf{W}}}^{(o+1)}\mathbf{z}+{\widehat{\mathbf{b}}}^{(o+1)}),\hfill \\ {\widehat{\mathbf{y}}}^{(k1)}\hfill & =\sigma ({\widehat{\mathbf{W}}}^{(k)}{\widehat{\mathbf{y}}}^{(k)}+{\widehat{\mathbf{b}}}^{(k)}),\forall k\in \{2,3,\mathrm{\cdots},o\},\hfill \\ \widehat{\mathbf{x}}\hfill & =\sigma ({\widehat{\mathbf{W}}}^{(1)}{\widehat{\mathbf{y}}}^{(1)}+{\widehat{\mathbf{b}}}^{(1)}).\hfill \end{array}$$  (16) 
In the above equations, $\mathbf{W}$ and $\mathbf{b}$ with different subscripts denote the weight matrices and bias terms to be learned in the model. The objective of the autoencoder model is to minimize the loss between the original feature vector $\mathbf{x}$ and the reconstructed feature vector $\widehat{\mathbf{x}}$. Formally, the loss term can be represented as
$$\mathrm{\ell}(\mathbf{\Theta})=\mathrm{\ell}(\mathbf{x},\widehat{\mathbf{x}};\mathbf{\Theta})={\parallel \mathbf{x}\widehat{\mathbf{x}}\parallel}_{2}^{2},$$  (17) 
where $\mathbf{\Theta}$ denotes the variables involved in the autoencoder model.
2.3.2 Latent Representation Learning
LF&ER proposes to learn the community allocation information for the vibrancy inference and ranking. Formally, spatial structure denotes the distribution of POIs inside the community, e.g., a grocery store lies between two residential buildings; a school is next to the police office. The Spatial structure can hardly be represented with explicit features extracted before, and LF&ER proposes to represent them with a set of latent feature vectors extracted from the geographic distance graph and the mobility connectivity graph defined in the previous subsection. The autoencoder model is applied here for the latent feature extraction.
Autoencoder model has been applied to embed the graph data into lowerdimensional spaces in many of the research works, which will obtain a latent feature representation for the nodes inside the graph. Different from these works, instead of calculating the latent feature for the POI categories inside the communities, LF&ER aims at obtaining the latent feature vector for the whole community, i.e., embedding the graph as one latent feature vector.
As shown in Figure 4, LF&ER transforms the matrix of the graphical distance graph (involving the POI categories) $\mathbf{D}$ into a vector, which can be denoted as
$$\mathbf{d}=reshape(\mathbf{D})\in {\mathbb{R}}^{{\mathcal{V}}^{2}\times 1}.$$  (18) 
Vector $\mathbf{d}$ will be used as the input feeding into the autoencoder model. The latent embedding feature vector of $\mathbf{d}$ can be represented as ${\mathbf{z}}_{D}$ (i.e., the vector $\mathbf{z}$ as introduced in the autoencoder model in the previous section), which depicts the layout information of POI categories in the community in terms of the geographical distance. Besides the static layout based on geographic distance graph, the spatial structure of the POIs in the communities can also be revealed indirectly through the human mobility. For a pair of POI categories which are far away geographically, if people like to go between them frequently, it can display another type of structure of the POIs in terms of their functional correlations. Via the multiple fully connected layers, LF&ER will project such learned features to the objective vibrancy scores of the community. We will not introduce the model learning part here, since it also involves the ranking models and explicit feature engineering works, which is not closely related to the topic of this paper. The readers may refer to [6] for detailed description about the model and its learning process. In addition, autoencoder (i.e., the base model of LF&ER) is also compared against IsoNN, whose results are reported in [4].
3 Graph Neural Networks for Giant Networks
In this section, we will introduce the graph neural networks proposed for the representation learning tasks on giant networks instead. Formally, we can represent the giant network instance to be studied in this section as $G=(\mathcal{V},\mathcal{E})$, where $\mathcal{V}$ and $\mathcal{E}$ denote the sets of nodes and links in the network, respectively. Different from the small graph data studied in Section 2, the nodes in the giant network $G$ are partially annotated with labels instead. Formally, we can represent the set of labeled nodes as ${\mathcal{V}}_{\mathrm{\text{l}}}=\{({v}_{\mathrm{\text{l}},1},{\mathbf{y}}_{\mathrm{\text{l}},1}),({v}_{\mathrm{\text{l}},2},{\mathbf{y}}_{\mathrm{\text{l}},2}),\mathrm{\cdots},({v}_{\mathrm{\text{l}},m},{\mathbf{y}}_{\mathrm{\text{l}},m})\}$, where ${v}_{\mathrm{\text{l}},i}\in \mathcal{V},\forall i\in \{1,2,\mathrm{\cdots},m\}$ and ${\mathbf{y}}_{\mathrm{\text{l}},i}$ denotes its label vector; whereas the remaining unlabeled nodes can be represented as ${\mathcal{V}}_{\mathrm{\text{u}}}=\mathcal{V}\setminus {\mathcal{V}}_{\mathrm{\text{l}}}$. In the case where all the involved network nodes are labeled, we will have ${\mathcal{V}}_{\mathrm{\text{l}}}=\mathcal{V}$ and ${\mathcal{V}}_{\mathrm{\text{u}}}=\mathrm{\varnothing}$, which will be a special learning scenario of the general partiallabeled learning setting as studied in this paper. The giant network oriented graph neural networks aim at learning a mapping, i.e., $f:\mathcal{V}\to {\mathbb{R}}^{{d}_{h}}$, to obtain the feature vector representations of the nodes in the network, which can be utilized to infer their labels. To be more specific, the models to be introduced in this section include GCN [3], GAT [5], DifNN [8], GNL [1], GraphSage [2] and seGEN [9].
3.1 GCN: Graph Convolutional Network
Graph convolutional network (GCN) initially proposed in [3] introduces a spectral graph convolution operator for the graph data representation learning, which also provides several different approximations of the operator to encode both the graph structure and features of the nodes. GCN works well for the partially labeled giant networks, and the learned node representations can be effectively applied for the node classification task.
3.1.1 Spectral Graph Convolution
Formally, given an input network $G=(\mathcal{V},\mathcal{E})$, its network structure information can be denoted as an adjacency matrix $\mathbf{A}={\{0,1\}}^{\mathcal{V}\times \mathcal{V}}$. The corresponding normalized graph Laplacian matrix can be denoted as $\mathbf{L}=\mathbf{I}{\mathbf{D}}^{\frac{1}{2}}{\mathrm{\mathbf{A}\mathbf{D}}}^{\frac{1}{2}}=\mathbf{U}\mathbf{\Lambda}{\mathbf{U}}^{\top}$, where $\mathbf{D}$ is a diagonal matrix with entries $\mathbf{D}(i,i)={\sum}_{j}\mathbf{A}(i,j)$ on its diagonal and $\mathbf{I}=diag(\mathrm{\U0001d7cf})\in {\{0,1\}}^{\mathcal{V}\times \mathcal{V}}$ is an identity matrix with ones on its diagonal. The eigendecomposition of matrix $\mathbf{L}$ can be denoted as $\mathbf{L}=\mathbf{U}\mathbf{\Lambda}{\mathbf{U}}^{\top}$, where $\mathbf{U}$ denotes the eigenvector matrix and diagonal matrix $\mathbf{\Lambda}$ has eigenvalues on its diagonal.
The spectral convolution operator defined on network $G$ in GCN is denoted as a multiplication of an input signal vector $\mathbf{x}\in {\mathbb{R}}^{{d}_{x}}$ with a filter ${\mathbf{g}}_{\bm{\theta}}=diag(\bm{\theta})$ (parameterized by variable vector $\bm{\theta}\in {\mathbb{R}}^{{d}_{\theta}})$ in the Fourier domain as follows:
$${\mathbf{g}}_{\bm{\theta}}*\mathbf{x}={\mathrm{\mathbf{U}\mathbf{g}}}_{\bm{\theta}}{\mathbf{U}}^{\top}\mathbf{x},$$  (19) 
where notation ${\mathbf{U}}^{\top}\mathbf{x}$ is defined as the graph Fourier transform of $\mathbf{x}$ and ${\mathbf{g}}_{\bm{\theta}}$ can be understood as a function on the eigenvalues, i.e., ${\mathbf{g}}_{\bm{\theta}}(\mathbf{\Lambda})$.
According to Equ. (19), the computation cost of the term on the righthandside will be $\mathcal{O}({\mathcal{V}}^{2})$. For the giant networks involving millions even billions of nodes, the computation of the graph convolution term will become infeasible, not to mention the eigendecomposition of the Laplacian matrix $\mathbf{L}$ defined before. Therefore, to resolve such a problem, [3] introduces an approximation of the filter function ${\mathbf{g}}_{\bm{\theta}}(\mathbf{\Lambda})$ by a truncated expansion in terms of the Chebyshev polynomial ${T}_{k}(\cdot )$ up to the ${K}_{th}$ order as follows:
$${\mathbf{g}}_{\bm{\theta}}*\mathbf{x}\approx \sum _{k=0}^{K}\bm{\theta}(k){T}_{k}(\stackrel{~}{\mathbf{L}})\mathbf{x},$$  (20) 
where $\stackrel{~}{\mathbf{L}}=\frac{2}{{\lambda}_{max}}\mathbf{L}\mathbf{I}$ and ${\lambda}_{max}$ is the largest eigenvalue in matrix $\mathbf{\Lambda}$. Vector $\bm{\theta}\in {\mathbb{R}}^{k}$ is a vector of Chebyshev coefficients. Noticing that the computational complexity of the term on the righthandside is $\mathcal{O}(\mathcal{E})$, i.e., linear in terms of the edge numbers, which will be lower than that of Equ. (19) introduced before.
3.1.2 Graph Convolution Approximation
As proposed in [3], Equ. (20) can be further simplified by setting $K=1$, ${\lambda}_{max}=2$, $\bm{\theta}(0)=\bm{\theta}(1)=\theta $, which will reduce the right handterm of Equ. (20) approximately as follows:
${\mathbf{g}}_{\bm{\theta}}*\mathbf{x}\approx \bm{\theta}(0)\mathbf{x}+\bm{\theta}(1)\stackrel{~}{\mathbf{L}}\mathbf{x}$  $=\theta (\mathbf{I}+{\mathbf{D}}^{\frac{1}{2}}{\mathrm{\mathbf{A}\mathbf{D}}}^{\frac{1}{2}})\mathbf{x}$  (21)  
$=\theta ({\stackrel{~}{\mathbf{D}}}^{\frac{1}{2}}\stackrel{~}{\mathbf{A}}{\stackrel{~}{\mathbf{D}}}^{\frac{1}{2}})\mathbf{x},$ 
where $\stackrel{~}{\mathbf{A}}=\mathbf{A}+\mathbf{I}$ and $\stackrel{~}{\mathbf{D}}$ is the diagonal matrix defined on $\stackrel{~}{\mathbf{A}}$ instead.
As illustrated in Figure 5, in the case when there exist $C$ input channels, i.e., the input will be a matrix $\mathbf{X}\in {\mathbb{R}}^{\mathcal{V}\times C}$, and $F$ different filters defined above, the learned graph convolution feature representations will be
$\mathbf{Z}$  $=({\stackrel{~}{\mathbf{D}}}^{\frac{1}{2}}\stackrel{~}{\mathbf{A}}{\stackrel{~}{\mathbf{D}}}^{\frac{1}{2}})\mathrm{\mathbf{X}\mathbf{W}},$  (22)  
$=\widehat{\mathbf{A}}\mathrm{\mathbf{X}\mathbf{W}}.$ 
where matrix $\widehat{\mathbf{A}}={\stackrel{~}{\mathbf{D}}}^{\frac{1}{2}}\stackrel{~}{\mathbf{A}}{\stackrel{~}{\mathbf{D}}}^{\frac{1}{2}}$ can be precomputed in advance. Matrix $\mathbf{W}\in {\mathbb{R}}^{C\times F}$ is the filter parameter matrix and $\mathbf{Z}\in {\mathbb{R}}^{\mathcal{V}\times F}$ will be the learned convolved representations of all the nodes. The computational time complexity of the operation will be $\mathcal{O}(\mathcal{E}FC)$.
3.1.3 Deep Graph Convolutional Network Learning
The GCN model can have a deeper architecture by involving multiple graph convolution operators defined in the previous sections. For instance, the GCN model with two layers can be represented with the following equations:
$$\{\begin{array}{cc}\hfill & \text{Layer 1:}\mathbf{Z}=\text{ReLU}\left(\widehat{\mathbf{A}}{\mathrm{\mathbf{X}\mathbf{W}}}_{1}\right);\hfill \\ \hfill & \text{Output Layer:}\widehat{\mathbf{Y}}=\text{softmax}\left(\widehat{\mathbf{A}}{\mathrm{\mathbf{Z}\mathbf{W}}}_{2}\right).\hfill \end{array}\Rightarrow \widehat{\mathbf{Y}}=\text{softmax}\left(\widehat{\mathbf{A}}\text{ReLU}\left(\widehat{\mathbf{A}}{\mathrm{\mathbf{X}\mathbf{W}}}_{1}\right){\mathbf{W}}_{2}\right).$$  (23) 
In the above equation, matrices ${\mathbf{W}}_{1}$ and ${\mathbf{W}}_{2}$ are the involved variables in the model. ReLU is used as the activation function for the hidden layer 1, and softmax function is used for the output result normalization. By comparing the inferred labels, i.e., $\widehat{\mathbf{Y}}$, of the labeled instances against their groundtruth labels, i.e., $\mathbf{Y}$, the model variables can be effectively learned by minimizing the following loss function:
$$\mathrm{\ell}(\mathbf{\Theta})=\sum _{{v}_{i}\in {\mathcal{V}}_{\mathrm{\text{L}}}}\sum _{j=1}^{{d}_{y}}\mathbf{Y}(i,j)\mathrm{log}\widehat{\mathbf{Y}}(i,j),$$  (24) 
where $\mathbf{\Theta}$ covers all the variables in the model.
For representation simplicity, node subscript is used as its corresponding index in the label matrix $\mathbf{Y}$. Notation ${d}_{y}$ denotes the number of labels in the studied problem, and ${d}_{y}=2$ for the traditional binary classification tasks. The readers can also refer to [3] for detailed information of the GCN model.
3.2 GAT: Graph Attention Network
Graph attention network (GAT) initially proposed in [5] can be viewed as an extension of GCN. In updating the nodes’ representations, instead of assigning the neighbors with fixed weights, i.e., values in matrix $\widehat{\mathbf{A}}$ in Equ. (22) and Equ. (23), GAT introduces an attention mechanism to compute the weights based on the representations of the target node as well as its neighbors.
3.2.1 Graph Attention Coefficient Computation
Formally, given an input network $G=(\mathcal{V},\mathcal{E})$ and the raw features of the nodes, the node features can be denoted as a matrix $\mathbf{X}\in {\mathbb{R}}^{\mathcal{V}\times {d}_{x}}$, where ${d}_{x}$ denotes the dimension of the node feature vectors. Furthermore, for node ${v}_{i}\in \mathcal{V}$, its feature vector can also be represented as ${\mathbf{x}}_{i}=\mathbf{X}(i,:)$ for simplicity. Without considerations about the network structures, via a mapping matrix $\mathbf{W}\in {\mathbb{R}}^{{d}_{x}\times {d}_{h}}$, the nodes can be projected to their representations in the hidden layer. Meanwhile, to further incorporate the network structure information into the model, based on the network structure, the neighbor set of node ${v}_{i}$ can be denoted as $\mathrm{\Gamma}({v}_{i})=\{{v}_{j}{v}_{j}\in \mathcal{V}\wedge ({v}_{i},{v}_{j})\in \mathcal{E}\}\cup \{{v}_{i}\}$, where $\{{v}_{i}\}$ is also added and treated as the selfneighbor. As illustrated in Figure 6, GAT proposes to compute the attention coefficient between nodes ${v}_{i}$ and ${v}_{j}$ (if ${v}_{j}\in \mathrm{\Gamma}({v}_{i}$)) as follows:
$${e}_{i,j}=\text{LeakyReLU}\left({\mathbf{a}}^{\top}\left({\mathrm{\mathbf{W}\mathbf{x}}}_{i}\bigsqcup {\mathrm{\mathbf{W}\mathbf{x}}}_{j}\right)\right),$$  (25) 
where $\mathbf{a}\in {\mathbb{R}}^{2{d}_{h}}$ is a variable vector for weighted sum of the entries in vector ${\mathrm{\mathbf{W}\mathbf{x}}}_{i}\bigsqcup {\mathrm{\mathbf{W}\mathbf{x}}}_{j}$ and $\bigsqcup $ denotes the concatenation operator of two vectors. LeakyReLU function is added here mainly for the model learning considerations.
To further normalize the coefficients among all the neighbors, GAT further adopts the softmax function based on the coefficients defined above. Formally, the final computed weight between nodes ${v}_{i}$ and ${v}_{j}$ can be denoted as
${\alpha}_{i,j}$  $=softmax({e}_{i,j})$  (26)  
$={\displaystyle \frac{\mathrm{exp}({e}_{i,j})}{{\sum}_{{v}_{k}\in \mathrm{\Gamma}({v}_{i})}\mathrm{exp}({e}_{i,k})}}$  
$={\displaystyle \frac{\mathrm{exp}\left(\text{LeakyReLU}\left({\mathbf{a}}^{\top}\left({\mathrm{\mathbf{W}\mathbf{x}}}_{i}\bigsqcup {\mathrm{\mathbf{W}\mathbf{x}}}_{j}\right)\right)\right)}{{\sum}_{{v}_{k}\in \mathrm{\Gamma}({v}_{i})}\mathrm{exp}\left(\text{LeakyReLU}\left({\mathbf{a}}^{\top}\left({\mathrm{\mathbf{W}\mathbf{x}}}_{i}\bigsqcup {\mathrm{\mathbf{W}\mathbf{x}}}_{k}\right)\right)\right)}}.$ 
3.2.2 Representation Update via Neighborhood Aggregation
GAT effectively update the nodes’ representations by aggregating the information from their neighbors (including the selfneighbor). Formally, the learned hidden representation of node ${v}_{i}$ can be represented as
$${\mathbf{h}}_{i}=\sigma \left(\sum _{{v}_{j}\in \mathrm{\Gamma}({v}_{i})}{\alpha}_{i,j}{\mathrm{\mathbf{W}\mathbf{x}}}_{j}\right).$$  (27) 
GAT can be in a deeper architecture by involving multiple attentive node representation updating. In the deep architecture, for the upper layers, the representation vector ${\mathbf{h}}_{i}$ will be treated as the inputs feature vector instead, and we will not overelaborate that here.
3.2.3 MultiHead Attention Aggregation
As introduced in [5], to stabilize the learning process of the model, GAT can be further extended to include the multihead attention as illustrated in Figure 6. Specifically, let $K$ denote the number of involved attention mechanisms. Based on each attention mechanism, the learned representations of node ${v}_{i}$ based on the above descriptions (i.e., Equ. (27)) can be denoted as ${\mathbf{h}}_{i}^{(1)}$, ${\mathbf{h}}_{i}^{(2)}$, $\mathrm{\cdots}$, ${\mathbf{h}}_{i}^{(K)}$, respectively. By further aggregating such learned representations together, the ultimate learned representation of node ${v}_{i}$ can be denoted as
$${\mathbf{h}}_{i}^{\prime}=\text{Aggregate}({\mathbf{h}}_{i}^{(1)},{\mathbf{h}}_{i}^{(2)},\mathrm{\cdots},{\mathbf{h}}_{i}^{(K)}).$$  (28) 
Several different aggregation function is tried in [5], including concatenation and average:

•
Concatenation:
$${\mathbf{h}}_{i}^{\prime}=\bigsqcup _{k=1}^{K}\sigma \left(\sum _{{v}_{j}\in \mathrm{\Gamma}({v}_{i})}{\alpha}_{i,j}^{(k)}{\mathbf{W}}^{(k)}{\mathbf{x}}_{j}\right).$$ (29) 
•
Average:
$${\mathbf{h}}_{i}^{\prime}=\sigma \left(\frac{1}{K}\sum _{k=1}^{K}\sum _{{v}_{j}\in \mathrm{\Gamma}({v}_{i})}{\alpha}_{i,j}^{(k)}{\mathbf{W}}^{(k)}{\mathbf{x}}_{j}\right).$$ (30)
The learning process of the GAT model is very similar to that of GCN introduced in Section 3.1.3, and we will not introduce that part again here. The readers can also refer to [5] for more detailed descriptions about the model as well as its experimental performance.
3.3 DifNN: Deep Diffusive Neural Network
Deep diffusive network (DifNN) model initially introduced in [8] aims at modeling the diverse connections in heterogeneous information networks, which contains multiple types of nodes and links. DifNN is based on a new type of neuron, namely gated diffusive unit (GDU), which can be extended to incorporate the inputs from various groups of neighbors.
3.3.1 Model Architecture
Given a heterogeneous input network $G=(\mathcal{V},\mathcal{E})$, the node set $\mathcal{V}$ in the network can be divided into multiple subsets depending on their node types. It is similar for the links in set $\mathcal{E}$. Here, for the representation simplicity, we will follow the news augmented heterogeneous social network example illustrated in [8] when introducing the model. As illustrated in Figure 8, there exist three different types of nodes (i.e., creator, news article and subject) and two different types of links (i.e., the creatorarticle link and articlesubject link) in the network. Formally, the node set can be categories into three subsets, i.e., $\mathcal{V}=\mathcal{U}\cup \mathcal{N}\cup \mathcal{S}$, and the link set can be categorized into two subsets, i.e., $\mathcal{E}={\mathcal{E}}_{u,n}\cup {\mathcal{E}}_{n,s}$.
For each node in the network, e.g., ${v}_{i}\in \mathcal{V}$, its extracted raw feature vector can be denoted as ${\mathbf{x}}_{i}$. As introduced at the beginning of Section 3, in many cases, the network is partially labeled. Formally, the label vector of node ${v}_{i}$ is represented as ${\mathbf{y}}_{i}$. For each nodes in the input network, DifNN utilizes one GDU (which will be introduced in the following subsection) to model its representations and the connections with other neighboring nodes. For instance, based on the input network in Figure 8, its corresponding DifNN model architecture can be represented in Figure 8. Via the gdu neuron unit, DifNN can effectively project the node inputs to their corresponding labels. The parameters involved in the DifNN model can be effectively trained based on the labeled nodes via the back propagation algorithm. In the following two subsections, we will introduce the detailed information about GDU as well as the DifNN model training.
3.3.2 Gated Diffusive Unit
To introduce the GDU neuron, we can take news article nodes as an example here. Formally, among all the inputs of the GDU model, ${\mathbf{x}}_{i}$ denotes the extracted feature vector for news articles, ${\mathbf{z}}_{i}$ represents the input from other GDUs corresponding to subjects, and ${\mathbf{t}}_{i}$ represents the input from other GDUs about creators. Considering that the GDU for each news article may be connected to multiple GDUs of subjects and creators, the $mean(\cdot )$ of the outputs from the GDUs corresponding to these subjects and creators will be computed as the inputs ${\mathbf{z}}_{i}$ and ${\mathbf{t}}_{i}$ instead respectively, which is also indicated by the GDU architecture illustrated in Figure 9. For the inputs from the subjects, GDU has a gate called the “forget gate”, which may update some content of ${\mathbf{z}}_{i}$ to forget. The forget gate is important, since in the real world, different news articles may focus on different aspects about the subjects and “forgetting” part of the input from the subjects is necessary in modeling. Formally, the “forget gate” together with the updated input can be represented as
$$\stackrel{~}{\mathbf{z}}i={\mathbf{f}}_{i}\otimes {\mathbf{z}}_{i},\text{where}{\mathbf{f}}_{i}=\sigma \left({\mathbf{W}}_{f}{[{\mathbf{x}}_{i}^{\top},{\mathbf{z}}_{i}^{\top},{\mathbf{t}}_{i}^{\top}]}^{\top}\right).$$  (31) 
Here, operator $\otimes $ denotes the entrywise product of vectors and ${\mathbf{W}}_{f}$ represents the variable of the forget gate in GDU.
Meanwhile, for the input from the creator nodes, a new nodetype “adjust gate” is introduced in GDU. Here, the term “adjust” models the necessary changes of information between different node categories (e.g., from creators to articles). Formally, the “adjust gate” as well as the updated input can be denoted as
${\stackrel{~}{\mathbf{t}}}_{i}={\mathbf{e}}_{i}\otimes {\mathbf{t}}_{i},\text{where}{\mathbf{e}}_{i}=\sigma \left({\mathbf{W}}_{e}{[{\mathbf{x}}_{i}^{\top},{\mathbf{z}}_{i}^{\top},{\mathbf{t}}_{i}^{\top}]}^{\top}\right),$  (32) 
where ${\mathbf{W}}_{e}$ denotes the variable matrix in the adjust gate.
GDU allows different combinations of these input/state vectors, which are controlled by the selection gates ${\mathbf{g}}_{i}$ and ${\mathbf{r}}_{i}$ respectively. Formally, the final output of GDU will be
${\mathbf{h}}_{i}$  $={\mathbf{g}}_{i}\otimes {\mathbf{r}}_{i}\otimes \mathrm{tanh}\left({\mathbf{W}}_{u}{[{\mathbf{x}}_{i}^{\top},{\stackrel{~}{\mathbf{z}}}_{i}^{\top},{\stackrel{~}{\mathbf{t}}}_{i}^{\top}]}^{\top}\right)$  (33)  
$+(\mathrm{\U0001d7cf}{\mathbf{g}}_{i})\otimes {\mathbf{r}}_{i}\otimes \mathrm{tanh}\left({\mathbf{W}}_{u}{[{\mathbf{x}}_{i}^{\top},{\mathbf{z}}_{i}^{\top},{\stackrel{~}{\mathbf{t}}}_{i}^{\top}]}^{\top}\right)$  
$+{\mathbf{g}}_{i}\otimes (\mathrm{\U0001d7cf}{\mathbf{r}}_{i})\otimes \mathrm{tanh}\left({\mathbf{W}}_{u}{[{\mathbf{x}}_{i}^{\top},{\stackrel{~}{\mathbf{z}}}_{i}^{\top},{\mathbf{t}}_{i}^{\top}]}^{\top}\right)$  
$+(\mathrm{\U0001d7cf}{\mathbf{g}}_{i})\otimes (\mathrm{\U0001d7cf}{\mathbf{r}}_{i})\otimes \mathrm{tanh}\left({\mathbf{W}}_{u}{[{\mathbf{x}}_{i}^{\top},{\mathbf{z}}_{i}^{\top},{\mathbf{t}}_{i}^{\top}]}^{\top}\right),$ 
where ${\mathbf{g}}_{i}=\sigma ({\mathbf{W}}_{g}{[{\mathbf{x}}_{i}^{\top},{\mathbf{z}}_{i}^{\top},{\mathbf{t}}_{i}^{\top}]}^{\top})$, and ${\mathbf{r}}_{i}=\sigma ({\mathbf{W}}_{r}{[{\mathbf{x}}_{i}^{\top},{\mathbf{z}}_{i}^{\top},{\mathbf{t}}_{i}^{\top}]}^{\top})$, and term $\mathrm{\U0001d7cf}$ denotes a vector filled with value $1$. Operators $\oplus $ and $\ominus $ denote the entrywise addition and minus operation of vectors. Matrices ${\mathbf{W}}_{u}$, ${\mathbf{W}}_{g}$, ${\mathbf{W}}_{r}$ represent the variables involved in the components. Vector ${\mathbf{h}}_{i}$ will be the output of the GDU model.
The introduced GDU model also works for both the news subjects and creator nodes in the network. When applying the GDU to model the states of the subject/creator nodes with two input only, the remaining input port can be assigned with a default value (usually vector $\mathrm{\U0001d7ce}$). In the following section, we will introduce how to learn the parameters involved in the DifNN model for concurrent inference of multiple nodes.
3.3.3 DifNN Model Learning
In the DifNN model as shown in Figure 8, based on the output state vectors of news articles, news creators and news subjects, the framework will project the feature vectors to their labels. Formally, given the state vectors ${\mathbf{h}}_{n,i}$ of news article ${n}_{i}$, ${\mathbf{h}}_{u,j}$ of news creator ${u}_{j}$, and ${\mathbf{h}}_{s,l}$ of news subject ${s}_{l}$, their inferred labels can be denoted as vectors ${\mathbf{y}}_{n,i},{\mathbf{y}}_{u,j},{\mathbf{y}}_{s,l}\in {\mathcal{R}}^{\mathcal{Y}}$ respectively, which can be represented as
$$\{\begin{array}{cc}{\mathbf{y}}_{n,i}\hfill & =softmax\left({\mathbf{W}}_{n}{\mathbf{h}}_{n,i}\right),\hfill \\ {\mathbf{y}}_{u,j}\hfill & =softmax\left({\mathbf{W}}_{u}{\mathbf{h}}_{u,j}\right),\hfill \\ {\mathbf{y}}_{s,l}\hfill & =softmax\left({\mathbf{W}}_{s}{\mathbf{h}}_{s,l}\right).\hfill \end{array}$$  (34) 
where ${\mathbf{W}}_{u}$, ${\mathbf{W}}_{n}$ and ${\mathbf{W}}_{s}$ define the weight variables projecting state vectors to the output vectors.
Meanwhile, based on the news articles in the training set ${\mathcal{T}}_{n}\subset \mathcal{N}$ with the groundtruth label vectors ${\{{\widehat{\mathbf{y}}}_{n,i}\}}_{{n}_{i}\in {\mathcal{T}}_{n}}$, the loss function of the framework for news article label learning are defined as the crossentropy between the prediction results and the ground truth:
$\mathrm{\ell}({\mathcal{T}}_{n};\mathbf{\Theta})$  $={\displaystyle \sum _{{n}_{i}\in {\mathcal{T}}_{n}}}{\displaystyle \sum _{k=1}^{\mathcal{Y}}}{\widehat{\mathbf{y}}}_{n,i}(k)\mathrm{log}{\mathbf{y}}_{n,i}(k).$  (35) 
Similarly, the loss terms introduced by news creators and subjects based on training sets ${\mathcal{T}}_{u}\subset \mathcal{U}$ and ${\mathcal{T}}_{s}\subset \mathcal{S}$ can be denoted as
$\mathrm{\ell}({\mathcal{T}}_{u};\mathbf{\Theta})$  $={\displaystyle \sum _{{u}_{j}\in {\mathcal{T}}_{u}}}{\displaystyle \sum _{k=1}^{\mathcal{Y}}}{\widehat{\mathbf{y}}}_{u,j}(k)\mathrm{log}{\mathbf{y}}_{u,j}(k),$  (36) 
$\mathrm{\ell}({\mathcal{T}}_{s};\mathbf{\Theta})$  $={\displaystyle \sum _{{s}_{l}\in {\mathcal{T}}_{s}}}{\displaystyle \sum _{k=1}^{\mathcal{Y}}}{\widehat{\mathbf{y}}}_{s,l}(k)\mathrm{log}{\mathbf{y}}_{s,l}(k),$  (37) 
where ${\mathbf{y}}_{u,j}$ and ${\widehat{\mathbf{y}}}_{u,j}$ (and ${\mathbf{y}}_{s,l}$ and ${\widehat{\mathbf{y}}}_{s,l}$) denote the prediction result vector and groundtruth vector of creator (and subject) respectively.
Formally, the main objective function of the DifNN model can be represented as follows:
$$\underset{\mathbf{\Theta}}{\mathrm{min}}\mathrm{\ell}({\mathcal{T}}_{n};\mathbf{\Theta})+\mathrm{\ell}({\mathcal{T}}_{u};\mathbf{\Theta})+\mathrm{\ell}({\mathcal{T}}_{s};\mathbf{\Theta})+\alpha \cdot reg(\mathbf{\Theta}),$$  (38) 
where $\mathbf{\Theta}$ denotes all the involved variables to be learned, term $reg(\mathbf{\Theta})$ represents the regularization term (i.e., the sum of ${L}_{2}$ norm on the variable vectors and matrices), and $\alpha $ denotes the regularization term weight. By resolving the optimization functions, variables in the model can be effectively learned with the backpropagation algorithm. For the news articles, creators and subjects in the testing set, their predicted labels will be outputted as the final result.
3.4 GNL: Graph Neural Lasso
Graph neural lasso (GNL) initially proposed in [1] is a graph neural regression model and it can effectively incorporate the historical timeseries data of multiple instances for addressing the dynamic network regression problem. GNL extends the GDU neuron [8] (also introduced in Section 3.3.2) for incorporating both the network internal relationships and the network dynamic relationships between sequential network snapshots.
3.4.1 Dynamic Gated Diffusive Unit
GNL also adopts GDU as the basic neuron unit and extends it to the dynamic network regression problem settings, which can model both the network snapshot internal connections and the temporal dependency relationships between sequential network snapshots for the nodes.
Formally, given the time series data about a set of connected entities, such data can be represented as a dynamic network set $\mathcal{G}=\{{G}^{(1)},{G}^{(2)},\mathrm{\cdots},{G}^{(t)}\}$, where $t$ denotes the maximum timestamp. For each network ${G}^{(\tau )}\in \mathcal{G}$, it can be denoted as ${G}^{(\tau )}=({\mathcal{V}}^{(\tau )},{\mathcal{E}}^{(\tau )})$ involving the node set ${\mathcal{V}}^{(\tau )}$ and link set ${\mathcal{E}}^{(\tau )}$, respectively. Given a node ${v}_{i}$ in network ${G}^{(\tau )}$, its inneighbors and outneighbors in the network can be denoted as sets ${\mathrm{\Gamma}}_{in}({v}_{i})=\{{v}_{j}{v}_{j}\in {\mathcal{V}}^{(\tau )}\wedge ({v}_{j},{v}_{i})\in {\mathcal{E}}^{(\tau )}\}$ and ${\mathrm{\Gamma}}_{out}({v}_{i})=\{{v}_{j}{v}_{j}\in {\mathcal{V}}^{(\tau )}\wedge ({v}_{i},{v}_{j})\in {\mathcal{E}}^{(\tau )}\}$. Here, the link direction denotes the influences among the nodes. If the influences in the studied networks are bidirectional, the in/out neighbor sets will be identical, i.e., ${\mathrm{\Gamma}}_{in}({v}_{i})={\mathrm{\Gamma}}_{out}({v}_{i})$.
For node ${v}_{i}$ in network ${G}^{(\tau )}$ of the ${\tau}_{th}$ timestamp, the input attribute values of ${v}_{i}$ can be denoted as an input feature vector ${\mathbf{x}}_{i}^{(\tau )}\in {\mathbb{R}}^{{d}_{x}}$. GDU maintains a hidden state vector for each node, and the vector of node ${v}_{i}$ at timestamp $\tau $ can be denoted as ${\mathbf{h}}_{i}^{(\tau )}\in {\mathbb{R}}^{{d}_{h}}$. As illustrated in Figure 11, besides the feature vector ${\mathbf{x}}_{i}^{(\tau )}$ and hidden state vector ${\mathbf{h}}_{i}^{(\tau )}$ inputs, the GDU neuron of ${v}_{i}$ will also accept the inputs from ${v}_{i}$’s input neighbor nodes, i.e., ${\{{\mathbf{h}}_{j}^{(\tau )}\}}_{{v}_{j}\in {\mathrm{\Gamma}}_{in}({v}_{i})}$, which will be integrated via certain aggregation operators:
$${\mathbf{z}}_{i}^{(\tau )}=\text{Aggregate}\left({\{{\mathbf{h}}_{j}^{(\tau )}\}}_{{v}_{j}\in {\mathrm{\Gamma}}_{in}({v}_{i})}\right).$$  (39) 
The $\text{Aggregate}(\cdot )$ operator used in GNL will be introduced in detail in the next subsection.
A common problem with existing graph neural network models is oversmoothing, which will reduce all the nodes in the network to similar hidden representations. Such a problem will be much more serious when the model involves a deep architecture with multiple layers. To resolve such a problem, besides the attention mechanism to be introduced later, GDU introduces several gates for the neural state adjustment as introduced in Section 3.3.2. Formally, based on the input vectors ${\mathbf{x}}_{i}^{(\tau )}$, ${\mathbf{z}}_{i}^{(\tau )}$ and ${\mathbf{h}}_{i}^{(\tau )}$, the representation of node ${v}_{i}$ in the next timestamp $\tau +1$ can be represented as
$${\mathbf{h}}_{i}^{(\tau +1)}=\mathrm{\text{GDU}}({\mathbf{x}}_{i}^{(\tau )},{\mathbf{z}}_{i}^{(\tau )},{\mathbf{h}}_{i}^{(\tau )};\mathbf{\Theta}).$$  (40) 
The concrete representation of the $GDU(\cdot )$ function is similar to Equ. (31)(33) introduced before, and $\mathbf{\Theta}$ denotes the variables involved in the GDU neuron.
3.4.2 Attentive Neighborhood Influence Aggregation
In this part, we will introduce the $\text{Aggregate}(\cdot )$ operator used in Equ. (39) for node neighborhood influence integration proposed in [1]. The GNL model defines such an operator based on an attention mechanism. Formally, given the node ${v}_{i}$ and its inneighbor set ${\mathrm{\Gamma}}_{in}({v}_{i})$, for any node ${v}_{j}\in {\mathrm{\Gamma}}_{in}({v}_{i})$, GNL quantifies the influence coefficient of ${v}_{j}$ on ${v}_{i}$ based on their hidden state vectors ${\mathbf{h}}_{j}^{(\tau )}$ and ${\mathbf{h}}_{i}^{(\tau )}$ as follows:
$${\alpha}_{j,i}^{(\tau )}=\text{AttInf}({e}_{j,i}^{(\tau )})=\frac{\mathrm{exp}({e}_{j,i}^{(\tau )})}{{\sum}_{{v}_{k}\in {\mathrm{\Gamma}}_{out}({v}_{j})}\mathrm{exp}({e}_{j,k}^{(\tau )})},\text{where}{e}_{j,i}^{(\tau )}=\text{Linear}({\mathbf{W}}_{a}{\mathbf{h}}_{j}^{(\tau )}\bigsqcup {\mathbf{W}}_{a}{\mathbf{h}}_{i}^{(\tau )};{\mathbf{w}}_{a}).$$  (41) 
In the above equation, operator $\text{Linear}(\cdot ;{\mathbf{w}}_{a})$ denotes a linear sum of the input vector parameterized by weight vector ${\mathbf{w}}_{a}$. According to [5], out of the model learning concerns, the above influence coefficient term can be slightly changed by adding the LeakyReLU function into its definition. Formally, the final influence coefficient used in GNL is represented as follows:
$${\alpha}_{j,i}^{(\tau )}=\text{AttInf}({\mathbf{h}}_{j}^{(\tau )},{\mathbf{h}}_{i}^{(\tau )};{\mathbf{W}}_{a},{\mathbf{w}}_{a})=\frac{\mathrm{exp}(\text{LeakyReLU}(\text{Linear}({\mathbf{W}}_{a}{\mathbf{h}}_{j}^{(\tau )}\bigsqcup {\mathbf{W}}_{a}{\mathbf{h}}_{i}^{(\tau )};{\mathbf{w}}_{a})))}{{\sum}_{{v}_{k}\in {\mathrm{\Gamma}}_{out}({v}_{j})}\mathrm{exp}(\text{LeakyReLU}(\text{Linear}({\mathbf{W}}_{a}{\mathbf{h}}_{j}^{(\tau )}\bigsqcup {\mathbf{W}}_{a}{\mathbf{h}}_{k}^{(\tau )};{\mathbf{w}}_{a})))}.$$  (42) 
Considering that in our problem setting the links in the dynamic networks are unknown and to be inferred, the above influence coefficient term ${\alpha}_{j,i}$ actually quantifies the existence probability of the influence link $({v}_{j},{v}_{i})$, i.e., the inference results of the links. Furthermore, based on the influence coefficient, the concrete representation of Equ. (39) will be represented as follows:
$${\mathbf{z}}_{i}^{(\tau )}=\text{Aggregate}\left({\{{\mathbf{h}}_{j}^{(\tau )}\}}_{{v}_{j}\in {\mathrm{\Gamma}}_{in}({v}_{i})}\right)=\sigma \left(\sum _{{v}_{j}\in {\mathrm{\Gamma}}_{in}({v}_{i})}{\alpha}_{j,i}^{(\tau )}{\mathbf{W}}_{a}{\mathbf{h}}_{j}^{(\tau )}\right).$$  (43) 
3.4.3 Graph Neural Lasso Model Learning
In this part, we will introduce the architecture of the GNL model together with its learning settings. Formally, given the input dynamic network set $\mathcal{G}=\{{G}^{(1)},{G}^{(2)},\mathrm{\cdots},{G}^{(t)}\}$, GNL shifts a window of size $\tau $ along the networks in the order of their timestamps. The network snapshots covered by the window, e.g., ${G}^{(k)}$, ${G}^{(k+1)}$, $\mathrm{\cdots}$, ${G}^{(k+\tau 1)}$, will be taken as the model input of GNL to infer the network ${G}^{(k+\tau )}$ in following timestamp (where $k,k+1,\mathrm{\cdots},k+\tau \in \{1,2,\mathrm{\cdots},t\}$). According to the above descriptions, the inferred attribute values of all the nodes and their potential influence links in network ${G}^{(k+\tau )}$ can be represented as
${\widehat{\mathbf{x}}}_{i}^{(\tau +1)}=\text{FC}({\mathbf{h}}_{i}^{(\tau +1)};\mathbf{\Theta}),\forall {v}_{i}\in {\mathcal{V}}^{(\tau +1)};$  (44)  
${\alpha}_{j,i}^{(\tau )}=\text{AttInf}({\mathbf{h}}_{j}^{(\tau +1)},{\mathbf{h}}_{i}^{(\tau +1)};\mathbf{\Theta}),\forall {v}_{i},{v}_{j}\in {\mathcal{V}}^{(\tau +1)},$ 
In the above equation, term ${\mathbf{h}}_{i}^{(\tau +1)}$ is defined in Equ. (40) and $\mathbf{\Theta}$ covers all the involved variables used in the GNL model. By comparing the inferred node attribute values, e.g., ${\widehat{\mathbf{x}}}_{i}^{(\tau +1)}$, against the ground truth values, e.g., ${\mathbf{x}}_{i}^{(\tau +1)}$, the quality of the inference results by GNL can be effectively measured with some loss functions, e.g., mean square error:
$$\mathrm{\ell}(\mathbf{\Theta})=\frac{1}{{\mathcal{V}}^{(\tau +1)}}\sum _{{v}_{i}\in {\mathcal{V}}^{(\tau +1)}}\mathrm{\ell}({v}_{i};\mathbf{\Theta})=\frac{1}{{\mathcal{V}}^{(\tau +1)}}\sum _{{v}_{i}\in {\mathcal{V}}^{(\tau +1)}}{\parallel {\widehat{\mathbf{x}}}_{i}^{(\tau +1)}{\mathbf{x}}_{i}^{(\tau +1)}\parallel}_{2}^{2}.$$  (45) 
In addition, similar to Lasso, to avoid overfitting, GNL proposes to add a regularization term in the objective function to maintain the sparsity of the variables. Formally, the final objective function of the GNL model can be represented as follows:
$$\underset{\mathbf{\Theta}}{\mathrm{min}}\mathrm{\ell}(\mathbf{\Theta})+\beta \cdot {\parallel \mathbf{\Theta}\parallel}_{1},$$  (46) 
where term ${\parallel \mathbf{\Theta}\parallel}_{1}$ denotes the sum of the ${L}_{1}$norm regularizer of all the involved variables in the model and $\beta $ is the hyperparameter weight of the regularization term. More information about the model learning as well as how to handle the nonderivable ${L}_{1}$norm regularization term is available in [1].
3.5 GraphSage: Graph Sample and Aggregate
GraphSage introduced in [2] is an inductive model which focuses on leveraging node feature information for effective network node embedding. Instead of training individual embedding for each node, GraphSage learns a function that generate embeddings by sampling and aggregating features from nearby neighbors.
3.5.1 Framework Descriptions
{algorithm}[t] \[email protected]@algorithmic[1] \REQUIRENetwork $G=(\mathcal{V},\mathcal{E})$; Input Node Feature: ${\{{\mathbf{x}}_{i}\}}_{{v}_{i}\in \mathcal{V}}$; Model Depth: $K$. \ENSURELearned Representations ${\{{\mathbf{z}}_{i}\}}_{{v}_{i}\in \mathcal{V}}$. \STATEInitialize ${\mathbf{h}}_{i}^{(0)}={\mathbf{x}}_{i},\forall {v}_{i}\in \mathcal{V}$ \FOR$k\in \{1,2,\mathrm{\cdots},K\}$ \FOR${v}_{i}\in \mathcal{V}$ \STATE$\mathcal{N}({v}_{i})=\text{Sample}\left(\mathrm{\Gamma}({v}_{i})\right)$ \STATE${\mathbf{h}}_{\mathrm{\Gamma}({v}_{i})}^{(k)}=\text{Aggregate}\left(\{{\mathbf{h}}_{j}^{(k1)}{v}_{j}\in \mathcal{N}({v}_{i})\}\right)$ \STATE${\mathbf{h}}_{i}^{(k)}=\sigma \left({\mathbf{W}}^{(k)}\left({\mathbf{h}}_{\mathrm{\Gamma}({v}_{i})}^{(k)}\bigsqcup {\mathbf{h}}_{i}^{(k1)}\right)\right)$ \ENDFOR\STATE${\mathbf{h}}_{i}^{(k)}=\text{Normalize}\left({\mathbf{h}}_{i}^{(k)}\right)$ \ENDFOR\STATE${\mathbf{z}}_{i}={\mathbf{h}}_{i}^{(K)},\forall {v}_{i}\in \mathcal{V}$
As illustrated in Algorithm 3.5.1, the GraphSage algorithm accepts the network structure $G=(\mathcal{V},\mathcal{E})$, input raw feature vectors ${\{{\mathbf{x}}_{i}\}}_{{v}_{i}\in \mathcal{V}}$ and model depth $K$ as the inputs, which will return the learned representations of nodes in the network as the output. Several functions will be called in the algorithm, including Sample($\cdot $), Aggregate($\cdot $) and Normalize($\cdot $).
The forward computational process of GraphSage works iteratively layers by layers and nodes by nodes. Formally, the representations of nodes at each layer can be represented as vectors ${\{{\mathbf{h}}_{i}^{(k)}\}}_{{v}_{i}\in \mathcal{V},k\in \{1,2,\mathrm{\cdots},K\}}$, where ${\mathbf{h}}_{i}^{(k)}$ denotes the representation of ${v}_{i}$ at the ${k}_{th}$ layer. For all the nodes, their representations at layer $0$ are initialized with their raw features, i.e., ${\mathbf{h}}_{i}^{(0)}={\mathbf{x}}_{i},\forall {v}_{i}\in \mathcal{V}$. Given a node ${v}_{i}$, its neighbors can be represented as set $\mathrm{\Gamma}({v}_{i})=\{{v}_{j}{v}_{j}\in \mathcal{V}\wedge ({v}_{i},{v}_{j})\in \mathcal{E}\}$. GraphSage calls an aggregation function to effectively aggregate the neighbors’ representations. However, instead of directly working on the complete neighbor set $\mathrm{\Gamma}({v}_{i})$, GraphSage proposes to sample a subset of the neighbors prior to information aggregation, which is denoted as
$$\mathcal{N}({v}_{i})=\text{Sample}\left(\mathrm{\Gamma}({v}_{i})\right)$$  (47) 
where $\mathcal{N}({v}_{i})\subset \mathrm{\Gamma}({v}_{i})$ has a fixed size for all the nodes in the network and the sampling process follows a uniform distribution.
At the ${k}_{th}$ layer, via aggregating all the representations of the nodes in $\mathcal{N}({v}_{i})$ from the ${(k1)}_{th}$ layer, GraphSage defines the a pseudorepresentation for ${v}_{i}$ as follows:
$${\mathbf{h}}_{\mathrm{\Gamma}({v}_{i})}^{(k)}=\text{Aggregate}\left(\{{\mathbf{h}}_{j}^{(k1)}{v}_{j}\in \mathcal{N}({v}_{i})\}\right).$$  (48) 
The concrete representations of the $\text{Aggregate}(\cdot )$ function will be introduced later.
By concatenating the computed pseudorepresentation ${\mathbf{h}}_{\mathrm{\Gamma}({v}_{i})}^{(k)}$ and its representation at the ${(k1)}_{th}$ layer, GraphSage defines the node representation updating equation as follows:
${\mathbf{h}}_{i}^{(k)}$  $=\sigma \left({\mathbf{W}}^{(k)}\left({\mathbf{h}}_{\mathrm{\Gamma}({v}_{i})}^{(k)}\bigsqcup {\mathbf{h}}_{i}^{(k1)}\right)\right),$  (49)  
${\mathbf{h}}_{i}^{(k)}$  $=\text{Normalize}\left({\mathbf{h}}_{i}^{(k)}\right)={\displaystyle \frac{{\mathbf{h}}_{i}^{(k)}}{{\parallel {\mathbf{h}}_{i}^{(k)}\parallel}_{2}}},$  (50) 
where operator $\bigsqcup $ denotes the concatenation of two vectors and GraphSage normalizes the vector ${\mathbf{h}}_{i}^{(k)}$ by dividing it with its modulus.
3.5.2 Aggregator Function
The “orderless” property of the the neighbor nodes poses more challenges on the aggregation operator to be used in GraphSage. Besides the aggregate function used above, several other aggregators can also be used for the information integration, which are provided as follows:

•
Mean Aggregator: The mean aggregator is very similar to the propagation rules used in GCN introduced in Section 3.1, which replaces Equ. (48) and Equ. (49) with the following equation instead:
$${\mathbf{h}}_{i}^{(k)}=\sigma \left({\mathbf{W}}^{(k)}\text{Mean}\left(\left\{{\mathbf{h}}_{i}^{(k1)}\right\}\cup \{{\mathbf{h}}_{j}^{(k1)}{v}_{j}\in \mathcal{N}({v}_{i})\}\right)\right).$$ (51) 
•
LSTM Aggregator: Much more complex aggregators, e.g., LSTM, can also be adopted for the nodes representation aggregation and updating in GraphSage. By randomly permuting the neighbors in set $\mathrm{\Gamma}({v}_{i})$, LSTM can be applied on the unordered set, where the output of the last unit can be obtained as the output. In other words, Equ. (48) can be updated as follows:
$${\mathbf{h}}_{\mathrm{\Gamma}({v}_{i})}^{(k)}=\text{LSTM}\left(\{{\mathbf{h}}_{j}^{(k1)}{v}_{j}\in \mathcal{N}({v}_{i})\}\right)$$ (52) 
•
Pooling Aggregator: The pooling aggregator works with a max pooling layer to integrate the information from the neighbors, and Equ. (48) can be replaced as follows:
$${\mathbf{h}}_{\mathrm{\Gamma}({v}_{i})}^{(k)}=\text{max}\left(\{\sigma \left({\mathbf{W}}^{(k)}{\mathbf{h}}_{j}^{(k1)}+{\mathbf{b}}^{(k)}\right){v}_{j}\in \mathcal{N}({v}_{i})\}\right)$$ (53)
3.6 seGEN: Sample and Ensemble Genetic Evolutionary Network
SampleEnsemble Genetic Evolutionary Network (seGEN) first proposed in [9] can serve as an alternative approach to GNN models on giant networks. Instead of building one single graph neural network, based on a set of sampled sub graphs, seGEN adopts a geneticevolutionary learning strategy to build a group of unit models generations by generations. The unit models incorporated in seGEN can be either traditional graph representation learning models or the recent graph neural network models with a much “narrower” and “shallower” architecture. The learning results of each instance at the final generation will be effectively combined from each unit model via diffusive propagation and ensemble learning strategies.
3.6.1 seGEN Architecture Description
In framework seGEN, instead of handling the input largescale graph data directly, it proposes to sample a subset (of set size $s$) of smallsized subgraphs (of a prespecified subgraph size $k$) instead and learn the representation feature vectors of nodes based on the subgraphs. To ensure the learned representations can effectively represent the characteristics of nodes, seGEN need to ensure the sampled subgraphs share similar properties as the original largesized input graph. As shown in Figure 12, five different types of graph sampling strategies (indicated in five different colors) are adopted, and each strategy will lead to a group of smallsized subgraphs, which can capture both the local and global structures of the original graph. According to [9], the sampled subgraphs based on different sampling strategies, e.g., BFS, DFS, BNS, BES and HS, can be represented as ${\mathcal{G}}^{\mathrm{\text{bfs}}}$, ${\mathcal{G}}^{\mathrm{\text{dfs}}}$, ${\mathcal{G}}^{\mathrm{\text{hs}}}$, ${\mathcal{G}}^{\mathrm{\text{ns}}}$ or ${\mathcal{G}}^{\mathrm{\text{es}}}$, respectively.
Instead of fitting each unit model with all the subgraphs in the pool $\mathcal{G}$, in the unit model, a set of subgraph training batches ${\mathcal{T}}_{1},{\mathcal{T}}_{2},\mathrm{\cdots},{\mathcal{T}}_{m}$ will be sampled for each unit model respectively in the learning process, where ${\mathcal{T}}_{i}=b,\forall i\in \{1,2,\mathrm{\cdots},m\}$ are of the predefined batch size $b$. These batches may share common subgraphs as well, i.e., ${\mathcal{T}}_{i}\cap {\mathcal{T}}_{j}$ may not necessary be $\mathrm{\varnothing}$. In the model, the unit models learning process for each generation involves two steps: (1) generating the batches ${\mathcal{T}}_{i}$ from the pool set $\mathcal{G}$ for each unit model ${M}_{i}^{1}\in {\mathcal{M}}^{1}$, and (2) learning the variables of the unit model ${M}_{i}^{1}$ based on subgraphs in batch ${\mathcal{T}}_{i}$. Considering that the unit models have a much smaller number of hidden layers, the learning time cost of each unit model will be much less than the deeper models on largersized graphs.
In the following parts, we will first introduce the learning process of the model, which accepts each subgraph pool as the input and learns the representation feature vectors of nodes as the output. We can use $\mathcal{G}$ to represent the sampled pool set, which can be ${\mathcal{G}}^{\mathrm{\text{bfs}}}$, ${\mathcal{G}}^{\mathrm{\text{dfs}}}$, ${\mathcal{G}}^{\mathrm{\text{hs}}}$, ${\mathcal{G}}^{\mathrm{\text{ns}}}$ or ${\mathcal{G}}^{\mathrm{\text{es}}}$ respectively. The learned results can be further fused together with a hierarchical ensemble process to be introduced at the last subsection.
3.6.2 Genetic Evolutionary Learning of seGEN
The training process of seGEN involves several key steps, including unit model evaluation and selection, crossover and mutation, which will be introduced as follows:

•
Evaluation and Selection: The unit models in the generation set ${\mathcal{M}}^{1}$ can have different performance, due to (1) different initial variable values, and (2) different training batches in the learning process. In framework seGEN, instead of applying “deep” models with multiple hidden layers, it proposes to “deepen” the models in another way: “evolve the unit model into ‘deeper’ generations”. For each unit model ${M}_{k}^{1}\in {\mathcal{M}}^{1}$, based on the subgraphs in a validation set $\mathcal{V}$, seGEN measures the introduced loss of the model as
$\mathrm{\ell}({M}_{k}^{1};\mathcal{V})={\displaystyle \sum _{g\in \mathcal{V}}}{\displaystyle \sum _{{v}_{i},{v}_{j}\in {\mathcal{V}}_{g},{v}_{i}\ne {v}_{j}}}{s}_{i,j}{\parallel {\mathbf{z}}_{k,i}^{1}{\mathbf{z}}_{k,j}^{1}\parallel}_{2}^{2},$ where ${\mathbf{z}}_{k,i}^{1}$ and ${\mathbf{z}}_{k,j}^{1}$ denote the learned latent representation feature vectors of nodes ${v}_{i},{v}_{j}$ in the sampled subgraph $g$. Term ${s}_{i,j}$ has value $+1$ if ${v}_{i}$ and ${v}_{j}$ are connected in subgraph $g$, otherwise ${s}_{i,j}$ will be assigned with value $0$ instead.
The probability for each unit model to be picked as the parent model for the crossover and mutation operations can be represented as
$p({M}_{k}^{1})={\displaystyle \frac{{\mathrm{exp}}^{\mathrm{\ell}({M}_{k}^{1};\mathcal{V})}}{{\sum}_{{M}_{i}^{1}\in {\mathcal{M}}^{1}}{\mathrm{exp}}^{\mathrm{\ell}({M}_{i}^{1};\mathcal{V})}}}.$ In the realworld applications, a normalization of the loss terms among these unit models is necessary. For the unit model introducing a smaller loss, it will have a larger chance to be selected as the parent unit model. Considering that the crossover is usually done based a pair of parent models, the pairs of parent models selected from set ${\mathcal{M}}^{1}$ can be denoted as ${\mathcal{P}}^{1}={\{{({M}_{i}^{1},{M}_{j}^{1})}_{k}\}}_{k\in \{1,2,\mathrm{\cdots},m\}}$, based on which seGEN will be able to generate the next generation of unit models, i.e., ${\mathcal{M}}^{2}$.

•
Crossover: For the ${k}_{th}$ pair of parent unit model ${({M}_{i}^{1},{M}_{j}^{1})}_{k}\in {\mathcal{P}}^{1}$, their genes can be denoted as their variables ${\theta}_{i}^{1},{\theta}_{j}^{1}$ respectively (since the differences among the unit models mainly lie in their variables), which are actually their chromosomes for crossover and mutation.
seGEN proposes to adopt the uniform crossover to get the chromosomes (i.e., the variables) of their child model. Considering that the parent models ${M}_{i}^{1}$ and ${M}_{j}^{1}$ can actually achieve different performance on the validation set $\mathcal{V}$, in the crossover, the unit model achieving better performance should have a larger chance to pass its chromosomes to the child model.
Formally, the chromosome inheritance probability for parent model ${M}_{i}^{1}$ can be represented as
$p({M}_{i}^{1})={\displaystyle \frac{{\mathrm{exp}}^{\mathrm{\ell}({M}_{i}^{1};\mathcal{V})}}{{\mathrm{exp}}^{\mathrm{\ell}({M}_{i}^{1};\mathcal{V})}+{\mathrm{exp}}^{\mathrm{\ell}({M}_{j}^{1};\mathcal{V})}}}$ Meanwhile, the chromosome inheritance probability for model ${M}_{j}^{1}$ can be denoted as $p({M}_{j}^{1})=1p({M}_{i}^{1})$.
In the uniform crossover method, based on parent model pair ${({M}_{i}^{1},{M}_{j}^{1})}_{k}\in {\mathcal{P}}^{1}$, the obtained child model chromosome vector can be denoted as ${\theta}_{k}^{2}\in {\mathbb{R}}^{{\theta}^{1}}$ (the superscript denotes the ${2}_{nd}$ generation and ${\theta}^{1}$ denotes the variable length), which is generated from the chromosome vectors ${\theta}_{i}^{1}$ and ${\theta}_{j}^{1}$ of the parent models. Meanwhile, the crossover choice at each position of the chromosomes vector can be represented as a vector $\mathbf{c}\in {\{i,j\}}^{{\theta}^{1}}$. The entries in vector $\mathbf{c}$ are randomly selected from values in $\{i,j\}$ with a probability $p({M}_{i}^{1})$ to pick value $i$ and a probability $p({M}_{j}^{1})$ to pick value $j$ respectively. The ${l}_{th}$ entry of vector ${\theta}_{k}^{2}$ before mutation can be represented as
${\widehat{\theta}}_{k}^{2}(l)=\mathrm{\U0001d7d9}(c(l)=i)\cdot {\theta}_{i}^{1}(l)+\mathrm{\U0001d7d9}(c(l)=j)\cdot {\theta}_{j}^{1}(l),$ where indicator function $\mathrm{\U0001d7d9}(\cdot )$ returns value $1$ if the condition is True; otherwise, it returns value $0$.

•
Mutation: The variables in the chromosome vector ${\widehat{\theta}}_{k}^{2}(l)\in {\mathbb{R}}^{{\theta}^{1}}$ are all real values, and some of them can be altered, which is also called mutation in traditional genetic algorithm. Mutation happens rarely, and the chromosome mutation probability is $\gamma $ in the model. Formally, the mutation indicator vector can be denoted as $\mathbf{m}\in {\{0,1\}}^{d}$, and the ${l}_{th}$ entry of vector ${\theta}_{k}^{2}$ after mutation can be represented as
${\theta}_{k}^{2}(l)=\mathrm{\U0001d7d9}(m(l)=0)\cdot {\widehat{\theta}}_{k}^{2}(l)+\mathrm{\U0001d7d9}(c(l)=1)\cdot rand(0,1),$ where $rand(0,1)$ denotes a random value selected from range $[0,1]$. Formally, the chromosome vector ${\theta}_{k}^{2}$ defines a new unit model with knowledge inherited form the parent models, which can be denoted as ${M}_{k}^{2}$. Based on the parent model set ${\mathcal{P}}^{1}$, all these newly generated models can be represented as ${\mathcal{M}}^{2}={\{{M}_{k}^{2}\}}_{{({M}_{i}^{1},{M}_{j}^{1})}_{k}\in {\mathcal{P}}^{1}}$, which will form the ${2}_{nd}$ generation of unit models.
3.6.3 Result Ensemble
Based on the models introduced in the previous subsection, seGEN adopts a hierarchical result ensemble method, which involves two steps: (1) local ensemble of results for the subgraphs on each sampling strategies, and (2) global ensemble of results obtained across different sampling strategies.

•
Local Ensemble: Based on the subgraph pool $\mathcal{G}$ obtained via the sampling strategies introduced before, we have learned the ${K}_{th}$ generation of the unit model ${\mathcal{M}}^{K}$ (or $\mathcal{M}$ for simplicity), which contains $m$ unit models. Formally, given a subgraph $g\in \mathcal{G}$ with node set ${\mathcal{V}}_{g}$, by applying unit model ${M}_{j}\in \mathcal{M}$ to $g$, the learned representation for node ${v}_{q}\in {\mathcal{V}}_{g}$ can be denoted as vector ${\mathbf{z}}_{j,q}$, where $q$ denotes the unique node index in the original complete graph $G$ before sampling. For the nodes ${v}_{p}\notin {\mathcal{V}}_{g}$, its representation vector will be ${\mathbf{z}}_{j,p}=\mathrm{\mathbf{n}\mathbf{u}\mathbf{l}\mathbf{l}}$, which denotes a dummy vector of length $d$. Formally, the learned representation feature vector for node ${v}_{q}$ can be represented as
$${\mathbf{z}}_{q}=\bigsqcup _{g\in \mathcal{G},{M}_{j}\in \mathcal{M},}{\mathbf{z}}_{j,q},$$ (54) where operator $\bigsqcup $ denotes the concatenation operation of feature vectors. Considering that in the graph sampling step, not all nodes will be selected in subgraphs. For the nodes ${v}_{p}\notin {\mathcal{V}}_{g},\forall g\in \mathcal{G}$, seGEN introduces a local propagation approach to compute its representations based on its neighbors instead.
Global Ensemble: Generally, these different graph sampling strategies can capture different local/global structures of the graph, which will all be useful for the node representation learning. In the global result ensemble step, seGEN proposes to group these features together as the output. Formally, for node ${v}_{q}$ in the original network, its fused representations can be denoted as
$${\overline{\mathbf{z}}}_{q}=\sum _{i\in \{\mathrm{\text{bfs}},\mathrm{\text{dfs}},\mathrm{\text{hs}},\mathrm{\text{ns}},\mathrm{\text{es}}\}}{w}^{i}\cdot {\mathbf{z}}_{q}^{i},$$ (55) where ${\mathbf{z}}_{q}^{\mathrm{\text{bfs}}}$, ${\mathbf{z}}_{q}^{\mathrm{\text{dfs}}}$, ${\mathbf{z}}_{q}^{\mathrm{\text{hs}}}$, ${\mathbf{z}}_{q}^{\mathrm{\text{ns}}}$ and ${\mathbf{z}}_{q}^{\mathrm{\text{es}}}$ are the vectors of ${v}_{q}$ obtained from the above local ensemble based on different graph sampling strategies. In [9], seGEN will simply assign them with equal weights, i.e., ${\overline{\mathbf{z}}}_{q}$ is an average of ${\mathbf{z}}_{q}^{\mathrm{\text{bfs}}}$, ${\mathbf{z}}_{q}^{\mathrm{\text{dfs}}}$, ${\mathbf{z}}_{q}^{\mathrm{\text{hs}}}$, ${\mathbf{z}}_{q}^{\mathrm{\text{ns}}}$ and ${\mathbf{z}}_{q}^{\mathrm{\text{es}}}$.
4 Challenges and Opportunities
We have also observed many challenges with graph neural network studies, which provide plenty of opportunities for researchers interested in this topic:
4.1 OverSmoothing Problem
The existing graph neural networks on giant network representation learning problem suffer from the oversmoothing problem a lot. For instance, if a GCN is deep with many convolutional layers, the output features may be oversmoothed and vertices from different clusters may become indistinguishable, which will render the GCN model fail to work. We have also observed some approaches proposed to resolve such a problem. In [1, 8], both the DifNN and GNL models introduce a set of gates (i.e., the GDU neuron unit) to ensure the nodes can capture the raw inputs, neighbors’ influences and the temporal dynamic states in the learning process, which can resolve the oversmoothing problem effectively.
4.2 Optimization Efficiency
The time complexity of the graph neural network learning, including those for small graphs and giant networks, can be very high. For the small graph oriented graph neural networks, e.g., IsoNN, the major time is spent on enumerating the permutation matrices for the isomorphic feature calculation. Meanwhile, for the giant network oriented graph neural networks, e.g., GCN and GAT, most of the time is spent on the backpropagation along the graph edges for the nodes, which grows almost quadratically as the network size increases and exponentially as the model goes deeper. New optimization algorithms that can address the high learning cost will be necessary and desired.
4.3 The Gap Between Small Graphs and Giant Networks
By this context so far, we haven’t witnessed any graph neural networks that can learn effective representations for both the small graphs and the giant networks simultaneously without any architecture modifications. Proposing a new unified graph neural network model that can work for different types of networks will be desired.
4.4 Graph Neural Network for Dynamic Networks
Most of the network data in the realworld are not static, which keep changing with time. We have observed the GNL model [1] as the first work focusing on the dynamic regression scenario. Such kinds of model can be important, and it may also serve as the tool for analyzing and understanding the brain activities, which is a dynamic network with both structure and states changing all the time.
4.5 Graph Neural Network for Complex Networks
Most of the graph neural networks proposed so far mainly focus on the homogeneous network, which oversimplify the learning setting, since most of the network data in the real world are heterogeneous instead. Generally, in heterogeneous networks, different types of nodes and links can convey different kinds of physical meanings. New models that can effective incorporate such heterogeneous information in the learning process can be desired for concrete realworld applications of graph neural networks.
5 Summary
In this paper, we have introduced the latest graph neural networks proposed for resolving the small graph and giant network oriented research problems. The small graph oriented graph neural network models introduced in this paper include IsoNN, SDBN and LF&ER; whereas, the giant network oriented graph neural network models introduced in this paper include GCN, GAT, DifNN, GNL, GraphSage and seGEN. In addition, we have also introduced several challenges and opportunities on graph neural network studies. This paper will be updated shortly as we observe the new development on this topic in the near future.
References
 [1] Yixin Chen, Lin Meng, and Jiawei Zhang. Graph neural lasso for dynamic network regression. CoRR, abs/1907.11114, 2019.
 [2] William L. Hamilton, Rex Ying, and Jure Leskovec. Inductive representation learning on large graphs. CoRR, abs/1706.02216, 2017.
 [3] Thomas N. Kipf and Max Welling. Semisupervised classification with graph convolutional networks. CoRR, abs/1609.02907, 2016.
 [4] Lin Meng and Jiawei Zhang. Isonn: Isomorphic neural network for graph representation learning and classification. CoRR, abs/1907.09495, 2019.
 [5] Petar Veličković, Guillem Cucurull, Arantxa Casanova, Adriana Romero, Pietro Liò, and Yoshua Bengio. Graph Attention Networks. International Conference on Learning Representations, 2018.
 [6] Pengyang Wang, Jiawei Zhang, Guannan Liu, Yanjie Fu, and Charu Aggarwal. EnsembleSpotting: Ranking Urban Vibrancy via POI Embedding with Multiview Spatial Graphs, pages 351–359.
 [7] Shen Wang, Lifang He, Bokai Cao, ChunTa Lu, Philip S. Yu, and Ann B. Ragin. Structural deep brain network mining. In Proceedings of the 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, KDD ’17, pages 475–484, New York, NY, USA, 2017. ACM.
 [8] Jiawei Zhang, Limeng Cui, Yanjie Fu, and Fisher B. Gouza. Fake news detection with deep diffusive network model. CoRR, abs/1805.08751, 2018.
 [9] Jiawei Zhang, Limeng Cui, and Fisher B. Gouza. SEGEN: sampleensemble genetic evolutional network model. CoRR, abs/1803.08631, 2018.