Cold start for new items
Cold start means there is no history to learn from. A text embedding made from the change stream put each new item in the index within 1.3 s, instead of after the nightly retrain.
See it on the board
The same traffic runs on two boards. The simulator measured both when this page was built.
| Measure | Goal | Vectors come only from clicks | Text embedding for each new item |
|---|---|---|---|
| p99 latency (Browse) | under 100 ms | 3.5 ms Pass | 3.5 ms Pass |
| p99 latency (Listings) | under 200 ms | 6.7 ms Pass | 6.7 ms Pass |
| Data age | under 30 s | 119.9 s Fail | 1.3 s Pass |
| Monthly cost | 84 USD/mo | 604 USD/mo | |
| Error rate | 0% | 0% |
Key numbers
| Number | Value |
|---|---|
| Embedding call, median | 150 ms |
| Searches per second, one vector index | 10,000 ops/s |
| Vector search, median | 0.3 ms |
Two write paths · 4 of 16 served features differ from training
How it works
A recommender learns from behavior: what people click and buy. A new item has no behavior. The model has nothing to learn from, so the item gets no score and does not appear in results. Until the next retrain, usually one night later, the item is invisible.
For a marketplace, this is a real loss. In the mini board sellers list 50 new items each second. Item vectors come from clicks, so none of them can appear. New items must be findable within 30 s. A listing must save within 200 ms at p99.
The item text gives a usable vector at once. An embedding model turns the title and description into a vector that places the item near similar items. The system reads each new listing from the change stream, embeds it, and writes the vector to the item index. The item appears in results about 1 s later. In the run each new item reached the index in 1.3 s.
Keep the embedding off the listing path. If the listing request waited for the GPU, a slow model would make the save slow. The change stream does the work in the background.
The text vector is only a start. When clicks arrive, the click-based model can take over for that item. Mix the two scores for a while, and watch whether new items get a fair chance.
In the levels you give new items a vector from their content and check how fast they are findable.