benfred/implicit

Fast Python Collaborative Filtering for Implicit Feedback Datasets

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 1 hour ago
Added to GitGenius on September 18th, 2026
Created on April 17th, 2016
Open Issues & Pull Requests: 97 (+0)
GitHub issues: Enabled
Number of forks: 631
Total Stargazers: 3,824 (+0)
Total Subscribers: 72 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 13.1 days
Mean response time: 192.2 days
90th percentile: 639.3 days
Tracked items: 24

Most active contributors

Sign in to see contributor activity.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 13
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 774 days
Stale 30+ days: 13
Stale 90+ days: 13

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

No label distribution available yet.

Most active issues this week

No issue events were indexed in the last 7 days.

Detailed Description

Implicit is a Python library for building recommendation systems using collaborative filtering on implicit feedback datasets.

The library solves the problem of generating recommendations when user feedback is implicit—such as purchase history or listening patterns—rather than explicit ratings. It implements several well-established algorithms including Alternating Least Squares, Bayesian Personalized Ranking, Logistic Matrix Factorization, and item-item nearest neighbour models using various distance metrics. The core approach uses matrix factorization to discover latent factors representing user preferences and item characteristics. Training routines are parallelized across CPU cores using Cython and OpenMP, with custom CUDA kernels available for ALS and BPR models to accelerate fitting on compatible GPUs. The library can also integrate with approximate nearest neighbour libraries to speed up recommendation generation at inference time.

Implicit suits projects that need to recommend items based on user behavior signals rather than explicit ratings. It works well for e-commerce, music streaming, content discovery, and similar domains where implicit feedback is abundant. The library is accessible via standard Python package installation with prebuilt wheels for common platforms, including GPU support on Linux. The documentation includes a worked example using the Last.fm dataset and references several real-world applications ranging from fashion recommendations to GitHub repository suggestions.

The project maintains active engagement with its user base through documented blog posts explaining the algorithms and their optimizations, covering topics from basic matrix factorization to GPU acceleration and approximate nearest neighbour techniques. The library is regularly updated to support current Python versions and dependencies. Development activity shows consistent refinement of the core algorithms and their implementations, with attention to both computational efficiency and practical usability in production recommendation systems.