Chatbots

A brief history of chatbots

A chatbot is a computer program which conducts a conversation via auditory or textual methods.

The term “ChatterBot” was originally coined by Michael Mauldin in 1994 to describe these conversational programs but they are much older, the first one being ELIZA by Joseph Weizenbaum of MIT in 1966.

Leaving the academic world, conversational agents have been typically used in dialog systems including customer service or information acquisition.
Many large companies started to use automated online assistants instead of call centres with humans, to provide a first point of contact.
Most of these systems ask you to push a digit corresponding to what you want or say what you’re calling about and scan for keywords within the vocal input, then pull a reply with the most matching answer from a database.
These systems are based on simple logic trees (SLT).

An SLT agent relies therefore on a fixed decision tree to gather information and redirect the user.
For example, an insurance bot may ask several questions to determine which policy is ideal for you. Or an airline bot could ask you the departure city, the destination and a time. Or a device diagnostics bot could guide you through the hardware components and tests to find out the issue.
It´s a finite-state dialog, the system completely controls the conversation.
If your input match what the bot has anticipated, the experience will be seamless. However, if it stray from the answers programmed and stored in the bot database, you might hit a dead-end. Back to a human to complete the interaction…

These were efficient and simple systems but not really effective.
In normal human-to-human dialogue the initiative shifts back and forth between the participants, it’s not system-only.

A very recent trend is to use natural language processing (NLP) and Machine Learning (ML) algorithms such as you see in smartphone-based personal assistants (Apple Siri, Microsoft Cortana  or Google Now) or when talking to your car or your home automation system (Amazon Alexa) or in some messaging platforms.

These dialog agents are meant to function more like a real conversationalist by picking up keywords and phrases from the user’s input to gather information, instead of requiring direct answers to specific questions.

In short, this is how a system like Siri works:

  • the input from the user is split into a sequence of words (tokenization) and stopwords such as articles (“a”, “the”) are ignored.
  • words are interpreted semantically, commonly using frame and slots.
    An example: “show me morning flights from Boston to Seattle on Tuesday” is framed into:
    Show:
      Flights:
        Origin: city: Boston, date: Tuesday, time: morning
        Destination: city: Seattle
  • Concepts (a flight, a meeting) are then turned into data structures via rules (a date like “Tuesday morning” becomes a (day,month,year,hour,minute) data object.
  • if there are missing elements (the topic in a meeting or the time in a flight), Siri (tries to) clarify the question by asking new questions.
  • if the interpretation is complete, then a list of best possible actions is proposed (send meeting invitation, book the proposed flight) to the user.

The new frontier for NLP agents is to use neural networks: words can be represented as mathematical vectors, allowing similarities between related words to be calculated. For example, “boat” and “water” are close in vector space even though they use different letters and look very different. You can then build networks in which each word in a sentence can be used to construct a more complex representation, a “thought vector.” By using two such networks, it is possible for example to translate between two languages with excellent accuracy.

The difference is that, while those SLT kinds of bots typically annoy customers, this new category of agents have the potential to have the reverse effect.

The future of customer service is making it easy for consumers to go through the medium they want (likely not the phone call), have an experience that respects their time (no long waiting queues) and have issues / questions / purchases resolved quickly, ideally without involving a human at all (via intelligent software agents).

In the future, “customer service” won’t be something consumers dread having to call, it will be something that builds powerful relationships with consumers. The best marketing is great customer service, and bots are a great step forward.

Dialog agent + messaging platform =  chatbot

The very latest trend for conversationalist agents have been to be integrated in messaging platform, like Slack and Telegram pioneered, promptly followed very recently by Microsoft and Facebook.

The chatbots have started to gain popularity among tech circles and communities time ago but now they are catching the media and public attention too.

You can see from the Google Trends the spike that started around March and coincides with the news about the Microsoft Chatbot that went wild (Microsoft chatbot is taught to swear on Twitter):

 

Screen Shot 2016-08-02 at 19.17.30
Google queries with term “chatbot” over the last months

Then, at the most recent F8 Conference on April 12th, Facebook CEO Mark Zuckerberg made some bold claims about a bot’s place in the future of commerce. Using 1-800-Flowers as an example, Zuckerberg argued that by integrating bot chats into the sales process, a customer would never have to speak to a human again. In theory, using chat with bot support can expedite the buyer-seller interaction and bring the consumer closer to a sale.

Without leaving your messaging app, you could buy a plane ticket, book a medical appointment, order a Uber ride or pre-order a taco to pick it up at the nearest Taco Bell location.

With a bot, there is no switching between the chat, checking what pizza toppings your friends want to have, and the pizza delivery app.

And of course Google is moving too. In May the company announced a system, dubbed weirdly Parsey McParseface, the most accurate parser that can look at syntax, recognising nouns, verbs, and other elements of text.   And Ray Kurzweil announced that Google too is building a chatbot. 

If previously chatbots could chat with you or give you some information you were looking for, now they can actually DO things for you with the smallest possible effort on your side.

Even the corporate world is already moving: Salesforce and Dropbox  launched their own bot services on Messenger. And from IBM: “With Watson, you will be able to create chat bots and virtual agents that use natural language understanding and dialog to automate interactions with your customers”.

Why now?

Some say the best UI is no UI.

There is an app-fatigue: users start to be tired of having to interact with dozens of apps using just one finger to move through complex menus. Each app having a different style to learn, maybe just for one single task that you need at this right moment and then not anymore for the next six months. Without talking about how difficult is to find the right app in the ocean of apps that are the app stores …

These factors are helping the chatbots riding the wave:

  1. The rising popularity and increasingly heavy usage of messaging apps.
    Messaging apps get opened more often than any other app. And the trend is to become platforms integrating e-commerce and many more services (Dan Grover has a very good article about what has been done by WeChat in China).
    This is an advantage both for users (no need to install yet another app, no need to learn a new UI) and for brands / enterprises (no need to build a bot from scratch).
  2. Growing interest and recent breakthroughs in the field of Artificial Intelligence: Chatbots can now actually learn over time to give more accurate and intelligent responses. As with other machine and deep learning systems, chatbots profit from the availability of big data.
  3. Same with speech recognition. While also being still far from perfect, it has improved significantly over the last few years. Baidu, for example, made an impressive breakthrough by launching Deep Speech 2, a deep learning-based engine that is able to recognise standard Chinese, which is amazing taking into consideration that many Chinese words are distinguished only by tones.
  4. With cloud computing and integration technology getting so advanced, it’s now possible to ensure a solid integration of various applications with a chatbot and a reliable communication between them using APIs. Chatbots can now do things for you with the smallest effort on your side, even pro-actively (imagine Amazon Alexa telling you “I have ordered for you new orange juice bottles as it was almost finished and – since I noticed you were drinking less of it lately – I added one mango juice bottle just to mix it up“).
  5. Building a bot on a messaging platform has an even lower barrier than building a web site or a mobile.
  6. It is a new market right now and everyone is racing to become the market leader. You can already see articles with the headline “Chatbots are the new apps!” popping up everywhere …

What makes a good chatbot

We are still in early days for chatbots and both technology and user experience need to mature and understand how to best interact with the users.
Companies will think that anything can be done with bots and will build bots for everything,  eventually flooding the world with useless or unfit bots but  you can already see that chatbots are not a quick hype and are here to stay, eventually leading to better apps with integrated chats.

Here are the top traits for useful and successful chatbots:

  • Take on the burden for processing natural language input well and have short direct responses that are helpful.
  • Don’t rely too much on traditional UI with menus and buttons but only when it is faster than typing or talking (i.e., ordering a pizza when I know exactly how and when).
    Probably there will be first a hybrid phase when an audio or text interface is mixed with list and button UIs.
  • Keep the signal to noise ratio high.
    Everything in the medium is a push notification so need to be careful not to dilute the high quality relevant content with weakly engaging content. “Digest” bots are an example of this bad behaviour: news front pages meant for passive consumption pushed daily with no filter. People will get tired of it, and anything that’s pushed needs to meet a higher relevance bar.
  • Keep responses short.
    Answers of more than two messages feel overwhelming to a user especially if it takes up more than one full screen.
  • Have a consistent voice and tone that’s not trying too hard to be human (remember the Microsoft’s Clippy?). Brands need to avoid corporate jargon and keep a friendly storytelling tone while health related bots will need a neutral voice and tone. Copywriting will be a skill much needed on this medium and you can already see companies hiring poets and sociologists for it.
  • Don’t mix features that don’t belong together.
    Specialised, simple bots work better, don’t need to cram an entire product range into a bot. People will use bots for specific tasks and they better be really good at delivering on those core tasks. When you use the same platform and a standardised UI then the core functionality becomes the most important point.
  • Are context-aware and leverage that.
    For example, using location services, getting to know the specific user but even understand how sentences are linked together (we are still far from as you know if you used Siri or Google Now); for example if I ask my bot: “Has fewer calories a pizza or a taco?”.  “A pizza has less”.  “Ok, then order me one for dinner” it needs to understand that with “one” I mean to order me a pizza.
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s