Limitations of Recommendations
Product Recommendations in the Bloomreach Engagement platform have performance and algorithm/model limitations you need to be aware of. Here is the list of restrictions:
- Max 500 products/items are returned in a metric-based engine in a single request.
- Max 500 products/items are returned in a metric-based category engine in a single request with one category in the
categoryNames
attribute. - Catalog filter supports neither regex filters nor list attributes and filters.
- Catalog filter serves as a post-filtering. This means that the recommendation model might return 10 suitable items, but if you specify a very strict catalog filter, it can filter out some of those recommended products.
- In Filter-based template, the dynamic catalog filter from the get-recommendation request is ignored.
- In Advanced template, request latency stack up with more recommendation engines added in a single advanced template instance. Please consider it when designing a recommendation engine.
- In all AI models that use events for training, a minimum threshold of 2 events is considered for training per customer. For example, a customer with 1
purchase_item
during the last 90 days will not be considered; a customer with 1purchase_item
and 1view_item
will be considered for model training. This mechanism is introduced to mitigate model skewness. - Max 1000 products could be requested in the parameter
size
for AI models. - Textual similarity is trained only on a model with less than 1 million rows.
- Combining more recommendation engines inside the advanced engine could lead to prolonged response time.
Challenges & Trade-Offs
While developing/using recommendations, one deals with several challenges:
- Exploitation/Exploration: We need to recommend items the user already interacted with (exploitation) but also show something new (exploration).
- Popularity bias: Most users view very few items, and most items are seen by a minority of users. This creates huge “data gaps,” and we must cover them.
- Cold-start problem: When a fresh client starts to use Bloomreach Engagement, we are usually not provided with enough historical user-item interactions. Thus, our personalized RS cannot perform well. The more data we collect, the better the performance will be observed. The same idea applies when a new product is added to the catalog.
Updated about 1 year ago
What´s next?