CJP - Collaborative Filtering on Purchases

Introduction

Collaborative Filtering is one of the most effective methods for personalized product recommendations based on each customer prior purchase and online behavior.

The motivation for collaborative filtering comes from the idea that people often get the best recommendations from someone having similarities in their purchase history (or online behavior). The idea is therefore to match people with similar interests and making recommendations on this basis.

Based on prior purchases, for example, the AI algorithm will be able to identify patterns made by other customers in order to compute (with a technique called Matrix Factorization) the most relevant suggestions.

Boxalino as integrated one of the most sophisticated approach for Collaborative Filtering promoted by Google here which is called Neural Collaborative Filtering (Read more about Neural Collaborative Filtering).

What is it?

The Collaborative Filtering on Purchases generates a small quantity (typically around 10) product recommendations which are generated for each customer individually based on their purchase history.

The best practice matches other customers with similar purchases and make recommendations based on the patterns of what is often bought by these matching customers.

These recommendations can be used to be put on top of any widget. One of the most common cases are https://boxalino.atlassian.net/wiki/spaces/BPKB/pages/316867039, RE-BUY: Product Suggestions on My Account Page and INDIVIDUALIZE: Product Suggestions in E-Mails, but we have seen very positive results also to put such products on top of SEARCH/NAVI: In-site Search and Product Listings when such product match with the search term or category/brand context.

This is a great way to personalize your entire E-shop.

Best Practice Strategy

Neural Collaborative Filtering for personalized recommendations leveraging the patterns in the purchase behaviors of other customers.

WPOS

Use Cases

Mode

Requirements

WPOS

Use Cases

Mode

Requirements

ALL

Customer Correlation-based Promoter

RANKER

You need to confirm with Boxalino that this Collaborative Filtering has been computed for your account

Variables

  • none

Cases to consider

There is only one standard case

How to configure it?

You can import the JSON below directly in the Admin (use the Import button on the top right), as in this screen-shot.

Typically, you don’t need to configure any parameter and can use it as is.

 

[ { "useCaseModelSource": "library", "useCaseModelId": 188, "useCaseModelVersion": 1, "useCaseModelSubVersion": 1, "name": "Collaborative Filtering Purchases", "order": "1", "orGroup": null, "fromIndex": -1, "toIndex": -1, "maxWeight": null, "variant": "", "scope": "local", "overwriteLevel": 1, "overwriteLabel": [ null ], "globalTargetTags": [ null ], "active": true, "parameters": [ { "name": "type", "value": { "format": "StringParameterValue", "value": "boxalino_std_collaborative-filtering-customer-purchases-customer" }, "scope": "global", "startval": {}, "schema": "" }, { "name": "source", "value": { "format": "StringParameterValue", "value": "" }, "scope": "global", "startval": {}, "schema": "" }, { "name": "valuesConditionMapKey", "value": { "format": "StringParameterValue", "value": null }, "scope": "global", "startval": {}, "schema": "" }, { "name": "targetAsValue", "value": { "format": "BooleanParameterValue", "value": true }, "scope": "global" }, { "name": "valuesConditionValueIndex", "value": { "format": "StringParameterValue", "value": "0" }, "scope": "global", "startval": {}, "schema": "" }, { "name": "factor", "value": { "format": "NumberParameterValue", "value": null }, "scope": "global" }, { "name": "targetSeparator", "value": { "format": "StringParameterValue", "value": "\\\\|" }, "scope": "global", "startval": {}, "schema": "" }, { "name": "field", "value": { "format": "FieldParameterValue", "value": "id" }, "scope": "global" }, { "name": "boostFilter", "value": { "format": "BooleanParameterValue", "value": true }, "scope": "global" }, { "name": "boostWeight", "value": { "format": "StringParameterValue", "value": "1000000" }, "scope": "global", "startval": {}, "schema": "" }, { "name": "orCondition", "value": { "format": "BooleanParameterValue", "value": true }, "scope": "global" }, { "name": "required", "value": { "format": "BooleanParameterValue", "value": false }, "scope": "global" }, { "name": "topWeightNbValuesMaxThreshold", "value": { "format": "StringParameterValue", "value": "0" }, "scope": "global", "startval": {}, "schema": "" }, { "name": "topWeightMinThreshold", "value": { "format": "StringParameterValue", "value": "0" }, "scope": "global", "startval": {}, "schema": "" }, { "name": "limitFieldValues", "value": { "format": "StringParameterValues", "values": [ "*" ] }, "scope": "global" } ], "segmentationIds": null, "segmentationUniqueKeys": [], "CPOInitiativeId": null, "notes": null, "options": { "status": null, "includeWidgets": null, "excludeWidgets": null, "allWidgets": null, "conditionalSegments": null, "conditionalProductSelections": null, "ordering": null, "parameters": [ { "name": "system", "values": [ "false" ] } ], "allLinkedAccounts": null, "accounts": null }, "icons": { "strategy": { "value": "cpo_journey.png", "tooltip": "JOURNEY OPTIMIZATION" }, "level": { "value": "L1", "tooltip": "LEVEL 1 - ENGAGEMENT JOURNEYS (4+1+4)" }, "initiative": { "value": "fa-folder", "tooltip": "RETURNING CUSTOMERS" }, "character": { "value": "", "tooltip": "" }, "mode": { "label": "", "value": "", "tooltip": "" } }, "sections": [ { "id": "main", "label": "Values", "active": true }, { "id": "advanced", "label": "Advanced", "active": false } ], "isSelected": true, "status": true } ]