
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.
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.
From request to result
1
Data and goal audit
We review the event stream and choose the metric goal: click, cart, or purchase.
2
Feature schema
We fix user and item features and agree on the cold-start strategy.
3
Model and ranking
We train retrieval and ranking, using offline metrics as a filter.
4
A/B and launch
We run the online experiment, confirm the effect, and roll out to all traffic.
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.
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 the system is built
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.
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.
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.
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.
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.
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.
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
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
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
Related Services
Part of Solutions
Implementation Examples
×3
Publishing volume
Ready to discuss your task?
Leave a request – we'll get back with a proposal and a preliminary estimate.
Contact us