Skip to content

soot-bit/MovieRecommender

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

X (formerly Twitter) URL

Recommender System

This repository contains a recommender system implemented using NumPy, Jax and CUDA. The system uses collaborative filtering techniques to generate personalized recommendations based on user-item interaction data.

Features

  • Collaborative Filtering: Implements matrix factorization to learn user and item representations.
  • Alternating Least Squares (ALS): Parallisable optimising
  • Datastructrue A custom data structure usign hash tables and indexing for fast retrieval
  • Bias Handling: Incorporates user and item biases for improved recommendation accuracy.

Installation

To set up the recommender system, follow these steps:

  1. Clone the repository:
  2. Train the model:
  3. Make predictions:

File Structure

MovieRecommender/
│
├── src/                   
│   ├── cpp/                 # C++/CUDA backend (ongoing .. )
│   │   |
│   │   ├──  # Header file with declarations
│   │   ├──  # CUDA code gpu
│   │   └── Makefile         
│   ├── jax/                 # JAX implementation
│   │   └── model.py 
│   │           
│   ├── bindings/          
│   │   ├── recommender_pybind.cpp 
│   │   └── setup.py        
│   └── common/              # Shared utilities 
│       ├── data_loader.py  
│       └── config.py        
│
├── main.py/                  # Main 
│   ├── train           
│   ├── recommend       
│   ├── benchmark       #  C++/CUDA vs JAX
│   └── config.yaml        
│
├── Data/                # Movie data and model storage
│   ├── 100k.csv         
│   ├── 25M.csv        
│   └── models/            
│
└── README.md             

link for 25 million dataset

About

A movie recommender system + detailed report

Resources

License

Stars

Watchers

Forks

Packages

No packages published