Skip to end of banner
Go to start of banner

CJP - Personalized Product Affinities - Re-order & Discover

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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.

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 WELCOME: Product suggestions on start pages, 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

ALL

Customer Correlation-based Promoter

RANKER

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

Variables

  • type: by default “boxalino_std_collaborative-filtering-customer-purchases-customer”, but there are other variants you can try:

    • Customer Affinities - Reorder products already bought: “boxalino_std_affinities-rebuy-customer”

    • Customer Affinities - Discover products not bought yet: “boxalino_std_affinities-discover-customer”

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.

 Use-Cases (JSON) - click copy on the top right
[
  {
    "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
  }
]
  • No labels