This is done using Latent Dirichlet Allocation (LDA). The original algorithm was published by David Blei et al over ten years ago, link to the paper: http://machinelearning.wustl.edu/mlpapers/paper_files/BleiNJ...
There are many machine learning libraries that have good implementations of LDA (e.g. Gensim), so it should be "relatively" straightforward to create the topics and clustering based on the abstracts of the papers.