"This repo is being updated. Please Watch the repo for upcoming updates and codes"
Partial implementation for : GHRS: Graph-based hybrid recommendation system with application to movie recommendation [pre-print on arXiv]
GHRS is a Graph-based hybrid recommendation system for movie recommendation
Research about recommender systems has emerged over the last decade and comprises valuable services to increase different companies' revenue. Several approaches exist in handling paper recommender systems. While most existing recommender systems rely either on a content-based approach or a collaborative approach, there are hybrid approaches that can improve recommendation accuracy using a combination of both approaches. Even though many algorithms are proposed using such methods, further improvement is still necessary. In this paper, we propose a recommender system method using a graph-based model associated with the similarity of users' ratings in combination with users' demographic and location information. By utilizing the advantages of Autoencoder feature extraction, we extract new features based on all combined attributes. Using the new set of features for clustering users, our proposed approach (GHRS) has gained a significant improvement, which dominates other methods' performance in the cold-start problem. The experimental results on the MovieLens dataset show that the proposed algorithm outperforms many existing recommendation algorithms in terms of recommendation accuracy. [1]
The framework of the proposed recommendation system. The method encodes the combined features with an autoencoder and creates the model by clustering the users using the encoded features (upper part). At last, a preference-based ranking model is used to retrieve the predicted movie rank for the target user (lower part)
- ScikitLearn
- Tensorflow
- Keras
- Networkx
Feature100K.py: Creates similarity graph between users, extracts graph features and generates the final feature vector by combining the graph features and categorized side information for users (Steps 1, 2 and 3 of GHRS) on dataset MovieLens 100K [2].
Feature1M.py: Creates similarity graph between users, extracts graph features and generates the final feature vector by combining the graph features and categorized side information for users (Steps 1, 2 and 3 of GHRS) on dataset MovieLens 1M [2].
|-datasets
| |-ml-100k # MovieLens 100K dataset files
| |-ml-1m # MovieLens 1M dataset files
|-data100k # Combined features (graph features and side information) for a specific value of alpha for dataset MovieLens 100K
| |-x_train_alpha(0.005).pkl
| |-x_train_alpha(0.01).pkl
| |...
|-data1m # Combined features (graph features and side information) for a specific value of alpha for dataset MovieLens 1M
| |-x_train_alpha(0.005).pkl
| |-x_train_alpha(0.01).pkl
| |...
| ...
If you find this research interesting or this repo useful, please cite the main article:
@article{darban2022ghrs,
title={GHRS: Graph-based hybrid recommendation system with application to movie recommendation},
author={Darban, Zahra Zamanzadeh and Valipour, Mohammad Hadi},
journal={Expert Systems with Applications},
pages={116850},
year={2022},
publisher={Elsevier}
}
[1] Darban, Z. Z., & Valipour, M. H. (2022). GHRS: Graph-based hybrid recommendation system with application to movie recommendation. Expert Systems with Applications, 116850.
[2] Harper, F. M., & Konstan, J. A. (2015). The movielens datasets: History and context. Acm transactions on interactive intelligent systems (tiis), 5(4), 1-19.