π Quick Start
Popcorn exposes a minimal, end-to-end workflow from configuration to exported artifacts.
A reproduction notebook is also provided in the repository:
π https://github.com/RecSys-lab/Popcorn/blob/main/examples/colab/popcorn_tool.ipynb
A typical run:
The preset shows a simple workflow for loading Popcornβs abstracted modules:
from popcorn.utils import readConfigs
from popcorn.optimizers.grid_search import gridSearch
from popcorn.recommenders.reclist import generateLists
from popcorn.recommenders.assembler import assembleModality
# Step-0: Read the configuration file
configs = readConfigs("popcorn/config/config.yml")
# Step-1: Data ingestion and modality assembly
trainDF, testDF, trainSet, modalitiesDict, genreDict = assembleModality(configs)
# Step-2: Apply grid search to find the best model configurations
finalModels = gridSearch(configs, trainDF, trainSet, modalitiesDict)
# Step-3: Generate recommendation lists
generateLists(configs, trainDF, trainSet, testDF, genreDict, finalModels)
Upon successful completion, the framework exports reclist.csv and metrics.csv, enabling comparable evaluation across evidence sources, granularities, fusion methods, and GenAI settings:
| Model | Scenario | NDCG@2 | Novelty | Recall@2 | Diversity | ... |
|-------|----------|--------|---------|----------|-----------|-----|
| VBPR | text | 0.421 | 11.819 | 0.558 | 0.588 | ... |
| VBPR | visual | 0.421 | 11.819 | 0.558 | 0.588 | ... |
| VBPR | cca_40 | 0.141 | 12.272 | 0.117 | 0.635 | ... |
| VBPR | pca_40 | 0.154 | 12.144 | 0.131 | 0.709 | ... |
A reproduction notebook is also provided in the repository:
https://github.com/RecSys-lab/Popcorn/blob/main/examples/colab/popcorn_tool.ipynb