Skip to content

sisinflab/Sub-id-Popularity

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Balancing Accuracy and Novelty with Sub-Item Popularity

This is the official repository for the paper "Balancing Accuracy and Novelty with Sub-Item Popularity", published at the 19th ACM Conference on Recommender Systems (RecSys '25).

In the realm of music recommendation, sequential recommenders have shown promise in capturing the dynamic nature of music consumption. A key characteristic of this domain is repetitive listening, where users frequently replay familiar tracks. To capture these repetition patterns, recent research has introduced Personalised Popularity Scores (PPS), which quantify user-specific preferences based on historical frequency. While PPS enhances relevance in recommendation, it often reinforces already-known content, limiting the system’s ability to surface novel or serendipitous items—key elements for fostering long-term user engagement and satisfaction. To address this limitation, we build upon RecJPQ, a Transformer-based framework initially developed to improve scalability in large-item catalogues through sub-item decomposition. We repurpose RecJPQ’s sub-item architecture to model personalised popularity at a finer granularity. This allows us to capture shared repetition patterns across sub-embeddings—latent structures not accessible through item-level popularity alone. We propose a novel integration of sub-ID-level personalised popularity within the RecJPQ framework, enabling explicit control over the trade-off between accuracy and personalised novelty. Our sub-ID-level PPS method (sPPS) consistently outperforms item-level PPS by achieving significantly higher personalised novelty without compromising recommendation accuracy.

Our code is based on the aprec framework from this reproducibility work, so you can use the original documentation to learn how to use the framework.

Enviromental Setup

This guide provides a step-by-step walkthrough to reproduce our results. The instructions have been tested on an Ubuntu 22.04 LTS machine equipped with an NVIDIA RTX 3090 GPU.

Set up the Python environment using venv with the following steps:

python3 -m venv <your working directory>/.venv
echo 'export PYTHONPATH=<your working directory>:$PYTHONPATH' >> .venv/bin/activate 
source .venv/bin/activate 
pip install -r requirements.txt 

Running experiments

1.Open the evaluation directory

cd <your working directory> 
cd evaluation 

2.Reproducing the Experiments from the Paper

To reproduce the experiments presented in the paper, execute the run_n_experiments.sh script using the appropriate configuration file. The configuration files corresponding to the experiments can be found in the configs/ directory. To launch the experiments, run the following command:

Yandex music event:

sh run_n_experiments.sh yandex_common_benchmark.py

Last.fm-1K:

sh run_n_experiments.sh lastfm_common_benchmark.py

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors