The process of building a chatbot can be divided into two main tasks: understanding the user's intent and producing the correct answer. The first task involves understanding the user input. In order to properly understand a user input in a free text form, a Natural Language Processing Engine can be used. The second task may involve different approaches depending on the type of the response that the chatbot will generate.
An Internet bot, also known as a web robot, WWW robot or simply bot, is a software application that runs automated tasks (scripts) over the Internet. Typically, bots perform tasks that are both simple and structurally repetitive, at a much higher rate than would be possible for a human alone. The largest use of bots is in web spidering (web crawler), in which an automated script fetches, analyzes and files information from web servers at many times the speed of a human. More than half of all web traffic is made up of bots.
For every question or instruction input to the conversational bot, there must exist a specific pattern in the database to provide a suitable response. Where there are several combinations of patterns available, and a hierarchical pattern is created. In these cases, algorithms are used to reduce the classifiers and generate a structure that is more manageable. This is the “reductionist” approach—or, in other words, to have a simplified solution, it reduces the problem.
I've come across this challenge many times, which has made me very focused on adopting new channels that have potential at an early stage to reap the rewards. Just take video ads within Facebook as an example. We're currently at a point where video ads are reaching their peak; cost is still relatively low and engagement is high, but, like with most ad platforms, increased competition will drive up those prices and make it less and less viable for smaller companies (and larger ones) to invest in it.
I will not go into the details of extracting each feature value here. It can be referred from the documentation of rasa-core link that I provided above. So, assuming we extracted all the required feature values from the sample conversations in the required format, we can then train an AI model like LSTM followed by softmax to predict the next_action. Referring to the above figure, this is what the ‘dialogue management’ component does. Why LSTM is more appropriate? — As mentioned above, we want our model to be context aware and look back into the conversational history to predict the next_action. This is akin to a time-series model (pls see my other LSTM-Time series article) and hence can be best captured in the memory state of the LSTM model. The amount of conversational history we want to look back can be a configurable hyper-parameter to the model.
For each kind of question, a unique pattern must be available in the database to provide a suitable response. With lots of combination on patterns, it creates a hierarchical structure. We use algorithms 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.
In so many ways I think chatbots are only just getting started – their potential is much underestimated at present. A big challenge is for chatbots mature so that they do more than is possible as a result of content entry wizards. If your content is created with a few easy clicks, it is unlikely to be much inspiration to anyone – and to date, despite much work in the field, the ability to emulated the creative open ended nature of real intellingence has seen only very partial success.
It may be tempting to assume that users will perform procedural tasks one by one in a neat and orderly way. For example, in a procedural conversation flow using dialogs, the user will start at root dialog, invoke the new order dialog from there, and then invoke the product search dialog. Then the user will select a product and confirm, exiting the product search dialog, complete the order, exiting the new order dialog, and arrive back at the root dialog.
With last year’s refresh of AppleTV, Apple brought its Siri voice assistant to the center of the UI. You can now ask Siri to play your favorite TV shows, check the weather, search for and buy specific types of movies, and a variety of other specific tasks. Although far behind Amazon’s Echo in terms of breadth of functionality, Apple will no doubt expand Siri’s integration into AppleTV, and its likely that the company will introduce a new version of AppleTV that more directly competes with the Echo, perhaps with a voice remote control that is always listening for commands.
The chatbot design is the process that defines the interaction between the user and the chatbot. The chatbot designer will define the chatbot personality, the questions that will be asked to the users, and the overall interaction.  It can be viewed as a subset of the conversational design.In order to speed up this process, designers can use dedicated chatbot design tools, that allow for immediate preview, team collaboration and video export. An important part of the chatbot design is also centered around user testing. User testing can be performed following the same principles that guide the user testing of graphical interfaces.
3. Now, since ours is a conversational AI bot, we need to keep track of the conversations happened thus far, to predict an appropriate response. For this purpose, we need a dictionary object that can be persisted with information about the current intent, current entities, persisted information that user would have provided to bot’s previous questions, bot’s previous action, results of the API call (if any). This information will constitute our input X, the feature vector. The target y, that the dialogue model is going to be trained upon will be ‘next_action’ (The next_action can simply be a one-hot encoded vector corresponding to each actions that we define in our training data).
Earlier, I made a rather lazy joke with a reference to the Terminator movie franchise, in which an artificial intelligence system known as Skynet becomes self-aware and identifies the human race as the greatest threat to its own survival, triggering a global nuclear war by preemptively launching the missiles under its command at cities around the world. (If by some miracle you haven’t seen any of the Terminator movies, the first two are excellent but I’d strongly advise steering clear of later entries in the franchise.)
These are one of the major tools applied in machine learning. They are brain-inspired processing tools that actually replicate how humans learn. And now that we’ve successfully replicated the way we learn, these systems are capable of taking that processing power to a level where even greater volumes of more complex data can be understood by the machine.
More and more companies embrace chatbots to increase engagement with their audiences in the last few years. Especially for some industries including banking, insurance, and retail chatbots started to function as efficient interactive tools to increase customer satisfaction and cost-effectiveness. A study by Humley found out 43% of digital banking users are turning to chatbots – the increasing trend shows that banking customers consider the chatbot as an alternative channel to get instant information and solve their issues.
One pertinent field of AI research is natural language processing. Usually, weak AI fields employ specialized software or programming languages created specifically for the narrow function required. For example, A.L.I.C.E. uses a markup language called AIML, which is specific to its function as a conversational agent, and has since been adopted by various other developers of, so called, Alicebots. Nevertheless, A.L.I.C.E. is still purely based on pattern matching techniques without any reasoning capabilities, the same technique ELIZA was using back in 1966. This is not strong AI, which would require sapience and logical reasoning abilities.