Interactions data entities
This article provides guidance on how to configure your interactions data entities in the Intelligent Recommendations data contract.
Data entities review
A data entity is a set of one or more data text files, each having a list of columns (also called attributes) and rows containing the actual data values.
Intelligent Recommendations defines logical groups of data entities, each with its own purpose.
Note
Data entities are optional, unless explicitly stated otherwise, which means that their data can be empty or missing.
For the full list of data entities, see data entities.
Introduction to interactions data entities
Interactions represent the set of all ways that a user interacts with the catalog items. Some common user actions include transactional interactions (purchases), views (click-through), ratings, or any other action that occurs between a user and an item or item variant.
The following data entities are part of the interactions data entities:
Interactions
Data entity name: Reco_Interactions.
Description: All user interactions with items and item variants.
Attributes:
Name | Data type | Mandatory | Default value | Invalid value behavior | Comments |
---|---|---|---|---|---|
InteractionGroupingId | String(256) | Yes | Drop entry | A grouping ID for several interactions. Length limited to 256 characters. | |
ItemId | String(16) | Yes | Drop entry | See Required data entities per recommendations scenario for item ID. | |
ItemVariantId | String(16) | No | Drop entry | See Required data entities per recommendations scenario for item variant ID. | |
UserId | String(256) | No | Drop entry | An empty value represents an anonymous interaction. Length limited to 256 characters. | |
InteractionType | String | No | Transaction | Drop entry | Transaction is the only valid value for this attribute and doesn't affect the recommendation results. |
TimeStamp | DateTime | No | 1970-01-01T00:00:00.000Z | Drop entry | See Required data entities per recommendations scenario for DateTime values. |
String Attribute | String(64) | No | Drop entry | Length is limited to 64 characters. A string attribute that can be used according to the business' needs and doesn't affect the modeling process. | |
Double Attribute | Double | No | Drop entry | A double attribute that can be used according to the business' needs and doesn't affect the modeling process. | |
Channel | String(64) | No | 0 | Trim value | Length limited to 64 characters. |
Catalog | String(64) | No | 0 | Trim value | Length limited to 64 characters. |
Strength | Double | No | 1.0 | Drop entry | Represents how significant the interactions are (compared to other interactions). This attribute can help improve transaction processes and performance, but transparency and ethical use of data are important considerations. Supported in Next Best Action, User Picks and Similar (AlgoType=MF). |
IsPositive | Bool | No | True | See Required data entities per recommendations scenario for Boolean values. |
Guidelines:
InteractionGroupingId is the main collaborative indicator grouping items together in a single multi-item interaction. It can be anything that, in the scope of your business, creates relationships between items. For example, items purchased in the same interactions (basket) might be connected/related, so basket/transaction ID could be a good fit for this field. If a collaborative factor is the user (person) interacting with items, you might want to copy UserId to this field and have it in the UserId field as well.
Make sure that Interactions data entity contains interactions of the same type (type can be - likes, transactions, views, etc.). In order to get recommendations for various interaction types, it's recommended that a modeling component reads interactions of the same type. Consolidating different types of transactions into the same model return mixed recommendations with different and not necessarily desired meaning than working with separated models/IR accounts.
Unsupported interaction types are ignored.
All data rows that represent the same operation (for example, a transaction of several items) should have the same unique grouping ID.
Negative interactions (such as item returns or dislikes) are represented by IsPositive=False.
Double Attribute, String Attribute and Interaction Type columns listed can be left empty for now.
Using "0" as the value for either the "Channel" or "Catalog" attributes result in a processing error.
On Next Best Action scenario, Strength attribute is capped at 10. values above 10 are replaced by 10.
Examples of when to use strength include:
- Prioritize products with a higher likelihood of being interacted with (that is, viewed, watched, etc.). If you prefer to have higher prioritization on recent purchases, consider trying the Picks API using the RecentPurchases Algo-type, which already prioritizes the most recent interactions of a user.
- Rating scores to products in scale of 1-5 can be reflected by setting the strength of the relevant transaction as the rating score that the user gave to the item.
- Prioritizing the duration of watching a video by giving longer views a higher strength than the videos of shorter views.
Sample data:
Headers appear for convenience only and shouldn't be part of the actual data.
InteractionGroupingId | ItemId | ItemVariantId | UserId | InteractionType | Timestamp | String Attribute | Double Attribute | Channel | Catalog | Strength | IsPositive |
---|---|---|---|---|---|---|---|---|---|---|---|
Interaction100 | Item1 | Item1Var1 | Transaction | 2020-04-01T10:00:00.000Z | |||||||
Interaction100 | Item2 | Transaction | 2020-04-01T10:00:00.000Z | 2.0 | |||||||
Interaction101 | Item2 | User1 | Like | 2020-05-01T13:25:00.000Z | Interaction-101-RT | False | |||||
Interaction101 | Item3 | User2 | Rating | 2020-07-12T08:45:00.000Z | Europe | MySale | 4.0 | False |
For the full list of data entities, see data entities.
See also
Data contract overview
Data entities mapping table
Catalog data entities
Reco configuration data entities
External lists data entities
Opted-out users data entities
Recommendations enrichment data entities
Image to item mapping data entities
Intelligent Recommendations API
Quick start guide: Set up and run Intelligent Recommendations with sample data