Title: ADVERSARIAL ATTACKS ON GRAPH NEURAL NETWORKS VIA META LEARNING

Abstract: Deep learning models for graphs have advanced the state of the art on many tasks. Despite their recent success, little is known about their robustness. We investigate training time attacks on graph neural networks for node classification that perturb the discrete graph structure. Our core principle is to use meta-gradients to solve the bilevel problem underlying training-time attacks, essentially treating the graph as a hyperparameter to optimize. Our experiments show that small graph perturbations consistently lead to a strong decrease in performance for graph convolutional networks, and even transfer to unsupervised embeddings. Remarkably, the perturbations created by our algorithm can misguide the graph neural networks such that they perform worse than a simple baseline that ignores all relational information. Our attacks do not assume any knowledge about or access to the target classifiers.

1. INTRODUCTION:

Graphs are a powerful representation that can model diverse data from virtually any domain, such as biology (protein interaction networks), chemistry (molecules), or social networks (Facebook). Not surprisingly, machine learning on graph data has a longstanding history, with tasks ranging from node classification, over community detection, to generative modeling.

In this paper, we study node classification, which is an instance of semi-supervised classification: given a single (attributed) network and a subset of nodes whose class labels are known (e.g., the topic of a paper in a citation graph), the goal is to infer the classes of the unlabeled nodes. While there exist many classical approaches to node classification (London & Getoor, 2014; Chapelle et al., 2006) , recently deep learning on graphs has gained much attention (Monti et al., 2017; Bojchevski & Günnemann, 2018a; Battaglia et al., 2018; Perozzi et al., 2014; Bojchevski et al., 2018; Klicpera et al., 2019) . Specifically, graph convolutional approaches (Kipf & Welling, 2017; Pham et al., 2017) have improved the state of the art in node classification.

However, recent works have also shown that such approaches are vulnerable to adversarial attacks both at test time (evasion) as well as training time (poisoning attacks) (Zügner et al., 2018; Dai et al., 2018) . A core strength of models using graph convolution -exploiting the information in a node's neighborhood to improve classification -is also a major vulnerability: because of these propagation effects, an attacker can change a single node's prediction without even changing any of its attributes or edges. This is because the foundational assumption that all samples are independent of each other does not hold for node classification. Network effects such as homophily (London & Getoor, 2014) support the classification, while on the other hand they enable indirect adversarial attacks.

So far, all existing attacks on node classification models are targeted, that is, aim to provoke misclassification of a specific single node, e.g. a person in a social network. In this work, we propose the first algorithm for poisoning attacks that is able to compromise the global node classification performance of a model. We show that even under restrictive attack settings and without access to the target classifier, our attacks can render it near-useless for use in production (i.e., on test data).

Our approach is based on the principle of meta learning, which has traditionally been used for hyperparameter optimization (Bengio, 2000) , or, more recently, few-shot learning (Finn et al., 2017) . In essence, we turn the gradient-based optimization procedure of deep learning models upside down and treat the input data -the graph at hand -as a hyperparameter to learn.

2. RELATED WORK:

Adversarial attacks on machine learning models have been studied both in the machine learning and security community and for many different model types (Mei & Zhu, 2015) . It is important to distinguish attacks from outliers; while the latter naturally occur in graphs (Bojchevski & Günnemann, 2018) , adversarial examples are deliberately created with the goal to mislead machine learning models and often designed to be unnoticeable. Deep neural networks are highly sensitive to these small adversarial perturbations to the data (Szegedy et al., 2014; Goodfellow et al., 2015) . The vast majority of attacks and defenses assume the data instances to be independent and continuous. This assumption clearly does not hold for node classification and many other tasks on graphs.

Works on adversarial attacks for graph learning tasks are generally sparse. Chen et al. (2017) have measured the changes in the resulting graph clustering when injecting noise to a bi-partite graph that represent DNS queries. However, their focus is not on generating attacks in a principled way. Torkamani & Lowd (2013) consider adversarial noise in the node features in order to improve robustness of collective classification via associative Markov networks.

Only recently researchers have started to study adversarial attacks on deep learning for graphs. Dai et al. (2018) consider test-time (i.e., evasion) attacks on graph classification (i.e., classification of graphs themselves) and node classification. However, they do not consider poisoning (i.e., trainingtime) attacks or evaluate transferability of their attacks, and restrict the attacks to edge deletions only. Moreover, they focus on targeted attacks, i.e. attacks designed to change the prediction of a single node. Zügner et al. (2018) consider both test-time and training-time attacks on node classification models. They circumvent explicitly tackling the bilevel optimization problem underlying poisoning attacks by performing their attacks based on a (static) surrogate model and evaluating their impact by training a classifier on the data modified by their algorithm. In contrast to Dai et al. (2018) , their attacks can both insert and remove edges, as well as modify node attributes in the form of binary vectors. Again, their algorithm is suited only to targeted attacks on single nodes; the problem of training-time attacks on the overall performance of node classification models remains unexplored. Bojchevski & Günnemann (2018b) propose poisoning attacks on a different task: unsupervised node representation learning (or node embeddings). They exploit perturbation theory to maximize the loss obtained after training DeepWalk. In this work, we focus on semi-supervised learning.

Meta-learning (Thrun & Pratt, 1998; Naik & Mammone, 1992) , or learning to learn, is the task of optimizing the learning algorithm itself; e.g., by optimizing the hyperparameters Bengio (2000) , learning to update the parameters of a neural network (Schmidhuber, 1992; Bengio et al., 1992) , or the activation function of a model (Agostinelli et al., 2014) . Gradient-based hyperparameter optimization works by differentiating the training phase of a model to obtain the gradients w.r.t. the hyperparameters to optimize.

The key idea of this work is to use meta-learning for the opposite: modifying the training data to worsen the performance after training (i.e., training-time or poisoning attacks). Muñoz-González et al. (2017) demonstrate that meta learning can indeed be used to create training-time attacks on simple, linear classification models. On continuous data, they report little success when attacking deep neural networks, and on discrete datasets, they do not consider deep learning models or problems with more than two classes. Like most works on adversarial attacks, they assume the data instances to be independent. In this work, for the first time, we propose an algorithm for global attacks on (deep) node classification models at training time. In contrast to Zügner et al. (2018) , we explicitly tackle the bilevel optimization problem of poisoning attacks using meta learning.

3. PROBLEM FORMULATION:

We consider the task of (semi-supervised) node classification. Given a single (attributed) graph and a set of labeled nodes, the goal is to infer the class labels of the unlabeled nodes. Formally, let G = (A, X) be an attributed graph with adjacency matrix A ∈ {0, 1} N ×N and node attribute matrix X ∈ R N ×D , where N is the number of nodes and D the dimension of the node feature vectors. W.l.o.g., we assume the node IDs to be V = {1, . . . , N }.

Given the set of labeled nodes V L ⊆ V, where nodes are assigned exactly one class in C = {c 1 , c 2 , ..., c K }, the goal is to learn a function f θ , which maps each node v ∈ V to exactly one of the K classes in C (or in a probabilistic formulation: to the K-simplex). Note that this is an instance of transductive learning, since all test samples (i.e., the unlabeled nodes) as well as their attributes and edges (but not their class labels!) are known and used during training (Chapelle et al., 2006) . The parameters θ of the function f θ are generally learned by minimizing a loss function L train (e.g. cross-entropy) on the labeled training nodes:

EQUATION

where we overload the notation of f θ to indicate that we feed in the whole graph G.

3.1. ATTACK MODEL:

Adversarial attacks are small deliberate perturbations of data samples in order to achieve the outcome desired by the attacker when applied to the machine learning model at hand. The attacker is constrained in the knowledge they have about the data and the model they attack, as well as the adversarial perturbations they can perform.

Attacker's goal. In our work, the attacker's goal is to increase the misclassification rate (i.e., one minus the accuracy) of a node classification algorithm achieved after training on the data (i.e., graph) modified by our algorithm. In contrast to Zügner et al. (2018) and Dai et al. (2018) , our algorithm is designed for global attacks reducing the overall classification performance of a model. That is, the goal is to have the test samples classified as any class different from the true class.

Attacker's knowledge. The attacker can have different levels of knowledge about the training data, i.e. the graph G, the target machine learning model M, and the trained model parameters θ. In our work, we focus on limited-knowledge attacks where the attacker has no knowledge about the classification model and its trained weights, but the same knowledge about the data as the classifier.

In other words, the attacker can observe all nodes' attributes, the graph structure, as well as the labels of the subset V L and uses a surrogate model to modify the data. Besides assuming knowledge about the full data, we also perform experiments where only a subset of the data is given. Afterwards, this modified data is used to train deep neural networks to degrade their performance.

Attacker's capability. In order to be effective and remain undiscovered, adversarial attacks should be unnoticeable. To account for this, we largely follow Zügner et al. (2018) 's attacker capabilities. First, we impose a budget constraint ∆ on the attacks, i.e. limit the number of changes A -Â 0 ≤ ∆ (here we have 2∆ since we assume the graph to be symmetric). Furthermore, we make sure that no node becomes disconnected (i.e. a singleton) during the attack. One of the most fundamental properties of a graph is its degree distribution. Any significant changes to it are very likely to be noticed; to prevent such large changes to the degree distribution, we employ Zügner et al. (2018) 's unnoticeability constraint on the degree distribution. Essentially, it ensures that the graph's degree distribution can only marginally be modified by the attacker. The authors also derive an efficient way to check for violations of the constraint so that it adds only minimal computational overhead to the attacks. While in this work we focus on changing the graph structure only, our algorithm can easily be modified to change the node features as well. We summarize all these constraints and denote the set of admissible perturbations on the data as Φ(G), where G is the graph at hand.

3.2. OVERALL GOAL:

Poisoning attacks can be mathematically formulated as a bilevel optimization problem:

EQUATION

)

L atk is the loss function the attacker aims to optimize. In our case of global and unspecific (regarding the type of misclassification) attacks, the attacker tries to decrease the generalization performance of the model on the unlabeled nodes. Since the test data's labels are not available, we cannot directly optimize this loss. One way to approach this is to maximize the loss on the labeled (training) nodes L train , arguing that if a model has a high training error, it is very likely to also generalize poorly (the opposite is not true; when overfitting on the training data, a high generalization loss can correspond to a low training loss). Thus, our first attack option is to choose L atk = -L train .

Recall that semi-supervised node classification is an instance of transductive learning: all data samples (i.e., nodes) and their attributes are known at training time (but not all labels!). We can use this insight to obtain a second variant of L atk . The attacker can learn a model on the labeled data to estimate the labels ĈU of the unlabeled nodes V U = V\V L . The attacker can now perform selflearning, i.e. use these predicted labels and compute the loss of a model on the unlabeled nodes, yielding our second option L atk = -L self where L self = L(V U , ĈU ). Note that, at all times, only the labels of the labeled nodes are used for training; L self is only used to estimate the generalization loss after training. In our experimental evaluation, we compare both versions of L atk outlined above.

Importantly, notice the bilevel nature of the problem formulation in Eq. ( 2): the attacker aims to maximize the classification loss achieved after optimizing the model parameters on the modified (poisoned) graph Ĝ. Optimizing such a bilevel problem is highly challenging by itself. Even worse, in our graph setting the data and the action space of the attacker are discrete: the graph structure is A = {0, 1} N ×N , and the possible actions are edge insertions and deletions. This makes the problem even more difficult in two ways. First, the action space is vast; given a budget of ∆ perturbations, the number of possible attacks is, ignoring symmetry, N 2 ∆ and thus in O(N 2∆ ); exhaustive search is clearly infeasible. Second, a discrete data domain means that we cannot use gradient-based methods such as gradient descent to make small (real-valued) updates on the data to optimize a loss.

4. GRAPH STRUCTURE POISONING:

VIA META-LEARNING 4.1 POISONING VIA META-GRADIENTS

In this work, we tackle the bilevel problem described in Eq. ( 2) using meta-gradients, which have traditionally been used in meta-learning. The field of meta-learning (or learning to learn) tries to make the process of learning machine learning models more time and/or data efficient, e.g. by finding suitable hyperparameter configurations (Bengio, 2000) or initial weights that enable rapid adaptation to new tasks or domains in few-shot learning (Finn et al., 2017) .

Meta-gradients (e.g., gradients w.r.t. hyperparameters) are obtained by backpropagating through the learning phase of a differentiable model (typically a neural network). The core idea behind our adversarial attack algorithm is to treat the graph structure matrix as a hyperparameter and compute the gradient of the attacker's loss after training with respect to it:

EQUATION

where opt(•) is a differentiable optimization procedure (e.g. gradient descent and its stochastic variants) and L train the training loss. Notice the similarity of the meta-gradient to the bi-level formulation in Eq. ( 2); the meta-gradient indicates how the attacker loss L atk after training will change for small perturbations on the data, which is exactly what a poisoning attacker needs to know.

As an illustration, consider an example where we instantiate opt with vanilla gradient descent with learning rate α starting from some intial parameters θ 0 θ t+1 = θ t -α∇ θt L train (f θt (G)) (4) The attacker's loss after training for T steps is L atk (f θ T (G)). The meta-gradient can be expressed by unrolling the training procedure:

∇ meta G = ∇ G L atk (f θ T (G)) = ∇ f L atk (f θ T (G)) • [∇ G f θ T (G) + ∇ θ T f θ T (G) • ∇ G θ T ] , where (5) ∇ G θ t+1 = ∇ G θ t -α∇ G ∇ θt L train (f θt (G))

Note that the parameters θ t itself depend on the graph G (see Eq. 4); they are not fixed. Thus, the derivative w.r.t. the graph has to be taken into account, chaining back until θ 0 . Given this, the attacker can use the meta-gradient to perform a meta update M on the data to minimize L atk :

G (k+1) ← M (G (k) ) (6)

The final poisoned data G (∆) is obtained after performing ∆ meta updates. A straightforward way to instantiate M is (meta) gradient descent with some step size β:

M (G) = G -β∇ G L atk (f θ T (G))).

It has to be noted that such a gradient-based update rule is neither possible nor well-suited for problems with discrete data (such as graphs). Due to the discreteness, the gradients are not defined. Thus, in our approach we simply relax the data's discreteness condition. However, we still perform discrete updates (actions) since the above simple gradient update would lead to dense (and continuous) adjacency matrices; not desired and not efficient to handle. Thus, in the following section, we propose a greedy approach to preserve the data's sparsity and discreteness.

4.2. GREEDY POISONING ATTACKS VIA META GRADIENTS:

We assume that the attacker does not have access to the target classifier's parameters, outputs, or even knowledge about its architecture; the attacker thus uses a surrogate model to perform the poisoning attacks. Afterwards the poisoned data is used to train deep learning models for node classification (e.g. a GCN) to evaluate the performance degradation due to the attack. We use the same surrogate model as Zügner et al. (2018) , which is a linearized two-layer graph convolutional network:

EQUATION

where Â = D -1/2 ÃD -1/2 , Ã = A + I, A is the adjacency matrix, X are the node features, D the diagonal matrix of the node degrees, and θ = {W } the set of learnable parameters. In contrast to Zügner et al. (2018) we do not linearize the output (softmax) layer.

Note that we only perform changes to the graph structure A, hence we treat the node attributes X as a constant during our attacks. For clarity, we replace G with A in the meta gradient formulation.

We define a score function S : V × V → R that assigns each possible action a numerical value indicating its (estimated) impact on the attacker objective L atk . Given the meta-gradient for a node pair (u, v), we define S(u, v) = ∇ meta auv • (-2 • a uv + 1) where a uv is the entry at position (u, v) in the adjacency matrix A. We essentially flip the sign of the meta-gradients for connected node pairs as this yields the gradient for a change in the negative direction (i.e., removing the edge).

We greedily pick the perturbation e = (u , v ) with the highest score one at a time e = arg max

EQUATION

where M (A, e) ∈ Φ(G) ensures that we only perform changes compliant with our attack constraints (e.g., unnoticeability). The meta update function M (A, e) inserts the edge e = (i, j) by setting a ij = 1 if nodes (i, j) are currently not connected and otherwise deletes the edge by setting a ij = 0.

4.3. APPROXIMATING META-GRADIENTS:

Computing the meta gradients is expensive both from a computational and a memory point-of-view.

To alleviate this issue, Finn et al. (2017) propose a first-order approximation, leading to

EQUATION

We denote by θt the parameters at time t independent of the data A (and θt-1 ), i.e. ∇ A θt = 0; the gradient is thus not propagated through θt . This corresponds to taking the gradient of the attack loss L atk w.r.t. the data, after training the model for T steps. We compare against this baseline in our experiments; as also done in Zügner et al. (2018) . However, unlike the meta-gradient, this approximation completely disregards the training dynamics. Nichol & Schulman (2018) propose a heuristic of the meta gradient in which they update the initial weights θ 0 on a line towards the local optimum θ T to achieve faster convergence in a multi-task learning setting:

∇ meta θ0 ≈ T t=1 ∇ θt L train (f θt (A; X)).

Again, they assume θt to be independent of θt-1 . While there is no direct connection to the formulation of the meta gradient in Eq. ( 5), there is an intuition behind it: the heuristic meta gradient is the direction, in which, on average, we have observed the strongest increase in the training loss during the training procedure. The authors' experimental evaluation further indicates that this heuristic achieves similar results as the meta gradient while being much more efficient to compute (see Appendix C for a discussion on complexity).

Adapted to our adversarial attack setting on graphs, we get

∇ meta A ≈ T t=1 ∇ A L train (f θt (A; X)).

We can view this as a heuristic of the meta gradient when L atk = -L train . Likewise, again taking the transductive learning setting into account, we can use self-learning to estimate the loss on the unlabeled nodes, replacing L train by L self . Indeed, we combine these two views

EQUATION

where λ can be used to weight the two objectives. This approximation has a much smaller memory footprint than the exact meta gradient since we don't have to store the whole training trajectory θ1 , . . . , θT in memory; additionally, there there are no second-order derivatives to be computed. A summary of our algorithm can be found in Appendix A. 

5. EXPERIMENTS:

Setup. We evaluate our approach on the well-known CITESEER (Sen et al., 2008) , CORA-ML (McCallum et al., 2000) , and POLBLOGS (Adamic & Glance, 2005) datasets; an overview is given in Table 6 . We split the datasets into labeled (10%) and unlabeled (90%) nodes. The labels of the unlabeled nodes are never visible to the attacker or the classifiers and are only used to evaluate the generalization performance of the models. Our code is available at https://www.kdd.in. tum.de/gnn-meta-attack.

We evaluate the transferability of adversarial attacks by training deep node classification models on the modified (poisoned) data. For this purpose, we use Graph Convolutional Networks (GCN) (Kipf & Welling, 2017) and Column Networks (CLN) (Pham et al., 2017) . Both are models utilizing the message passing framework (a.k.a. graph convolution) and trained in a semi-supervised way.

We further evaluate the node classification performance achieved by training a standard logistic regression model on the node embeddings learned by DeepWalk (Perozzi et al., 2014) . DeepWalk itself is trained in an unsupervised way and without node attributes or graph convolutions; thus, this is arguably an even more difficult transfer task.

We repeat all of our attacks on five different splits of labeled/unlabeled nodes and train all target classifiers ten times per attack (using the split that was used to create the attack). In our tables, the uncertainty indicates 95 % confidence intervals of the mean obtained via bootstrapping. For our meta-gradient approaches, we compute the meta-gradient ∇ meta A L atk (f θ T (A; X)) by using gradient descent with momentum for 100 iterations. We refer to our meta-gradient approach with self-training as Meta-Self and to the variant without self-training as Meta-Train. Similarly, we refer to our approximations as A-Meta-Self (with λ=0), A-Meta-Train (λ=1), and A-Meta-Both (λ=0.5).

Comparing meta-gradient heuristics. First, we analyze the different meta gradient heuristics described in Section 4.3. The results can be seen in Table 1 . All principles successfully increase the misclassification rate (i.e., 1accuracy on unlabeled nodes) obtained on the test data, compared to the results obtained with the unperturbed graph. Since A-Meta-Self consistently shows a weaker performance than A-Meta-Both, we do not further consider A-Meta-Self in the following.

Comparison with competing methods. We compare our meta-gradient approach as well as its approximations with various baselines and Nettack (Zügner et al., 2018) . DICE ('delete internally, connect externally') is a baseline where, for each perturbation, we randomly choose whether to insert or remove an edge. Edges are only removed between nodes from the same class, and only inserted between nodes from different classes. This baseline has all true class labels (train and test) available and thus more knowledge than all competing methods. First-order refers to the approximation proposed by Finn et al. (2017) , i.e. ignoring all second-order derivatives. Note that Nettack is not designed for global attacks. In order to be able to compare to them, for each perturbation we ran- domly select one target node from the unlabeled nodes and attack it using Nettack while considering all nodes in the network. In this case, its time and memory complexity is O(N 3 ) and thus it was not feasible to run it on any but the sparsest dataset. Meta w/ Oracle corresponds to our meta-gradient approach when supplied with all true class labels on the test data -this only serves as a reference point since it cannot be carried out in real scenarios where the test nodes' labels are unknown. For all methods, we enforce the unnoticeability constraint introduced by Zügner et al. ( 2018), which ensures that the graph's degree distribution changes only slightly. In Appendix D we show that the unnoticeability constraint does not significantly limit the impact of our attacks.

In Table 2 we see the misclassification rates (i.e., 1 -accuracy on unlabeled nodes) achieved by changing 5% of E LCC edges according to the different methods (larger is better, except for the average rank). That is, each method is allowed to modify 5% of E LCC , i.e. the number of edges present in the graph before the attack. We present similar tables for 1% and 10% changes in Appendix F. Our meta-gradient with self-training (Meta-Self) produces the strongest drop in performance across all models and datasets as indicated by the average rank. Changing only 5% of the edges leads to a relative increase of up to 48% in the misclassification rate of GCN on CORA-ML.

Remarkably, our memory efficient meta-gradient approximations lead to strong increases in misclassifications as well. They outperform both baselines and are in many cases even on par with the more expensive meta-gradient. In Appendix F, Table 11 we also show that using only T = 10 training iterations of the surrogate models for computing the meta gradient (or its approximations) can significantly hurt the performance across models and datasets. Moreover, in Table 8 in Appendix F we show that our heuristic is successful at attacking a dataset with roughly 20K nodes.

While the focus of our work is poisoning attacks by modifying the graph structure, our method can be applied to node feature attacks as well. In Appendix E we show a proof of concept that our attacks are also effective when attacking by perturbing both node features and the graph structure.

In Fig. 1 we see the drop in classification performance of GCN on CORA-ML for increasing numbers of edge insertions/deletions (similar plots for the remaining datasets and models are provided in Appendix F). Meta-Self is even able to reduce the classification accuracy below 50%. Fig. 2 shows the classification accuracy of GCN and CLN as well as a baseline operating on the node attributes only, i.e. ignoring the graph. Not surprisingly, deep models achieve higher accuracy than the baseline when trained on the clean CITESEER graph -exploiting the network information improves classification. However, by only perturbing 5% of the edges, we obtain the opposite: GCN and CLN perform worse than the baseline -the graph structure now hurts classification.

Impact of graph structure and trained weights. Another interesting property of our attacks can be seen in Table 3 , where W and Ŵ correspond to the weights trained on the clean CORA-ML network A and a version Â poisoned by our algorithm (here with even 25 % modified edges), respectively.

Note that the classification accuracy barely changes when modifying the underlying network for a given set of trained weights; even when applying the clean weights W on the highly corrupted Â, the performance drops only marginally. Likewise, even the clean graph A only leads to a low accuracy when using it with the weights Ŵ . This result emphasizes the importance of the training procedure for the performance of graph models and shows that our poisoning attack works by derailing the training procedure from the start, i.e. leading to 'bad' weights. In Fig. 3 we compare edges inserted by our meta-gradient approach to the edges originally present in the CORA-ML network. Fig. 3 (a) shows the shortest path lengths between nodes pairs before being connected by adversarially inserted edges vs. shortest path lengths between all nodes in the original graph. In Fig. 3 (b) we compare the edge betweenness centrality (C E ) of adversarially inserted edges to the centrality of edges present in the original graph. In (c) we see the node degree distributions of the original graph and the node degrees of the nodes that are picked for adversarial edges. For all three measures no clear distinction can be made. There is a slight tendency for the algorithm to connect nodes that have higher-than-average shortest paths and low degrees, though.

As we can see in Table 5 , roughly 80% of our meta attack's perturbations are edge insertions (INS).

As expected by the homophily assumption, in most cases edges inserted connect nodes from different classes and edges deleted connect same-class nodes. However, as the comparison with the DICE baseline shows, this by itself can also not explain the destructive performance of the meta-gradient.

Limited knowledge about the graph structure. In the experiments described above, the attacker has full knowledge about the graph structure and all node attributes (as typical in a transductive setting). We also tested our algorithm on a sub-graph of CORA-ML and CITESEER. That is, we select the 10% labeled nodes and randomly select neighbors of these until we have a subgraph with number of nodes n = 0.3N . We run our attacks on this small subgraph, and afterwards plug in the perturbations into the original graphs to train GCN and CLN as before. Table 4 summarizes the results: Even in this highly restricted setting, our attacks consistently increase misclassification rate across datasets and models, highlighting the effectiveness of our method.

6. CONCLUSION:

We propose an algorithm for training-time adversarial attacks on (attributed) graphs, focusing on the task of node classification. We use meta-gradients to solve the bilevel optimization problem underlying the challenging class of poisoning adversarial attacks. Our experiments show that attacks created using our meta-gradient approach consistently lead to a strong decrease in classification performance of graph convolutional models and even transfer to unsupervised models. Remarkably, even small perturbations to a graph based on our approach can lead to graph neural networks performing worse than a baseline ignoring all relational information. We further propose approximations of the metagradients that are less expensive to compute and, in many cases, have a similarly destructive impact on the training of node classification models. While we are able to show small statistical differences of adversarial and 'normal' edges, it is still an open question what makes the edges inserted/removed by our algorithm so destructive, which could then be used to detect or defend against attacks.

A ALGORITHM 

C COMPLEXITY ANALYSIS:

In our attack we handle both edge insertions and deletions, i.e. each element in the adjacency matrix A ∈ {0, 1} N ×N can be changed. This means that without further optimization, the (approximate) meta gradient for each node pair has to be computed, leading to a baseline memory and computational complexity of O(N 2 ). For the meta gradient computation we additionally have to store the entire weight trajectory during training, adding O(T • |θ|) to the memory cost, where T is the number of inner training steps and |θ| the number of weights. Thus, memory complexity of our meta gradient attack is O(N 2 + T • |θ|). The second-order derivatives at each step T in the meta gradient formulation can be computed in O(N 2 ) using Hessian-vector products, leading to a computational complexity of O(T • N 2 ).

For the meta gradient heuristics, the computational complexity is similar since we have to evaluate the gradient w.r.t. the adjacency matrix at every training step. However, the training trajectory of the weights does not have to be kept in memory, yielding a memory complexity of O(N 2 ). This is highly beneficial, as memory (especially on GPUs) is limited.

The computational and memory complexity of our adversarial attacks implies that (as-is) it can be executed for graphs with roughly 20K nodes using a commodity GPU. The complexity, however, can be drastically reduced by pre-filtering the elements in the adjacency matrix for which the (meta) gradient needs to be computed, since only a fraction of entries in the adjacency matrix are promising candidate perturbations. We leave such performance optimization for future work. 

D UNNOTICEABILITY CONSTRAINT:

In all our experiments, we enforce the unnoticeability constraint on the degree distribution proposed by (Zügner et al., 2018) . In Fig. 4 we show that this constraint does not significantly limit the destructive performance of our attacks. Thus we conclude that these constraints should always be enforced, since they improve unnoticeability while at the same time our attacks remain effective.

E ATTACKS WITH CHANGES TO THE NODE FEATURES:

While the focus of our work is poisoning attacks by modifying the graph structure, our method can be applied to node feature attacks as well. The most straightforward case is when the node features are binary, since then we can use the same greedy algorithm as for the graph structure (ignoring the degree distribution constraints). Among the datasets we evaluated, CITESEER has binary node features, hence in Table 7 we display the results when attacking both node features and graph structure (while the total number of perturbations stays the same). We can observe that the impact of the combined attacks is slightly lower than the structure-only attack. We attribute this to the fact that we assign the same cost to structure and feature changes, but arguably we expect a structure perturbation to have a stronger effect on performance than a feature perturbation. Future work can provide a framework where structure and feature changes impose a different cost on the attacker. When the node features are continuous, there also needs to be some tuning of the meta step size and considerations whether multiple features per instance can be changed in a single step.

F ADDITIONAL RESULTS:

In this section we present additional results of our experiments. In Table 8 we see that our heuristic is successful at attacking PUBMED, a dataset with roughly 20K nodes. Tables 9 and 10 show misclassification rates with 1% and 10% perturbed edges, respectively. Meta with Oracle 16.2 ± 0.3 18.2 ± 0.2 20.5 ± 0.3 30.1 ± 0.5 29.5 ± 0.5 34.8 ± 0.3 13.6 ± 1.1 10.5 ± 1.2 6.0 ± 0.7 3.5 * Did not finish within three days on CORA-ML and POLBLOGS A-Meta-Train 28.1 ± 1.1 23.6 ± 0.4 33.6 ± 0.7 34.3 ± 1.1 31.3 ± 0.6 32.1 ± 0.5 12.8 ± 1.6 18.2 ± 2.6 6.9 ± 0.2 4.9 A-Meta-Both 24.6 ± 1.0 20.0 ± 0.3 34.8 ± 0.6 29.1 ± 0.5 29.2 ± 0.4 33.6 ± 0.4 22.7 ± 0.7 22.3 ± 0.9 26.3 ± 1.0 4.8

Meta-Train 37.3 ± 1.4 24.9 ± 0.5 34.4 ± 1.6 31.8 ± 1.0 29.9 ± 0.7 36.0 ± 0.2 28.7 ± 3.6 32.9 ± 1.6 73.7 ± 3.9 2.6 Meta-Self 34.5 ± 0.9 22.9 ± 0.6 37.0 ± 1.0 38.6 ± 1.0 35.3 ± 0.7 36.0 ± 1.2 26.1 ± 0.6 23.5 ± 0.9 60.7 ± 2.7 2.8

Meta with Oracle 34.8 ± 1.5 25.2 ± 0.4 44.0 ± 0.9 40.1 ± 1.2 37.2 ± 0.9 37.2 ± 0.6 28.9 ± 0.4 25.8 ± 0.9 67.1 ± 2.4 1.4 * Did not finish within three days for any dataset. 3 20.3 ± 0.9 28.5 ± 0.8 28.3 ± 0.8 34.8 ± 1.3 6.4 ± 0.5 7.6 ± 0.5 5.3 ± 0.5 3.0 A-Meta-Both 21.6 ± 0.6 18.9 ± 0.3 27.8 ± 0.2 31.6 ± 0.4 30.3 ± 0.6 40.7 ± 0.4 17.8 ± 1.9 13.9 ± 1.4 11.0 ± 0.5 1.8 Meta-Self 29.7 ± 2.2 20.1 ± 0.4 31.5 ± 1.2 29.9 ± 0.7 32.7 ± 0.8 45.6 ± 0.7 17.4 ± 0.8 14.6 ± 1.2 16.8 ± 1.9 1.2 1 5 10 15 25

Edges changed (%) Edges changed (%) 

:



Figures and Tables:

Figure 1: Change in accuracy of GCN on CORA-ML for increasing number of perturbations.

Figure 3: Analysis of adversarially inserted edges

Figure4: Change in accuracy of GCN on CITESEER with and without enforcing unnoticeability constraints (singleton nodes are never admissible). Meta-Self-U corresponds to not enforcing the unnoticeability constraint.

Figure 5: Change in accuracy of CLN on CORA-ML.

Figure 6: Change in accuracy of Deepwalk on CORA-ML.

Figure 12: Change in accuracy of Deepwalk on POLBLOGS.

Misclassification rate (in %) for different meta-gradient heuristics with 5% perturbed edges.

Table content: <table><tr><td/><td colspan="2">CORA-ML</td><td colspan="2">CITESEER</td></tr><tr><td/><td>GCN</td><td>CLN</td><td>GCN</td><td>CLN</td></tr><tr><td>Clean</td><td colspan="4">16.6 ± 0.3 17.3 ± 0.3 28.5 ± 1.0 28.3 ± 0.8</td></tr><tr><td colspan="5">A-Meta-Train 21.2 ± 0.9 20.3 ± 0.3 31.8 ± 0.8 29.8 ± 0.5</td></tr><tr><td>A-Meta-Self</td><td colspan="4">21.8 ± 0.7 18.9 ± 0.3 28.6 ± 0.4 28.5 ± 0.4</td></tr><tr><td colspan="5">A-Meta-Both 22.5 ± 0.6 19.2 ± 0.3 28.9 ± 0.4 28.8 ± 0.4</td></tr></table>

Misclassification rate (in %) with 5% perturbed edges.

Table content: <table><tr><td/><td/><td>CORA</td><td/><td/><td>CITESEER</td><td/><td/><td>POLBLOGS</td><td/><td>Avg.</td></tr><tr><td>Attack</td><td>GCN</td><td>CLN</td><td>DeepWalk</td><td>GCN</td><td>CLN</td><td>DeepWalk</td><td>GCN</td><td>CLN</td><td colspan="2">DeepWalk rank</td></tr><tr><td>Clean</td><td>16.6 ± 0.3</td><td>17.3 ± 0.3</td><td>20.3 ± 1.0</td><td>28.5 ± 0.9</td><td>28.3 ± 0.9</td><td>34.8 ± 1.4</td><td>6.4 ± 0.6</td><td>7.6 ± 0.5</td><td>5.3 ± 0.5</td><td>7.4</td></tr><tr><td>DICE</td><td>18.0 ± 0.4</td><td>18.0 ± 0.2</td><td>22.8 ± 0.3</td><td>28.9 ± 0.3</td><td>29.1 ± 0.3</td><td>39.1 ± 0.4</td><td>11.2 ± 1.1</td><td>11.2 ± 0.8</td><td>10.2 ± 0.6</td><td>5.0</td></tr><tr><td>First-order</td><td>17.2 ± 0.3</td><td>17.6 ± 0.2</td><td>20.7 ± 0.2</td><td>28.3 ± 0.3</td><td>28.4 ± 0.3</td><td>34.0 ± 0.3</td><td>7.8 ± 0.9</td><td>7.6 ± 0.5</td><td>7.9 ± 0.6</td><td>7.1</td></tr><tr><td>Nettack  *</td><td>-</td><td>-</td><td>-</td><td>31.9 ± 0.3</td><td colspan="2">30.2 ± 0.4 41.2 ± 0.4</td><td>-</td><td>-</td><td>-</td><td>-</td></tr><tr><td>A-Meta-Train</td><td>21.8 ± 0.9</td><td>20.5 ± 0.3</td><td>25.0 ± 0.6</td><td>31.9 ± 0.7</td><td>30.1 ± 0.5</td><td>32.7 ± 0.5</td><td>11.9 ± 2.8</td><td>12.9 ± 2.5</td><td>5.8 ± 0.2</td><td>4.7</td></tr><tr><td>A-Meta-Both</td><td>20.7 ± 0.4</td><td colspan="3">19.0 ± 0.3 28.5 ± 0.5 28.6 ± 0.4</td><td>28.7 ± 0.4</td><td>34.4 ± 0.4</td><td>19.8 ± 0.8</td><td>16.5 ± 1.3</td><td>21.5 ± 1.9</td><td>4.3</td></tr><tr><td>Meta-Train</td><td colspan="3">22.0 ± 1.2 21.7 ± 0.4 26.1 ± 0.6</td><td>30.3 ± 1.0</td><td>29.0 ± 0.6</td><td>36.0 ± 0.2</td><td colspan="3">16.3 ± 2.9 18.7 ± 2.3 14.5 ± 4.2</td><td>3.2</td></tr><tr><td>Meta-Self</td><td colspan="2">24.5 ± 1.0 20.3 ± 0.4</td><td colspan="7">28.1 ± 0.6 34.6 ± 0.7 32.2 ± 0.6 34.6 ± 0.7 22.5 ± 0.8 17.9 ± 1.7 59.0 ± 3.0</td><td>2.3</td></tr><tr><td colspan="2">Meta w/ Oracle 21.0 ± 0.5</td><td>21.6 ± 0.3</td><td>27.8 ± 0.7</td><td>34.2 ± 0.9</td><td>32.9 ± 0.6</td><td>36.1 ± 0.7</td><td>25.6 ± 1.9</td><td>19.1 ± 1.4</td><td>52.3 ± 2.8</td><td>2.0</td></tr><tr><td/><td/><td/><td/><td/><td/><td/><td/><td/><td/><td/></tr></table>

Accuracy of clean/ corrupted graph and weights.

Table content: <table><tr><td/><td/><td colspan="2">Table 4: Poisoning results with limited knowledge about the graph</td></tr><tr><td/><td/><td>(i.e. on a subgraph) after 10% changes.</td><td/></tr><tr><td>W</td><td>Ŵ</td><td>CORA-ML GCN CLN</td><td>CITESEER GCN CLN</td></tr><tr><td colspan="2">A 0.85 0.52 Â 0.83 0.49</td><td colspan="2">Clean A-Meta-Sub 21.4 ± 0.7 22.4 ± 0.4 30.9 ± 0.7 31.4 ± 0.7 16.6 ± 0.3 17.3 ± 0.3 28.5 ± 0.8 28.3 ± 0.8 Meta-Sub 21.2 ± 0.6 20.8 ± 0.3 28.7 ± 0.3 31.4 ± 0.5</td></tr></table>

Analysis of attacks. An interesting question to ask is why the adversarial changes created by our meta-gradient approach are so destructive, and what patterns they follow. If we can find out what makes an edge insertion or deletion a strong adversarial change, we can circumvent expensive metagradient computations or even use this knowledge to detect adversarial attacks.

Table content: <table><tr><td colspan="3">: Share (in %) of edge</td></tr><tr><td colspan="3">deletions (DEL) and inser-</td></tr><tr><td colspan="3">tions (INS) by Meta-Self on</td></tr><tr><td colspan="2">CORA-ML.</td><td/></tr><tr><td/><td colspan="2">c i =c j c i =c j</td></tr><tr><td>DEL</td><td>15.3</td><td>3.9</td></tr><tr><td>INS</td><td>9.4</td><td>71.4</td></tr></table>

Algorithm 1: Poisoning attack on graph neural networks with meta gradients and self-training Input: Graph G = (A, X), modification budget ∆, number of training iterations T , training class labels CL Output: Modified graph Ĝ = ( Â, X) Poisoning attack on GNNs with approximate meta gradients and self-training Input: Graph G = (A, X), modification budget ∆, number of training iterations T , gradient weighting λ, Dataset statistics.In Table6we see the characteristics of the datasets used in this work. Results for PUBMED can be found in Table8in Appendix F.

Table content: <table><tr><td colspan="4">θ ← train surrogate model on the input graph using known labels CL;</td></tr><tr><td colspan="4">ĈU ← predict labels of unlabeled nodes using θ;</td></tr><tr><td>Â ← A;</td><td/><td/></tr><tr><td colspan="4">while Â -A 0 &lt; 2∆ do</td></tr><tr><td colspan="4">randomly initialize θ0;</td></tr><tr><td colspan="4">for t in 0 . . . T -1 do</td></tr><tr><td colspan="4">θt+1 ← step (θt, ∇ θ t Ltrain(f θ t ( Â, X)); CL);</td><td>// update e.g. via gradient</td></tr><tr><td/><td colspan="3">descent</td></tr><tr><td colspan="4">// Compute meta gradient via backprop through the training</td></tr><tr><td colspan="4">procedure</td></tr><tr><td>∇ meta Â</td><td colspan="3">← ∇ ÂLself(f θ T ( Â, X); ĈU );</td></tr><tr><td colspan="3">S ← ∇ meta Â</td><td>(-2 Â + 1) ;</td><td>// Flip gradient sign of node pairs with edge</td></tr><tr><td colspan="4">e ← maximum entry (u, v) in S that fulfills constraints Φ(G);</td></tr><tr><td colspan="4">Â ← insert or remove edge e to/from Â;</td></tr><tr><td colspan="2">Ĝ ← ( Â, X);</td><td/></tr><tr><td>return :</td><td>Ĝ</td><td/></tr><tr><td colspan="4">Algorithm 2: training class labels CL</td></tr><tr><td colspan="4">Output: Modified graph Ĝ = ( Â, X)</td></tr><tr><td colspan="4">θ ← train surrogate model on the input graph using known labels CL;</td></tr><tr><td colspan="4">ĈU ← predict labels of unlabeled nodes using θ;</td></tr><tr><td>Â ← A;</td><td/><td/></tr><tr><td colspan="4">while Â -A 0 &lt; 2∆ do</td></tr><tr><td colspan="4">randomly initialize θ0;</td></tr><tr><td>∇ meta Â</td><td colspan="3">← λ∇ ÂLtrain(f θ 0 ( Â; X); CL) + (1 -λ)∇ ÂLself(f θ 0 ( Â; X); ĈU )</td></tr><tr><td colspan="4">for t in 0 . . . T -1 do</td></tr><tr><td colspan="4">θt+1 ← step (θt, ∇ θ t Ltrain(f θ t ( Â, X)); CL);</td><td>// update e.g. via gradient</td></tr><tr><td/><td colspan="3">descent</td></tr><tr><td colspan="4">θt+1 ← stop gradient(θt+1) ;</td><td>// no backprop through training</td></tr><tr><td colspan="2">∇ meta Â</td><td colspan="2">← ∇ meta Â + λ∇ ÂLtrain(f θt+1 ( Â; X); CL) + (1 -λ)∇ ÂLself(f θt+1 ( Â; X); ĈU )</td></tr><tr><td colspan="3">S ← ∇ meta Â</td><td>(-2 Â + 1) ;</td><td>// Flip gradient sign of node pairs with edge</td></tr><tr><td colspan="4">e ← maximum entry (u, v) in S that fulfills constraints Φ(G);</td></tr><tr><td colspan="4">Â ← insert or remove edge e to/from Â;</td></tr><tr><td colspan="2">Ĝ ← ( Â, X);</td><td/></tr><tr><td>return :</td><td>Ĝ</td><td/></tr></table>

Misclassification rate (in %) with 10% perturbations in edges / node features. For Meta-Self with features, at each step the perturbation (edge or feature) is selected that has the highest meta gradient score.

Table content: <table><tr><td/><td colspan="2">CITESEER</td></tr><tr><td/><td>GCN</td><td>CLN</td></tr><tr><td>Clean</td><td colspan="2">28.5 ± 0.9 28.3 ± 0.8</td></tr><tr><td colspan="3">Meta-Self with features 37.2 ± 1.1 34.2 ± 0.7</td></tr><tr><td>Meta-Self</td><td colspan="2">38.6 ± 1.0 35.3 ± 0.7</td></tr></table>

Table 11 displays results when training the surrogate model for T = 10 iterations to obtain the (meta) gradients. Finally, Figures 5 through 12 show how the respective models' classification accuracies change for different attack methods and datasets. Misclassification rate (in %) with 5% perturbed edges onPUBMED Sen et al. (2008)  when training the surrogate model for T = 30 iterations to compute the approximate meta gradients.

Table content: <table><tr><td/><td/><td>PUBMED</td></tr><tr><td/><td>GCN</td><td>CLN</td><td>DeepWalk</td></tr><tr><td>Clean</td><td colspan="3">13.8 ± 0.3 15.9 ± 0.5 21.8 ± 0.1</td></tr><tr><td>DICE</td><td colspan="3">15.3 ± 0.1 16.6 ± 0.4 25.1 ± 0.1</td></tr><tr><td colspan="4">A-Meta-Self 16.4 ± 0.2 16.4 ± 0.4 27.4 ± 0.2</td></tr></table>

Misclassification rate (in %) with 1% perturbed edges. ± 0.4 18.2 ± 0.2 20.6 ± 0.3 29.1 ± 0.5 28.6 ± 0.5 34.7 ± 0.5 8.9 ± 2.9 10.2 ± 1.9 5.0 ± 0.2 4.7 A-Meta-Both 17.4 ± 0.4 17.6 ± 0.2 21.6 ± 0.3 28.5 ± 0.4 28.3 ± 0.5 34.6 ± 0.3 13.7 ± 1.6 10.4 ± 1.2 7.5 ± 0.6 3.6 Meta-Train 16.2 ± 0.3 18.0 ± 0.3 20.6 ± 0.4 28.3 ± 0.5 28.1 ± 0.6 35.3 ± 0.3 9.4 ± 1.1 10.3 ± 1.7 7.3 ± 2.5 4.8 Meta-Self 17.0 ± 0.4 17.9 ± 0.2 21.1 ± 0.3 29.2 ± 0.5 29.0 ± 0.4 35.2 ± 0.3 11.4 ± 0.4 10.7 ± 1.7 6.6 ± 1.4 2.7

Table content: <table><tr><td/><td/><td>CORA</td><td/><td/><td>CITESEER</td><td/><td/><td>POLBLOGS</td><td/><td>Avg.</td></tr><tr><td>Attack</td><td>GCN</td><td>CLN</td><td>DeepWalk</td><td>GCN</td><td>CLN</td><td>DeepWalk</td><td>GCN</td><td>CLN</td><td colspan="2">DeepWalk rank</td></tr><tr><td>Clean</td><td colspan="6">16.6 ± 0.3 17.3 ± 0.3 20.3 ± 0.9 28.5 ± 0.8 28.3 ± 0.8 34.8 ± 1.3</td><td>6.4 ± 0.5</td><td>7.6 ± 0.5</td><td>5.3 ± 0.5</td><td>6.3</td></tr><tr><td>DICE</td><td colspan="6">16.6 ± 0.3 17.6 ± 0.2 20.1 ± 0.2 28.4 ± 0.3 28.4 ± 0.3 35.9 ± 0.3</td><td>7.7 ± 0.9</td><td>8.5 ± 0.6</td><td>7.4 ± 1.0</td><td>4.8</td></tr><tr><td>First-order</td><td colspan="6">16.6 ± 0.3 17.3 ± 0.1 20.2 ± 0.2 28.2 ± 0.3 28.3 ± 0.4 34.9 ± 0.4</td><td>7.0 ± 0.8</td><td>7.7 ± 0.5</td><td>8.5 ± 1.6</td><td>5.7</td></tr><tr><td>Nettack  *</td><td>-</td><td>-</td><td>-</td><td colspan="3">29.0 ± 0.4 28.6 ± 0.4 36.4 ± 0.4</td><td>-</td><td>-</td><td>-</td><td>-</td></tr><tr><td>A-Meta-Train</td><td>16.3</td><td/><td/><td/><td/><td/><td/><td/><td/></tr></table>

Misclassification rate (in %) with 10% perturbed edges.

Table content: <table><tr><td/><td/><td>CORA</td><td/><td/><td>CITESEER</td><td/><td/><td>POLBLOGS</td><td/><td>Avg.</td></tr><tr><td>Attack</td><td>GCN</td><td>CLN</td><td>DeepWalk</td><td>GCN</td><td>CLN</td><td>DeepWalk</td><td>GCN</td><td>CLN</td><td colspan="2">DeepWalk rank</td></tr><tr><td>Clean</td><td colspan="6">16.6 ± 0.3 17.3 ± 0.3 20.3 ± 1.0 28.5 ± 0.8 28.3 ± 0.8 34.8 ± 1.3</td><td>6.4 ± 0.5</td><td>7.6 ± 0.5</td><td>5.3 ± 0.5</td><td>7.5</td></tr><tr><td>DICE</td><td colspan="9">19.5 ± 0.5 19.1 ± 0.2 26.2 ± 0.3 29.7 ± 0.3 29.9 ± 0.3 41.2 ± 0.3 14.4 ± 0.8 14.3 ± 0.6 12.9 ± 0.3</td><td>4.9</td></tr><tr><td>First-order</td><td colspan="6">17.6 ± 0.5 17.9 ± 0.2 21.5 ± 0.2 28.2 ± 0.3 28.7 ± 0.4 32.4 ± 0.4</td><td>7.7 ± 0.6</td><td>7.6 ± 0.3</td><td>8.2 ± 0.6</td><td>7.1</td></tr><tr><td>Nettack  *</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr></table>

Misclassification rate (in %) with 5% perturbed edges and only training the surrogate model for T = 10 iterations to obtain the (meta-) gradients.

Table content: <table><tr><td/><td/><td>CORA</td><td/><td/><td>CITESEER</td><td/><td/><td>POLBLOGS</td><td>Avg.</td></tr><tr><td>Attack</td><td>GCN</td><td>CLN</td><td>DeepWalk</td><td>GCN</td><td>CLN</td><td>DeepWalk</td><td>GCN</td><td>CLN</td><td>DeepWalk rank</td></tr><tr><td>Clean</td><td colspan="2">16.6 ± 0.3 17.3 ± 0.</td><td/><td/><td/><td/><td/><td/><td/></tr></table>

Peer review (iclr2019):
 This paper studied data poisoning attacking for graph neural networks. The authors proposed treating graph structures as hyperparameters and leveraged recent progress on meta-learning for optimizing the adversarial attacks. Different from some recent work on adversarial attacks for graph neural networks (Zuigner et al. 2018; Dai et al. 2018), which focus on attacking specific nodes, this paper focuses on attacking the overall performance of graph neural networks. Experiments on a few data sets prove the effectiveness of the proposed approach. Strength: - the studied problem is very important and recently attracting increasing attention - Experiments show that the proposed method is effective. Weakness: - the complexity of the proposed method seems to be very high - the data sets used in the experiments are too small Details: -- the complexity of the proposed method seems to be very high. The authors should explicitly discuss the complexity of the proposed method. -- the data sets in the experiments are too small. Some large data sets would be much more compelling. -- Are the adversarial examples identified by the proposed method transferrable to other graph embedding algorithms (e.g., the unsupervised node embedding methods, DeepWalk, LINE, and node2vec)? -- I like Figure 3, though some concrete examples would be more intuitive.