A food delivery app's discovery widget was underperforming because it ranked restaurants by general popularity, ignoring personalization. The team adapted Uber's Two-Tower Embedding architecture to rank restaurants within tag-based selections (e.g., 'Burgers', 'Sushi'). Key design choices included reusing a frozen TinyBERT model for semantic restaurant features, building user vectors from tag-filtered order history to capture current intent rather than global taste, using views-without-orders as weak negative signals, and applying multi-task learning with funnel constraints across click, add-to-basket, and order targets. The system achieved statistically significant conversion uplift in A/B tests and generalized to new selections without retraining. It was later reused for ad placement, demonstrating the value of designing for cross-surface reuse.
Sort: