Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

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.

Files for librec, version 0.0.5
Filename, size File type Python version Upload date Hashes
Filename, size librec-0.0.5.tar.gz (855.9 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page