Graph Partitioning via Embedding

 

Project contacts:

Project description:

Graphs have been frequently used by computer scientists as abstractions. Graph partitioning is one of the fundamental algorithmicoperations in many domains such as complexity reduction or parallelization. With the advent of ever larger instances in applications such as scientific simulation, social networks, or road networks, graph partitioning is even more important and challenging. There are various techniques for graph partitioning: topology based techniques, where we use the node connectivity to perform graph partitioning; Geometry based techniques, where nodes of the graph are points in our metric space; embedding techniques where we apply embedding based methods to map nodes of our graph to points in our metric space and use this extra information to help us perform the partitioning.  There exist various embedding techniques such as node2vec[1], spectral graph embedding techniques[2], graph knowledge techniques[3] etc. These methods use different algorithms to map nodes of a graph to points in a metric space. The goal of this project is to compare various graph embedding techniques and find cons and pros of each method for graph partitioning. Various open source embedding algorithms exist that you can choose and work on (at least four different algorithms). You can write the graph partitioning algorithm from scratch or modify an existing approach to accept embedding of a graph as an input and performs graph partitioning. The quality of the graph partitioning is edge cut (#edges that connects different partitions)and you can focus on 2 partitions only and if you have time, move on to larger partitions. For the embedding algorithm you should look at methods based on (Node2vec, spectral, knowledge graph, and the last is your choice).

Hardware: