06 / AI and agents
Cold-Start Recommender
Meta-learning for travellers with no history
- Client
- MSc research in software engineering
- Role
- Researcher, MSc thesis
- Year
- 2026
MSc research. Results measured offline on public check-in data at three scales.
The challenge
Classic collaborative filtering needs neighbours to compare against, and a new traveller has no bookings, reviews or check-ins. On the full dataset fewer than 0.25% of user and place pairs have any interaction, an order of magnitude sparser than standard benchmarks, and all feedback is implicit. The system has to learn a person from almost nothing.
How it fits together
The approach
- 01
Every user is a task
Each user becomes a meta-learning task: a small support set to adapt on and a held out query set to evaluate on. The model learns how to learn a new person quickly, rather than memorising existing ones.
- 02
Context the graph cannot see
Place embeddings from a graph neural network are joined with a geographic vector, so nearby places relate even if nobody visited both, and a social vector that warm starts a newcomer from their connections.
- 03
Two meta-learners, one feature set
A MAML model adapts with gradient steps per user; a prototypical network simply averages a user’s support embeddings and ranks by distance. Training both on the same features separates the effect of the algorithm from the effect of the data.
- 04
Three scales and an ablation
Real check-in and friendship data at country, continent and global scale, evaluated with NDCG and Recall at 10 and 20, and an ablation that removes one component at a time.
Results
+21.7%
NDCG@10 over the graph baseline
+26.3%
Recall@10 over the graph baseline
3.5x
faster training than MAML at similar accuracy
Looking back
The biggest lever was context, not the algorithm. Removing geography cost about 90% of the accuracy, while the choice of meta-learner mattered far less, and the simpler one was cheaper to train.
Stack
Python, PyTorch, Graph neural networks, MAML, Prototypical networks
Next project ↗
Tenancy and Org Structure
The backbone services every other service relies on