---
title: Basic concepts
description: Core concepts behind Luigi's Box recommendations -- models, personalization, batching, and privacy.
slug: recommendations/concepts
docKind: concept
hub: recommendations
---

## 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. See the [reference models](/recommendations/models/) for an overview of the most frequently used models.

## Content-based versus 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 are based on machine understanding of the products and your domain to drive recommendations. The more structured data you provide, the better the recommenders perform. Behavioral models observe how your users interact with the products in the store. One of the best-known strategies is recommending products which are frequently bought together. Luigi's Box relies on the [analytics](/analytics/) events to learn about user interactions.

## Privacy

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 benefit from larger user data from all the domains together. This feature is on demand.

## Personalization

Recommender models are designed to consider user preferences (both short-term and long-term) to personalize the recommendations. Luigi's Box analytics builds 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.

## Widget and model reuse

Recommender models may be reused in several recommender widgets. To effectively distinguish different usages of the same model, use the concept of `recommender_client_identifier`. It is an arbitrary name for the specific widget 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 use this model in a recommender widget placed on product detail page and identify it as `product_complements_product_detail`. You may also use the same model in the basket during checkout and identify it as `product_complements_basket`.

## Batching

The recommender is designed for request batching. If you want to show several recommenders on a single page, batch all 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 only load the user profile once and use it for all models.
- Deduplicated recommendations -- you will not see the same product being recommended by different recommender models.
