I was wondering, how can I be up to date with the latest trends and most important papers in machine learning research? various conferences and indexed journals exists, but it's hard to keep track of all of them, or to know which ones are more relevant in the field.
NeurIPS analyzer allows you to respond to two main questions:
- What are the most important 7 groups of papers by year?
- What is the evolution of topics over the years?
It also allows you to search for specific keywords in the papers.
In order to generate the paper groups, NeurIPS papers were downloaded, including years from 2010 to 2025, from the oficial NeurIPS website.
Then, the all-MiniLM-L6-v2 embedding model from the sentence-transformers library is used to generate
embeddings for each paper abstract. As you can see on hugging face embed benchmarks
this model has a good trade-off between model size and accuracy.
After that, the KMeans clustering algorithm is used to group the papers into 7 clusters. The number 7
was chosen after some experimentation with elbow method and silhouette score, where 4, 5 and 7
clusters had the maximum scores, cluster number from 3 to 15 were tested. Even if the maximum
score was for 4 clusters, I found that 7 clusters gave more interpretable results.
As you can see in pipeline/run.py it orchestrates the whole process, assuming than
the papers are already downloaded in the paper_list folder.
It executes the following steps:
- Load the papers from the
paper_listfolder and store them insqlitedatabase. - Generate embeddings for each paper abstract and store them in the database using
GaussianMixtureto allow soft clustering. - For each year from 2010 to 2025, cluster the papers into 7 clusters using KMeans.
- For each cluster, get the first 20 most relevant papers to the cluster center and generate a cluster name and description.
- Generate umap visualizations for each year, and store them in sqlite database.
