Skip to main content

Similar items

A similar item query returns the items which are closest to a given item. This is a retrieval operation that uses similarity search.

You can do item similarity in two ways:

  1. Content similarity, which finds items with similar attributes (e.g., text descriptions, images).
  2. Collaborative similarity, which finds items that are frequently interacted with by the same users.

Content similarity

Prerequisites

  1. An engine with a content-based embedding (e.g., text embedding) configured
  2. An item to find similar items for

Query example

To find similar items based on content/attribute similarity, use the similarity retrieve type with attribute pooling:

{
"query": {
"type": "rank",
"from": "item",
"retrieve": [
{
"type": "similarity",
"embedding_ref": "text_embedding",
"query_encoder": {
"type": "item_attribute_pooling",
"input_item_id": "$parameters.item_id"
},
"limit": 20
}
]
},
"parameters": {
"item_id": "item123"
}
}

Collaborative similarity

Prerequisites

  1. An engine with a trained collaborative embedding (e.g., ALS) configured
  2. An item to find similar items for

Query example

To find similar items based on collaborative filtering (interaction patterns), use the similarity retrieve type with a precomputed item embedding:

{
"query": {
"type": "rank",
"from": "item",
"retrieve": [
{
"type": "similarity",
"embedding_ref": "als_embedding",
"query_encoder": {
"type": "precomputed_item",
"input_item_id": "$parameters.item_id"
},
"limit": 20
}
]
},
"parameters": {
"item_id": "item123"
}
}