Rasa Has Intent Deprecation On Their Roadmap
And What Does This Chatbot Architecture Look Like…
In the March 2021 Rasa webinar, Beyond the Release Notes, mention was made of intent deprecation. This afford makers the option to not make use of intents in scenarios where it suits the narrative; quite literally.
The use-cases will obviously be established as implementations increase. One definite reason for non-intent implementation will be to increase conversational flexibility and contextual awareness.
Within a conversation there are various threads of context running simultaneously.
For instance, form filling is a rigid approach. Mostly a necessary approach for enforcing a context, for a particular portion of the conversation.
The enemy of mapped conversations is digression.
Digression is where the user veers off the established and common conversational path.
A typical example can be seen in the image on the left, where the user is ordering a pizza, and the chatbot is trying to upsell extra cheese…
The user asks “how much is it?”, and context is lost for that particular context.
The bot defaults to:
- Completing the order
- present general pricing
All the whilst the context is lost, for the user merely wanting to know how much the charge will be on extra cheese.
Linking the user utterance to a bot response introduces this flexibility.
Chatbot Architecture 101
One can say that traditionally chabots, or conversational AI agents, are constituted by a four pillar architecture.
This architecture is very much universal across commercial chatbot platforms; being:
- Bot Responses (aka Script / Bot Dialog)
- Sate Machine (Dialog) Management
As seen here, there are two components; the NLU component and the Dialog Management component. In the case of Microsoft, Rasa, Amazon Lex, Oracle etc. the distinction and separation between these two is clear and pronounced. In the case of IBM Watson Assistant, it is not the case.
The NLU component is constituted by intents and entities. And the Dialog component by bot responses and the state machine.
The two impediments to chatbots becoming true AI agents are intents and state machines.
- For example, a user utterance is mapped to a single intent.
- Intents are assigned entry points within a rigid state machine for the bot to respond.
Intents can be seen as verbs or user intents and entities as nouns (cities, dates, names etc.).
So it is clear with this rigidity, progress is severely impeded.
Rasa is deprecating both intents and state machines…but why?
The ideal scenario is where the user input is directly matched to a machine learning story which can learns and adapt from user conversations. Breaking down the rigidity of current architecture where machine learning only exist in matching user input to intents & entities.
Is Rasa ambitious? Yes. Is it required…definitely!
Back To Deprecating Intents
Traditionally each and every conceivable user input needs to be assigned to a particular intent. During transcript review, if user input does not neatly match an existing intent, an intent needs to be invented.
This strait-laced layer of categorizing a user utterance according to an intent is rigid and inflexible in the sense of being a set of categories which manages the conversation.
Hence, within a chatbot the first line of conversation facilitation is intent recognition.
And herein lies the challenge, in most chatbot platforms there is a machine learning model of sorts used to assign a user utterance to a specific intent.
And from here the intent is tied to a specific point in the state machine (aka dialog tree). As you can see from the sequence below, the user input “I am thinking of buying a dog.” is matched to the intent Buy Dog. And from here the intents are hardcoded to dialog entry points.
Intents are also a rigid layer within a chatbot. Any conceivable user input needs to be anticipated and mapped to an single intent.
Again, the list of intents is rigid and fixed. Subsequently each intent is linked to a portion of the pre-defined dialog.
User input is matched to one intent. The identified intent is part of a fixed list of intents. In turn, each intent is assigned to a portion of the dialog.
But, what if the layer of intents can be deprecated and user input can be mapped directly to the dialog?
This development is crucial in order to move from a messaging bot to a conversational AI interface.
This layer of intents is also a layer of translation which muddies the conversational waters.
Having intents optional, and running the two approaches in parallels, allows for conversation to use or bypass intents.
No Intent Stories
Here is one of two ways of approaching no-intent stories. Below is the simplest approach; a no-intent conversation living in the same training file as other intent based stories.
Glaringly intent and action is absent.
- story: No Intent Storysteps:
- user: "hello"
- bot: "Hello human!"
- user: "Where is my nearest branch?"
- bot: "We are digital! Who needs branches."
- user: "Thanks anyway"
- bot: "You are welcome. No to branches!"
Below you can see a conversation which invokes this story, and the deviations from the trained story is obvious.
ML Story is defined on the left, and an interactive test conversation on the right. Rasa X and interactive learning are not yet available for no intents.
The next step is to look at a hybrid approach, where no-intent stories can be introduced to an existing environment.
Looking at the story below, you will see the story name, and flowing into the intent name, action…and then user input is caught sans any intent. Followed by an action.
- story: account_checking
- intent: tiers
- action: utter_tiers
- user: "just give that to me again?"
- action: utter_tiers
Here is the conversation with the chatbot:
ML Story is defined on the left, and an interactive test conversation on the right. Rasa X and interactive learning are not yet available.
In general chatbot platforms are growing in scope and functionality.
Progress is vey much defined by new features & enhancements to development and management of chatbots. Often functionality on top of functionality.
Juxtapose this to the Rasa approach, and it is an approach of deprecation.
Rasa is deprecating functionality and interfaces which are really impediments to reaching the goal of an intelligent conversational agent.