This package aims to provide light-weight recommendation models, mainly for implicit feedback data. We want to provide
- consistent interface for model training and inference
- flexibility for input data with
Tables.jl
package, which offers simple, but powerful abstract interface for tabular data - robust baseline metrics for classic datasets. The comparison of advanced recommendation models to these baselines turns out to be challenge.
See Getting started and examples.
Model | Ref. | Note |
---|---|---|
Most popular | ||
ItemkNN | Item-based top-N recommendation algorithms | |
Matrix factorization | Neural Collaborative Filtering vs. Matrix Factorization Revisited | Implemented algorithm is only for implicit feedback. |
BPR MF | BPR: Bayesian Personalized Ranking from Implicit Feedback | Simple SGD with negative samping is implemented instead of the original learnBPR algorithm. |
SLIM ElasticNet | Efficient Top-N Recommendation by Linear Regression SLIM: Sparse Linear Methods for Top-N Recommender Systems |
|
Random walk | Pixie: A System for Recommending 3+ Billion Items to 200+ Million Users in Real-Time |
Tuning and evaluation scripts are found in examples.
Random 80/20 split, treated as implicit feedback.
Model | Precision@10 | Recall@10 | nDCG@10 | Best parameters |
---|---|---|---|---|
Most popular | 0.1897 | 0.1182 | 0.2197 | |
ItemkNN | 0.3284 | 0.2180 | 0.3986 | weighting: BM25 |
Matrix factorization | 0.3657 | 0.2416 | 0.4402 | dimension: 32 |
BPR MF | 0.3463 | 0.2316 | 0.4083 | dimension: 512 |
SLIM ElasticNet | 0.3626 | 0.2385 | 0.4359 | k: 908 |
Random walk | 0.2634 | 0.1828 | 0.3255 | pixie_walk_length_scaling: false |
Random 80/20 split, treated as implicit feedback.
Model | Precision@10 | Recall@10 | nDCG@10 | Best parameters |
---|---|---|---|---|
Most popular | 0.1816 | 0.06661 | 0.2022 | |
ItemkNN | 0.3311 | 0.1489 | 0.3734 | weighting: TF-IDF |
Matrix factorization | 0.3752 | 0.1687 | 0.4203 | dimension: 128 |
BPR MF | 0.3358 | 0.1432 | 0.3715 | dimension: 128 |
SLIM ElasticNet | 0.3831 | 0.1792 | 0.4334 | k: 444 |
Random walk | 0.2314 | 0.09729 | 0.2665 | pixie_walk_length_scaling: false |