All Projects → chen0040 → keras-recommender

chen0040 / keras-recommender

Licence: MIT license
Recommender built using keras

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to keras-recommender

recommender
NReco Recommender is a .NET port of Apache Mahout CF java engine (standalone, non-Hadoop version)
Stars: ✭ 35 (-2.78%)
Mutual labels:  collaborative-filtering, recommender
Librec
LibRec: A Leading Java Library for Recommender Systems, see
Stars: ✭ 3,045 (+8358.33%)
Mutual labels:  collaborative-filtering, recommender
recommender system with Python
recommender system tutorial with Python
Stars: ✭ 106 (+194.44%)
Mutual labels:  collaborative-filtering, recommender
matrix-completion
Lightweight Python library for in-memory matrix completion.
Stars: ✭ 94 (+161.11%)
Mutual labels:  collaborative-filtering
slopeone
PHP implementation of the Weighted Slope One rating-based collaborative filtering scheme.
Stars: ✭ 85 (+136.11%)
Mutual labels:  collaborative-filtering
Social-Recommendation
Summary of social recommendation papers and codes
Stars: ✭ 143 (+297.22%)
Mutual labels:  collaborative-filtering
Restricted-Boltzmann-Machine
Restricted Boltzmann Machine for collaborative filtering of movies.
Stars: ✭ 40 (+11.11%)
Mutual labels:  collaborative-filtering
Recommender
A C library for product recommendations/suggestions using collaborative filtering (CF)
Stars: ✭ 238 (+561.11%)
Mutual labels:  collaborative-filtering
datatheque.com
a data science blog
Stars: ✭ 12 (-66.67%)
Mutual labels:  collaborative-filtering
raptor
A lightweight product recommendation system (Item Based Collaborative Filtering) developed in Haskell.
Stars: ✭ 34 (-5.56%)
Mutual labels:  collaborative-filtering
tf-recsys
tf-recsys contains collaborative filtering (CF) model based on famous SVD and SVD++ algorithm. Both of them are implemented by tensorflow in order to utilize GPU acceleration.
Stars: ✭ 91 (+152.78%)
Mutual labels:  collaborative-filtering
disentangled graph collaborative filtering
Disentagnled Graph Collaborative Filtering, SIGIR2020
Stars: ✭ 118 (+227.78%)
Mutual labels:  collaborative-filtering
collaborative-filtering-in-mysql
collaborative filtering in mysql
Stars: ✭ 13 (-63.89%)
Mutual labels:  collaborative-filtering
LR-GCCF
Revisiting Graph based Collaborative Filtering: A Linear Residual Graph Convolutional Network Approach, AAAI2020
Stars: ✭ 99 (+175%)
Mutual labels:  collaborative-filtering
Recommendation.jl
Building recommender systems in Julia
Stars: ✭ 42 (+16.67%)
Mutual labels:  collaborative-filtering
Recommendationsystem
Book recommender system using collaborative filtering based on Spark
Stars: ✭ 244 (+577.78%)
Mutual labels:  collaborative-filtering
SLRC
WWW'2019: Modeling Item-Specific Temporal Dynamics of Repeat Consumption for Recommender Systems
Stars: ✭ 32 (-11.11%)
Mutual labels:  collaborative-filtering
svae cf
[ WSDM '19 ] Sequential Variational Autoencoders for Collaborative Filtering
Stars: ✭ 38 (+5.56%)
Mutual labels:  collaborative-filtering
TwoTowers
A configurable, tunable, and reproducible library for deep matching models
Stars: ✭ 66 (+83.33%)
Mutual labels:  collaborative-filtering
RecSys PyTorch
PyTorch implementations of Top-N recommendation, collaborative filtering recommenders.
Stars: ✭ 125 (+247.22%)
Mutual labels:  collaborative-filtering

keras-recommender

Recommender built using keras

The dataset is taken from ml-latest-small (MovieLens)

The trained models an be found in demo/models

Deep Learning Models

Collaborative Filtering Models

Content-based Filtering Models

Usage

The following code samples provide an illustration on both training and prediction using a deep learning model in the keras_recommender/library. Other deep learning models follow the similar training and prediction patterns.

Train CF model

To train a CF model, say CollaborativeFilteringV1, run the following commands:

pip install requirements.txt

cd demo
python collaborative_filtering_v1.py 

The training code in collaborative_filtering_v1.py is quite straightforward and illustrated below:

from sklearn.model_selection import train_test_split
import pandas as pd
from keras_recommender.library.cf import CollaborativeFilteringV1

data_dir_path = './data/ml-latest-small' # refers to demo/data/ml-latest-small folder
trained_model_dir_path = './models' # refers to demo/models folder

records = pd.read_csv(data_dir_path + '/ratings.csv')
print(records.describe())

ratings_train, ratings_test = train_test_split(records, test_size=0.2, random_state=0)

user_id_train = ratings_train['userId']
item_id_train = ratings_train['movieId']
rating_train = ratings_train['rating']

user_id_test = ratings_test['userId']
item_id_test = ratings_test['movieId']
rating_test = ratings_test['rating']

max_user_id = records['userId'].max()
max_item_id = records['movieId'].max()

config = dict()
config['max_user_id'] = max_user_id
config['max_item_id'] = max_item_id

cf = CollaborativeFilteringV1()
history = cf.fit(config=config, user_id_train=user_id_train,
                 item_id_train=item_id_train,
                 rating_train=rating_train,
                 model_dir_path=trained_model_dir_path)

metrics = cf.evaluate(user_id_test=user_id_test,
                      item_id_test=item_id_test,
                      rating_test=rating_test)

After the training is completed, the trained models will be saved as cf-v1-. in the demo/models.

Predict Rating

To use the trained CF model to predict the rating of an item by a user, you can use the following code:

from keras_recommender.library.cf import CollaborativeFilteringV1
import pandas as pd

data_dir_path = './data/ml-latest-small' # refers to demo/data/ml-latest-small folder
trained_model_dir_path = './models' # refers to demo/models folder

records = pd.read_csv(data_dir_path + '/ratings.csv')
print(records.describe())

user_id_test = records['userId']
item_id_test = records['movieId']

cf = CollaborativeFilteringV1()
cf.load_model(CollaborativeFilteringV1.get_config_file_path(trained_model_dir_path),
              CollaborativeFilteringV1.get_weight_file_path(trained_model_dir_path))

# batch prediction
predicted_ratings = cf.predict(user_id_test, item_id_test)
print(predicted_ratings)

# individual (user_id, item_id) prediction
for i in range(20):
    user_id = user_id_test[i]
    item_id = item_id_test[i]
    predicted_rating = cf.predict_single(user_id, item_id)
    print('predicted rating: ', predicted_rating)
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].