Logo Lanfrica

rexsimiloluwah/movie_recsys_project

Record type:

project
Creator:
rex
Host:
Implementation of a movie recommendation system for the Applied ML at Scale course taught by Prof. Ulrich Paquet at AIMS South Africa # Collaborative Filtering-based Recommendation System using the MovieLens 32M Dataset This project implements high-performance Matrix Factorization (MF) algorithms (bias-only baseline, standard MF using user and item latent vectors, hybrid MF incorporating genre-based feature priors) using **Alternating Least Squares (ALS)** for a collaborative filtering-based movie recommendation system. It leverages **Numba JIT compilation** and **Sparse Matrices** to scale and optimize training on the MovieLens 32M dataset. ## πŸ”— Links - - **πŸ“„ View Project Report** ## Tools Used - **uv** - For managing dependencies and virtual environment in Python. - **Numba**: JIT compiler for accelerating ALS training loops. - **OmegaConf**: Experiment configuration management. ## πŸ“‚ Project Structure ```text . β”œβ”€β”€ configs/ # OmegaConf configuration files β”œβ”€β”€ data/ # Raw MovieLens 32M dataset β”œβ”€β”€ figures/ # Generated plots β”œβ”€β”€ logs/ # Execution logs β”œβ”€β”€ notebooks/ # Jupyter notebooks for experimentation β”‚ β”œβ”€β”€ eda.ipynb # Exploratory Data Analysis β”‚ β”œβ”€β”€ experiments.ipynb # Unoptimized models β”‚ └── experiments_optimized.ipynb # Optimized models (using Numba) β”œβ”€β”€ report/ # LaTeX report and PDF β”œβ”€β”€ results/ # Serialized model weights (.npz) and metrics β”œβ”€β”€ scripts/ # CLI scripts for downloading data, etc. β”œβ”€β”€ src/ # Source code package β”‚ β”œβ”€β”€ data/ # Dataset loading, indexing, splitting β”‚ β”œβ”€β”€ models/ # ALS models implementations β”‚ β”œβ”€β”€ inference/ # Inference helpers β”‚ └── utils/ # Logging, plotting, and serialization helpers └── pyproject.toml # Project dependencies ``` ## Key Files & Modules - `notebooks/experiments_optimized.ipynb`: The primary entry point for experiments. Runs full-scale training, hyperparameter tuning, and gen …