# Graph Neural Network to Dilute Outliers for Refactoring Monolith Application

arXiv: https://arxiv.org/abs/2102.03827 · HTML: https://mlsanity.com/paper/2102.03827/

## Key facts

- Cited by 9 papers in the map (data through 14 Oct 2026).
- Builds on 16 of its 35 references that are in the map.
- First posted on arXiv 7 Feb 2021.

## Builds on (most cited first, 16 of 16)

- [Adam: A Method for Stochastic Optimization](https://mlsanity.com/paper/1412.6980/) (2014)
- [Semi-Supervised Classification with Graph Convolutional Networks](https://mlsanity.com/paper/1609.02907/) (2016)
- [Neural Message Passing for Quantum Chemistry](https://mlsanity.com/paper/1704.01212/) (2017)
- [A Comprehensive Survey on Graph Neural Networks](https://mlsanity.com/paper/1901.00596/) (2019)
- [node2vec: Scalable Feature Learning for Networks](https://mlsanity.com/paper/1607.00653/) (2016)
- [DeepWalk: Online Learning of Social Representations](https://mlsanity.com/paper/1403.6652/) (2014)
- [Variational Graph Auto-Encoders](https://mlsanity.com/paper/1611.07308/) (2016)
- [Deep Graph Infomax](https://mlsanity.com/paper/1809.10341/) (2018)
- [Representation Learning on Graphs: Methods and Applications](https://mlsanity.com/paper/1709.05584/) (2017)
- [Towards K-means-friendly Spaces: Simultaneous Deep Learning and Clustering](https://mlsanity.com/paper/1610.04794/) (2016)
- [word2vec Explained: deriving Mikolov et al.'s negative-sampling word-embedding method](https://mlsanity.com/paper/1402.3722/) (2014)
- [Attributed Graph Clustering via Adaptive Graph Convolution](https://mlsanity.com/paper/1906.01210/) (2019)
- [Outlier Aware Network Embedding for Attributed Networks](https://mlsanity.com/paper/1811.07609/) (2018)
- [Semi-supervised Embedding in Attributed Networks with Outliers](https://mlsanity.com/paper/1703.08100/) (2017)
- [Integrating Network Embedding and Community Outlier Detection via Multiclass Graph Description](https://mlsanity.com/paper/2007.10231/) (2020)
- [From Monolith to Microservices: A Classification of Refactoring Approaches](https://mlsanity.com/paper/1807.10059/) (2018)

## Built on by (most cited first, 9 of 9)

- [A Survey of Imbalanced Learning on Graphs: Problems, Techniques, and Future Directions](https://mlsanity.com/paper/2308.13821/) (2023)
- [Finding Heterophilic Neighbors via Confidence-based Subgraph Matching for Semi-supervised Node Classification](https://mlsanity.com/paper/2302.09755/) (2023)
- [Use of Graph Neural Networks in Aiding Defensive Cyber Operations](https://mlsanity.com/paper/2401.05680/) (2024)
- [Towards Automated Evaluation of Explanations in Graph Neural Networks](https://mlsanity.com/paper/2106.11864/) (2021)
- [Extracting Overlapping Microservices from Monolithic Code via Deep Semantic Embeddings and Graph Neural Network-Based Soft Clustering](https://mlsanity.com/paper/2508.07486/) (2025)
- [An Expert System for Redesigning Software for Cloud Applications](https://mlsanity.com/paper/2109.14569/) (2021)
- [Monolith to Microservices: Representing Application Software through Heterogeneous Graph Neural Network](https://mlsanity.com/paper/2112.01317/) (2021)
- [Identifying Appropriately-Sized Services with Deep Reinforcement Learning](https://mlsanity.com/paper/2512.20381/) (2025)
- [MicroAgent: Context-Augmented Multi-Agent Framework for Automatic Microservice Decomposition](https://mlsanity.com/paper/2606.29742/) (2026)

## Abstract (arXiv)

Microservices are becoming the defacto design choice for software architecture. It involves partitioning the software components into finer modules such that the development can happen independently. It also provides natural benefits when deployed on the cloud since resources can be allocated dynamically to necessary components based on demand. Therefore, enterprises as part of their journey to cloud, are increasingly looking to refactor their monolith application into one or more candidate microservices; wherein each service contains a group of software entities (e.g., classes) that are responsible for a common functionality. Graphs are a natural choice to represent a software system. Each software entity can be represented as nodes and its dependencies with other entities as links. Therefore, this problem of refactoring can be viewed as a graph based clustering task. In this work, we propose a novel method to adapt the recent advancements in graph neural networks in the context of code to better understand the software and apply them in the clustering task. In that process, we also identify the outliers in the graph which can be directly mapped to top refactor candidates in the software. Our solution is able to improve state-of-the-art performance compared to works from both software engineering and existing graph representation based techniques.
