User Profile Service

The user profile service analyzes behavioral data to better understand user interests, preferences, and intents.

The service uses all users’ actions recorded by Coveo Usage Analytics (Coveo UA) and applies statistical and machine learning techniques in real time or in batch mode to calculate user dimensions. A user dimension represents any information learned about the user.

This service can then be leveraged by Coveo services, such as the Coveo for Salesforce User Actions Component or Coveo Machine Learning (Coveo ML) models to provide more personalized and task-oriented recommendations.

EXAMPLE

In a search interface in which a Coveo ML Query Suggestions (QS) model is integrated, the query completion suggestions will differ depending on the user’s profile. This level of personalization provides your users with a more intuitive experience as the model’s suggestions are adapted to their preferences and search intents.

user profile in query suggestion model

Understanding the User Profile

A user profile is divided into multiple user profile dimensions, each one of them representing a user’s activity, characteristic, or interest (e.g. last items viewed, preferred brands, topics of interest).

There are two types of profiling applications that can be used to calculate user profile dimensions:

The profiling batch application updates user profile dimensions according to a specific usage analytics data exportation period. On the other end, the profiling streaming application updates dimensions in real time according to the user’s most recent actions.

Some dimensions can be calculated using one or both of the applications. For example, the userBrandStringVector dimension can be calculated with both applications to learn the long term user’s preferred brands (historical) or to learn the current session preferences (live).

Some other dimensions, like userTopic, are calculated using the profiling batch application only because they involve machine learning algorithms that require a lot of data and processing time.

User Profile Architecture

User profile characteristics are built from a combination of historical and recent behavioral data. This means that user profile dimensions are continually being updated according to the user’s past and present interactions with Coveo-powered interfaces.

To achieve this, the Coveo user profile engine leverages three key systems that are interacting with each other:

Profiling Batch Application

Based on the update frequency of the user profile dimension, the profiling batch application uses the behavioral data generated from the interactions made by the users of a Coveo-powered interface to build or update the dimension.

Profiling Streaming Application

The profiling streaming application processes live user data to build or update user profile dimensions.

These dimensions are processed continuously, which means that interactions are taken into account by the model as they occur to learn about the user’s current task.

Key-Value Store

Generated user profile dimensions are stored in a high performance key-value store. Therefore, these profiles are accessible by other Coveo services or ML models at query time to provide more personalized and task-oriented recommendations and services.

User Profile Workflow

Model Building Workflow

When user profile dimensions are enabled in a Coveo organization, Coveo ML builds user profiles as follows:

  1. Based on the update frequency of the user profile dimension, the profiling batch application periodically builds or updates the related user profile dimension to generate historical and live user profiles. These profiles are then saved into the key-value store for future uses.

  2. When other Coveo ML models (e.g., Query Suggestions models) start their build process, the generated user profiles are loaded to train the personalized model.

  3. The profiling streaming application takes care of updating the live user profiles for all organizations. It monitors live incoming data and loads pre-trained user profile models to generate live user profile dimensions. For each batch of data it receives, it updates the live user profile dimensions in the key-value store.

Model Serving Workflow

When a machine learning request is sent, the machine learning model sends a request to the key-value store to retrieve existing user profile dimensions. The model then combines the live and historical user profiles to personalize the model recommendations.

User Profile Dimensions

The following user profile dimensions are currently available:

User profile dimensions must be enabled to take advantage of the user profile configuration service. Contact us to enable these dimensions.

userActionHistory

The history of actions performed by the user, including search, click, custom, and view events. It records up to 2,000 events.

EXAMPLE
{
 “userId”: “user”,
 “ordId”: “orgId”
 “dimAlias”: “AH”,
 “dimValue”: [
    [SEARCH, [cause -> interfaceLoad, query_expression -> living room,
    origin_level_1 -> SEARCH-HUB], XXXXXX],
    [CUSTOM, [c_contentidkey -> prod_num, c_contentidvalue -> XXXXXX, event_type -> detailView, event_value -> XXXXXX], XXXXXX],
    [CLICK, [uri_hash -> XXXXXX, c_contentidkey -> prod_num, c_contentidvalue -> XXXXXX, origin_level_1 -> SEARCH-HUB], XXXXXX],
    [CUSTOM, [origin_level_1 -> SEARCH-HUB, event_type -> getMoreResults, event_value -> pagerResize], XXXXXX],
    [SEARCH, [cause -> dynamicFacetSelect, query_expression -> living room, origin_level_1 -> SEARCH-HUB], XXXXXX],
}

userBrandStringVector

A quantification of the relative importance of brands to the user, based on their browsing history.

EXAMPLE
{
 “userId”: “user”,
 “ordId”: “orgId”
 “dimAlias”: “BRASV”,
 “dimValue”: [
    Samsung -> 9.0,
    Hisense -> 2.0,
    Panasonic -> 1.0
  ]
}

This dimension is used in Product Recommendations ML models.

userCategoryStringVector

A quantification of the relative importance of categories and nested categories (taxonomy) to the user, based on their browsing history.

EXAMPLE
{
 “userId”: “user”,
 “ordId”: “orgId”
 “dimAlias”: “CATSV”,
 “dimValue”: [
    Bed -> 4.0,
    King size bed -> 2.0,
    Kid bedroom -> 1.0,
    Furniture -> 5.0
  ]
}

This dimension is used in Product Recommendations ML models.

userTopic

The distribution of topic clusters learned for the user.

EXAMPLE
{
 “userId”: “user”,
 “ordId”: “orgId”
 “dimAlias”: “TPC”,
 “dimValue”: [
    59 -> 0.6567834278905136,
    144 -> 0.24439426993725485
  ]
}

This dimension is used in Query Suggestions ML models.

Recommended Articles