A chatbot is a computer program that can simulate human conversation using voice commands, text chats, or both voice commands and text chats, primarily over the Internet. It is a conversational agent that interacts with human end users typically in a specific domain or on a specific topic with input in natural language sentences.
Most modern chatbots use artificial intelligence (AI) techniques, such as natural language processing (NLP), to understand user’s queries and automate responses to them. This article discusses the basics of chatbots, including fundamental concepts related to chatbot technology, chatbot types, design and development of chatbots, and chatbot applications.
Fundamental Concepts
Chatbots, also referred to as artificial conversation entities/digital assistants/interactive agents/smart bots, are the most common and elementary examples of intelligent human-computer interaction (HCI). These computer programs can respond like a smart entity when conversed with through voice/text and understand one or multiple human languages by NLP.
Chatbots are suitable for several applications, such as e-commerce, business, information retrieval, and education. In recent years, the use of chatbots has evolved rapidly in several fields, including entertainment, cultural heritage, healthcare, and marketing. Many chatbot implementations are platform-independent and available instantly to users.
The first chatbots, including ALICE and Eliza, were developed using pattern recognition algorithms. Pattern matching is based on representative stimulus-response blocks. However, the approach is disadvantageous as the responses lack the human touch and are repetitive and entirely predictable.
The artificial intelligence markup language (AIML) created from 1995 to 2000 is based on the concepts of pattern matching technique and applied to natural language modeling for dialogue between humans and chatbots that follow the stimulus-response approach.
Latent semantic analysis (LSA) and AIML can be utilized to develop chatbots as LSA can discover likenesses between words as vector representations. Template-based questions such as general questions and greetings can be answered using AIML while unanswered questions use LSA to give replies.
Chatscript is an expert system composed of an open-source scripting language and the engine that runs it. The successor of the AIML language is case-sensitive, which increases the possible responses that can be provided to the same user input based on the intended emotion.
NLP, a subfield of AI, can explore the manipulation of natural language speech or text by computers. The knowledge of the use and understanding of human language is obtained to develop techniques that can enable computers to manipulate and understand natural expressions to perform desired tasks. Most NLP techniques are based on machine learning (ML).
Natural language understanding (NLU) is a technique used to implement natural user interfaces such as a chatbot and is at the core of any NLP task. NLU can extract meanings and context from structured/unstructured natural language user inputs and respond appropriately based on user intention. The technique can identify user intent and extract domain-specific entities.
An entity is primarily a tool to extract parameter values from natural language inputs and can be either developer-defined or system-defined. Domain entity extraction is referred to as a slot-filling problem and is formulated as a sequential tagging problem where sentence parts are extracted and tagged using domain entities.
Chatbot Types
Chatbots can be classified as open-domain and closed-domain chatbots based on the knowledge domain, as interpersonal, intrapersonal, and inter-agent chatbots based on the service provided, as informative, chat-based/conversational, and task-based chatbots based on the goals, as a rule-based model, retrieval-based model, and generative model chatbots based on the input processing and response generation method, and as open-source platforms and closed platforms based on the permissions provided by their development platform.
Open-domain chatbots can chat about general topics and respond appropriately, while closed-domain chatbots are primarily focused on a specific knowledge domain and cannot respond to other questions.
Interpersonal chatbots exist in the domain of communication and offer services such as restaurant booking, while intrapersonal chatbots exist within the personal domain of the user, such as chat apps including Messenger and WhatsApp. Inter-agent chatbots become omnipresent when all chatbots require inter-chatbot communication possibilities.
Informative chatbots can provide users with information that is stored in advance or is available from a fixed source, such as frequently asked questions (FAQ) chatbots. Chat-based/conversational chatbots can converse with the user as another human being and correctly respond to the sentence given to them. Task-based chatbots can perform specific tasks, such as booking a flight.
Rule-based model chatbots choose the system response based on a fixed predefined set of rules/recognizing the lexical form of the input text without creating new text answers. The retrieval-based model offers greater flexibility compared to the rule-based model as it queries and analyzes available resources using application programming interfaces (APIs).
A retrieval-based chatbot retrieves a number of response candidates from an index before applying the matching approach to the response selection. The generative model generates answers in the most effective manner among the three models based on previous and current user messages and uses ML and deep learning techniques. However, developing and training the generative models are difficult.
Open-source platforms allow chatbot designers to intervene in most aspects of implementation, while closed platforms primarily act as black boxes, which can be a substantial disadvantage based on project requirements.
Design and Development of Chatbots
The primary chatbot designing requirements include precise knowledge representation, a strategy for answer generation, and a set of predefined neutral answers to reply/for response when a user query is not clearly understood. The initial step in chatbot designing involves dividing the system into constituent parts based on a standard to follow a modular development approach.
In a general chatbot architecture, the interaction with a user starts with a user’s request to the chatbot using a messenger app or an app using text or speech. The language understanding component parses the user request after the request is received by the chatbot to infer the intention of the user and the associated information.
Once the chatbot reaches the best interpretation of the user request, the bot determines the next step to proceed, which involves directly acting upon the new information, remembering the information that has been understood and waiting for the next move by the user, asking for clarification, or requiring more context information.
The action execution and information retrieval take place when the chatbot fully understands the user request, and then, the bot performs the user-requested actions or retrieves the data required from external resources that are accessed through an API call or from its data sources, which can be a database designated as the knowledge base of the chatbot.
After information retrieval, the response generation component utilizes natural language generation (NLG) to prepare a human-like natural language response to the user based on the context and intent information returned from the user message analysis component.
The appropriate responses are produced by either a rule-based model, generative model, or retrieval-based model. A dialogue management component maintains and updates a conversation’s context, which is the current intent, missing entities, or identified entities required to fulfill user requests. Moreover, the component requests missing information, asks follow-up questions, and processes clarifications by users.
Chatbots can be developed using either state-of-the-art platforms or programming languages such as Java. Leading ML-supported NLU cloud platforms that developers can use to create chatbots include SAP Conversation AI, Amazon Lex, IBM Watson Conversation, Microsoft LUIS, Facebook’s wit.ai, and Google’s DialogFlow.
Major Chatbot Applications
Virtual personal assistants (VPAs), such as Amazon Alexa, Microsoft Cortana, Google Assistant, and Apple Siri, are one of the major applications of chatbot technology. VPAs offer services to users over text and speech interfaces.
Consumer domain-specific bots, such as medical bots, weather bots, fitness bots, meditation bots, and transportation bots, are another major application of chatbot technology. For instance, Instalocate can provide real-time flight tracking, and security wait times, and assist users in filing claims for compensation for delayed flights.
Future of Chatbots
Chatbots are evolving and their future prospects look promising. Rapid advances in AI mean that chatbot virtual assistants will likely handle more complex tasks in the future. Improvements in natural language processing will help chatbots understand complex human queries and sentiments, and with deeper penetration of chatbots in the customer service and e-commerce space, chatbot-driven payments will hopefully be more common.
References and Further Reading
Adamopoulou, E., Moussiades, L. (2020). An Overview of Chatbot Technology. Artificial Intelligence Applications and Innovations, 373–383. https://doi.org/10.1007/978-3-030-49186-4_31
Cahn, J. (2017). CHATBOT: Architecture, design, & development. University of Pennsylvania School of Engineering and Applied Science Department of Computer and Information Science. https://www.academia.edu/37082899/CHATBOT_Architecture_Design_and_Development
Lalwani, T., Bhalotia, S., Pal, A., Rathod, V., Bisen, S. (2018). Implementation of a Chatbot System using AI and NLP. International Journal of Innovative Research in Computer Science & Technology (IJIRCST), 6, 3. https://www.researchgate.net/publication/327456963_Implementation_of_a_Chat_Bot_System_using_AI_and_NLP