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:
- Collaborative similarity, which finds users with similar interaction patterns - which users interact with the same items?
- Content similarity, which finds users with similar profile attributes (e.g., interests, demographics).
Collaborative similarity
Prerequisites
- An engine with a trained collaborative embedding (e.g., ALS) configured for users
- 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
- An engine with a content-based user embedding (e.g., text embedding from user profiles) configured
- 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"
}
}