about
Graph Matching Networks for Learning the Similarity of Graph Structured Objects (arxiv.org)
117 points by bookofjoe on May 4, 2019 | hide | past | pdf | 6 comments on HN

In plain words: Graphs are converted into vectors for fast similarity search, and a second model scores a pair by letting their parts look at each other. Both beat carefully hand-engineered systems, including for finding similar functions to spot software vulnerabilities.

Abstract

This paper addresses the challenging problem of retrieval and matching of graph structured objects, and makes two key contributions. First, we demonstrate how Graph Neural Networks (GNN), which have emerged as an effective model for various supervised prediction problems defined on structured data, can be trained to produce embedding of graphs in vector spaces that enables efficient similarity reasoning. Second, we propose a novel Graph Matching Network model that, given a pair of graphs as input, computes a similarity score between them by jointly reasoning on the pair through a new cross-graph attention-based matching mechanism. We demonstrate the effectiveness of our models on different domains including the challenging problem of control-flow-graph based function similarity search that plays an important role in the detection of vulnerabilities in software systems. The experimental analysis demonstrates that our models are not only able to exploit structure in the context of similarity learning but they can also outperform domain-specific baseline systems that have been carefully hand-engineered for these problems.

Yujia Li, Chenjie Gu, Thomas Dullien, Oriol Vinyals, Pushmeet Kohli
arXiv:1904.12787 · cs.LG, stat.ML · submitted Apr 29, 2019 · updated May 12, 2019
abstract · pdf · html · Accepted as a conference paper at ICML 2019

add comment on HN

Thanks! Looks quite interesting. Hopefully better seamless GNN support in Julia's FluxML[1].

[1] https://github.com/FluxML/Flux.jl/issues/625

For context, determining if two graphs are isomorphic is NP-complete.
It is already all but known to be quasi-polynomial, thanks to László Babai: https://www.quantamagazine.org/graph-isomorphism-vanquished-...
Also approximate matching via spectral methods is polynomial. You basically take eigendecomposition of graph adjacency matrix and take inner product of eigenvectors, because spectrum is invariant under permutation of node labels. Works well on noise free and large graphs, because you are unlikely to be unlucky enough to land on isospectral graphs.
Graph isomorphism is actually not known to be NP-complete. Many complexity theorists believe it isn't, since if it is, then the polynomial hierarchy collapses.
I'm imagining a number of use cases for something like this in the information security domain but don't know enough about graph theory to chew into this paper. Would it be possible to do something like k-means with this to identify patterns in existing graphs as well?