DEMO: Disentangled Molecular Graph Generation via an Invertible Flow Model

Changsheng Ma, Qiang Yang, Xin Gao, Xiangliang Zhang

Research output: Chapter in Book/Report/Conference proceedingConference contribution

4 Scopus citations


Molecular graph generation via deep generative models has attracted increasing attention. This is a challenging problem because it requires optimizing a given objective under a huge search space while obeying the chemical valence rules. Although recently developed molecular generation models have achieved promising results on generating novel, valid and unique molecules, few efforts have been made toward interpretable molecular graph generation. In this work, we propose DEMO, a flow-based model for DisEntangled Molecular graph generatiOn in a completely unsupervised manner, which is able to generate molecular graphs w.r.t. the learned disentangled latent factors that are relevant to molecular semantic features and interpretable structural patterns. Specifically, DEMO is composed of a VAE-encoder and a flow-generator. The VAE-encoder focuses on extracting global features of molecular graphs, and the flow-generator aims at disentangling these features to be corresponding to certain types of understandable molecular structure features while learning data distributions. To generate molecular graphs, DEMO simply runs the flow-generator in the reverse order due to the reversibility of the flow-based models. Extensive experimental results on two benchmark datasets demonstrate that DEMO outperforms the state-of-the-art methods in molecular generation, and takes the first step in interpretable molecular graph generation.
Original languageEnglish (US)
Title of host publicationProceedings of the 31st ACM International Conference on Information & Knowledge Management
Number of pages10
ISBN (Print)9781450392365
StatePublished - Oct 17 2022


Dive into the research topics of 'DEMO: Disentangled Molecular Graph Generation via an Invertible Flow Model'. Together they form a unique fingerprint.

Cite this