Workflow · Production

Strava ML intern prototypes post search and recommendation using vector embeddings and Vertex AI

The problem

Strava users could not easily find relevant posts and content within the app, and new users lacked discovery mechanisms to connect with non-connected peers or access interesting content.

Workflow diagram · grounded in source
1
Search query submitted
trigger
“Delivering Strava's relevant and high-quality content based on the user's queries, ex: 'What's the scenic route in Bay Area'”
2
User interest preferences captured
trigger
“Recommend post based on preferred activities(hike/run/etc.) or goals("Track my activities and workouts") via "New Reg Intent Survey"”
3
Posts encoded as vector embeddings
ai_action
“Choose Embedding/Natural Language Processing(NLP) model paragraph ->numerical embeddings, 'I love Strava!' → [1, 2, 9]”
4
Post clustering and classification
ai_action
“Classify posts(100000 posts here for demo), obtain top representation for each cluster/topic”
5
Vector similarity matching
ai_action
“all the vectors are compared using a "matching engine" via a distance metric. It is important to note that the proximity between two vectors indicates a closer alignment in meaning”
6
Relevant content retrieved
output
“the post which is highly relevant to the query would be retrieved by Vector DB in real-time”
Reported outcome

(not stated)

Reported metrics
Posts indexed for search prototyping>4 million
Posts used for recommendation prototyping100000
Reported stack
Vertex AI matching engineGCPNLPSnowFlake
Source
https://medium.com/strava-engineering/amazing-summer-on-ml-team-search-recommendation-308223bb2b75
Read source ↗

Frequently asked questions

What did this team achieve with this AI workflow?

(not stated)

What tools did this team use?

Vertex AI matching engine, GCP, NLP, SnowFlake.

What results were reported?

Posts indexed for search prototyping: >4 million; Posts used for recommendation prototyping: 100000 (source-reported, not independently verified).

How is this workflow AI workflow structured?

Search query submitted → User interest preferences captured → Posts encoded as vector embeddings → Post clustering and classification → Vector similarity matching → Relevant content retrieved.