A chatbot is an automated program that interacts with customers like a human would and cost little to nothing to engage with. Chatbots attend to customers at all times of the day and week and are not limited by time or a physical location. This makes its implementation appealing to a lot of businesses that may not have the man-power or financial resources to keep employees working around the clock.
With natural language processing (NLP), a bot can understand what a human is asking. The computer translates the natural language of a question into its own artificial language. It breaks down human inputs into coded units and uses algorithms to determine what is most likely being asked of it. From there, it determines the answer. Then, with natural language generation (NLG), it creates a response. NLG software allows the bot to construct and provide a response in the natural language format.
A basic SMS service is available via GitHub to start building a bot which uses IBM’s BlueMix platform which hosts the Watson Conversation Services. A developer can import a workspace to setup a new service. This starts with a blank dashboard where a developer can import all the tools needed to run the conversation service. The services has a dialog flow – a series of options with yes/no answers that the service uses to work out what the user’s intent is, what entity it’s working on, how to respond and how to phrase the response in the best way for the user.
Search for the bot you want to add. At the time of this writing, there are about a dozen bots available, with more being added every day. Chat bots are available for customer service, news, ordering, and more, depending on the company that releases it. For example, you could get news from the CNN bot and order flowers from the 1-800-flowers bot. The process for finding a bot varies depending on your device:
It won’t be an easy march though once we get to the nitty-gritty details. For example, I heard through the grapevine that when Starbucks looked at the voice data they collected from customer orders, they found that there are a few millions unique ways to order. (For those in the field, I’m talking about unique user utterances.) This is to be expected given the wild combinations of latte vs mocha, dairy vs soy, grande vs trenta, extra-hot vs iced, room vs no-room, for here vs to-go, snack variety, spoken accent diversity, etc. The AI practitioner will soon curse all these dimensions before taking a deep learning breath and getting to work. I feel though that given practically unlimited data, deep learning is now good enough to overcome this problem, and it is only a matter of couple of years until we see these TODA solutions deployed. One technique to watch is Generative Adversarial Nets (GAN). Roughly speaking, GAN engages itself in an iterative game of counterfeiting real stuffs, getting caught by the police neural network, improving counterfeiting skill, and rinse-and-repeating until it can pass as your Starbucks’ order-taking person, given enough data and iterations.
There is a general worry that the bot can’t understand the intent of the customer. The bots are first trained with the actual data. Most companies that already have a chatbot must be having logs of conversations. Developers use that logs to analyze 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 answers with the best suitable answer. For example: If a customer is asking “Where is my payment receipt?” and “I have not received a payment receipt”, mean the same thing. Developers strength is in training the models so that the chatbot is able to connect both of those questions to correct intent and as an output produces the correct answer. If there is no extensive data available, different APIs data can be used to train the chatbot.
In a traditional application, the user interface (UI) consists of a series of screens, and a single app or website can use one or more screens as needed to exchange information with the user. Most applications start with a main screen where users initially land, and that screen provides navigation that leads to other screens for various functions like starting a new order, browsing products, or looking for help.
If you’re a B2B marketer, you’re likely already familiar with how important it is to properly nurture leads. After all, not all leads are created equal, and getting leads in front of the right sales reps at the right time is much easier said than done. When clients are considering a purchase, especially those that come at a higher cost, they require a great deal of information and detail before committing to a purchase.
Endurance is a companion chatbot that uses neurolinguistics programming (better known as NLP) to have friendly conversations with suspected patients with Alzheimer’s and other forms of dementia. It uses AI technology to maintain a lucid conversation while simultaneously testing the human user’s ability to remember information in different ways. The chatbot encourages the user to talk about their favorite activities, memories, music, etc. This doesn’t just test the person’s memory but actively promotes their ability to recall.
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.
It’s not all doom and gloom for chatbots. Chatbots are a stopgap until virtual assistants are able to tackle all of our questions and concerns, regardless of the site or platform. Virtual assistants will eventually connect to everything in your digital life, from websites to IoT-enabled devices. Rather than going through different websites and speaking to various different chatbots, the virtual assistant will be the platform for finding the answers you need. If these assistants are doing such a good job, why would you even bother to use a branded chatbot? Realistically this won’t take place for sometime, due to the fragmentation of the marketplace.
It’s best to have very specific intents, so that you’re clear what your user wants to do, but to have broad entities – so that the intent can apply in many places. For example, changing a password is a common activity (a narrow intent), where you change your password might be many different places (broad entities). The context then personalises the conversation based on what it knows about the user, what they’re trying to achieve, and where they’re trying to do that.
Dan uses an example of a text to speech bot that a user might operate within a car to turn windscreen wipers on and off, and lights on and off. The users’ natural language query is processed by the conversation service to work out the intent and the entity, and then using the context, replies through the dialog in a way that the user can understand.
Chatbots and virtual assistants (VAs) may be built on artificial intelligence and create customer experiences through digital personas, but the success you realize from them will depend in large part on your ability to account for the real and human aspects of their deployment, intra-organizational impact, and customer orientation. Start by treating your bots and […]
The bot itself is only part of a larger system that provides it with the latest data and ensures its proper operation. All of these other Azure resources — data orchestration services such as Data Factory, storage services such as Cosmos DB, and so forth — must be deployed. Azure Resource Manager provides a consistent management layer that you can access through the Azure portal, PowerShell, or the Azure CLI. For speed and consistency, it's best to automate your deployment using one of these approaches.