Skip to content

This repository offers a movie recommendation system that uses Neural Collaborative Filtering and Non-negative Matrix Factorization (NNMF) for generating user-item matrices, combined with Cuckoo-Search and K-means clustering for optimization. The algorithm leverages collaborative filtering to make fast movie suggestions based on single preferences

License

Notifications You must be signed in to change notification settings

jacopo-tarantino/MRS-through-Neural-Collaborative-Filtering-NNMF-and-Cuckoo-Search-K-means

Repository files navigation

CuckooSearch-Kmeans Algorithm

Made by me and my estimated collegue Ortensia Forni
CuckooSearch-Kmeans algorithm (CS-Kmeans) is a learning framework to make recommendations. The key idea is to learn the user-item interaction using matrix factorization (MF) or neural collaborative filtering (NCF) to project them into a latent space and explore the latter to find the best clusterization to use as input a model-based collaborative filtering algorithm.

Dataset

ratings.csv is used to train and test the model and movies.csv to get titles of recommended movies.

Files

project.pdf: contains full project pdf, made for an university project.

methods.py: contains the cuckoo search, k-means, cuckoo-kmeans and relative cross validation

utils.py: some handy functions for model training etc.

nnls.py and NonNegativeMatrixFactorization.py: Block Principal Pivoting Method and Non Negative Matrix Factorization

function.py: objective function environment

run_examples.ipynb: runs cuckooo search on some test functions as Ackley and Himmelbau

run_mf.ipynb: runs matrix factorization (MF), cross validating it and producing user_latent_matrix_mf.py

run_ncf.ipynb: runs neural collaborative filtering (NCF), cross validating it and producing user_latent_matrix_ncf.py

user_latent_matrix_mf.py and user_latent_matrix_ncf.py: user latent matrices produced respectively by MF and NCF methods

main.ipynb: runs the CS-Kmeans algorithm implemented with both MF and NCF and tests their accuracies

About

This repository offers a movie recommendation system that uses Neural Collaborative Filtering and Non-negative Matrix Factorization (NNMF) for generating user-item matrices, combined with Cuckoo-Search and K-means clustering for optimization. The algorithm leverages collaborative filtering to make fast movie suggestions based on single preferences

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published