Create and manage a Content Recommendation (CR) model

Coveo Machine Learning (Coveo ML) Content Recommendation (CR) models suggest to the current user items that are relevant to their current browsing session. The results that are returned by the CR service can be included in a search page or in any other web page, such as in a side panel window.

To take advantage of Coveo ML CR, members with the required privileges must first create their CR models.

Prerequisites

Ensure that view events and search action events are being pushed to Coveo Usage Analytics (Coveo UA) for your organization (see Deploy Content Recommendations (CR)).

Even if the model only receives search or click events, it will still provide recommendations. However, we strongly recommend that you send view events on the web pages which correspond to the indexed items that you want to recommend.

Note

When there isn’t enough data for the model to recommend content, the CR model won’t return results, and the Recommendation Component will be empty.

If you recently started collecting usage analytics data, recommendations will improve as more data becomes available each time the model is retrained.

Create a CR model

  1. Depending on whether models have already been created in your Coveo organization:

  2. Click Next.

  3. (Optional) In the Learning interval section, you can change the default and recommended Data period and Building frequency.

  4. Click Next.

  5. (Optional) In the Apply filters on dataset section, you can add filters to refine the data that the model uses to make its recommendations. By narrowing down the dataset that a model uses, you can better customize relevancy for specific user groups and use cases. You can apply filters on all events, or on every event that belongs to a specific category, such as search, click, view, or custom events.

    Example

    You want your CR model to return recommendations that pertain to a specific user group, so you add a data filter to ensure that only a specific set of analytics are used by the model for training purposes.

    1. In the Select a dimension dropdown menu, select the dimension on which you want to base the learning of the model.

    2. In the Select an operator dropdown menu, select the appropriate operator.

    3. In the Select value(s) dropdown menu, add, type, or select the appropriate value.

    4. You can optionally add other filters by clicking Add.

  6. Click Next.

  7. (Optional) In the Recommended item types section, choose the type of items that the model will recommend.

  8. Click Next.

  9. In the Name your model input, enter a meaningful display name for the model, and then click Start building.

    Note

    On the Models (platform-ca | platform-eu | platform-au) page, under the Status column, in the model row, the value is most probably Inactive.

    The model value will change to Active when the model creation is complete (typically within 30 minutes, depending on the amount of usage analytics data to process). The model can only return recommendations when its status is Active.

    For more information on Coveo ML model statuses, see the Status column reference.

  10. (Optional) If you want to specify advanced parameters for your model, you can use the Advanced tab of the model configuration.

  11. You can then associate the model with a pipeline to take advantage of the model in a search interface and test your model to ensure that it behaves as expected.

    Important

    Make sure to follow the model association leading practices before associating your model with your production query pipeline.

Tip

If you have the Enterprise edition, group this CR model and your other implementation resources together in a project. See Manage projects.

Edit a CR model

  1. On the Models (platform-ca | platform-eu | platform-au) page, click the model you want to edit, and then click Edit in the Action bar.

  2. On the subpage that opens, select the Configuration tab.

  3. Under Name, you can optionally edit the model’s display name.

  4. (Optional) Under Learning interval, you can change the default and recommended Data period and Building frequency.

  5. (Optional) In the Apply filters on dataset section, you can add filters to refine the data that the model uses to make its recommendations. By narrowing down the dataset that a model uses, you can better customize relevancy for specific user groups and use cases. You can apply filters on all events, or on every event that belongs to a specific category, such as search, click, view, or custom events.

    Example

    You want your CR model to return recommendations that pertain to a specific user group, so you add a data filter to ensure that only a specific set of analytics are used by the model for training purposes.

    1. In the Select a dimension dropdown menu, select the dimension on which you want to base the learning of the model.

    2. In the Select an operator dropdown menu, select the appropriate operator.

    3. In the Select value(s) dropdown menu, add, type, or select the appropriate value.

    4. You can optionally add other filters by clicking Add.

  6. (Optional) In the Recommended item types section, choose the type of items that the model will recommend.

  7. Click Save.

  8. On the Models (platform-ca | platform-eu | platform-au) page, under the Status column, in the model row, the value is most probably Updating.

    Note

    The model value will change to Active when the model edition is complete (typically within 30 minutes, depending on the amount of usage analytics data to process). The model can only return recommendations when its status is Active.

    For more information on Coveo ML model statuses, see the Status column reference.

  9. You can then associate the model with a pipeline to take advantage of the model in a search interface and test your model to ensure that it behaves as expected.

    Important

    Make sure to follow the model association leading practices before associating your model with your production query pipeline.

Edit a CR model JSON configuration

  1. Access the Models (platform-ca | platform-eu | platform-au) page.

  2. Click the desired model, and then click More > Edit JSON in the Action bar.

  3. In the Edit a Model JSON Configuration panel that appears, modify the existing model configuration:

    {
      "modelDisplayName": "<MODEL_DISPLAY_NAME>",
      "exportPeriod": "<EXPORT_PERIOD>",
      "intervalTime": <INTERVAL_TIME>,
      "intervalUnit": "<INTERVAL_UNIT>",
      "commonFilter": "<COMMON_FILTER>",
      "customEventFilter": "<CUSTOM_EVENT_FILTER>",
      "exportOffset": "<EXPORT_OFF_SET>",
      "searchEventFilter": "<SEARCH_EVENT_FILTER>",
      "viewEventFilter": "<VIEW_EVENT_FILTER>",
      "extraConfig": [<ADVANCED_ML_PARAMETERS>],
    }

    Where:

    • modelDisplayName (string) is the name of the model appearing on the Models (platform-ca | platform-eu | platform-au) page.

    • exportPeriod (ISO-8601 string, required) is the period defining the age of the usage analytics data used to build the model. Must be in the ISO8601 period format (that is, PyYmMwWdDThHmMsS).

      Note

      Unless an exportOffset is specified, the exportPeriod uses the moment when the model was generated as a base.

    • intervalTime (integer, required) is the number of intervalUnit (that is, DAY, WEEK, or MONTH) between each update of the model. Must be between 1 and 30 inclusively.

    • intervalUnit (string enum, required) is the duration unit of the interval between each update of the model. See intervalTime. Accepted values are: DAY, WEEK, and MONTH.

    • commonFilter (string) is the filter to apply to the common event dimensions (shared by all event types) in the export. Multiple filter parameters are joined with the AND operator.

    • customEventFilter (string) is the filter to apply to the custom event dimensions in the export. Multiple filter parameters are joined with the AND operator.

    • exportOffset (ISO-8601 string) is the offset of the usage analytics data used to build the model. Must be in the ISO8601 period format (that is, PyYmMwWdDThHmMsS). The default value is PT0S, meaning that all events are considered when building a model (the exportPeriod is based on the moment the model was generated).

      Example

      You want to ignore events that occur on the current day, so you set the exportOffset value to P1D.

    • searchEventFilter (string) is the filter to apply to the click and search event dimensions in the export. Multiple filter parameters are joined with the AND operator.

    • viewEventFilter (string) is the filter to apply to the view event dimensions (shared by all event types) in the export. Multiple filter parameters are joined with the AND operator.

    • extraConfig (array of string) are additional advanced parameters used to tailor the model to your use case.

  4. Click Save to apply your changes.

Delete a CR model

Important

You must dissociate a model from all its associated query pipelines before deleting it. Models aren’t automatically dissociated from pipelines when they’re deleted.

  1. On the Models (platform-ca | platform-eu | platform-au) page, click the ML model that you want to delete, and then click More > Delete in the Action bar.

  2. In the Delete a Model panel that appears, click Delete model.

Review active model information

On the Models (platform-ca | platform-eu | platform-au) page, click the desired model (must be Active), and then click Open in the Action bar (see Reviewing model information).

Reference

"Status" column

On the Models (platform-ca | platform-eu | platform-au) page of the Administration Console, the Status column indicates the current state of your Coveo ML models.

The following table lists the possible model statuses and their definitions:

Status Definition Status icon

Active

The model is active and available.

Active

Build in progress

The model is currently building.

Building

Inactive

The model isn’t ready to be queried, such as when a model was recently created or the organization is offline.
Click See more details for additional information (see Review model information).

Inactive

Limited

Build issues exist that may affect model performance.
Click See more details for additional information (see Review model information).

Limited

Soon to be archived

The model will soon be archived because it hasn’t been queried for an extended period of time.
Click Delete to remove the model.
Learn more about archived models.

Archive pending

Error

An error prevented the model from being built successfully.
If it’s a temporary system error, check back soon. Otherwise, click See more details for additional information (see Review model information).

Error

Archived

The model was archived because it hasn’t been queried for at least 30 days.
Click Delete to remove the model.
Learn more about archived models.

Archived

“Learning interval” section

In the Learning interval section, you can modify the following:

  • Data period: The usage analytics data time interval on which the model will be based.

  • Building frequency: The rate at which the model is retrained.

Set the Coveo ML model training Building frequency based on the Data Period value. Less frequent for a larger Data Period and more frequent for a smaller Data Period as recommended in the following table.

Data period

Building frequency

Daily

Weekly

Monthly

1 month

check

check

3 months (Recommended)

check

6 months

check

The more data the model has access to and learns from, the better the recommendations. As a general guide, a usage analytics dataset of 10,000 queries or more typically allows a Coveo ML model to provide very relevant recommendations. You can look at your Coveo Usage Analytics (Coveo UA) data to evaluate the volume of queries on your search hub, and ensure that your Coveo ML models are configured with a training Data period that corresponds to at least 10,000 queries. When your search hub serves a very high volume of queries, you can consider reducing the data period so that the model learns only more recent user behavior and be more responsive to trends.

A Coveo ML model regularly retrains on a more recent Coveo UA dataset, as determined by the Building frequency and Data period settings, to ensure that the model remains up-to-date with the most recent user behavior.

Note

If you’re testing the model in a sandbox environment in which very little analytics data is available to train the model, you can activate the Test configuration mode advanced option to ensure the model provides recommendations.

In the Recommended Item Types section, you can choose the types of items that a CR model recommends. By default, All types is selected, meaning that all types of content are returned. Alternatively, you can choose specific item types to filter out.

To filter out specific item types

  1. Select Specific item types.

  2. In the Select value(s) field, for each type that you want to add, type the desired content type and then click Add.

    Example

    The view events that are pushed to Coveo UA for your organization include various types of content, such as Article, Application, Download, and Course. You only want to use this model to recommend relevant downloads, so you add Download.

    Notes
    • The view events that are pushed to Coveo UA for your organization must contain appropriate contentType values.

    • The View Content Type option doesn’t behave like the other filters. All view event content types and search events are analyzed to create the model, but only pages of the specified content types are recommended.

    • Only create more than one recommendation model if you want to include recommendation windows for different content types (see the note in Deploy Content Recommendations (CR)).

Required privileges

By default, members with the required privileges can view and edit elements of the Models (platform-ca | platform-eu | platform-au) page.

The following table indicates the privileges required to use elements of the Models page and associated panels (see Manage privileges and Privilege reference).

Action Service - Domain Required access level

View models

Machine Learning - Models
Organization - Organization
Search - Query pipelines

View

Edit models

Organization - Organization
Search - Query pipelines

View

Machine Learning - Models

Edit