Technical User Reference (Optimization - Product Recommendation)
This section details the Model Class and logics that the Product Recommendation Accelerator deploys. For each step, its aim, its outputs, and the main reasons to modify the logics are explained.
In this section:
- 1 Product Recommendation 2 Model Class
- 2 Library
- 3 Definition Step
- 4 Configuration Step
- 5 Product Recommendations Step
- 5.1 Calculation: DataPrep
- 5.2 Calculation: LoadSimilarityMetaTable
- 5.3 Calculation: LoadSimilarRecommendations
- 5.4 Calculation: LoadUpSellRecommendations
- 5.5 Calculation: LoadDownSellRecommendations
- 5.6 Calculation: LoadBrandRecommendations
- 5.7 Calculation: LoadProductRecommendations
- 5.8 Calculation: LoadCustomerRecommendations
- 5.9 Calculation: LoadSegmentRecommendations
- 5.10 Calculation: PostProcessing
- 5.11 Summary Tab
- 5.12 Review Recommendations Tab
- 5.13 Add Manual Recommendations Tab
- 6 Evaluation
Â
Product Recommendation 2 Model Class
The ProductRecommendation V2 (PR2) ModelClass organizes a list of logics to create the model architecture. It is a JSON file that refers to some logics and it is transformed into an optimized UI in the Pricefx platform. It is organized in 3 steps:
Definition – Maps the transaction source.
Configuration – Allows selection of different types of recommendations and their configuration.
Product Recommendations – Provides summary of calculated recommendations, and enables their exploration and manual adding of recommendations.
See Model Classes for more information.
Recommendation Types
There are seven recommendation types in PR2: Frequently Purchased, Others buy, Bought together, Similar products, Similar from another brand, Up-sell, and Down-sell. For details on each type, see Overview (Optimization - Product Recommendation).
We can group these recommendations in two ways:
Who are they producing recommendations for:
Recommendations for product (Product to product) – Bought together, Similar products, Similar from another brand, Up-sell, Down-sell
Recommendations for customer (Customer to product) – Frequently Purchased
Recommendations for segment (Segment to product) – Others buy
What information are they based on:
Transaction based – Frequently Purchased, Others buy, Bought together
Customer based (Frequently Purchased and Others buy need additional information about customer)
Similarity based – Similar products, Similar from another brand, Up-sell, Down-sell
These groups are mentioned for two reasons. First, after calculation of each individual category, Product to product recommendations are aggregated into a single table, and shown together in a graph and table on the Review Recommendations tab. Second, what information are they based on is important for their configuration, and how they are grouped together there.
Optionality of Recommendation Types
In contrast with ProductRecommendation V1, every recommendation type is now optional, and can be either turned on or off, while the rest of model works normally.
Each calculation logic contains an element called EnabledCheck
, this element cancels the calculation if the related recommendation is disabled. The element EnabledCheck
is present in every calculation with the exception of DataPrep
and PostProcessing
, as those are not based around a single recommendation category. The following reference is written as if all categories are enabled, not discussing in each step what happens if they are not.
Disabled Recommendations
If some recommendation type is disabled, then:
If part of
DataPrep
depends on it, this part is skipped, i.e. there is no CustomerIds table if customer based recommendations are disabled, and no SegmentMapTable if Others buy is disabled.Its calculation is skipped.
In
PostProcessing
if all product to product types are disabled, theAggregatedRecQuery
element is skipped, otherwise the disabled category is not included in aggregation. The RecTypeSharedProductsCount table is created with all categories, even if they are disabled.In the Summary tab the disabled type is not present in the portlet and graph.
Review Recommendations tab – If the customer based types are disabled, there is no input for customers. Disabled category is not present in the graph and among portlets. If some of product to product types are disabled, and some enabled, we still have product to product recommendations in the graph and in the portlet, as they are sourced from ProductAggregatedTable, which is missing only if all product to product recommendations are disabled.
Add Manual Recommendations tab – If the recommendation type is disabled, we are not able to add any valid manual recommendations for this type.
In Evaluation – If the name of a disabled category is passed as categoryName, an alert is created and null returned by the element
ProductRecommendation
. InAggregatedRecommendation
(categoryName
= 'aggregated'), the disabled type is not added to aggregation, even if it is explicitly mentioned amongincludedRecommendations
.
Library
The logic is PR2_Lib.
Â
Definition Step
This step allows selection of transaction source, and mapping of its fields.
The logics are PR2_Def_Eval_Scope and PR2_Def_Eval_Scope_Configurator.
Configuration Step
This step allows selection of different types of recommendations and their configuration.
The logic is PR2_Conf_Eval_Configuration_Configurator.
Product Recommendations Step
In this step, first all recommendations are calculated based on the previous user inputs. Then, three tabs are present, allowing users to explore results of those calculations and add manual recommendations. The Summary tab provides a summary for each recommendation type. The Review Recommendations tab allows users to observe recommendations for selected Products and Customers. In the Add Manual Recommendations tab additional recommendations can be manually added.
Calculation: DataPrep
The logic is PR2_Rec_Calc_DataPrep.
Calculation: LoadSimilarityMetaTable
Combines product information from the transaction source with similarity information from the Product Similarity
model, creating a source table for all similarity based recommendations.
The logic is PR2_Rec_Calc_CreateSimProdSourceTable.
Calculation: LoadSimilarRecommendations
The logic is PR2_Rec_Calc_CreateSimilarRecommendations.
Calculation: LoadUpSellRecommendations
The logic is PR2_Rec_Calc_CreateUpSellRecommendations.
Calculation: LoadDownSellRecommendations
The logic is PR2_Rec_Calc_CreateDownSellRecommendations.
Calculation: LoadBrandRecommendations
The logic is PR2_Rec_Calc_CreateBrandRecommendations.
Calculation: LoadProductRecommendations
The logic is PR2_Rec_Calc_CreateProductRecommendations.
Calculation: LoadCustomerRecommendations
The logic is PR2_Rec_Calc_CreateCustomerRecommendations.
Calculation: LoadSegmentRecommendations
The logic is PR2_Rec_Calc_CreateSegmentRecommendations.
Calculation: PostProcessing
The logic is PR2_Rec_Calc_PostProc.
Summary Tab
The logic is PR2_Rec_Eval_Summary.
Review Recommendations Tab
The logics are PR2_Rec_Eval_Review_Configurator and PR2_Rec_Eval_Review.
Add Manual Recommendations Tab
The logic is PR2_Rec_Eval_Manual_Configurator.
Evaluation
The model has a single evaluation ProductRecommendation_Eval
.
The logic is PR2_ModelEval_ProductRecommendation.