Introduction
Chatbot are growing importance since they enable an easy interactive interface between humans and computers leading to countless business and social use cases. It is an active research area and is of considerable interest.
To build a conversational system with moderate intelligence is challenging, and requires abundant dialogue data and interdisciplinary techniques.
Starting from ELIZA [Weizenbaum, 1966] in 1960s, Non-task oriented conversational systems (a.k.a., chatbots) have never been so popular as in recent years.
Practical applications from the industry have pioneered the way.
Take Microsoft “Little Bing” (also known as XiaoIce) as an example. The chatbot, released by Microsoft to Chinese users in 2014, has now attracted more than 100 million users in China, Japan, U.S., India, and Indonesia.
Chatbots Examples
1). ELIZA (1966)
2) PARRY (1968 )The first system to pass the Turing test
3). ALICE
4). CLEVER
5). Microsoft XiaoIce
Figure : Potential ROI of Chatbots
It is expected by some researchers that the investments are expected to quadruple by 2021. Customer Relations, marketing, and sales all the departments of a traditional enterprise can achieve greater efficiency by implementing chatbots.
Figure : https://blog.aimultiple.com/chatbot/
Categories of Conversational AI Systems
In general, conversational systems can be categorized into the following :-
1) Task-oriented systems which aim to help users accomplish goals in vertical domains, and
2) Social chatbots which can converse seamlessly and appropriately with humans, playing the role of a chat companion.
What Are Contextual Chatbots?
Contextual chatbots are kind of advanced chatbots. Their basic aim is to try to figure out what user intends i.e. in which sense or proportion the user is asking a question or doing some random stuff on the website.
A contextual chatbot interprets sentiments and behavior according to the intentions of the user. These chatbots remember the previous things a user has already asked or performed and based on that, it presents a more thoughtful answer.
Pizza Ordering Scenario
One example of contextual chatbot is when a user orders a pizza.
If the user has already given his location and preferences, the bot will not ask him the same basic question again.
It will simply ask for confirmation and voila! The order is placed and out for delivery.
Key NLP Concepts for Designing Chatbot
Chatbots acquire understanding capabilities using following NLP concepts :-
- Utterance
- Entities
- Intents
- Actions
Utterance
An utterance is anything the user says. For example, if a user types “show me yesterday’s financial news”, the entire sentence is the utterance.
Intent
An intent is the user’s intention. For example, if a user types “show me yesterday’s financial news”, the user’s intent is to retrieve a list of financial headlines. Intents are given a name, often a verb and a noun, such as “showNews”.
Intents are general traits that map the user’s message to the corresponding bot action (prediction workflow).
For example, the phrase “What is the weather today?” will map to ‘weather_inquery’ intent by its entire wording, and not some particular part.
A restaurant_search intent can be expressed in many different ways :-
- I’m hungry
- Show me good pizza spots
There can be alternative intent for utterance such as “I want to take my boyfriend out for sushi”. In this case, alternative intent can also be request_booking.
Entity
An entity modifies an intent. For example, if a user types “show me yesterday’s financial news”, the entities are “yesterday” and “financial”. Entities are given a name, such as “dateTime” and “newsType”. Entities are sometimes referred to as slots.
Actions
Actions are the steps that bot is capable of committing as a response to the corresponding intent. These are usually the conventional functions, which may take optional parameters from the caller with detailed information (context).
Brain of Chatbot | Dialog Manager
The unfortunate reality is that many chatbot solutions are not capable of 3rd Generation performance because they lack a Dialog Manager.
It’s the Dialog Manager that is the brain of the chatbot. It handles the conversation with humans.
The Dialog Manager provides the ability to keep track of information relevant to the dialog, and decides what to do next in the dialog context.
The decision may include asking the user for more input, clarification, or switch to a different task. A Dialog Manager assigns meaning to the words recognized by the NLU.
If a response to the user is required, it will choose the words and phrases to be used in its response to the user, and transmit these.
How to Make Chatbot Smarter ?
The way solution providers make 2nd and 3rd Generation chatbots smarter is Machine Learning. Machine Learning is a subset of AI techniques that gives machines the ability to learn from data while interacting with the world without being explicitly programmed.
Machine Learning is what makes quick and accurate customer interactions possible. One of the most difficult machine learning project is building AI chatbots. Only a small number of organizations can build their own Machine Learning project that’s complex enough to support chatbot development.
These are big-budget internal projects that require very special skill sets. Effective Machine Learning engineers with language processing and dialog management background are very rare.
Chatbot Architecture
A general chatbot architecture consists of five main components, a
User Interface component, a Natural Language Understanding (NLU) component, a Dialogue Management (DM) component, a Backend component, and a Response Generation (RG) Component [6], as illustrated below.
ATIS Dataset
ATIS Stands for Airline Travel Information System. ATIS is a Intent Classification Dataset. It is used for building a chatbot to assist a traveller to book airline ticket. It is a great dataset to learn, how to design and develop a dataset for your given domain e.g. health sector, travelling, marketing etc.