Dynamic Recommendation for a Fashion E-Commerce Platform
In 2022, MLArt replaced the recommendation engine behind a major Polish fashion retailer’s online store. The site served more than 100,000 visitors a day and listed over a million products across clothing, footwear, accessories and beauty. The work was delivered together with the client’s IT implementation partner, who owned the integration into the storefront.
Click-through on recommendations rose by roughly 30%. Products the previous engine could not rank at all, because they had no sales history to rank on, started appearing in recommendations and earning clicks.
This is a past engagement, dated and reported as it happened. The figures below belong to that platform and that catalogue, not to a benchmark.
The problem
The platform promoted a rotating subset of its range. Which products were active for advertising changed regularly, driven by stock, supplier arrangements and whatever the current commercial priority happened to be. A recommender trained on the previous months of behaviour suits a stable shelf. This shelf was not stable. By the time a model had learned which items performed, the promoted set had already moved.
The second problem was harder, and it applied to a large slice of the catalogue at any given moment. Some products were new. Some had been on sale only briefly. Some had a real trading record, but on a different platform, so none of it appeared in this site’s click and purchase logs. To the existing engine, all three cases looked the same: an empty column.
That produces a closed loop. A product with no measured performance cannot be ranked on measured performance, so it is never shown, so it never accumulates any. On a catalogue turning over this fast, the loop was expensive. Whole parts of the offer were effectively invisible to the system meant to promote them.
What we built
We replaced the engine rather than tuning it, and built the new one on Contextual Bandit algorithms working alongside machine learning models.
A bandit treats each recommendation slot as a decision made under uncertainty rather than a lookup against a fixed ranking. Every impression does two jobs at once: earn a click now, and buy information about products the system does not yet understand. How much to spend on the second job is the thing the algorithm manages, continuously, against live results. Because the ranking updates from what is happening rather than from a periodic retrain, a change in the promoted range is absorbed in the ordinary course of running rather than waiting for the next model refresh.
That solves rotation. It does not, on its own, solve an empty column, so the second half of the system addressed the products directly. We mapped product attributes and descriptions into features the models could use, which let relevance be estimated from what a product is rather than only from what it has already done. Colour, category, cut, material, the words in the description: across a catalogue this size, those signals carry a great deal of information about how a product will perform, learned from the products that do have history.
A new item therefore arrived with a usable starting estimate instead of a blank. The bandit then corrected that estimate from real clicks, quickly, on the products worth correcting.
The result
Click-through on recommendations increased by around 30% against the engine that was replaced.
The second outcome mattered more to the catalogue than the headline figure. Products with no sales history, a short history, or a history recorded only on another platform became genuinely recommendable. Inventory that the previous system could not evaluate was brought into the ranked set, assessed on its attributes, and given a fair chance to prove itself in front of shoppers.
The components built here are the same ones MLArt ships today. Solutions covers what they do for a retailer, and Technology sets out the modules underneath: reinforcement learning, natural language processing, visual recognition, classic recommendation methods, and the connector between them and your systems. To talk about your own catalogue, write to office@mlart.biz.
