DuSt9 / recommend-lib

fair comparison for recommender system benchmarks

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Daisy

This repository is now use to store some raw-input algorithm for learning and no longer providing bug-fix.

anyone interested in this repository can come [here](https://github.com/AmazingDD/daisyRec), I write a more standard python toolkit of Daisy in that repo.


Overview

Daisy is a Python toolkit that deal with rating prediction and item ranking issue.

The name DAISY (roughly :) ) stands for Di's fAIr compArIson for recommender SYstem.

  1. you can also download experiment data from links below:

    then put certain dataset into corresponding folder in data folder.

  2. Item-Ranking recommendation algorithms reimplementation with pytorch, tensorflow, numpy and scipy.

  3. Before running, you need first run python setup.py build_ext --inplace to generate .so file for macOS or .pyd file for WindowsOS used for further import.

make sure you have a CUDA enviroment to accelarate since these deep-learning models could be based on it.

List of all algorithms

Algo. File Refer.
Popular MostPopRecommender.py -
Item-KNN ItemKNNRecommender.py -
User-KNN UserKNNRecommender.py -
SLiM SLiMRecommender.py SLIM: Sparse Linear Methods for Top-N Recommender Systems
MF MFRecommender.py Probabilistic matrix factorization
PureSVD PureSVDRecommender.py Performance of recommender algorithms on top-N recommendation tasks
SVD++ SVDppRecommender.py Factorization meets the neighborhood: a multifaceted collaborative filtering model
WRMF WRMFRecommender.py Collaborative Filtering for Implicit Feedback Datasets
BPR-MF BPRMFRecommender.py BPR: Bayesian Personalized Ranking from Implicit Feedback
BPR-FM BPRFMRecommender.py BPR: Bayesian Personalized Ranking from Implicit Feedback
FM NFMRecommender.py Factorization Machines
NeuFM NFMRecommender.py Neural Factorization Machines for Sparse Predictive Analytics
NeuMF NCFRecommender.py Neural Collaborative Filtering
Item2Vec Item2VecRecommender.py Item2Vec: Neural Item Embedding for Collaborative Filtering
AutoRec IAutoRecommender.py AutoRec: Autoencoders Meet Collaborative Filtering

Examples to run:

Default set top-K number to 10, you can change top-K number by modifying topk argument.

python ItemKNNRecommender.py --sim_method=pearson
python UserKNNRecommnder.py --sim_method=jaccard
python MFRecommender.py --biased=False
python NFMRecommender.py --batch_size=128 --lr=0.05 --model=FM

Help message will give you more detail description for arguments, For example:

python NFMRecommender.py --help

Benchmarks

Here are the Precision, Recall, MAP, NDCG, MRR of various algorithms on a 5-fold cross validation procedure. The code for generating these tables is shown in each Recommender.py.


License

Here is a Bibtex entry if you ever need to cite Daisy in a research paper (please keep us posted, we would love to know if Daisy was helpful to you):

@Misc{,
author =   {},
title =    {},
howpublished = {\url{}},
year = {2020}
}

Development Status

Starting from version 1.0.0, we will only provide bugfixes. No new algorithms will be considered.

For bugs, issues or questions about Daisy, please use the GitHub project page. Please don't send emails (we will not answer).

About

fair comparison for recommender system benchmarks

License:MIT License


Languages

Language:Python 100.0%