By Expedia Guest Author, on January 9, 2017

Expedia’s Nautilus Travel Search Engine: Overview and Applications

By Thomas Crook, Manager of Data Science and Technical Product Management, Expedia Search Group, and Neelakantan Kartha, Senior Technical Product Manager, Expedia Nautilus Team

This content originally appeared on Expedia’s Science of Travel Blog.

Expedia has been researching natural language processing for more than five years and completed version 1 of the patent-pending Nautilus travel search engine in 2012. Nautilus is composed of an NLP language parser and a probabilistic travel entity selector we call “SmartFinder.” Client applications pass Nautilus a natural language query (e.g. “Hotels in Bellevue, “Beach Hotels”, “Hotels near Space Needle in Seattle”, “Las Vegas”) and Nautilus returns ranked lists of travel entities, such as hotels and regions, that are most relevant to the query.

In July of 2012, Expedia launched “Semantha,” an internal employee hotel booking site powered by Nautilus. Semantha accepted natural language queries and displayed a ranked list of hotel results on a map view of the destination most relevant to the user query. The Nautilus team used Semantha telemetry and qualitative feedback for three years to continually test and improve the Nautilus search engine and build confidence in its ability to successfully handle real-world natural language travel queries before launching it for external use.

Nautilus and Expedia’s Search Anything

We started A/B testing a Nautilus-powered “Search Anything” tab on the US homepage in September of 2015 to gauge customer feedback and search input trends, and have continued testing and adding incremental improvements to the feature ever since. For example, we were surprised by the number of people who were directly entering itinerary numbers so we added a feature that returns a link to users’ itineraries at the top of the search results when they enter an itinerary number.

Figure 1: We were surprised at the number of people who directly entered itinerary numbers into the Search Anything form

This past July we rolled out Search Anything to the majority of our English-language platform sites under the Expedia, Travelocity, Orbitz and Wotif brands that enables us to understand local context in search results. For example, searching for “Hotels in Newcastle” on will return hotels in Newcastle New South Wales in the first two positions, versus the same search on which will surface hotels in Newcastle-upon-Tyne.

Figure 2: Localized Search Results

The most popular Search Anything query categories we have observed in 2016 include:

all inclusive
ground transportation
phone number
customer service
multiple destination vacation packages

Expedia is also testing Nautilus on other parts of its sites, beyond the Search Anything tab. In conjunction with our machine learning sorting algorithms, Nautilus is powering a hotel search result refinement test that allows users to surface hotels that meet their unique needs – such as “pet-friendly hotels with a kitchen.”

Figure 3: Nautilus Search Refinement on Hotel Search Results

Nautilus Technical Overview

At a high level, here’s how Nautilus works:

The Nautilus orchestration service takes an input query and forwards it to the NLP service. The NLP service tags the query with named entities (e.g., Name, Location, Amenity, Other) and concepts (e.g., HOTEL_STRUCTURE, HOTEL_ATTRIBUTE, HOTEL_STAR_RATING, PRICE, RELATIVE_DATE). The tagged query is then passed on to the SmartFinder service, which is powered by machine learning models derived from various sources. The SmartFinder service uses the tagged query returned by the NLP service in combination with machine learning models to determine the lists of travel entities such as hotels and regions most relevant to the query. The Nautilus service constructs the final response using the outputs of the NLP and SmartFinder services and returns it the calling application.

Figure 4: Nautilus High Level Architecture