Task-oriented chatbots at WayBlazer
At WayBlazer, we’re using AI-based chatbots in a couple of scenarios. We use a task-oriented chatbot to help users focus on booking a hotel/flight or finding a spot in the world to vacation next. These chatbots are not general knowledge chatbots that you can ask trivia questions. Rather, they are goal oriented chatbots focused on helping you complete a travel-related task in the inspiration and research phase of trip consideration.
We’ll walk you through a high-level architecture of our task-oriented chatbot and where we apply AI techniques.
First, our chatbot understands intent within the response from the user with its Natural Language Understanding (NLU) component. The NLU has two outputs it needs to achieve: it must determine what the customer is asking/telling us (the intent) as well as parsing the input into pieces called slots.
For example the input of “My wife and I would like to book a hotel room in London” has the intent of booking hotel and two slots might be “travelers: 2 adults“ and “destination: London“.
At this point the NLU doesn’t have access to any previous conversations with the user so it is stateless. To classify the intent as well as parse the input dialog into the appropriate slots, the NLU relies on machine learning based on a corpus of labelled data to handle the myriad of ways users phrase questions and statements.
The Dialog Manager (DM) receives the output of the NLU: the intent and new slots. The DM has the state of the previous conversation in the Dialog State Tracking (DST) sub-component. Using the input intent, the DST decides if the new slot values received should replace existing slot values — perhaps the conversation moved from a London trip to a Madrid trip? Or maybe NLU intent is to augment the existing slots with new data — perhaps adding another traveller to the trip. In addition the DST needs to consider any external reference information like getting pricing and availability for a new set of dates and update the state accordingly.
Once the DST has updated the state of the current conversation, the Dialog Manager consults with the Dialog Policy (DP) on what the next step is to help the customer achieve the task. Maybe it’s to ask a relevant follow up question or maybe it’s to let them book their trip as the task has been achieved. The DP is often rules based, but this is an active area of interest on achieving more natural conversation flow by examining human-to-human chats for the similar tasks.
Natural Language Generation (NLG) is the final piece of our chatbot. This is where we format the exact reply to the user based on the output from the DM — updated slots as well as the next policy from the DP. It might acknowledge any information given as well as formulate the next follow up question in natural language if the task is not complete. Like the NLU, this component is also stateless; however, unlike NLU it is often rules based and not machine learned. The NLG often uses templates to formulate the response, but with enough training data AI techniques can generate more natural responses.