Open Source Contributions
Clustering for Graph-structured Data using Graph Neural Networks [PyTorch Geometric/Code]
- This contribution relates to adding up a fast, yet effective graph clustering technique to PyTorch Geometric library based on Spectral Modularity Maximization.
- A multi-layer graph convolutional network (GCN) is used to learn the hidden representations of each of the nodes in the graph.
Softmax activation is then applied to the output of GCN to obtain soft, yet differentiable
cluster assignments being made for the input graph.- Designed and implemented unit tests to confirm the correctness of the clustering technique.
- Libraries/Framework: PyTorch, PyTorch Geometric, and PyTest
Model-agnostic Graph Explainability [PyTorch Geometric/Code]
- This contribution aims at adding a Graph Explainability solution powered by hard-concrete distribution to PyTorch Geometric. based on Spectral Modularity Maximization.
Implemented a post-hoc model-agnostic graph explainability technique, which,
at every hidden layer of the GNN model, computed explanation weights for
every edge in the population and produced explanatory subgraph as output.Softmax activation is then applied to the output of GCN to obtain soft, yet
differentiable cluster assignments being made for the input graph.Implemented custom unit tests to ensure proper execution of the Graph
Explainability technique.- Libraries/Framework: Numpy, tqdm, PyTorch, PyTorch Geometric, and PyTest
Relational Graph Attention Networks [PyTorch Geometric/Code]
- This contribution relates to bringing attention to heterogeneous (relational) graphs and incorporating this relation-aware attention operator into PyTorch Geometric Library.
- Offers two different mechanisms to compute attention for relational graphs, i.e. within-relation and across-relation.
This implementation also provides four different cardinality preservation options
(additive, scaled, f-additive, and f-scaled) to further improve attention
computation for the heterogeneous graphs.- Wrote custom unit tests to verify the technique’s accuracy.
Libraries/Framework: torch-scatter, torch-sparse, PyTorch, PyTorch Geometric, and
PyTest