The Basic Anatomy of a Chatbot Conversation
Users’ Conversational Behavior Are Surprisingly Similar
With so many virtual-agent platforms being available, creating a bot is not the challenge. The challenge is creating effective and engaging conversations.
There are powerful opensource tools available to analyse speech and automate insight and key aspect detection; spaCy is one of the exceptional tools available for that purpose.
The challenge lies with crafting a natural language conversation where the sequence of the conversation is ordered correctly in a continues fashion. Hence responding to each dialog turn appropriately and accurately.
We Have The Tools But…
With all the tools being available; ranging from commercial cloud platforms to opensource ‘local install’ products like Rasa, designers are still left with designing and creating their own interaction style and model.
Environments like Amazon Lex, IBM Watson Assistant, Microsoft LUIS/Bot Framework etc. are all Natural Conversation Frameworks (NCF).
Designers often opt for two escape routes in avoiding the challenge…
The one is to lean heavily on graphic conversational components; buttons, carousels, informational cards and the like.
The other is to have a single turn conversational interface, almost like a search engine.
You can see Google as the world’s biggest single-dialog-turn chatbot. Inadvertently we migrated from searching with key words and cryptic phrases to a natural language conversational style.
The Essence Of Conversation
In a conversation two humans are naturally taking turns in exchanging information while organizing the conversational dialog turns sequentially.
The key elements your chatbot must make provision for are:
- Recognize Common Conversational Actions
- Persist the Sequential Context; Across Previous Turns, Into Future Turns
A sequence is the smallest unit of a human conversation. There are two types of sequences:
- Adjacent Pair Sequences
- Storytelling Sequences
Adjacent Pair Sequences refers to social action pairs, which is relatively easy to cater for. These include, Greeting & Greeting, Good Bye & Good Bye, Question & Answer, Offer & Accept/Reject, Request & Grant/Deny, Invite, Accept/Decline etc.
When the first part of the pair is initiated, it creates an expectation for the second part to be fulfilled and often an obligation.
The initiation of an Adjacent Pair Sequence constrains the user in their response, but it should not determine it.
This should be seen as a collaborative effort between the user and the chatbot.
When designing a conversational interface, don’t restrict the user to the expected adjacent pair.
This will most probably lead to fallback proliferation; a snare most chatbot designers step into.
Here is the challenge, Adjacent Pair Sequences should be expandable.
Think of expansion as nested turns.
An expansion can bee seen as a sequence on a sequence. Base adjacent pairs stand on their own; while expansions do not.
They are dependent on the base. Should a chatbot design not allow for expansion, continuity is lost in the conversation.
Have a look at this example of simple expansion:
Here thanks is responsive to something which happened earlier…it actually closes a prior sequence.
Sequence expansion types are screening, repeat, base, elicit and close.
Expansion can be seen as the elasticity of your conversational design, to what extend can the conversation be expanded by the user while context and logic is maintained in the conversation.
The expansion element I find most interesting is screening. That is the common process of initial exploration of the chatbot by the user. It is crucial in engaging the user and ensuring the intent of the user is accurately determined.
Storytelling Sequence is an elongated conversation with a set of numerous instructions. The user is guided along the journey from instruction to instruction. The next instruction can be given by the chatbot after a user pause, or confirmation by the user.
The storytelling sequence must not be too rigid; it should allow for digression, breakout to another journey and navigation upwards and downwards.
During the screening phase of the conversation, the user is checking the capability of the chatbot, understanding the unseen conversational landscape of the conversational interface.
Irrelevance detection is important, and the chatbot must be able to see if user requests are irrelevant to the designed domain and advise the user accordingly.
Much focus is given to entity extraction, intent recognition and natural language processing; but sequential context is an important design consideration.