In a relatively short period of time, conversational AI has become a fixture in a number of fields (customer service and advertising being prominent examples) and is emerging in many more. Though the applications vary widely, the core idea across them is the same: apply natural language processing (NLP) to a text (or in some cases, voice) user interface to emulate the experience of talking to a real person. The challenge to implementing this simple (on the surface) concept is to maintain a ‘human’ balance in the conversation: be responsive to the user, while still advancing the conversation that the AI ‘wants’ to have.
There are two major approaches to striking this balance: a flow-driven approach, and an intent-driven approach. These two approaches come at the challenge from the opposite ends of the spectrum. In the most basic terms, flow-driven chatbots prompt the user for a response and then take some follow-up action based on that response (eg., showing a text description, or an image) before prompting the user for their next input. Intent-driven chatbots invert this model – instead of the chatbot prompting the user for a response, the chatbot waits for a user input and then applies NLP to interpret that input and provide the corresponding or mapped response. In this way, the user can be considered to ‘prompt’ the chatbot for its response.
The contrast between flow and intent-driven chatbots in how conversations are structured and play out is sharp. Flow-driven chatbots are much better at driving a conversation towards a particular goal or objective; because the conversational model is very much like a flow chart, there is always a clear, logical progression on how to advance the conversation. However, because the user is always in the context of the latest prompt or chatbot message, user inputs are (by necessity) evaluated in the very specific context of that latest prompt. This means that attempts to change topics or context (change to another ‘node’ in the flow chart) require special handling and must compete with the AI’s attempts to evaluate input against the current prompt and advance the conversation according to the defined logic and structure.
In comparison, intent-driven chatbots are much better suited to context switching; there is no logic or structure inherent in the conversation, so user inputs are (in the general case) evaluated against all intents defined within the chatbot. However, this easy switching between topics or contexts can come at the expense of a strong direction for the conversation. Since this design relies on the user to prompt the chatbot and drive the conversation forward, if the user is more passive or unsure of what the chatbot can do, the conversation can become stagnant or ‘stuck’.
The strengths and weaknesses of both approaches are suited to different applications; additionally, there are methods for mitigating those weaknesses and handling the issues that arise from them. In part 2 of this post, I’ll discuss some of those methods and expand on how the strengths of both flow and intent-driven bots can be combined into a more balanced, ‘human’ conversational AI.