Building recommendation systems

We build recommender systems: collaborative filtering, content features, and ranking. We compute offline metrics and run A/B tests instead of trusting one number.

We match each user with items and content from their own behavior.

Pricing

from ₽2,000,000

per project

This is the lower bound of a project. We scope the exact quote after a brief: it depends on volume and the number of integrations.

What's included

Capabilities

Behavior signals

We collect views, purchases, and search, not just ratings.

Cold start

New users and items get content-based recommendations until history builds up.

Ranking

We retrieve candidates with cheap methods in 12 ms, and a separate ranking model refines the order.

A/B over belief

An offline metric is only a filter: the effect is confirmed by an online experiment.

How we work

From request to result

  1. 1

    Data and goal audit

    We review the event stream and choose the metric goal: click, cart, or purchase.

  2. 2

    Feature schema

    We fix user and item features and agree on the cold-start strategy.

  3. 3

    Model and ranking

    We train retrieval and ranking, using offline metrics as a filter.

  4. 4

    A/B and launch

    We run the online experiment, confirm the effect, and roll out to all traffic.

Who it fits

Check if it fits you

Good fit

  • An event stream exists

    Views, clicks, and purchases are recorded: there is data to train on.

  • A catalog with more than one item

    The wider the choice, the more ranking helps.

Not a fit

  • Little traffic

    Without events, recommendations collapse into popular items and a complex model does not pay off.

  • No metric goal

    Click or purchase? Without a chosen metric the model optimizes the wrong thing.

Track record

What you get

+18%

clicks from the recommendation block

Ranking lifted the share of targeted clicks, and content features covered the cold start.

+18% clicks

A lift in clicks

Ranking lifts the share of targeted clicks inside the block, and an online experiment confirms the effect on the catalog's live traffic.

12 ms

Delivery in milliseconds

The cache returns a ready feed in a few milliseconds, so the block opens fast even under a peak store load.

3 weeks

A three-week pilot

The pilot runs for three weeks: we collect events, train the model, and launch an online experiment on part of the traffic.

How it works

How the system is built

  1. Candidates are gathered by cheap methods

    Candidates are gathered by cheap methods across the full history, and an expensive model refines the order: the system serves a feed in milliseconds and keeps latency under load.

  2. Cold start is covered by content

    Cold start is covered by content: similar items, categories, and the session profile give a new user a sensible feed while their behavior history builds step by step.

  3. Feedback closes the loop

    Feedback closes the loop into a cycle: fresh clicks and purchases return to training, so the model accounts for new behavior and refreshes the feed every day.

  4. Diversity is controlled

    Diversity is controlled by a constraint in ranking: the system alternates categories and keeps interest in the catalog, so the feed stays broad for every user through a session.

Limitations and cost

Where the solution pushes back

  • 01

    The popularity loop

    The model suggests hits, hits collect clicks, and the catalog narrows. The popularity loop shrinks the feed, so we hold diversity with a constraint.

  • 02

    An offline metric deceives

    Better ranking quality gives a guide, and an online experiment checks purchases. An offline metric deceives: the effect shows only on live traffic.

  • 03

    Biased click labels

    The user sees what the system showed and learns from its own impressions. Biased click labels distort training, so we add random impressions.

  • 04

    Diversity and limits

    Diversity keeps interest in the catalog and holds the feed broad. A ranking constraint alternates categories, so the user sees more varied items.

What the system covers

What the system covers

The home page builds a feed from the user's history, similar items, and fresh session events.

The item page adds companion products that shoppers pick together with the current one.

Email and push choose items from the user's latest actions and account for seasonality.

Search adds similar queries and reorders results by expected click.

Data and features

Data and features

Behavior events stream in: views, carts, purchases, and search queries.

Features are computed over windows: frequencies, item pairs, and a user profile for recent sessions.

Content features cover cold start: category, brand, price, and a text description.

Block metrics live in a dashboard: CTR, add-to-cart, and the share of targeted clicks.

Stack

Technologies

The technologies we use in our work and their role in a project.

Events and models

Events run through Kafka, features are computed in ClickHouse, models train on PyTorch, Redis serves inference, and Grafana shows the metrics.

Collects behavior events: views and purchases reach training without losing order.Computes features from history: frequencies, item pairs, and a per-window user profile.Trains retrieval and ranking models, including heavy sequence models.Serves ready recommendations in milliseconds: it keeps the block's latency under load.Shows block and A/B metrics: the online effect is visible, not an offline number.
Budget estimate

Cost calculator

This is an indicative range, not a quote. We scope the exact estimate after a brief: it depends on volume and the number of integrations.

Surfaces

3

Complexity

Real-time serving

Add-ons

Support

Year one: updates and monitoring, a reply within 2 business days.

Service

Building recommendation systems

The estimate covers our team's work. Hardware, third-party service licences and travel are added on request.

Estimated cost

₽2.45M

Timeline

5 wk

Questions

Frequently asked questions

What do we show new users?

Content features and the session profile: similar items give a sensible start until history builds.

Is an offline metric enough?

No. An offline metric only filters models; the effect is confirmed by an online experiment.

How do we avoid monotony?

We build a diversity constraint into ranking, or the block shows the same items over and over.

How long does the pilot take?

A pilot with A/B takes three weeks: event collection, the model, and an online experiment on part of the traffic.

What teams add to this service

Ready to discuss your task?

Leave a request – we'll get back with a proposal and a preliminary estimate.

Contact us