In this fast pacing world, the term Chatbots are taking large steps and are getting attention from fortune 500 companies. The ChatBots which was just a research term has emerged to be more than just a conversational bot in our phones.
ChatBots have been present for a long time. In 1966 the first chatbot was made by Joseph Weizenbaum, namely ELIZA. It laid a foundation for the structures of chatbots, such as keywords, specific phrases, and pre-programmed responses.
As Businesses who deal directly with the people, the term “ChatBot” is very useful to them. Chatbots can bring much more value to their services and products. A scenario where a person needs to be kept for handling the customers 24/7, the chatbots are an efficient option. Gartner Summits projects that more than 85% of customer interactions will be managed without a human by 2020. Chatbots are expected to be the number one consumer application of AI over the next five years according to TechEmergence.
Discussing further chatbots, we have gathered the basic fundamentals of the chatbots and how they are made. We have laid down the basic technical architecture, current use cases, and the platforms.
Chatbot Architecture
There are two types of possible responses of chatbot: it can either generate a response from scratch as per machine learning models or use some heuristic to select an appropriate response from a library of predefined responses.
Generative Models
Generative models are comparatively difficult to build and develop. Training of this type of bot requires investing a lot of time and effort by giving millions of examples. This is how the deep learning model can engage in conversation. However, still, you cannot be sure what responses the model will generate.
Generative models are the future of chatbots, they make bots smarter. This approach is not widely used by chatbot developers, it is mostly in the research labs for now.
Retrieval-Based Models
It uses a repository of predefined responses and some kind of heuristic to pick an appropriate response based on the input and context. The heuristic could be as simple as a rule-based expression match, or as complex as an ensemble of Machine Learning Classifiers. These systems don’t generate any new text, they just pick a response from a fixed set
Pattern-based heuristics
A response can be generated by two different ways: using if-else conditional logic or using machine learning classifiers. The simplest way out is to define a set of rules with predefined patterns that act as the condition for the framed rules.
Artificial Intelligence Markup Language (AIML) is most popularly used for writing patterns and response in the process of chatbot development.
When the chatbot receives a message, it goes through all the patterns until finds a pattern which matches user message. If the match is found, the chatbot uses the corresponding template to generate a response.
ChatScript is a modern implementation of this idea. It is an open source chatbot engine which allows defining a chatbot in a rule-based language.
Machine Learning for Intent Classification
Though pattern-based heuristics deliver good results, the problem is that it requires all the patterns to be programmed manually. This is a tedious task, especially if the chatbot has to distinguish hundreds of intents for different scenarios.
Imagine that you are building a customer service bot and the bot should respond to a refund request. Users can express it in hundreds of different ways: “I want a refund”, “I need my money back”. At the same time, the bot should respond differently if the same words are used in another context: “Can I request a refund if I don’t like the service?”, “What is your refund policy?”.
Such algorithms can be built using any popular machine learning library like scikit-learn. Another option is to use one of cloud API: wit.ai, Dialogflow, Microsoft LUIS.
Response Generation
Once the chatbot understands the user’s message, the next step is to generate a response. One way is to generate a simple static response. Another way is to get a template based on intent and put in some variables.
For example, a weather forecast chatbot that uses API to get a weather forecast for the given location can either say, “it will most probably rain today” or “it’s a rainy day” or “probability of rain is 80%, so put your umbrellas to use today.”
The style of response varies from user to user. The following diagram is the representation of separate response generation and response selection modules:
Common Challenges Building a Chatbot
There are some obvious and not-so-obvious challenges when building conversational agents most of which are active research areas.
Incorporating Context
To produce sensible responses systems may need to incorporate both linguistic context and physical context. In long dialogs, people keep track of what has been said and what information has been exchanged. That’s an example of linguistic context.
The most common approach is to embed the conversation into a vector, but doing that with long conversations is challenging.
Experiments in Building End-To-End Dialogue Systems Using Generative Hierarchical Neural Network Models and Attention with Intention for a Neural Network Conversation Model both go into that direction.
Coherent Personality
When generating responses the agent should ideally produce consistent answers to semantically identical inputs. For example, you want to get the same reply to “How old are you?” and “What is your age?”. This may sound simple, but incorporating such fixed knowledge or “personality” into models is very much a research problem. Many systems learn to generate linguistic plausible responses, but they are not trained to generate semantically consistent ones. Usually, that’s because they are trained in a lot of data from multiple different users.
Models like that in A Persona-Based Neural Conversation Model are making first steps into the direction of explicitly modeling a personality.
Evaluation of Models
The ideal way to evaluate a conversational agent is to measure whether or not it is fulfilling its task, e.g. solve a customer support problem, in a given conversation. But such labels are expensive to obtain because they require human judgment and evaluation. Sometimes there is no well-defined goal, as is the case with open-domain models. Common metrics such as BLEU that are used for Machine Translation and are based on text matching aren’t well suited because sensible responses can contain completely different words or phrases.
Intention and Diversity
A common problem with generative systems is that they tend to produce generic responses like “That’s great!” or “I don’t know” that work for a lot of input cases. Early versions of Google’s Smart Reply tended to respond with “I love you” to almost anything. That’s partly a result of how these systems are trained, both in terms of data and in terms of actual training objective/algorithm.
Some researchers have tried to artificially promote diversity through various objective functions. However, humans typically produce responses that are specific to the input and carry an intention. Because generative systems (and particularly open-domain systems) aren’t trained to have specific intentions they lack this kind of diversity.
Popular Chatbots in Banking
Before starting into chatbot platforms we will explore the functionality of the existing chatbots in the banking and finance sector. Few are mentioned below:
Bank of America – Erica
- The top thing customers use erica for is to search transactions — especially those with popular merchants such as Amazon, Target, Walmart, Costco and Uber.
- You can go into erica and say, ‘Show me all my Amazon transactions,’ It will tell you all your credit and debit card transactions, and if you wrote a check, that would show there, too.
- When you log into online banking, you have five or six column headers; you can click on description, date, amount, type, and sort your whole list by that criteria. In mobile banking, you can’t even tap on the list of transactions and sort them from top to bottom by dollar amount.
- It can also integrate with the bank’s spending and budgeting tools. And it connects with customer service agents’ consoles in call centers. So while customers are using Erica, they can tap to talk to an agent. They are fully authenticated, and the agent can see what is been happening in Erica. Customers do not have to re-identify themselves or explain their situations.
Wells Fargo
- Wells Fargo’s Facebook chatbot currently responds to queries about deposit and credit card accounts, transactions, and branch or ATM locations.
- Handle FAQs (e.g. account information, password reset).
- Sample questions include “nearest ATM”, “remaining balance”.
- Piloting with employees.
- Built by the internal team.
Capital One (Eno)
- Functionalities:
- Check balances and recent payments
- Look up account info (e.g. routing number)
- Transfer money between accounts
- For more complex tasks, Eno will direct users to the appropriate section of Capital One’s website when possible.
Ally Bank
- Ally Assist functions within the Ally bank app and can be accessed via voice or text to perform the following functions:
- Make payments, transfers, Popmoney® transactions, and deposits.
- Request account summary or transaction history.
- See an overview of interest earned as well as saving/spending patterns.
- Through machine learning, Ally Assist can predict customer needs by analyzing accounts and transactions to provide relevant help topics and messages
USAA
- Automated Assistant available in USAA mobile app and on the USAA website.
- The chatbot uses Nina artificial intelligence (AI) technology, supplied by Nuance Communications.
- Functionality includes activating cards, changing a PIN, adding travel notifications, and reporting lost or stolen cards.
American Express
- Link your card to Facebook Messenger for payments on Facebook.
- Check balance.
- Receive purchase notifications.
- Handles FAQs using Natural Language Understanding.
- Handoff to customer support on American Express website chat.
HSBC (Hong Kong)
- Access from customer service section of the website.
- Handles FAQs and escalates users needing further assistance to a live agent.
- Developed by vendor Creative Virtual.
SEB (Amelia)
- SEB launched Amelia, a chatbot trained to respond to natural language and sense emotions.
- Answers 4 types of questions which make up 15% of total customer service volume.
- Uses IPSoft.
- This is the first deployment of this technology outside of English.
Chatbot Platforms
Based on our experience, we have laid down a report on the most useful current technologies and platform which can be helpful for creating chatbots. Instead of listing every platform, we have analyzed and laid down a table which consists of answers according to each platform, based upon 4 questions.

Advantages
- Processes unstructured data
- Fills human limitations
- Acts as a decision support system, doesn’t replace humans
- Improves performance + abilities by giving the best available data
- Improve and transform customer service
- Handle enormous quantities of data
- Sustainable Competitive Advantage
Disadvantages
- Only in English & Japanese (Limits areas of use)
- Seen as a disruptive technology
- Maintenance
- Doesn’t process structured data directly
- An increasing rate of data, with limited resources
Barriers to Adoption
- High switching costs
- Takes time to integrate Watson and it’s services into a company
- Targeting towards bigger organizations that can afford Watson
- Takes time and effort to teach Watson in order to use it to it’s full potential
Advantages
- Built-in integration with the AWS platform.
- Powered by the same technology as Alexa.
- It is a Pay-as-you-go service.
- Simplicity
- Democratized deep learning technologies
Disadvantages
- Currently, Amazon Lex supports only US English language. That is, Amazon Lex, trains your bots to understand only US English.
- After a user starts the conversation with your bot and until the session expires, Amazon Lex uses the same bot version, even if you update the bot alias to point to another version.
- You can associate a maximum of 100 intents with a bot.
- You cannot create multiple intents that extend from the same built-in intent.
Advantages
- More capable of supporting services like Azure Cognition, translation and history.
- Build bots with Bot Builder SDK.
- Open Source.
- Supports more than 30 languages.
Disadvantages
- It is poor fit into customer service applications, complex bots, non-Microsoft platforms.
- Available only in .NET and Node JS.
Advantages
- RASA uses reinforcement learning to actively train models that can guide the dialog.
- RASA leverages deep learning techniques not only to recognize entities and intents in a dialog but to also to control its flow.
- Open Source.
- RASA uses probabilistic models that control the flow in a conversation.
Disadvantages
- Only Available in English and German.
- Built only on Python.
Advantages
- Dialogflow proposes a powerful way of modeling large and complex flows using Intents and Contexts.
- Slot-filling is an integrated feature. Consequently, a good part of the logic can be solved by the chatbot, which decreases the server side coding.
- Domains are available, that is specifications that can deal with several common use cases and applications (e.g. small talk, wisdom, flight schedules, reminders…)
- One-click integration with several platforms: Facebook Messenger, Slack, Twitter, Telegram…
Disadvantages
- It is impossible to block the matching of intent if a context is present.
- The training section is still in beta.
Our Future Focus
Another promising platform for the chatbots is RASA. Not just being open source but it also gives the developer more control over which model to use, train models catering to specific requirements and the choice of the pipeline.
We are currently using RASA & Dialogflow for Fintech use cases such as money management, analyze personal spendings, tips for automatic savings, smart investment & wealth management suggestions, insurance options, detect transaction fees and much more . With Open banking initiatives taking a key role amongst banks and regulators, we are exploring tight integration of open banking APIs with chatbots.
Till then have a look at some of the prototype work on github demonstrated for this blog. https://github.com/Pirimid/dialogflow-python-webhook
Drop a comment or write us an email with any feedback, queries – info@pirimidtech.com View our portfolio of work and services offered on our website.