3 ways to improve recommendations

3 ways to improve recommendations

We started XOKind with the mission to simplify human planning and decision making by distilling the world’s information. Today, we want to share some insights we have learned on how a different way of searching for recommendations can improve the process of planning.

The simple act of planning can be fun — especially when it’s planning something exciting, like your next adventure. But with the surfeit of information and options available online, planning can go from joyful to tedious quickly.

In our initial use case for the XOKind product, travel planning, we wrote about the pain travelers experience as they climb a mountain of generic options. When a plan has to incorporate various sets of preferences and decision makers, the level of back-and-forth thinking quickly spirals out of control.

One potential solution is personalization. Personalizing recommendations is a well-established concept in AI-powered products. Every day, we experience personalized news feeds, video and music recommendations, and ads.

But most personalization still revolves around content consumption on a large scale by many users. Based on our user research, when it comes to making bigger decisions like travel planning — which happen infrequently and where users need high-quality recommendations –users don’t see much help from current personalization approaches. Instead, we need something more thoughtful — a system that can identify and take into account the most important factors, collect and synthesize the right data, and appropriately distill the information that allows users to make informed decisions faster. Here are three key criteria for our proposed recommendation system.

Let users express requirements naturally

When we make decisions with big intervals between them, our core preferences may not change but the context of our decision-making may be dramatically different. This is a common experience in trip planning: our considerations, needs, and constraints vary from trip to trip. The right options for your solo school-reunion trip to Connecticut last year are very different from those for your weeklong family vacation to Hawaii next year. You haven’t changed, but you need to communicate requirements that go beyond your past preferences and history.

Most systems try to solve this problem using filters. The result, though, is overwhelming lists of checkboxes. Do the endless filters really capture all of your requirements? Or do you have to dig deeper, perhaps jumping from site to site or diving into detailed reviews following frenzied Googling?

An ideal system would allow decision makers to input explicitly and naturally what they need, using their own language. It should extract and organize the available information, assemble key information into options, and match these options not only to users’ preferences, but also to their additional needs and considerations. In short, it would layer users’ immediate, naturally expressed needs onto core information about their preferences and constraints.

Such a recommendation process can be driven by semantic search, information retrieval, and knowledge reasoning, and finally by personalized ranking.

Maybe you are looking for “A hike in Seattle where we can take our kid to see a waterfall and some rock features, which is shorter than 3 miles.” (Try this with a standard search engine, and have fun scrolling and reading through the zillion results …) Instead of presenting scattered information like a typical search engine, a recommendation system connected with search saves users’ time by presenting them with highly personalized options.

Or how about this? “A hike with my dog, then brunch in the Mission. Then something relaxing to do in Golden Gate Park.” Can your virtual assistant handle that?

We have been building a system to handle these kinds of queries. Here are some examples:

Another exciting approach is to build the recommendation experience into a chatbot style interface to refine recommendations. Maybe you would like to find “a hotel in San Diego with a rooftop bar and a view of the downtown area and the harbor,” and then sort results by another requirement: “Which ones are closest to the San Diego convention center?” Although chatbots have a (deservedly) poor reputation, the recent release of OpenAI’s GPT-3 model has provided a step increase in the capabilities of such systems. I’ve recently tried this with their API! (Thanks OpenAI!)

A user wants to find a hotel recommendation.

User: Hi Hotelbot

Hotelbot: How can I help you to find a hotel for your trip?

User: I am looking for a hotel in San Diego that has a rooftop bar, with a view of the downtown area and the harbor. Any recommendations?

Hotelbot: I found two hotels for you. The first one is the Fairmont Grand Del Mar. The hotel has a rooftop bar and a view of the downtown area and the harbor. The second one is the Hilton San Diego Bayfront. The hotel has a rooftop bar and a view of the downtown area and the harbor.

User: Which one of the two is closer to the convention center?

Hotelbot: The Hilton San Diego Bayfront is closer to the convention center.

User: Does it have airport shuttle service?

Hotelbot: The Hilton San Diego Bayfront has airport shuttle service.

User: Is it available for August 23–24? And please give me the price.

Hotelbot: The price for the Hilton San Diego Bayfront is $257.28.

User: Is it available for August 23–24?

Hotelbot: The Fairmont Grand Del Mar is not available for August 23–24.

User: How about Hilton San Diego Bayfront? Is it available August 23–24?

Hotelbot: The Hilton San Diego Bayfront is available for August 23–24.

User: Where can I book it?

Hotelbot: You can book it at http://www.booking.com/hotel/us/hilton-san-diego-bayfront.html?aid=303062.

GPT-3 is really powerful: after being trained on a large part of the text on the internet, it can retrieve relevant information and converse in a very natural and fluent manner based on just the right priming (in bold above). It has the potential to become even more helpful if the recommendations are factually correct and grounded to the hotel with its pictures, location, descriptions, pricing and availability.

Help users understand why recommendations are offered

Regardless of what is going on behind the scenes, as users we mostly care if the options are truly relevant and trustworthy. When booking accommodations, for example, we tend to spend time cross-referencing multiple sources, reading through countless reviews and sweating the details:

  • Is the pool heated? Did any guest confirm that?
  • Can I spot wildlife on this hike? What have other hikers seen recently?
  • Is my hotel in an interesting neighborhood? What are the cool things to do nearby?
  • What’s this experience really like? How do travel experts describe it?

In making these decisions, we don’t just rely on text. Images, videos, maps, and websites are all very relevant. It’s nearly impossible to decide on accommodations without seeing pictures. An ideal recommendation system should reveal the widely spread but useful information it has already gathered in making the recommendation to the users, assemble the findings and distill the key information to help with this cross-referencing, detail checking process.

As a result, the system facilitates a cohesive, trust-building user experience, providing transparent explanations and bringing all relevant information into one place. It signals to the user that the requirements have been understood, and that the range of options is drawn from trustworthy sources. This lets users make informed decisions faster and more confidently.

Get the job done

Even after technology and users collaborate successfully to decide on the best options, the work is still not done. We have observed that, in the context of travel, users often go from planning to a sort of “aggregation phase,” in which they start copying content from various sources into ad hoc centralized locations such as shared notes, documents, and spreadsheets. They figure out where they have to make reservations, what they have to purchase in advance, and when they have to take next steps.

This is a crucial point where we believe technology can take the strain. The system should lead users to their natural next steps: where to save them to favorites or share, where to book reservations, where to buy items that require advance purchase, a wishlist for notes and details — all in one place.

Naturally, the goal should be bringing more efficiency, rather than capturing more user attention (as is the case in ad-supported models or pay-for-play promotional content). This has significant implications for the business model which this system is a part of. It encourages business models that may potentially align with the user’s goals and gain more trust via respecting and preserving their privacy.

We believe that the three criteria above can spur the next phase of automating recommendations. Traditional recommendation systems work well with large amounts of engagement, large numbers of users, and in general, a lot of attention and time. To serve individual users and infrequent planning while still providing quality recommendations faster on bigger decisions, a system requires a better grasp of both users’ needs and the world’s information, focused on one specific domain at a time.

With all the recent breakthroughs in NLP, information extraction and retrieval, knowledge representations, and common sense reasoning, it is time to pursue a different approach on recommendation — one that connects the vast amount of information and knowledge with users’ needs and goals, provides value directly to the user rather than attempting to monetize users’ time and attention, and gets the job done.

We’d also love to learn from you. We want to know more about what frustrates or challenges you when you’re looking for amazing recommendations.

At XOKind, we wake up every day excited to build such a recommendation system that can put the joy back into planning for you.