Main effect: the purchase funnel now works better
VK achieved that users who became interested in a product in an author's post started buying 43 times more often than before. The usual recommender couldn't cope, so the team built a separate contour inside the feed — with its own model, logging, and quota.
What makes a product post different from an ordinary one
For content, likes and viewing time are important. For a product, the goal is the final order. Between them is a long funnel, and at each step part of the audience is cut off. Therefore, ranking products with the same features as posts turned out to be insufficient.
Signals specifically about purchases and additional data on user behavior in the product category were needed.
How to collect data for cold start
There are few product posts in the feed, they are shown rarely, and there are almost no interactions. To solve this, the logging of product candidate impressions was raised to 100% through the Discovery platform. In the usual feed only 2% are logged, and for products — all. This increased the volume of the training sample 15 times.
What replaced real orders at the start
At first the model learned on frequent proxy events: post text expansion (expand), clicks on the Market card, historical reactions to commercial content. Later targets gradually approached the real order.
Simple top lists by gender, age and product popularity were also used so as to start showing at least basically suitable options.
How products are ranked
The model works on gradient boosting CatBoost. The priority of events is strictly set: orders are more important than clickouts, and those more important than ordinary reactions. Negative outcomes (quick scrolls, dislikes) are penalized.
Quota, threshold and diversity
Product posts take up 1.5% of the feed by default. For users for whom the model found a high-conversion product, the quota can grow to 5%. After ranking, a relevance threshold is applied: if the score is below, the post is not shown at all.
A mechanism of categorical diversity was added so that products from one category are not repeated in the output if there are worthy alternatives from other categories.
What changed in the results
After five months of the contour's operation, the conversion "impression → order" increased by 53%. The number of orders increased 43.2 times, transitions to the partner 55.3 times, and the impressions of the product posts themselves 28.3 times. The CTR of transitions from posts almost doubled.
Side effect: authors became more active
Simultaneously with the improvement of recommendations, the number of product publications by authors increased to 5,000 per day. Recommendations found an audience, authors received motivation to publish more such content, and the candidate catalog began to grow on its own.
Main lessons for new domains
- First, ensure data for training, and don't immediately choose the model architecture
- Raise logging only for the necessary type of candidates, not the entire feed
- Use a target ladder: from frequent events to the real goal
- Separate the quota and relevance threshold so as not to stuff a bad recommendation
- Don't forget about content metrics, otherwise the commercial contour may harm the main product