This is a fork of the original LightFM project
- Our main goal is to support emerging dependencies like newest versions of Python and to fix compatibility issues.
- We DO NOT guarantee support for all systems.
- We DO NOT intend to expand or change any existing LightFM functionality.
- We might fix essential bugs.
About us: we are maintainers of the RecTools recommender systems framework. Our wrapper for LightFM provides 10-15 faster inference then the original model (benchmark).
In RecTools we support common RecSys models and validation tools in one easy-to-use framework.
LightFM is a Python implementation of a number of popular recommendation algorithms for both implicit and explicit feedback, including efficient implementation of BPR and WARP ranking losses. It's easy to use, fast (via multithreaded model estimation), and produces high quality results.
It also makes it possible to incorporate both item and user metadata into the traditional matrix factorization algorithms. It represents each user and item as the sum of the latent representations of their features, thus allowing recommendations to generalise to new items (via item features) and to new users (via user features).
For more details, see the Original Documentation.
Install from pip
:
pip install rectools-lightfm
Fitting an implicit feedback model on the MovieLens 100k dataset is very easy:
from lightfm import LightFM
from lightfm.datasets import fetch_movielens
from lightfm.evaluation import precision_at_k
# Load the MovieLens 100k dataset. Only five
# star ratings are treated as positive.
data = fetch_movielens(min_rating=5.0)
# Instantiate and train the model
model = LightFM(loss='warp')
model.fit(data['train'], epochs=30, num_threads=2)
# Evaluate the trained model
test_precision = precision_at_k(model, data['test'], k=5).mean()