A collaborative-filtering and content-based recommender system for both explicit and implicit datasets.
Project description
LibRecommender
Overview
LibRecommender is an easy-to-use recommender system focused on end-to-end recommendation. The main features are:
-
Implement a number of popular recommendation algorithms such as SVD, DeepFM, BPR etc.
-
Allow user to use pure behavior features as well as other meta features.
-
Automatically convert categorical features to sparse representation, thus ease the memory usage.
-
Enable negative sampling for implicit dataset.
-
Using Cython or Tensorflow to accelerate model training.
-
Provide end-to-end workflow, i.e. data handling / preprocessing -> model training -> evaluate -> serving.
Usage
from libreco.dataset import DatasetFeat
from libreco.algorithms import DeepFMFeat
conf = {
"data_path": "path/to/your/data",
"length": 500000,
"user_col": 0,
"item_col": 1,
"label_col": 2,
"numerical_col": [4],
"categorical_col": [3, 5, 6, 7, 8],
"merged_categorical_col": None,
"user_feature_cols": [3, 4, 5],
"item_feature_cols": [6, 7, 8],
"convert_implicit": True,
"build_negative": True,
"num_neg": 2,
# "batch_size": 2048,
"sep": ",",
}
dataset = DatasetFeat(include_features=True)
dataset.build_dataset(**conf)
dfm = DeepFMFeat(lr=0.0002, n_epochs=10000, reg=0.1, embed_size=50,
batch_size=2048, dropout=0.0, task="ranking", neg_sampling=True)
dfm.fit(dataset, pre_sampling=False, verbose=1)
print(dfm.predict(1959, 1992))
print(dfm.recommend_user(19500, 7))
Data Format
Installation & Dependencies
- Python 3.5 +
- tensorflow >= 1.12
- numpy >= 1.13
- pandas >= 0.21.0
- scipy >= 0.19.1
- scikit-learn >= 0.20.1
References
Algorithm | Category | Paper |
---|---|---|
userKNN / itemKNN | pure | Item-Based Collaborative Filtering Recommendation Algorithms |
SVD | pure | Matrix Factorization Techniques for Recommender Systems |
SVD ++ | pure | Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model |
superSVD | pure | Factorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model |
ALS | pure | 1. Matrix Completion via Alternating Least Square(ALS) / 2. Collaborative Filtering for Implicit Feedback Datasets / 3. Applications of the Conjugate Gradient Method for Implicit Feedback Collaborative Filtering |
NCF | pure | Neural Collaborative Filtering |
BPR | pure | BPR: Bayesian Personalized Ranking from Implicit Feedback |
Wide & Deep | feat | Wide & Deep Learning for Recommender Systems |
FM | feat | Factorization Machines |
DeepFM | feat | DeepFM: A Factorization-Machine based Neural Network for CTR Prediction |
Youtube-Recommendation | feat | Deep Neural Networks for YouTube Recommendations |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.