I am interested in Deep Learning and have been trying to keep pace with the rapidly evolving field. In my last internship, I worked on designing new pooling layers for Graph Neural Networks. My work finds application in tasks involving graphs, e.g., from finding toxicity of Molecule/Drug to learning attributes about users on a social network.
AAAI 2020 - ASAP: Adaptive Structure Aware Pooling for Learning Hierarchical Graph Representations
ASAP: Adaptive Structure Aware Pooling for Learning Hierarchical Graph Representations
Source code for AAAI 2020 paper: ASAP: Adaptive Structure Aware Pooling for Learning Hierarchical Graph Representation
Overview of ASAP: ASAP initially considers all possible local clusters with a fixed receptive field for a given input graph. It then computes the cluster membership of the nodes using an attention mechanism. These clusters are then scored using a GNN. Further, a fraction of the top scoring clusters are selected as nodes in the pooled graph and new edge weights are computed between neighboring clusters. Please refer to Section 4 of the paper for details.
main.py- contains the driver code for the whole project
asap_pool.py- source code for ASAP pooling operator proposed in the paper
le_conv.py- source code for LEConv GNN used in the paper
asap_pool_model.py- a network which uses ASAP pooling as pooling operator
The Machine Learning domain is quite lucky in the sense that the tools needed for research and deployment are open-sourced. Major libraries like
sklearn are all maintained actively by the open-source community.
My research stack primarily includes
Pytorch library. For the purpose of working in the graph domain, I had to use
Pytorch_Geometric which is a library made on top of Pytorch. Its maintainer has done tremendous work in building and keeping it up to date. So whenever I ran into problems or implemented a new feature for my research work, I made it sure to package it properly and merge it to
Pytorch_Geometric so that others can use it too.
For managing sessions on the GPU server, I used
tmux client so that if my personal machine turns off, the session is still alive on the server to which I can connect later.
To collaborate with my mentor I used
It took 3.5 months of consistent work and frequent iterations to submit our work which was accepted as a long paper at AAAI 2020 (a top-tier ML conference). This would not be possible without all the open-source tools available to me for research. I am grateful to the open-source community for sharing their work. Realizing the impact of open-source tools on my workflow motivates me to spend my free time in contributing to open-source projects.