Recommender-System Software Libraries & APIs

There is a plethora of software libraries and APIs that often implement dozens of recommendation algorithms.

We define a ‘recommender-system software library’ as e.g. a JAVA or Python library that you can easily integrate into your own application to run recommendation algorithms. Nevertheless, you still do need some recommender-system and programming knowledge to store data in the right format, load it in the library and select, possibly tune, and apply the algorithms. These libraries make it easy to deploy your own recommender system. Keep in mind that while prototypes can be developed typically within hours or days, developing production systems will rather take weeks or even months.

We define a ‘recommendation API’ as a (REST) Web Service that offers the same functionality as a software library, only that your data is hosted in the cloud. In contrast, recommender-systems as-a-service (RaaS) do all the work for you. For instance, you typically would integrate e.g. only a JavaScript snippet in your web page where recommendations shall be displayed. Everything else (indexing data, generating recommendations, displaying recommendations) is done by the RaaS. The downside though would be less control of how recommendations are generated.

In the Google Sheet below you find a collection of recommender-system libraries and APIs (early draft / work-in-progress!). If you would like to add or change information, please send a request and provide us with some details about yourself.

Our list is based in part on the following sources, which all aim at providing overviews of recommender system libraries.

https://github.com/grahamjenson/list_of_recommender_systems and https://maori.geek.nz/list-of-recommender-systems-4526f7c68964

https://github.com/parklize/RecSys-Libraries

https://awesomeopensource.com/projects/recommender-system

News About Recommender-System Software-Libraries & APIs

‘Lazy Predict’ Tutorial for AutoML with scikit-learn [Eryk Lewinson]

Eryk Lewinson wrote a tutorial on how to use Lazy Predict, which is an automated machine learning (AutoML) extension by Shankar Rao Pandala for scikit-learn. Automatisation is also becoming more prominent for recommender-systems (AutoRecSys) and hence this library could be useful for recommender-systems developers. While starting to work on a supervised learning problem, we are […]

Posted in Software Libraries & APIs, Tutorials & 101's | Tagged , , , , | Leave a comment

Recommender-Systems Version Control: TensorFlow releases ‘Machine Learning Metadata (MLMD)’

Version control for recommender systems is a topic that should receive more attention in the community. Given that TensorFlow is often used for implementing recommender systems, this blog post by Ben Mathes and Neoklis Polyzotis is a great step in the right direction: [MLMD is] a library to track the full lineage of your entire […]

Posted in Software Libraries & APIs | Tagged , , , , | Leave a comment

‘AutoGL’, a new AutoML framework for Graphs by Tsinghua University

‘Graphs’ and linked data are highly useful in generating effective recommender systems. Also in machine learning, graphs have gained popularity. Now, researchers from Tsinghua University (China) have released AutoGL (GitHub), the first AutoML tool for graph datasets and tasks. This tool could greatly advance the ease of working with graph data and algorithms for both […]

Posted in Software Libraries & APIs | Tagged , , , | Leave a comment

HetSeq: Training BERT on a random assortment of GPUs [Yifan Ding et al.]

BERT has brought huge changes to how NLP is done, and also had a notable impact on recommender systems (not always though*). However, training BERT may take weeks, if not months. Yifan Ding, Nicholas Botzer, and Tim Weninger promise to have found a solution for those being e.g. at universities with heterogeneous GPU infrastructure. Unfortunately, […]

Posted in Software Libraries & APIs | Tagged , , , , , | Leave a comment

LinkedIn introduces “GDMix”, a deep ranking personalization framework

Jun Shi from LinkedIn announced the release of GDMix (GitHub), a deep ranking personalization framework. GDMix stands for Generalized Deep Mixed Model and is… a solution created at LinkedIn to train these kinds of [ranking] models efficiently. It breaks down a large model into a global model (a.k.a. “fixed effect”) and a large number of small […]

Posted in Software Libraries & APIs | Tagged , , , | Leave a comment

TensorFlow introduces ‘TensorFlow Recommenders’ (TFRS)

This is big news for the recommender-system community: Maciej Kula and James Chen from Google Brain announce TensorFlow Recommenders (TFRS), an official recommender-systems package for TensorFlow, the major deep-learning library.

Posted in Software Libraries & APIs | Tagged , , , , | Leave a comment

Oracle announces Tribuo, a Java machine-learning library [Adam Pocock @ Oracle]

Adam Pocock from Oracle announced the public release of Oracle’s so-far in-house machine-learning library Tribuo. The library is not specifically designed for recommender-systems. Yet, it may be interesting for some recommender-systems researchers and developers. Our group has spent the past few years building an ML library to meet these needs.  The library is called *Tribuo* […]

Posted in Software Libraries & APIs | Tagged , , , | Leave a comment

TensorFlow introduces a new ‘end-to-end’ solution for on-device recommendations with TFLite

Ellie Zhou, Tian Lin, Cong Li, Shuangfeng Li, and Sushant Prakash from TensorFlow announced in a blog post that they open-source an end-to-end solution for TFLite on-device recommendation tasks. TFLite is a TensorFlow-based library for machine-learning on mobile and IoT devices. So far, TFLite had machine-learning models for image classification, object detection, pose estimation, and […]

Posted in Software Libraries & APIs | Tagged , , , , , , , , , | Leave a comment

Scalable Recommender Systems with NVTabular- A Fast Tabular Data Loading and Transformation Library [Ronay Ak @ Medium]

Ronay Ak et al. from RapidsAI wrote a nice in-depth post on how to use NVIDIA´s NVTabular to develop a recommender system that works with large amounts of data (1.3 TB). In this blog we will walk you through the NVTabular workflow steps in an example where we use ~1.3TB Criteo dataset shared by CriteoLabs for the predicting […]

Posted in Software Libraries & APIs, Tutorials & 101's | Tagged , , , , , | Leave a comment

Building Personal Recommender Systems with Milvus and PaddlePaddle [Milvus@Medium]

In this article we use PaddlePaddle, a deep learning platform from Baidu, to build a model and combine Milvus, a vector similarity search engine, to build a personalized recommendation system that can quickly and accurately provide users with interesting information. Read more: https://medium.com/@milvusio/building-personal-recommender-systems-with-milvus-and-paddlepaddle-808567e3d65e

Posted in Software Libraries & APIs, Tutorials & 101's | Tagged , , | Leave a comment