Skip to main content

Similar users

A similar user query returns users who are most similar to a given user. Common applications include finding users with similar preferences, building user segments, and enabling social features.

You can do user similarity in two ways:

  1. Collaborative similarity, which finds users with similar interaction patterns - which users interact with the same items?
  2. Content similarity, which finds users with similar profile attributes (e.g., interests, demographics).

Collaborative similarity

Prerequisites

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

Query example

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

{
"query": {
"type": "rank",
"from": "user",
"retrieve": [
{
"type": "similarity",
"embedding_ref": "als_user_embedding",
"query_encoder": {
"type": "precomputed_user",
"input_user_id": "$parameters.user_id"
},
"limit": 20
}
]
},
"parameters": {
"user_id": "user123"
}
}

Content similarity

Prerequisites

  1. An engine with a content-based user embedding (e.g., text embedding from user profiles) configured
  2. A user to find similar users for

Query example

To find similar users based on profile attributes (e.g., interests, bio text), use the similarity retrieve type with attribute pooling:

{
"query": {
"type": "rank",
"from": "user",
"retrieve": [
{
"type": "similarity",
"embedding_ref": "text_user_embedding",
"query_encoder": {
"type": "user_attribute_pooling",
"input_user_id": "$parameters.user_id"
},
"limit": 20
}
]
},
"parameters": {
"user_id": "user123"
}
}