lib
librec
pypi i librec
lib

librec

Versatile End-to-End Recommender System

by massquantity

0.0.5 (see all)License:MIT
pypi i librec
Readme

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

AlgorithmCategoryPaper
userKNN / itemKNNpureItem-Based Collaborative Filtering Recommendation Algorithms
SVDpureMatrix Factorization Techniques for Recommender Systems
SVD ++pureFactorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model
superSVDpureFactorization Meets the Neighborhood: a Multifaceted Collaborative Filtering Model
ALSpure1. 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
NCFpureNeural Collaborative Filtering
BPRpureBPR: Bayesian Personalized Ranking from Implicit Feedback
Wide & DeepfeatWide & Deep Learning for Recommender Systems
FMfeatFactorization Machines
DeepFMfeatDeepFM: A Factorization-Machine based Neural Network for CTR Prediction
Youtube-RecommendationfeatDeep Neural Networks for YouTube Recommendations

GitHub Stars

149

LAST COMMIT

5mos ago

MAINTAINERS

1

CONTRIBUTORS

2

OPEN ISSUES

28

OPEN PRs

0
VersionTagPublished
0.0.5
3yrs ago
0.0.4
3yrs ago
0.0.2
3yrs ago
0.0.1
3yrs ago
No alternatives found
No tutorials found
Add a tutorial