Basic concepts

Recommendation models

The model is what drives the recommendation of objects. It is the AI component of the recommender system which takes the inputs:

  • User profile
  • Input "items" - most frequently the product to recommend for

The model provides output:

  • List of recommendations (most frequently list of products)

All of the models are trained by our data scientists on a per-customer basis based on the requirements and business objectives. The models are trained towards a specific strategy, e.g. to recommend complementary products (such as accessories) or alernative products.

Our consultants and data scientists will design the model to cover your specific scenarios and requirements. Please contact our support to discuss the options in detail. See the reference models for overview of the most frequently used models.

Content-based vs behavioral recommendations

The recommender models can be based on the product data, on the behavior of the users, or their combination. The content-based models (based on product data) are based on machine understanding of the products and your domain to drive recommendations. The more structured data you provide, the better will the recommenders perform. Behavioral models (based on user behavior) do not care about product data, but observe how your users interact with the products in the store. One of the best-known strategies is the idea of recommending products, which are frequently bought together. Luigi's Box relies on the analytics events to learn about the user interactions.


All of the models are trained solely on your data. We do not use data of other customers to improve the models.

In case that you are sharing the same product identities across your domains, your models can however benefit from larger user data from all the domains together. This feature is on demand.

In practice: the models can be trained across all sites under a single project in the Luigi's Box application.


Recommender models are designed to consider user preferences (both short-term and long-term) to personalize the recommendations. Luigi's Box analytics will build profiles for your users and when you request personalization by providing a user_id request parameter, the user profile is provided as an additional input for the recommender model.

Placement and model reuse

Recommender models may be reused in several locations. To effectively distinguish different placements of the same model, we use the concept of recommender_client_identifier. It's an arbitrary name for the specific recommender instance which is only used in Luigi's Box analytics to help you see recommender performance.

Think about a model identified as product_complements. You may place this model on a product detail page to provide recommendations and identify it as product_complements_product_detail. You may also use the same model in the basket during the checkout process and identify it as product_complements_basket to help you distinguish the data in analytics and see the recommender performance by the location.


The recommender is designed for request batching. If you want to show several recommenders in a single page, we recommend that you batch all of the requests in a single API call. Batching leads to:

  • Better latency, since we can reuse some parts of the processing pipeline for several recommender models. For example, we will only load the user profile once and use it for all models.
  • Deduplicated recommendations, i.e., you will not see the same product being recommended by different recommender models