danielzuegner / nettack

Implementation of the paper "Adversarial Attacks on Neural Networks for Graph Data".
https://www.cs.cit.tum.de/daml/forschung/nettack/
MIT License
218 stars 56 forks source link

Possibilities of extending the nettack to the task of graph classification #8

Closed cshjin closed 5 years ago

cshjin commented 5 years ago

Hi, Daniel, I know the nettack is specifically designed for the node classification under GCN model. But will it possible to extend the nettack to graph classification using GCN.

For example, the hacky version is to a virtual node connect to all the nodes within the individual graph, and apply the nettack to attack the virtual node to mimic the attack on graphs.

Or in another approach, instead of having a specific target node, how about having a set of nodes to attack simultaneously? Those nodes are coming from the same graph in order to mispredict the graph.

danielzuegner commented 5 years ago

Hi,

thanks for your suggestions. The first question you have to answer is how to use GCN for graph classification. I don't think there's an established way to do that, but the version with the virtual node could work.

Regarding attacking multiple nodes simultaneously: that is definitely possible but will require some coding. The main question I see is how to decide which perturbation to perform: I guess a reasonable starting point would be to always perform the perturbation that yields the largest increase in loss over the whole set of nodes under attack. If these sets of nodes are to become relatively large, say more than 5 or 10 nodes, I would refer you to our latest work in which we basically attack all nodes in the graph simultaneously. You could modify the code to attack, say, a certain 10% of the nodes that you are interested in.

Let me know if I can further assist you.

Daniel

cshjin commented 5 years ago

Thanks for your insightful comments. Close the issue for now.