By Thomas Crook, Manager of Data Science and Technical Product Management, Expedia Search Group, and Neelakantan Kartha, Senior Technical Product Manager, Expedia Nautilus Team
History and Introduction
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 Expedia.com US home page 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.
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 Wotif.com will return hotels in Newcastle New South Wales in the first two positions, versus the same search on Expedia.co.uk which will surface hotels in Newcastle-upon-Tyne.
The most popular Search Anything query categories we have observed in 2016 include:
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.”
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.