14
Optimizing Content Caching at Skyscanner @karamshuk

Optimizing Content Caching at Skyscanner

Embed Size (px)

Citation preview

Page 1: Optimizing Content Caching at Skyscanner

Optimizing Content Caching at Skyscanner

@karamshuk

Page 2: Optimizing Content Caching at Skyscanner

Flight Search

Page 3: Optimizing Content Caching at Skyscanner

Where Flight Quotes Come From

Airlines

Travel Agents

Online Travel Agents

Global Distribution

Systems

End User

� Each user search triggers dozen requests to partners resulting in a total of 7B/day quotes

� Repeated requests with 85% probability return same price

Page 4: Optimizing Content Caching at Skyscanner

Caching Quotes

Airlines

Travel Agents

Online Travel Agents

Global Distribution

Systems

End User

Strong case for caching quotes:

� reduced load on partners

� faster results to end users

Quote Cache

Page 5: Optimizing Content Caching at Skyscanner

Problem with Caching

Prices are changing dynamically, so, caching may introduce inaccuracies

Bookings drop significantly even if the prices are slightly inaccurate

Page 6: Optimizing Content Caching at Skyscanner

Caching Trade-off Accuracy of Quotes

Load on Partners and Response Time

Page 7: Optimizing Content Caching at Skyscanner

Caching Trade-off Accuracy of Quotes

Load on Partners and Response Time

Optimal trade-off: Update prices only/always when they change

Page 8: Optimizing Content Caching at Skyscanner

Price Volatility Not Easy

From: To:Moscow Barcelona

Page 9: Optimizing Content Caching at Skyscanner

Price Volatility Not Easy

From: To:Moscow Bangkok

Page 10: Optimizing Content Caching at Skyscanner

Predicting Price Volatility

1. Approach N1: constant cache expiry times� simple to implement � does not accurately model price volatility

2. Approach N2: emulate pricing models of each individual partner � pricing models of some airlines are incredibly complex

3. Approach N3: machine learning approach � best trade-off between simplicity and accuracy

Page 11: Optimizing Content Caching at Skyscanner

Machine Learning Approach

1. Supervised learning: Leverage on the archive of 7B/day quotes

2. Encapsulate wide range of factors: Learn patterns specific for individual airlines, routes, booking time and horizon, popularity, etc.

3. Automatically adjust to different pricing models

Page 12: Optimizing Content Caching at Skyscanner

Preliminary Results

Page 13: Optimizing Content Caching at Skyscanner

Challenges

1. Purifying labels; dealing with unbalanced classes

2. Limitation of supervised (imitation) learning

3. Implementing scalable solution

Page 14: Optimizing Content Caching at Skyscanner

Get in touch: @[email protected]