Demystifying the Why, What and How of Chatbots
Chatbot is one of the most trending tech buzzwords. But Chatbots have been around for quite some time.
Eliza was one of the early natural language processing program which simulated a mock Rogerian psychotherapist. And now we have Siri, Google Now, Alexa, etc. which are new and improved versions of Chatbots or Virtual Assistants.
If we look at the Google trends for Chatbots, we can clearly see a massive jump in the recent times.
So, what has led to this recent change? And what is a Chatbot? I will try to address some part of this in this post.
“A chatbot is a computer program which conducts a conversation via auditory or textual methods. Such programs are often designed to convincingly simulate how a human would behave as a conversational partner, thereby passing the Turing test.” – Wikipedia.
Chatbots use natural language processing and understanding capabilities and machine learning to simulate what a human would do. For example: If you wanted to know the price of bitcoins, a bot could take that input, understand what your intention is and fetch the relevant information or take an action on your behalf. All of this is centred around User Experience. Instead of forcing a user to follow a defined point-and-click solution, the user can just text (or speak) to get the information.
Why are Chatbots suddenly getting attention?
There are many factors leading to the sudden popularity of Chatbots. Few of them are:
- Growth of Smartphones:
- Phones have limited real estate as compared to desktops. They also come with Text and Voice input features by default. This makes Chatbot ideal for Smartphones
- Bot Frameworks and Services:
- Previously a developer had to write each line of code to build a Chatbot which was both time-consuming and not scalable. Today, we have bot frameworks like Microsoft Bot Framework, AWS Lex, Dialogflow (previous API.ai), etc. which make the process of building chatbots much easier
- APIs are universal:
- APIs have become a core functionality of every platform. This makes integration much easier
- Cloud Platforms:
- By leveraging Cloud platforms, a developer could scale a Chatbot from a 100 userbase to a million userbase without having to worry about Infrastructure and scalability. Most of the heavy lifting is already done
- Open Source Datasets and Machine Learning:
- Many datasets are getting open-sourced. Many pretrained models are getting open-sourced. By leveraging Machine learning on such datasets, some amazing Chatbots can be built
Which Industries will benefit?
Short answer – Every Industry
Long answer – Any place where there is a human-to-human interaction or a task which needs to be done repetitively and needs cognitive capabilities.
Types of Chatbots
Broadly, there are two types of Chatbots in the market today:
- Open Domain Bots
- These are the likes of Siri, Google Assistant, Watson, etc. where the domain of the bot is very wide and it is expected to do many things
- Closed Domain Bots
- Any other bot where the Chatbot is defined to a specific domain or use case(s)
Building Open Domain Bots is very difficult and needs a huge dataset for training.
Core Components of a Chatbot
The three building blocks of a Chatbot are:
- Intents: This defines the intention of a user. For example: A user wants to know the cheapest fare for a flight from New York to California for tomorrow. Here the intention of the user is to “find the Cheapest Flight”. We need to build some sample utterances of how this question is usually asked. These utterances are used for training a model to identify the intent from a new question which looks similar.
- Entities: Entities are objects of interest needed to perform a task. In the previous example, New York is the source city and California is the destination city, tomorrow is the date. Every intent needs to have a list of mandatory or optional entities which are needed. Entity recognition is a branch of NLP where the training data is based on the entity.
- Fulfilment: After the intents and entities are identified, the final task is to perform an action which is called “fulfilment”. The fulfilment could be an API call to another system and it is usually a custom defined function. In the previous example, fulfilment is connecting to a backend API which gives all the fares for flights between New York to California for tomorrow and then show the cheapest one.
Characteristics of a good Chatbot
Few common characteristics of what differentiates a good chatbot from a bad one are:
- Situational Awareness:
- Understanding the context is very important. The bot can make assumptions based on those situations.
- Short & Simple Interactions:
- The bot should follow short, crisp conversations which are unambiguous and straightforward.
- Intuitive UI/UX:
- Just like all other Web Applications, Chatbot should also be a very intuitive UI/UX
- Measure Effectiveness:
- A good chatbot will always have an ability to track and measure user satisfaction so that it can re-train itself.
There are multiple use cases that one can think for a Chatbot. Similarly, there are multiple strategies one can adopt to build one. However, as platforms becoming mature, Chatbots will become mainstream and will eventually become the “UI of Choice”.