skillfed

implicit

Collaborative Filtering for Implicit Feedback Datasets

implicit v0.7.3 347.2K downloads/30d#7,350 on PyPI
Permissive license MIT Active released

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 implicit

uv

uv add implicit

poetry

poetry add implicit

Installing 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

Development Status :: 4 - BetaIntended Audience :: Science/ResearchNatural Language :: EnglishOperating System :: OS IndependentProgramming Language :: CythonProgramming Language :: PythonProgramming Language :: Python :: 3Topic :: Software Development :: Libraries :: Python Modules

Tags

collaborative filtering implicit feedbackrecommendation engine matrix factorizationALS alternating least squaresbayesian personalized rankingitem similarity recommendationsfast recommender systemimplicit feedback algorithms
recommender-systemsmatrix-factorizationgpu-accelerated

More Python Modules packages