The “rapidly changing intent” problem

Consider the last time you researched, planned and booked your most recent vacation online. It’s likely that you browsed and searched through dozens of destinations and accommodation choices before making your final choice. If you were to examine your own personal click-stream data for this activity, you would see a pattern of volatility and undulation as you slowly narrowed and confirmed your options. 

Marketers have been traditionally challenged with providing personalized and engaging messages during a customer’s rapidly changing research flow. This is due to the need for a real-time response (blink, and they’ve moved on) and supporting thousands of destinations and accommodation choices.

The stakes for getting personalization right are high, as doing it right has proven to increase customer engagement, satisfaction and revenue. Personalization is the reason that 30% of all Amazon page views are generated from recommendations. 

Failure to take-off

Traditional segmentation and rules based techniques that you might build using popular campaign management tools (e.g. Adobe Campaign, Salesforce Journey Builder) are simply not up to the task, as any attempt to explicitly build business rules for every eventuality would quickly spiral into unmanageable workflow webs that would be impossible to maintain.

Batch campaign solutions are also not designed to accommodate “in the moment” rapid changes of interest and intent. Many of these systems have a 24+ hour delay between capturing a new customer behaviour, and the ability to take action. 

The flexibility of any solution is important as well, as it is easy to get trapped into common challenges such as avoiding showing mostly popular items, or making inappropriate recommendations, such as a hotel that was just booked. 

The Solution: AWS Personalize

AWS Personalize is a machine learning service that offers a recommendation recipe that is ideal for the rapidly-changing-intent problem for the travel industry. 

AWS Pinpoint requires zero or little knowledge of artificial intelligence or machine learning to be deployed and tailored for your organization (no data-scientist required). As the service is serverless, it does not require procurement of hardware or heavy lifting from IT (along with the related capital costs). 

The preparation of training data and selection of AI models are all manageable via a web based wizard interface, as illustrated below:

AWS Personalize Wizard

Once configured and trained, the AWS Personalize service provides recommended destination and accommodations through diverse and flexible delivery mechanisms (e.g. personalize your website, integrate with existing campaign management tools, manual or scheduled batch recommendations, or any other service that can consume the API result). 

The Insight: Historical interest & disinterest matters

AWS Personalize is pre-configured with a library of machine learning libraries, which marketers can test and compare. For the travel customer in the research and planning phase, one particular recipe was found to be the most effective: hierarchical recurrent neutral network (HRNN). Testing by AWS showed that the evolution of historical interest and disinterest was a good indicator of future preferences. 

In the below diagram, we see an example travel customer click-stream. The customer has been exclusively considering Mexican resorts. When they abruptly view a new category for the first time, a Jamaican destination, the best performing recommendation is another Jamaican resort:

In the below second diagram, we see a similar customer click-stream. Again, the customer has recently viewed Mexican resorts and abruptly shown interest in Jamaica. This time, however, the customer has previously looked at Jamaica and the best performing recommendation is another Mexican resort. History matters, and the sudden change here is treated as “noise” and not a firm change of customer intent. 

Here, we will dive deep into the exact behaviour we witnessed with AWS Personalize using a mock travel site and synthesised data set. In this experiment, we looked to see how AWS Personalize would detect and respond to a customer’s changing preference from a historical preference for inexpensive hotels, to a sudden interest in more expensive ones.

This detailed example illustrates how AWS Personalize helps to solve the rapidly changing intent problem for marketers in the travel industry. 

Meet our travellers

The SpadinaBus faux online travel agency offers travellers a choice of a variety hotels across three destination locales: Mexico, Florida and Jamaica. Hotels vary in price ranges from inexpensive, middle-of-the-road to expensive. 

Although we performed load testing of AWS Personalize with tens of thousands of hotels, we’ve limited the number of hotels in order to make the recommendations more explainable. 

In our first round of testing, we selected a customer who had previously shown interest (according to their click stream) in inexpensive resorts, primarily in Mexico. The customer has history over several weeks of clicking on inexpensive resorts. 

We created a “recommendations” area on the site homepage to display the top three recommendations, generated by AWS Personalize.

Click 0 (Historical Prediction)

The initial recommendations for our customer based on their historical click stream are as follows (in order of priority):

  1. Very inexpensive Florida hotel
  2. Inexpensive Mexico hotel
  3. Inexpensive Jamaica hotel

AWS Personalize recommended the least expensive hotels for the customer based on their historical click stream. Despite the customer showing a preference for browsing primarily Mexican resorts, the model recommended the Florida hotel in the top of the list due to it having the lowest price of the three. 


Click 1

When we click on the most expensive Mexican hotel on our site, the recommendations change in real-time to:

  1. Very inexpensive Florida hotel
  2. Expensive Mexico hotel
  3. Expensive Florida hotel

Prior to Click 1, we did not see any expensive hotel options recommended. Now, expensive options appear as 2nd best or 3rd best options for the first time. However, the very inexpensive Florida hotel recommendation still commands the top position, due to the long-standing historical preference. 

Click 2

For our second click, we click on a more expensive than average Mexican resort. When we ask AWS Personalize for recommendations at this point, we only see a slight shuffling of the priority of the more expensive hotels:

  1. Very inexpensive Florida hotel
  2. Expensive Florida hotel
  3. Expensive Mexican hotel

The very inexpensive Florida hotel retains the top position as two recent clicks for expensive hotels are not enough to usurp it. 


Click 3

For our third and final click, we click on yet another more expensive Mexican hotel. It is at this point that the hierarchical recurrent neural network (HRNN) strongly reacts to the recent clicks. Finally, we see a more expensive hotel recommendation in the top position:

  1. Expensive Mexican hotel
  2. Very inexpensive Florida hotel
  3. Expensive Florida hotel

We can see that the model continues to acknowledge the historical weight of the inexpensive hotel, as it retains a presence in the 2nd position. 

Taking Action from Insight

In our testing, we displayed the top three recommendations from AWS Personalize on the mock site home page. However, these recommendations may be integrated with a variety of channels and other systems. 

In part two, we discuss how these recommendations can be consumed in real-time by AWS Lambda and AWS Pinpoint to drive outbound customer engagement (as per the AWS Predictive User Engagement solution). This is a powerful capability that allows marketers to continue to engage with customers and prospects once they have left the online travel portal using outbound channels like email, SMS, social messaging or voice.

AWS Personalize from Within an Email Inbox

If you’re looking to implement AWS Personalize recommendations from within a customer’s email inbox, you can read about how to use an endless carousel. In this example, Google’s AMP for email is used to allow customers to interact with a carousel to browse AWS Personalize recommendations.