implicit
Collaborative Filtering for Implicit Feedback Datasets
What it is and what it does
Implicit is a Python library for building recommendation systems from implicit feedback data—interactions like clicks, purchases, or listens rather than explicit ratings. It implements several well-established collaborative filtering algorithms (Alternating Least Squares, Bayesian Personalized Ranking, Logistic Matrix Factorization, and item-item nearest-neighbor models) with a focus on speed through Cython and OpenMP parallelization across CPU cores, plus optional CUDA kernels for GPU acceleration on compatible hardware.
You provide a sparse matrix of user-item confidence weights, call fit() to train the model, and then use recommend() or similar_items() to generate recommendations or find related items. The library depends on numpy, scipy, tqdm, and threadpoolctl for its core functionality. It's designed for scenarios where you have large implicit feedback datasets and need fast, scalable recommendations—common in e-commerce, music streaming, and content discovery.
Use it for:
- Build a music recommendation engine from user play history (as shown in the lastfm example).
- Recommend products in an e-commerce platform based on purchase or browsing behavior.
- Find similar items (songs, articles, products) to show alongside a user's current selection.
- Process large implicit feedback datasets efficiently using GPU acceleration when available.
- Integrate approximate nearest-neighbor libraries (Annoy, NMSLIB, Faiss) for faster inference at scale.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Implicit provides fast Python implementations of collaborative filtering algorithms (ALS, BPR, Logistic Matrix Factorization, and nearest-neighbor models) optimized for implicit feedback datasets, with multi-threaded CPU training and optional GPU support.
Yes, if you need a production-ready collaborative filtering library for implicit feedback. The package is actively maintained, has no known vulnerabilities, supports modern Python versions with prebuilt wheels, and offers both CPU and GPU training paths. Install friction is moderate but manageable; the main gotcha is ensuring SciPy and CUDA (if using GPU) are properly configured. Not suitable if you need explicit-rating models or prefer a higher-level recommendation framework.
Install
implicit on PyPI
pip
pip install implicituv
uv add implicitpoetry
poetry add implicitInstalling implicit
Before you install
Medium install friction due to compiled wheels; prebuilt binaries available for x86_64 Linux, Windows, and macOS across Python 3.10–3.13, reducing build complexity. Active maintenance with a release 98 days ago.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you retain the license notice.
Quickstart
pip install implicit
import implicit
model = implicit.als.AlternatingLeastSquares(factors=50)
model.fit(user_item_data)
recommendations = model.recommend(userid, user_item_data[userid])
Requires Python 3.9 or later and SciPy 0.16 or later. GPU support requires NVidia CUDA Toolkit version 13 and rmm-cu13.
Verify before relying
- Whether prebuilt wheels include GPU support on all platforms or only Linux as the description suggests.
- Performance characteristics and scalability limits for typical dataset sizes in production use.
- Whether the package is actively maintained beyond the single recent release (repo metadata unavailable).
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 4 — numpy, scipy, tqdm, threadpoolctl |
| Maintenance | actively maintained — 98 days since the last release |
| First released | |
| Downloads | 347,240/month — #7,350 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: implicit-0.7.3-cp310-cp310-macosx_10_9_universal2.whl; implicit-0.7.3-cp310-cp310-macosx_10_9_x86_64.whl; implicit-0.7.3-cp310-cp310-macosx_11_0_arm64.whl; implicit-0.7.3-cp310-cp310-manylinux2014_aarch64.whl; implicit-0.7.3-cp310-cp310-manylinux2014_x86_64.whl; implicit-0.7.3-cp310-cp310-win_amd64.whl; implicit-0.7.3-cp311-cp311-macosx_10_9_universal2.whl; implicit-0.7.3-cp311-cp311-macosx_10_9_x86_64.whl; implicit-0.7.3-cp311-cp311-macosx_11_0_arm64.whl; implicit-0.7.3-cp311-cp311-manylinux2014_aarch64.whl; implicit-0.7.3-cp311-cp311-manylinux2014_x86_64.whl; implicit-0.7.3-cp311-cp311-win_amd64.whl; implicit-0.7.3-cp312-cp312-macosx_10_13_universal2.whl; implicit-0.7.3-cp312-cp312-macosx_10_13_x86_64.whl; implicit-0.7.3-cp312-cp312-macosx_11_0_arm64.whl; implicit-0.7.3-cp312-cp312-manylinux2014_aarch64.whl; implicit-0.7.3-cp312-cp312-manylinux2014_x86_64.whl; implicit-0.7.3-cp312-cp312-win_amd64.whl; implicit-0.7.3-cp313-cp313-macosx_10_13_universal2.whl; implicit-0.7.3-cp313-cp313-macosx_10_13_x86_64.whl
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
recboleRecBole provides a unified framework for…
permissive · top 15,000 on PyPI
tensorflow-recommendersTensorFlow Recommenders provides a Keras-based…
permissive · top 15,000 on PyPI
scikit-surpriseScikit-surprise builds and evaluates…
permissive · top 15,000 on PyPI
mabwiserMABWiser implements multi-armed bandit…
permissive · top 15,000 on PyPI
cuvs-cu12Provides GPU-accelerated approximate nearest…
permissive · top 15,000 on PyPI
libcuvs-cu12GPU-accelerated vector search and clustering…
permissive · top 15,000 on PyPI
qdldlProvides a Python interface to QDLDL, a free…
permissive · top 5,000 on PyPI
nvidia-cusparseProvides NVIDIA CUSPARSE native runtime…
unclear · top 1,000 on PyPI
google-cloud-recommendations-aiPython client library for Google Cloud…
permissive · top 5,000 on PyPI
nvidia-cusparse-cu12Provides NVIDIA CUSPARSE native runtime…
unclear · top 1,000 on PyPI