I argued that it is super hard to scale a one-trick TODA into a general assistant that helps the user getting things done across multiple tasks. An intelligence assistant is arguably expected to hold an informal chit-chat with the user. It is this area where we are staring into perhaps the biggest challenge of AI. Observe how Samantha introduces herself to Joaquin Phoenix’s Ted in the clip below:
However, the revelations didn’t stop there. The researchers also learned that the bots had become remarkably sophisticated negotiators in a short period of time, with one bot even attempting to mislead a researcher by demonstrating interest in a particular item so it could gain crucial negotiating leverage at a later stage by willingly “sacrificing” the item in which it had feigned interest, indicating a remarkable level of premeditation and strategic “thinking.”
This is a lot less complicated than it appears. Given a set of sentences, each belonging to a class, and a new input sentence, we can count the occurrence of each word in each class, account for its commonality and assign each class a score. Factoring for commonality is important: matching the word “it” is considerably less meaningful than a match for the word “cheese”. The class with the highest score is the one most likely to belong to the input sentence. This is a slight oversimplification as words need to be reduced to their stems, but you get the basic idea.
Kik Messenger, which has 275 million registered users, recently announced a bot store. This includes one bot to send people Vine videos and another for getting makeup suggestions from Sephora. Twitter has had bots for years, like this bot that tweets about earthquakes as soon as they’re registered or a Domino’s bot that allows you to order a pizza by tweeting a pizza emoji.
Other companies explore ways they can use chatbots internally, for example for Customer Support, Human Resources, or even in Internet-of-Things (IoT) projects. Overstock.com, for one, has reportedly launched a chatbot named Mila to automate certain simple yet time-consuming processes when requesting for a sick leave. Other large companies such as Lloyds Banking Group, Royal Bank of Scotland, Renault and Citroën are now using automated online assistants instead of call centres with humans to provide a first point of contact. A SaaS chatbot business ecosystem has been steadily growing since the F8 Conference when Facebook's Mark Zuckerberg unveiled that Messenger would allow chatbots into the app. In large companies, like in hospitals and aviation organizations, IT architects are designing reference architectures for Intelligent Chatbots that are used to unlock and share knowledge and experience in the organization more efficiently, and reduce the errors in answers from expert service desks significantly. These Intelligent Chatbots make use of all kinds of artificial intelligence like image moderation and natural language understanding (NLU), natural language generation (NLG), machine learning and deep learning.
Respect the conversational UI. The full interaction should take place natively within the app. The goal is to recognize the user's intent and provide the right content with minimum user input. Every question asked should bring the user closer to the answer they want. If you need so much information that you're playing a game of 20 Questions, then switch to a form and deliver the content another way.
Conversational bots can help a business’s customers with difficult transactions, plus collect data and give recommendations. For example, a conversational bot integrated to an airline’s website can answer questions regarding flight availability, rebook tickets, fees and suggest add-ons like hotels. Though a conversational bot may not be able to finish the exchanges, it could still be able to gather preliminary data and pass it on to the next available customer care agent. In both cases, the airline will save considerable time in its call center.
Like most of the Applications, the Chatbot is also connected to the Database. The knowledge base or the database of information is used to feed the chatbot with the information needed to give a suitable response to the user. Data of user’s activities and whether or not your chatbot was able to match their questions, is captured in the data store. 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.
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.
You can structure these modules to flow in any way you like, ranging from free form to sequential. The Bot Framework SDK provides several libraries that allows you to construct any conversational flow your bot needs. For example, the prompts library allows you to ask users for input, the waterfall library allows you to define a sequence of question/answer pair, the dialog control library allows you to modularized your conversational flow logic, etc. All of these libraries are tied together through a dialogs object. Let's take a closer look at how modules are implemented as dialogs to design and manage conversation flows and see how that flow is similar to the traditional application flow.
Since 2016 when Facebook allows businesses to deliver automated customer support, e-commerce guidance, content and interactive experiences through chatbots, a large variety of chatbots for Facebook Messenger platform were developed. In 2016, Russia-based Tochka Bank launched the world's first Facebook bot for a range of financial services, in particularly including a possibility of making payments.  In July 2016, Barclays Africa also launched a Facebook chatbot, making it the first bank to do so in Africa.