## **Overview of the Search Recall Precision Algorithms**

Bloomreach algorithms continuously optimize the ranking of products in the search results to ensure a rich and relevant product discovery experience. However, there can be cases where some noise can surface in the search recall. The search recall can be noisy if your product data is noisy.

Noisy and irrelevant search recall makes it hard for end-users to find what they’re looking for. Bloomreach has powerful precision modes that eliminate unrelated products from the search recall. This leads to a more compact, relevant, and precise recall set.

The following precision modes are supported for Search recall:

  • [Text Match Precision](🔗)

  • [Product Type Precision ](🔗)

  • [Category Precision](🔗)

  • [LLM-based Precision _(Beta)_](🔗)

## **Text Match Precision** (default mode)

This precision mode is based on a **basic term match**. Suppose a customer searches for the query “_red dress_” - this mode retrieves all the products for which there is a match on the term "_red_" AND the term "_dress_" in all searchable fields.

The recall set may contain noise if the data in your searchable fields is noisy. However, Bloomreach's intelligent ranking algorithms solve this problem by ranking relevant products higher in the recall set.

## **Product Type Precision**

This precision mode leverages the Bloomreach Semantic system and filters the result set based on a **product type match**. Product Type Precision identifies a set of product types that should be retained in the recall for every query. This product type set is created from the three sources described below.

For a query "black shoes",

  1. **Product type identified in the query itself**: this would identify the product type as "_shoes_"

  2. **Product types extracted from synonyms**: if you have a synonym of _shoes → boots_, this will also keep products identified as "_boots_"

  3. **Product types extracted from user behavior data**: if customers search for "_black shoes_" and click on "_heels_" and "_pumps_," then the products that match these product types will be retained in the recall for “_black shoes_

To summarize, the recall set for the query “_black shoes_” will include:

  • all products that match product type "_shoes_"

  • the product type “_boots_” extracted from the synonym rule "_shoes → boots"_

  • the product types "_heels_" and "_pumps_" identified from user data

All other products will be eliminated from the recall. For instance, this could eliminate a product say “_black shoe lace_” which contains the term “_black shoe_” but of a different product type. We recommend enabling this mode if you want to make the recall slightly more precise but not too restrictive.

**Note**: No precision will be applied for queries that do not have a product type (e.g. brand queries like "Gucci"). The Default precision algorithm (Text Match) will be the fallback in such cases.

### **Product Type Precision FAQs**

  1. **What happens when you introduce new product types in the catalog, and it is not showing up in the recall?** Product Type Precision is reliant on the Bloomreach Semantic system. If a product type is unknown to the Bloomreach system, the product might not appear in the recall set. This tends to be the case when you introduce many new product types in the catalog. <br><br> This precision algorithm pulls product types from user behavior data. If we stop supplying the algorithm with user behavior information, it will not have a chance to learn about user interactions with the newer product types.<br><br> Consider the example of "_sandals_" search page. Let's say you introduce a new product type, "_crocs_." The recall of query "_sandals_" will not include this new product type, as the precision filter only includes "_shoes," "boots," "heels_" and "_pumps_." <br><br>Therefore, as a quick fix, you can add synonym rules for displaying the new product types.

  2. **What to do if many products are missing from the recall?** The precision mode can cut many products if sufficient user behavior data is not available for it to learn from. In such a case, you may take either of the following actions:

  • Create a temporary synonym rule for the new product type to start showing.

  • Contact [Bloomreach Support](🔗) to add the query to a blocklist. This will exempt the blocklisted query from product type precision. Therefore, you will get results based on our default “Text match” precision algorithm.

  1. **How to troubleshoot recall set issues?** Please reach out to the [Bloomreach support](🔗) team in case you have any queries.

  2. **Can this mode be AB tested?** Yes, please get in touch with our Business Services team if you’d like to AB test this mode.

  3. **Will ranking merchandising rules still apply when this precision mode is enabled?** Yes.

  4. **Can non-English customers enable this mode?** No.

## **Category Precision**

Category Precision filters the result set based on **product type match **and** dominant category**. Therefore, the recall in this mode includes:

  • Products with the matching query product type

  • Products that belong to the dominant category.

For instance, for the query “_red shoes_”, the recall will consist of products that have product type as “_shoes_” AND “_red_” as a term somewhere in the product details; OR Products that have “_shoes_” as a term as well as “_red_” as a term somewhere in the product details AND if those products belong to the same dominant category for that particular query(red shoes).

What is a Dominant Category?

Dominant category is a list of categories that are most applicable to the result set for a query. A dominant category is computed by taking the top products and identifying the categories they belong to. The number of top products used for the dominant category calculation is configurable though it is set to 50 by default.

If for a search query, products with the matching product type and products from the relevant dominant category match are not found in the recall then it falls back to the Default search algorithm. Additionally, this mode only applies to the head (top searched, top revenue) queries. For tail queries, the Default search algorithm will be applied. We recommend enabling this mode if you have clean category data.

### **Category Precision Mode FAQs**

  1. **Can this mode be AB tested?** Yes, please get in touch with our Business Services team if you’d like to AB test this mode.

  2. **Will ranking merchandising rules still apply when this precision mode is enabled?** Yes.

  3. **Can the number of top products used to compute dominant categories be changed?** Yes, please reach out to the [Bloomreach Support](🔗) team for the same.

  4. **Can non-English customers enable this mode?** Yes, Category Precision Mode works for French and German.

  5. **Does category precision mode apply to all queries?** If a product type is not found for a query, then category precision mode will not be applied, and the system would fall back to the default precision mode.

## **LLM-based Precision (Beta)**

LLM-based precision leverages cutting-edge [ML technology](🔗) (Vector-based models) to truly recognize the related product types behind the entire range of head, torso, and tail queries.

### **How does LLM-based Precision work**

  1. The search engine first performs a keyword match of the query to show all the products in the recall.

  2. Then, the engine looks for only the product type and related product types from the query. Product type is extracted by Bloomreach’s semantic understanding whereas related product types are determined by a Large language model.

  3. The search engine removes any irrelevant products and retains only those products that match either the identified product type or related product types from the previous step. Consider the scenario where a shopper searches for _"white shoes"_. Bloomreach search engine leverages semantic understanding to identify “shoes'' as the product type for this query. Then, the Large language model recognizes related product types such as _"boots"_, _"footwear"_, or _"pumps"_. Consequently, only products belonging to these specific product types are included in the recall set. This allows you to accurately display the right products and remove irrelevant products from the recall.<br> 

<br>**NOTE:** This feature is currently in beta, and as such, it may have certain limitations and bugs. Your feedback and patience are greatly appreciated as we work to improve and refine the product.

### **LLM-based Precision FAQs**

  1. **Can non-English customers enable this mode?** At this moment, only English catalogs are supported.

  2. **Is there an additional charge for a customer to use this feature?** Yes.

  3. **Does this require pixel changes?** There is no requirement to add pixel on your site for using this mode.

  4. **How can I enable this precision mode?** You can enable this by navigating to the **Algorithm Customizations > Recall Algorithms** section in the Bloomreach dashboard. Read [this](🔗) article to learn more.

  5. **Can this mode be AB tested?** Not at this time, but an API parameter will be made available by Q1 of 2024 for AB testing on the customer's side.

  6. **Will ranking merchandising rules still apply when this precision mode is enabled?** Yes, it has no effect on merchandising rules

  7. **How is this precision mode different from Product type precision?** Product type precision mode relies on user-behavior data to identify related product types whereas LLM-based precision mode relies on a large language model that’s fine-tuned on e-commerce data to generate related product types. Additionally, since it doesn’t rely on pixel data, it works for all queries where product types could be extracted.

  8. **What to do if LLM-based precision mode doesn’t understand one of the related product types and kicks out some relevant products?** There may be cases where LLM-based precision mode might not accurately understand all the related product types. If this happens, you can create a _User created synonym_ to influence the results.

    Suppose, for the query “white shoes”, the model considers “cleats” as an unrelated product type and excludes all products that are cleats. To include the cleats product type in the recall, you can add a _User created synonym_ from “shoes” -> “cleats”. This way, all products that were "cleats" in the original recall will be retained after the precision mode is applied. Note that the product types added through _User created synonyms_ for a query could take up to a week to influence the recall.

  9. **How can I add a related product type for a given product type in all queries? Suppose I want to add “cleats” as a related product type for all queries where “shoes” is a product type.** The Bloomreach support team can assist you in adding additional related product types for a given query.

  10. **Does this precision mode support both Search as well as Category?** Like other precision modes, it only applies at the Search level.

  11. **Does this precision mode support Pathways?** No

## **Search Recall Precision Algorithms Enablement**

Text Match Precision is enabled for all customers by default. You can easily switch to a different precision algorithm as per your business needs. Take a look at our Algorithm Controls [guide](🔗) to understand the algorithm enablement process.