Bootstrapping a Destination Recommendation Engine

22
Bootstrapping a Destination Recommendation Engine @neal_lathia

Transcript of Bootstrapping a Destination Recommendation Engine

Page 1: Bootstrapping a Destination Recommendation Engine

Bootstrapping a Destination Recommendation Engine@neal_lathia

Page 2: Bootstrapping a Destination Recommendation Engine

What is Skyscanner

Page 3: Bootstrapping a Destination Recommendation Engine
Page 4: Bootstrapping a Destination Recommendation Engine

(Some of the) Product Machine Learning Problems

Price AccuracyEnsuring that what you see is what you’ll get

SearchFinding the best itinerary for your needs

RecommendationInspiring you to travel to new places

Ad relevanceConnecting partners with the right travellers

ConversationsGo and try our Facebook bot J

AlertingKeeping you informed, finding the best time to buy

Page 5: Bootstrapping a Destination Recommendation Engine
Page 6: Bootstrapping a Destination Recommendation Engine
Page 7: Bootstrapping a Destination Recommendation Engine
Page 8: Bootstrapping a Destination Recommendation Engine

Can we do better?

Historical price focusPrice is only one feature that could make a destination attractive.

Sparse user dataTravel is (relatively) low frequency. Many new, anonymous users –cold start problem in recommendation.

Destinations are relativeLondon from Edinburgh is not the same as London from New York.

Page 9: Bootstrapping a Destination Recommendation Engine

…with specific challenges

No collaborative filtering (yet)Traditional collaborative filtering algorithms are not suitable for the data that we have.

No manual interventionMany approaches that tackle cold-start require manual intervention from users: profiles, surveys, tags, preferences.

No offline evaluation (yet)Without data, we have no robust approaches to estimating the accuracy of recommendations offline (e.g., RMSE).

Page 10: Bootstrapping a Destination Recommendation Engine

Key insight

Page 11: Bootstrapping a Destination Recommendation Engine
Page 12: Bootstrapping a Destination Recommendation Engine
Page 13: Bootstrapping a Destination Recommendation Engine
Page 14: Bootstrapping a Destination Recommendation Engine

Pipeline Overview

Page 15: Bootstrapping a Destination Recommendation Engine

Write the code: The architecture behind Skyscanner’s recommended destinations (by @AndreBarbosa88)https://medium.com/towards-data-science/write-the-code-f6d58c728df0

InitialStructure

Page 16: Bootstrapping a Destination Recommendation Engine

Many ways to define three key concepts

PopularWhere do people want to (always, recently) go?

“Localised”What is in higher demand where you are? Destination-frequency, inverse global frequency.

TrendingTemporal shifts in search behaviours to captureseasonality, events, demand.

Page 17: Bootstrapping a Destination Recommendation Engine

Experiments

“Design like you’re right, test like you’re wrong” by @MCFRLhttp://codevoyagers.com/2016/03/16/design-like-youre-right-test-like-youre-wrong/

Page 18: Bootstrapping a Destination Recommendation Engine

✅ ❌

Page 19: Bootstrapping a Destination Recommendation Engine

Page 20: Bootstrapping a Destination Recommendation Engine
Page 21: Bootstrapping a Destination Recommendation Engine

Conclusions

Page 22: Bootstrapping a Destination Recommendation Engine

thanks: Vespa Squad in London, Data Science team!