Your users never rate anything? Listen to the clicks.
Implicit speeds up collaborative filtering for datasets where the only feedback is a click, a view, or a purchase—no star ratings required.

What it does
Implicit is a Python library that trains recommendation models on implicit feedback—think page views, purchases, or play counts rather than five-star ratings. It bundles several established algorithms, including Alternating Least Squares, Bayesian Personalized Ranking, Logistic Matrix Factorization, and item-item nearest neighbour models using Cosine, TFIDF, or BM25 distance. The library exposes these through a Python API that handles sparse user-item matrices and produces recommendations or related-item lists.
The interesting bit
The library treats the absence of feedback as meaningful signal, then accelerates the math with Cython and OpenMP across all CPU cores. ALS and BPR models get custom CUDA kernels for GPU training, and it can offload nearest-neighbour lookups to approximate libraries like Annoy, NMSLIB, or Faiss to keep serving latency low. The README even notes a counter-intuitive optimization: disabling OpenBLAS or MKL internal threading actually speeds things up.
Key highlights
- Implements ALS, BPR, Logistic Matrix Factorization, and item-item nearest neighbour models.
- Multi-threaded CPU training via Cython and OpenMP; GPU training for ALS and BPR via custom CUDA kernels.
- Supports approximate nearest neighbour backends (Annoy, NMSLIB, Faiss) for faster serving.
- Prebuilt wheels available for x86_64 Linux, Windows, and macOS; GPU wheels for Linux.
- Includes benchmarks comparing ALS fit times against Spark.
Caveats
- GPU training requires CUDA Toolkit 13 and a separate RMM dependency; prebuilt GPU wheels are only provided for Linux.
- Peak CPU performance depends on disabling default BLAS threading, which is an unexpected manual tweak.
Verdict
Data scientists and engineers building recommenders on clickstream or transaction data should grab this. If your users already supply explicit ratings and you just need a simple wrapper, look elsewhere.
Frequently asked
- What is benfred/implicit?
- Implicit speeds up collaborative filtering for datasets where the only feedback is a click, a view, or a purchase—no star ratings required.
- Is implicit open source?
- Yes — benfred/implicit is open source, released under the MIT license.
- What language is implicit written in?
- benfred/implicit is primarily written in Python.
- How popular is implicit?
- benfred/implicit has 3.8k stars on GitHub.
- Where can I find implicit?
- benfred/implicit is on GitHub at https://github.com/benfred/implicit.