Nuno Castro, the Director of Data Science at Expedia gave a talk at PyData London 2017 on how they’re using GPUs and deep learning to rank hotel images.
Castro explains that humans first glance at the image within a hotel listing before considering the price or hotel name and this is why it’s crucial to rank images. Currently, the featured image of the listing on Expedia is manually selected and the others are randomly ordered – so by displaying the most attractive images first will likely provide a significant uplift in revenue and convergence for the hotel.
Expedia has over 10 million images from nearly 300,000 hotels, and ranking/sorting these manually would be difficult and time consuming – insert Artificial Intelligence to do this automatically.
To build their dataset to train their deep learning model, they used Amazon’s Mechanical Turk human crowd-sourcing solution to get ratings from 1 to 10 and average of 6 ratings for 100,000 hotel images. They also had the raters classify themselves in one of several traveler types (business, family, luxury, solo, friends, etc).
Starting with the VGG-16 CNN pre-trained ImageNet dataset, they fine-tuned the top layers with their hotel ratings dataset collected from Amazon using Tesla K80 GPUs on AWS and the cuDNN-accelerated TensorFlow deep learning framework.
The inference (prediction) was the main bottleneck since they have 10 million images on their website and ranking was taking nearly a week – using data parallelization across multiple GPUs on AWS they were able to improve this to one day.