- November 11, 2018
- Posted by: charlie
- Category: Bot Development, Chatbot Development
It all began in 1950, when an English computer scientist Alan Turing published an article entitled “Computer Machinery and Intelligence.” In his article he wrote, ‘Can machines think?’ He outlined the Turing Test, a way to measure whether one was speaking to a human or to a chatbot. In many ways, this was the beginning of AI, a test to discover the answer to his question.
Later in 1966 ELIZA was created by Joseph Weizenbaum, it was one of the first chatbots. But ELIZA failed the Turing Test. Kenneth Colby in 1972 came out with PARRY, a chatbot that could simulate a person with paranoid schizophrenia. In 1995 a popular online language-processing bot A.L.I.C.E., came out. Although she was unable to pass the Turing Test, she did receive many other rewards for being the most advanced bot of her time.
The advent of bots in 1966 started with text bots like Eliza, and it later evolved to voice-based bots during the 80’s. The simplest way of defining a bot would be a software that can have intelligent conversations with humans. And from 2001 on wards bots became very popular among big tech companies, starting with in Siri (2010), Google Now (2012), Alexa (2015), and Cortana in (2015).
It is incredible to see the progress made with AI, and it is exciting to think about the progress that will come in the future.
What is a Chatbot
Just to understand in very simple language we can say chatbot is a computer program designed to simulate conversation with human users, especially over the Internet in natural language through messaging applications, websites, mobile apps or through the telephone.
Chatbots are build in AI technologies, including deep learning, natural language processing and machine learning algorithms, and require massive amounts of data.
How do Chatbots function?
Chatbots work more human-like and are automated. They are easy to use for users, it adds complexity for the app to handle. They are trained with the actual data. Developers use thousands of conversation logs to analyse what customers are trying to ask and what does that mean. With a combination of Machine Learning models and tools built, developers match questions that customer asks and responds with the best suitable answer. Bots use pattern matching to classify the text and produce a suitable response for the customers. A standard structure of these patterns is “Artificial Intelligence Markup Language” (AIML). Algorithms are used to reduce the classifiers and generate the more manageable structure. Computer scientists call it a “Reductionist” approach- in order to give a simplified solution, it reduces the problem. NLP translates human language into information with a combination of patterns and text that can be mapped in the real time to find applicable responses.
Types of Chatbots
Chatbots are categorized into two different types. Let us look at both and see how they function.
Rule-based chatbots: Bot answers questions based on some rules on which it is trained on. The rules are defined from very simple to very complex. The creation of these bots are relatively straightforward using some rule-based approach, but the bot is not efficient in answering questions, whose pattern does not match with the rules on which the bot is trained. The bots can handle simple queries but fail to manage complex queries. Hence, the bot can never pass the Turing test if based on some rule-based models. It can only accomplish the complex tasks if more improvements are made by the developer.
Machine Learning-based chatbots: Machine learning based chat bot are more smart than rule based chatbot. They are trained enough better than rule based chatbot to hold more complex conversations as they try to process the question and understand the meaning behind the question. It learns from the previous conversation and enables itself to handle more complex questions in the future.
Chatbots are turning incredibly smart and acts more like humans. So, the uses of bots getting increased in every industry. Now look out some uses of chatbots
How Chatbots are being used in various industries
The Chatbot have been here for a while, they are shaking up several industries with their presence. Just like the basic necessities we require in our everyday life, chatbots are everywhere and incorporated into our day to day life.
Find below some of the best use cases of how chatbots are used in various industry segments:
One can use these to ask about the current weather conditions in your area and find out whether you should bring the umbrella before you leave for work. Some bots allow you to set regular reminders for a certain time of day.
Chatbots helps to stay up to date on the news or topics that matters.
You can get the latest headlines from your favorite media sources and the news on a favoured topic like Technology, Sports, Politics, and much more.
Planning to dine-out in a good rated restaurant, find the best restaurant nearest to your location.
These restaurant chatbots can provide recommendations based on cuisine, location, and price range. Some chatbots will even make reservations for you or take your order online.
Today many online business and service providers are using chatbots to attend to their customer enquiries and support 24X7 without the need to set up a personnel customer service.
The goal of these customer support chatbots is to quickly provide answers and address customer complaints, or simply track the status of an order.
Chatbots can add a new layer of interactivity to e-commerce, allowing customers to interact beyond menus and buttons. Bots sort our biggest challenge in finding out the relevant products we look for which can be sometime time- consuming process and make your shopping experience tedious. Customers can use text, voice or images to inform the bot about what they are looking to buy. Apart form this bots do keep alerting us the price of the products we look for or in our wish list.
All the way from booking travel to solving travel related problems, chatbots have the potential to help. New ventures like Instalocate are already making money by solving people’s travel related problems.
Artificial Intelligence has become great help in healthcare industry. for e.g virtual radiologist bot s based on Artificial Intelligence (AI), and the main aim of the bot is to provide the doctor with the ability to communicate necessary information to the patient with the overview of radiology treatment or inform them about the next steps in a treatment plan, in real-time.
Using chatbots in CRM can be very helpful as it can handle all the mundane tasks, allowing the users to handle other important tasks. For a sales team, it can help with automating the data entry process, so they can focus more on customer interactions. It has been found that 20 percent of sales personnel efforts are spent in filling out details on the CRM. To address this problem, Fireflies- a bot, fetches or mines data from audio conversations and finds relevant information to be fed to the CRM.
Effective Project Management
Proper project management is a key element for the success of any project. Some automation at the project management level can help aid in effective and efficient release. Bots like Meekan help in automatically matching schedules of team members, and help in arranging team meetings, avoiding any schedule clashes, etc. This saves time in co-ordinating through emails or calendar invites and makes collaboration easy by just asking the bot to schedule a meeting based on everyone’s convenience.
Another important challenge can be task management. To streamline task management, the use of chatbots like Howdy can save manual efforts when it comes to promoting content. PMBot can automatically generate status reports, minimizing the need for status follow-ups or meetings with team members.
Tools to Develop Chatbots
There has always been a common confusion when it comes to platforms. There are platforms for chatbot development and others that are for chatbot publishing. The main difference here is that publishing platforms are environments where you can interact with the bot. On the other hand, development platforms are tools that enable the development of bots. Let us take a look at some of the most commonly used chatbot development platforms for custom chatbots.
Chatbot Development Platforms
IBM Watson: Watson is one of the most preferred platforms when it comes to building AI chatbots. The advantage of Watson is its capability to serve different verticals and manage complex interactions with ease.
When you are developing a bot with Watson, start by gathering your requirements to understand, what scenarios need to be addressed by the bot. Once the scope is defined, defining personas will help you identify and create an empathy map. Prepare a list of intents, which are the goals and purposes expressed in the input given by the user. You can create an instance of Watson Assistant and use the provided tools to calibrate the Intents and Entities (the appropriate responses against the Intent). This step is followed by defining dialogue flow and testing procedures.
The next phase is to develop the application or microservice that will interact with the Watson Assistant. Implement business logic to handle the context of the interaction and inculcate other components to complement the business requirements.
Watson is ideal to develop bots on various social media platforms along with your website.
Microsoft Azure Bot Service: The Azure bot service provides the developer with SDK and portal, along with a bot connector service that will allow the developer to connect to any social media platform. The SDK also helps with debugging your bot and provides a large selection of sample bots that can be used as building blocks for your bot. This Cloud-based service is accessible from almost anywhere and provides multiple language support.
The tools provided for the developers, assist them to create highly interactive bots and it is considered as a highly scalable service.
QnA Maker: This is another bot from Microsoft, which is exactly as the name suggests. It can be of great help to any business that is asked frequent questions from their customers regarding their products. QnA Maker allows you to develop and train your bots for answering simple questions, based on your FAQ URLs, any structured documents, and manuals for the product within a matter of minutes.
Moreover, the use of Microsoft Cognitive Services can also enable the bot to interact as humanly as possible. It also allows you to integrate third-party APIs and solutions, enabling a better user experience.
Semantic Machines: This company focuses on developing next-generation conversation AI-based chatbots. It was recently acquired by Microsoft to create more lifelike conversational bots. Semantic Machines offer a language independent platform that helps developers to build bots that can have understanding conversations rather than bots that follow a series of commands. Since it supports various use cases, it is ideal for businesses that have specific needs.
The features of Semantic Machines include conversation engine, deep learning, speech recognition and more that will aid the developer in creating intelligent and interactive bots.
Recast.ai: Recast.ai is a chatbot development platform that allows developers to build and train their bots according to the tasks they have to perform. You can use Bot Builder to implement conversation logic that will allow the bots to respond to predefined questions in a logical manner. They provide messaging metrics and bot analytics tools to enhance and improve the understanding of inputs and respond to them with relevant entities.
Chatbot Deployment Platforms
Once chatbots are developed, they need to be deployed to a deployment platform. You will have to choose a deployment platform based on your customer base. However, the use of chatbots revolves mostly around social media platforms or virtual assistant features in various devices. Let us look at some of the emerging bot platform ecosystems.
Facebook Messenger: With over 1 billion users, there is no denying that Facebook has a wide reach around the world. For developers who are developing bots, this is a great platform to reach out to a bigger audience. Facebook has been investing in bot development and has provided tools for users to create bots for their specific needs without writing a single line of code. Fast food joints like Burger King has leveraged the use of bots to serve their customers by taking their order via Facebook. Many businesses have used Facebook to their advantage and improved ways of serving their customer base.
Slack: Slack is another popular messaging tool that is used mainly by businesses for internal communication or with customers. Bot application like Standuply, integrated with Slack, help you manage and schedule meetings with your team and generate timely reports or surveys. Other bots like Tomatobot, help you manage larger projects with ease by breaking them down into smaller chunks. It reminds you to take breaks in between tasks, allowing you to perform effectively at work.
Another great bot that can be used to manage data is Statsbot. This bot connects other platforms such as Google Analytics, Stripe, Mixpanel and others to Slack. It also reports any spikes or changes in your data while achieving your business milestones.
Skype for Business: This is another popular instant messaging platform utilized by many businesses around the world for their internal or external communication. Bots like Skyscanner allow you to make travel arrangements right in your Skype window. In addition, it helps you to find the most affordable travel options. Bots like Bing Image Preview and Getty Images allow you to search for images right from your Skype search bar.
Facebook Workplace: Facebook has created a platform called Workplace, which can be used by businesses as an internal IM messenger. There have been some interesting bots on this platform, which can assist employees in their tasks. New Starter Bot allows to slowly drip feed information to a new employee rather than the tedious approach of dumping maximum information on them, which may not lead to quick learning. You can use it to schedule training sessions and arrange tests or quizzes to note how much the new recruit has learned.
Other bots such as Mood Bot allow you to understand their satisfaction towards the company, allowing authorities to address their dissatisfaction and retaining your employees.
As more messaging platforms emerge, more bots are also being developed to deal with different business-related scenarios, and improve your business processes along with making your jobs easier to execute.
Kik: It is an instant messaging platform, used for internal communication in businesses. One of the most popular bots on this platform is The Weather Channel. It forecasts the weather for you and lets you know if there is going to be any change in the weather. This is great for traveling professionals as they can plan their schedules accordingly.
There are other messaging platforms with interesting bots that have been used to make business operations smoother and easier.
Best Practices for developing Chatbots for your business
Before you proceed with the chatbot development process, as a business, you will need to define the scope of your bot, understand what you want the bot to perform, and what possible hurdles you may face before you can train your bot to reach its full potential. There are a few points to ponder upon before you give a green signal to your development process.
Let’s discuss some of them and see how they can help us in building an intelligent bot.
Defining Role & Setting Goals
Before you look into how you would develop your bot, the first question you need to ask is why. Once you have arrived at the answer, the next step would be to identify the role of your bot. Your business needs to determine the role of your bot. You should also evaluate how the bot will help you save time, efforts, improve efficiency or yield any other benefits.
Set up goals you wish to achieve with your bot. A set of input values that will lead to a set of appropriate outputs. It is always advisable to start with simple goals and gradually progress to ones that are more complex. These goals and roles can be progressive and evolve as business needs evolve over time.
Knowing your Audience
Understand that the needs and wants of your audience are important for the success of any chatbot. You need to know your customers — demographics they belong to, and the kind of questions they might have. You can study previous interactions and equip your bot to respond to queries that they might frequently ask. Knowing your customer base well enough will determine the success of your bot.
Choosing the Right Deployment Platform
There are different chatbot deployment platforms as discussed above which may be internal or customer facing. If the bot you are developing is customer facing, then you need to deploy it on platforms that your customers are most likely to use. If you are using text-based bots, the ideal platforms could be your company website, Skype, Facebook, Slack, Kip, etc. As interactions occur, you will also need to evaluate if the service is adding value to your business.
Building your Conversational UI
A human being can ask the same question in different ways. Therefore, your bot should be intelligent enough to understand the question and provide the user with the appropriate response. The interaction has to be precise and it should be able to solve any query with an accurate response. There has to be a story and flow in the conversation to make it a success. For this, you have to start by building a content model for the conversation. Content model allows your bot to give scalable answers. Content models are always context-independent, that allows you to replicate the same model and structure for other products.
The conversational interface allows the user to tell the bot, what it needs to do. Companies like Facebook and Apple have already implemented such interfaces for their business purposes. It has captured the interests of various companies as it provides an intelligent interface. This not only depends on words but also on the understanding of human language and the meaning behind the words that are being used.
Dialog flow is a key factor for chatbots. You can create a logical dialog flow based on the type of questions encountered by the bot. It should be a detailed response, which requires defining the information for each response. Every dialog flow design should contain the exact representations of the response on each question. The design for detailed answers should happen outside of the actual flow design, as you may want to have variants of the same answers based on the questions. This is known as Random Prompting and it is a technique that you use while developing chatbots.
Recording Previous Chats
Another key factor for developing AI-based bots is to learn from previous interactions with users. Any interaction that users have had with you can be used as a reference to train the bot. If it is for the first time, then it has to be created from scratch. Choosing people with the same linguistic backgrounds can help in your bot designing process by creating data that are more realistic and may include mistakes that may be typical of non-native speakers. So, collecting chat data will help your bot to answer intelligently when posed with questions.
Picking the Right Platform & Right Development Approach
Different chatbots will have different approaches to understanding a question in natural language. It is important to analyze the question, understand the intent, and identify words to derive the right response. These tasks can be achieved by two different approaches, one is a rule-based response and the other is based on machine learning.
However, many times, the user may not always be asking a question. Applying machine learning will allow your chatbot to learn from previous conversations and give answers that are more intelligent while holding conversations that are more complex. If you do not have training data then you can prepare responses and implement rule-based chat where the bot will identify keywords and give responses based on the rules pertaining to those specific keywords.
One of the key factors for the success of any chatbot is thorough testing. When it comes to testing bots, it is advisable to have a diverse team to conduct real-user testing. Continuous testing is required along with the revision of your NLU (Natural language understanding) components to reach the maximum level of accuracy. These components have to be reviewed from time to time and improvements can be made to make your bot more interactive and accurate.
Once the chatbot is deployed, closely monitor the initial interactions and gather feedback to understand how users are interacting with the bot. Gathering these use cases and adding them to your bot’s arsenal can improve user interaction over time.
Smart solutions are important for the success of any business. From providing 24/7 customer service, improving current marketing activities, saving time spent on engaging with users to improving internal processes, chatbots can yield the much-needed competitive advantage. If you are looking to develop a chatbot, the best thing to do is to approach a company that will understand your business needs to develop a chatbot that helps you achieve your business goals.