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:
- Content similarity, which finds items with similar attributes (e.g., text descriptions, images).
- Collaborative similarity, which finds items that are frequently interacted with by the same users.
Content similarity
Prerequisites
- An engine with a content-based embedding (e.g., text embedding) configured
- 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
- An engine with a trained collaborative embedding (e.g., ALS) configured
- 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"
}
}