Vinted
Europe’s largest online second-hand fashion marketplace. Serves users across multiple European markets with personalized item recommendations on the homepage.
Search & Recommendations Architecture
3-stage recommender system:
- Recall (Vespa + ANN): Two-tower model — user embedding (from interaction sequence) vs. listing embedding (brand, price, size, photos). ANN retrieves candidates in <100ms. Key requirement: prefiltering by user-set filters (size, category) at query time.
- Downstream ranking stages
Why Vespa over FAISS: FAISS is a read-only index requiring periodic rebuild; no prefiltering. Vespa supports real-time updates and metadata-filtered ANN natively.
Benchmark results (1M docs, 256-dim):
- Vespa indexing: 3.8× faster than Elasticsearch
- Vespa query throughput: 8× higher RPS before CPU saturation
- Vespa P99 latency: 26ms vs. 110ms for Elasticsearch
ANN accuracy: ~60–70% recall vs. exact search, but user satisfaction did not improve with exact search (latency cost not worth it).