What is Metarank?
Metarank is an open-source ranking service. It can help you to build a personalized semantic/neural search and recommendations.
If you just want to get started, try:
the quickstart tutorial of implementing Learning-to-Rank on top of your search engine.
a guide on using cross-encoder LLM for search reranking of building an LLM-based neural search.
a Collaborative Filtering recommendations guide to create a "you may also like" widget as seen on many e-commerce stores.
Why Metarank?
With Metarank, you can make your existing search and recommendations smarter:
Integrate customer signals like clicks and purchases into the ranking - and optimize for maximal CTR!
Track visitor profile and make search results adapt to user actions with real-time personalization.
Use LLMs in bi- and cross-encoder mode to make your search understand the true meaning of search queries.
Metarank is fast:
optimized for reranking latency, it can handle even large result sets within 10-20ms. See benchmarks.
as a stateless cloud-native service (with state managed by Redis), it can scale horizontally and process thousands of RPS. See Kubernetes deployment guide for details.
Save your development time:
Metarank can compute dozens of typical ranking signals out of the box: CTR, referer, User-Agent, time, etc - you don't need to write custom ad-hoc code for most common ranking factors. See the full list of supported ranking signals in our docs.
There are integrations with many possible streaming processing systems to ingest visitor signals: See data sources for details.
What can you build with Metarank?
Metarank helps you build advanced ranking systems for search and recommendations:
Semantic search: use state-of-the-art LLMs to make your Elasticsearch/OpenSearch understand the meaning of your queries
Recommendations: traditional collaborative-filtering and new-age semantic content recommendations.
Learning-to-Rank: optimize your existing search
Content
Blog posts:
Meetups and conference talks:
Building an open-source online Learn-to-rank engine, Haystack EU 23, slides
Overcoming position and presentation biases in search and recommender systems, Data Natives Meetup Berlin, slides
Learning-to-rank: Deep, fast, precise - choose any two, DataTalks meetup, slides
Main features
Semantic neural search: [TODO]
Recommendations: trending and similar-items (MF ALS).
Personalization: secondary reranking (LambdaMART)
AutoML: automatic feature generation and model re-training
A/B testing: multiple model serving
Demo
You can play with Metarank demo on demo.metarank.ai:
The demo itself and the data used are open-source and you can grab a copy of training events and config file in the github repo.
Metarank in One Minute
Let us show how you can start personalizing content with LambdaMART-based reranking in just under a minute:
Prepare the data: we will get the dataset and config file from the demo.metarank.ai
Start Metarank in a standalone mode: it will import the data, train the ML model and start the API.
Send a couple of requests to the API.
Step 1: Prepare data
We will use the ranklens dataset, which is used in our Demo, so just download the data file
Step 2: Prepare configuration file
We will again use the configuration file from our Demo. It utilizes in-memory store, so no other dependencies are needed.
Step 3: Start Metarank!
With the final step we will use Metarank’s standalone
mode that combines training and running the API into one command:
You will see some useful output while Metarank is starting and grinding through the data. Once this is done, you can send requests to localhost:8080
to get personalized results.
Here we will interact with several movies by clicking on one of them and observing the results.
First, let's see the initial output provided by Metarank without before we interact with it
Now, let's intereact with the items
93363
Now, Metarank will personalize the items, the order of the items in the response will be different
What's next?
Check out a more in-depth Quickstart and full Reference.
If you have any questions, don't hesitate to join our Slack!
Last updated