Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Xiaoya Wei on Airbnb's Knowledge Graph

Xiaoya Wei on Airbnb's Knowledge Graph

This item in japanese

Airbnb Engineering and Data Science recently posted an article on their knowledge graph, a structured database that helps users make decisions on where to stay and what to do.

Airbnb's knowledge graph encodes information about their inventory and the world in a graph structure. This structure is based on a hierarchical taxonomy where concepts (e.g., Surfing and Sport) are represented in the graph as nodes, and the relationships between them (e.g., Surfing is a Sport) as edges. Attributes about Airbnb's inventory of Homes, Experiences, and Places are tagged with concepts from the taxonomy. Then, for example, Airbnb searches for places tagged with Sport to include places tagged with specific types of Sport, such as Surfing.

InfoQ caught up with Xiaoya Wei, software engineer at Airbnb, regarding their knowledge graph and how it helps them categorize their inventory and deliver travel context to their users.

InfoQ: What problem were you trying to solve by building the knowledge graph?

Xiaoya Wei: The knowledge graph is primarily used for categorization and contextualization.

By categorization, we are referring to ingesting attributes of all Airbnb supply (Homes, Experiences, and Places) and travel entities (Destinations and Neighborhoods); we classify all of this data with a universal taxonomy that helps users find what they are looking for through relevant product functionalities like navigation in Explore, free-text search/autocomplete, and filters.

By contextualization, we are referring to travel data (weather, events, visa requirements, etc.) that is critical to making more confident travel booking and planning decisions - and that most users currently get from platforms like Google and TripAdvisor.

All of this work is designed to help us achieve our mission: to provide a consistent interface to clean, current, and complete structured data about our entire bookable and non-bookable inventory - and the world of travel at large.

InfoQ: How are you populating and maintaining the data? How much of this is manual versus automated?

Wei: We are taking a combination of different approaches:

  • Manual/editorial input: For use cases such as categorization of Airbnb Experiences, we either build internal tools for editors and third-party partners to input and maintain the data. There are also times that editorial contents are imported to the knowledge graph as a one-off effort.
  • Model: For cases like Homes categorization, we are exploring rule-based and ML models to generate data, which also needs users’ confirmation in some cases.
  • Third-party data: For use cases such as historical weather and upcoming events, we have pipelines that get data from third-party data providers, populate these data into the knowledge graph, and update them regularly.

The manual approach is for limited use cases (like Experiences categorization). Down the road, we will keep seeking more scalable approaches to ingest data.

InfoQ: How successful has the system been in providing value to Airbnb's customers?

Wei: The system is now serving contents in the whole Airbnb booking flow and other components such as trip planner. So far, it has improved users’ engagement metrics (e.g., page views and clicks); some use cases help users plan their trips easily, as the experimental results show an uplift in bookings.

InfoQ: Can you talk about some of the technologies used in the knowledge graph solution?

Wei: The graph storage is built on top of an internal relation database; you can find more details in the "Graph Storage" section in the original post. The service is built with the Airbnb service framework (you can see more details in Building Services at Airbnb). We also heavily relied on using Kafka for a lot of use cases; the "Storage Mutator" part in the original post is an example of it.

Rate this Article