Connect with us


Metarank – Personalization as a service

friendly Learn-to-Rank engine

Metarank (or METAdata RANKer) makes it easy to personalize any listing: recommendations, articles, and search results. Developers make one reranking API call, and Metarank takes care about ML feature updates, model training, and improving target goal like CTR/conversion.

Why Metarank?

Building personalized ranking systems is not an easy task even for a team of experienced data scientists and it can take months to setup data pipelines, storages and model training. Metarank automates the most common tasks that are required to add personalization to your product listings, articles and any other type of content. Instead of months, it will take days or even a few hours to create and deploy a personalized model to get benefit from personalization and concentrate on improving the model.

You don’t even need to have Machine Learning experts in the team to integrate Metarank with your application!

Here’s a high level overview of Metarank integration:

  • define your features with simple YAML configuration file
  • send historical events and metadata via a JSON API
  • run Metarank to train the model
  • send real-time events to a running instance of Metarank
  • use pre-trained model to personalize your listings in real-time

High-level Metarank features overview

  • Built-in feature store to compute features used for online and offline training
  • YAML configuration to define the structure of your data and features that can include:
    • simple scalar features (e.g. number of clicks)
    • scoped features (e.g. item CTR for a specific query)
    • relative features (e.g. percentage of clicks per item over the total number of clicks)
    • user-specific features (e.g. user agent parser, geoip)
  • REST API or Kafka connector to receive events and metadata updates
  • Offline and online (real-time personalization) operation modes
  • Explain mode to understand how final ranking is computed
  • Local mode to run Metarank locally without deploying to a cluster
  • Cloud native: deploy Metarank to Kubernetes or AWS

Who should be using Metarank?

Metarank is industry-agnostic and can be used in any place of your application where some content is displayed. Metarank will suit teams that are only starting to introduce Machine Learning and those that already have discovery teams that work on personalization and recommendations. For experienced teams, Metarank will simplify their Learn-To-Rank stack for data collection, backtesting and model serving.

Why do you need personalization?

Machine Learning now is not just a tool for geeks and scientists – it solves real business problems, be it anti-fraud systems in the banks or recommendation widgets in your favourite online store. Content personalization can open new opportunities for your business in improving sales and customer satisfaction by providing relevant items to each user.


We have a built a Demo which showcases how you can use Metarank in the wild. The Demo utilizes Ranklens dataset that we have built using Toloka service to gather user interactions. Application code can be found here and you can see how easy it is to query Metarank installation to get real-time personalization.

Metarank configuration of the demo application is available here. You can see how easy it is to define features and can previiew the pre-built model based on the Ranklens dataset.


You can check out our tutorial and play with Metarank locally!

Metarank on GitHub:
Platform: Machine Learning
⭐️: 393