Bots are hot. Bots are coming. However, there are two distinct species both referred to as “bots”:
1. Intelligent virtual agents with conversational UI
2. No-smarts menu-driven programs with graphics UI, relying on on-screen buttons
The first article of this series argued that the latter have a number of serious disadvantages that make them virtually unacceptable. They face problems with deep linking, discoverability and lack of bot-to-bot communication protocols.
Intelligent conversational agents offer an intriguing solution to these problems: they don’t need new protocols or APIs to communicate with each other and with “master bots” such as Google Assistant. They will communicate in plain English!
Bots do the hand off…in English
Bots are the new websites — every organization will soon have its own bot. In most cases, however, you won’t talk directly to them. You will talk to a master bot like Google Assistant, Samsung’s Viv or Amazon Alexa. The master bot will figure out which subordinate bot can handle your request and pass it on.
Suppose you want to book a hotel in Paris. You can just say: “OK, Google, I want to book a room in Paris next Sunday for 5 days, in a 4 star hotel, under $200/night, with free Wi-Fi and gym”. Google Assistant will find a travel agent bot (e.g. Expedia, Booking.com or our Alterra) and forward this request to it, as is. If the recipient bot is intelligent enough to understand the request it will make the sale.
Two “rank-and-file” bots can use plain English to communicate with each other, too. Suppose you are chatting with the Lonely Planet bot about attractions of Amsterdam. Then you ask it: “What will the weather in Amsterdam be the next Tuesday?” The Lonely Planet bot will pass your request to the Weather.com bot. If the latter is capable of answering such natural language questions the scheme works. English will become the inter-bot communication “protocol”.
Will bots become the new Mechanical Turk?
Apparently, AI is required for Messenger bots to become useful. Well, not necessarily. There is another option: conversational agents powered by humans, a.k.a. the Mechanical Turk model. In fact, quite a few start-ups have gone that way. It’s a dead-end, however.
Why? Elementary, Watson! Humans suck. They don’t scale. They are too slow and too expensive. There are not enough of them to manually power millions of bots for every organization on the planet. The web allowed us to replace scores of live agents with automation. Are we willing to go back to manual labor? Imagine an Amazon where all the clients are served by live sales assistants. There is only one way to go. AI or bust!
Does traditional Natural Language Processing work?
There are two broad types of Natural Language Processing (NLP) algorithms: traditional and deep learning .
Traditional NLP involves a lot of coding. You have to anticipate words and phrases a user could say in each context, recognize patterns of speech, extract predefined keywords, etc. In other words: there are a lot of rules, a lot of regular expressions, and a lot of hard-coding. It takes a lot of time to write and debug these programs. And the rules quickly break down when the user deviates from the expected path. This is why many bots feel so dumb.
We have to build millions of intelligent virtual assistants capable of maintaining natural language dialog. Can we do it with traditional NLP? The answer seems to be “no”: it’s too hard and too time-consuming. The world doesn’t have enough programmers to do it.
Deep learning to the rescue
Fortunately, there is an alternative that gives us hope: deep learning! Instead of writing explicit rules you construct an artificial neural network and give it a training corpus. This artificial brain learns how to understand the language, similar to how a child does it.
Constructing an artificial neural network is not straightforward. You have to experiment with different algorithms and ways to stitch them together. On the bright side, when you’re done, you get a machine that magically understands natural language. If you notice that it makes certain mistakes you don’t have to write new code to fix it — you just give it more examples to learn from. You don’t have to rewire the bot’s brain; you help it learn. With such a machine in hand, even a small team could quickly make products that would have taken years to build.
Do we have such a wonder machine? Unfortunately, not yet. Many companies, big and small, are working on it. Some would even make you think they’ve done it. Unfortunately, it is not the case. There are a number of bot frameworks but virtually none of them are based on deep learning. Instead, they are NLP SDKs for developing bots the traditional labor-intensive way. With deep learning, we are not there yet. But we can see the light at the end of the tunnel.