A tour through recommendation algorithms in python [IN PROGRESS]
This repo intends to be a tour through some recommendation algorithms in python using various dataset. Companion posts are:
Recotour: a tour through recommendation algorithms in python
RecoTour III: Variational Autoencoders for Collaborative Filtering with Mxnet and Pytorch.
At the moment the datasets included are:
Each of the two datasets is used to illustrate a set of different techniques, although I explored a wider range of techniques with the
Ponparedataset and the corresponding notebooks are, in general, more detailed.
The core of the repo are the notebooks in each directory. They intend to be self-contained and in consequence, there is some of code repetition. The code is, of course, "notebook-oriented". The notebooks have plenty of explanations and references to relevant papers or packages. My intention was to focus on the code, but you will also find some math.
This is what you will find in the notebooks:
lightGBMwith a tutorial on how to optimize gbms
xlearn
xlearn
pytorch
I have included a more modular (nicer looking) version of a possible final solution (described in
Chapter16_final_solution_Recommendations.ipynb) in the directory
final_recommendations.
In addition, I have included an illustration of how to use other evaluation metrics apart from the one shown in the notebooks ( the mean average precision or MAP) such as the Normalized Discounted Cumulative Gain (NDCG). This can be found in
using_ncdg.pyin the directory
py_scripts.
I hope the code here is useful to someone. If you have any idea on how to improve the content of the repo, or you want to contribute, let me know.