/recommender-systems

Supporting code of my ongoing Master's thesis, titled "Improving Recommender Systems through Pattern Mining".

Primary LanguageJupyter NotebookGNU General Public License v3.0GPL-3.0

Improving Recommender Systems

Quality Gate Status Bugs Code Smells Vulnerabilities Coverage

Supporting code for my Master's thesis, entitled "Comparing local neighborhood-based collaborative filtering variants: a tradeoff between prediction performance and coverage".

Code Organization

Code in this repository is composed of Python modules, notebooks, scripts and other files.

Modules

  • datasets: Dataset loading and preprocessing.
  • evaluation: Evaluation metrics.
  • pattern_mining: Pattern mining algorithms. (e.g. GreConD)
  • recommenders: Multiple Surprise based Recommender Systems implementations.

Notebooks

  • demos: Jupyter notebooks used to demonstrate the usage of the modules and concepts.
  • experiments: Jupyter notebooks used to generate the results of the experiments.
  • plots: Jupyter notebooks used to generate plots for the thesis.

Scripts and Misc

  • environment: Docker environment for running anything in this repository.
  • scripts: Support scripts for other tasks.
  • tests: Unit tests.

Unit Tests

  1. Build the environment image as described in the Environment Setup section.
  2. Run the unit tests.
    cd ci
    ./test -f # Run the complete test suite, including the notebooks and coverage analysis
    ./test -h # See help for more options
    
    This will run the unit tests inside the environment and output the results to the terminal.

Running the Notebooks

  1. Build the environment image as described in the Environment Setup section.

  2. Start the Jupyter Server

    cd environment
    
    # Run the server
    docker compose -f notebook.yml run --build --rm notebook
    
    # Or run with CUDA support
    docker compose -f notebook-cuda.yml run --build --rm notebook-cuda
  3. Either open the link printed in the terminal or connect to the server using the VSCode Jupyter extension. Check the Environment Setup section for more details.

  4. Run the notebooks in the demos and experiments directories.

Licensing and authorship

For BinaPs information, please check the BinaPs Code Authorship Disclaimer located at DISCLAIMER.

All code elsewhere is written by Bernardo C. Rodrigues and licensed under GPL-3.0-or-later. Please check COPYING for the complete license.