Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Data Science
  3. fastFM

fastFM

NOASSERTIONPython0.2.11

A Python library implementing Factorization Machines with a scikit-learn compatible API for regression, classification, and ranking tasks.

Visit WebsiteGitHubGitHub
1.1k stars205 forks0 contributors

What is fastFM?

fastFM is a Python library that implements Factorization Machines, a model class designed for supervised learning with high-dimensional sparse data. It solves problems like recommendation, click-through rate prediction, and ranking by efficiently modeling feature interactions. The library provides multiple optimization algorithms and integrates seamlessly with the scikit-learn ecosystem.

Target Audience

Data scientists and machine learning engineers working on recommendation systems, advertising, or any task involving sparse feature interactions who want a performant, scikit-learn compatible implementation of Factorization Machines.

Value Proposition

Developers choose fastFM for its combination of scikit-learn API familiarity, multiple solver options including Bayesian inference, and high performance through Cython-wrapped C code, making it a practical choice for production use.

Overview

fastFM: A Library for Factorization Machines

Use Cases

Best For

  • Building recommendation systems with implicit or explicit feedback data
  • Click-through rate prediction in online advertising
  • Learning-to-rank tasks for search result ordering
  • Collaborative filtering with side information
  • Regression and classification on high-dimensional sparse datasets
  • Bayesian modeling of feature interactions with uncertainty estimates

Not Ideal For

  • Teams working on Windows or unsupported operating systems, due to limited official support and potential installation issues.
  • Applications requiring real-time predictions with minimal latency, as the Bayesian MCMC solver is computationally intensive.
  • Projects with dense, low-dimensional data where simpler models like gradient boosting or linear regression are more efficient.
  • Developers seeking extensive documentation and active community support, as the project is academic and may have fewer resources.

Pros & Cons

Pros

Scikit-learn API Integration

Uses the familiar fit/predict interface, making it easy to incorporate into existing machine learning pipelines, as demonstrated in the usage example with FMRegression.

Multiple Solver Options

Supports stochastic gradient descent, coordinate descent, and Markov Chain Monte Carlo, providing flexibility for different optimization needs and Bayesian inference, as outlined in the solver table.

High Performance via C Core

Core algorithms are implemented in C and wrapped with Cython, ensuring fast execution on high-dimensional sparse data, which is critical for recommendation systems and CTR estimation.

Bayesian Uncertainty Estimates

The MCMC solver offers probabilistic predictions with uncertainty, a rare feature in FM implementations that is valuable for risk-aware applications like advertising.

Cons

Limited OS Compatibility

Actively supports only Linux and OS X, with no guarantees for Windows, as explicitly stated in the README under 'Supported Operating Systems.'

Installation Complexity

Source installation requires manual setup of CBLAS and Python development headers, which can be error-prone and challenging for users without system administration experience.

Sparse Documentation

Primary resources are academic papers on arXiv, and practical tutorials are limited, which may hinder quick adoption and advanced usage beyond basic examples.

Academic Maintenance Pace

As an academic project from 2016, it may not receive frequent updates or new features compared to commercially-backed alternatives, though it remains stable for core functionality.

Frequently Asked Questions

Quick Stats

Stars1,088
Forks205
Contributors0
Open Issues45
Last commit3 years ago
CreatedSince 2014

Tags

#recommender-system#python-library#sparse-data#recommender-systems#classification#bayesian-inference#factorization-machines#ranking#matrix-factorization#regression#scikit-learn#machine-learning

Built With

s
scikit-learn
C
Cython
p
pandas
P
Python
N
NumPy
C
C++
S
SciPy

Links & Resources

Website

Included in

Data Science3.4k
Auto-fetched 6 hours ago

Related Projects

ThunderSVMThunderSVM

ThunderSVM: A Fast SVM Library on GPUs and CPUs

Stars1,623
Forks223
Last commit2 years ago
pyFMpyFM

Factorization machines in python

Stars926
Forks305
Last commit5 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub