When Apple introduced App Store in 2008, developers’ attention moved from web-based to native mobile apps.
A few years later the app market stabilized. Facebook, Amazon, and Google apps dominate in their verticals. Consumers don’t want to install new apps anymore. According to comScore’s mobile app report, most US smartphone owners download zero apps in a typical month, and a “staggering 42% of all app time spent on smartphones occurs on the individual’s single most used app”.
More than half of the time we spend on our phones is talking, texting or in email, according to Experian’s report.
Why chat bots?
Development of native mobile apps is expensive. Developers need to support multiple platforms and different hardware, and it slows down release cycle. Moving important parts of the software to back-end and making UI relatively simple allows developers to move fast. This shift also makes possible to use extensive computation on the back-end, which is important for machine intelligence applications.
In the old paradigm, users had to understand their objective, then learn UI of the application, and then work towards the objective. When using conversational agents, you just tell the agent what you want to be done, and the agent works on that. Users can interact with the agent using natural language. No checkboxes, no buttons.
Another important reason is that universal text-based interface makes easier adding machine intelligence to the application. People generate terabytes of text every day, and application developers can leverage already existing text datasets to train machine learning models. For example, as mentioned in New York Times article about Microsoft’s chat bot Xiaoice, “Microsoft has been able to give Xiaoice a more compelling personality and sense of “intelligence” by systematically mining the Chinese Internet for human conversations”.
50 years ago people used Command Line Interfaces (CLI). You type a command and then read the result.
On December 9, 1968, Douglas Engelbart did a live presentation of Graphical User Interface (GUI) and a bunch of other exciting things. The demo was later called “The Mother of All Demos“.
Conversational user interfaces (CUIs) are a spoken or written way of interacting with a device. In some sense, we are going back to simpler text-based interface of CLI era. The difference is that computers with conversational interfaces can handle natural language, and keep the conversation.
It’s important to make a distinction between conversational interface and a chat bot. Conversational interfaces can be used to talk to a human, group of humans, or, as in Facebook M, a group of humans and bots.
“Bots and Chat Interfaces are not the same things, but they’re related. For the purpose of this post, lets define them as follows: Bots are chat-based conversations between a user and an automated response system. No humans. Chat interfaces are a superset of this — any app where the user interface looks more like messaging than point-and-click. So, all bots have chat interfaces, but not all chat interfaces are bots. Square is a rectangle type situation.”
“The Hidden Homescreen” article lists some of the services which currently use chat interfaces, but not necessarily bots.
UI design process
Lack of graphical elements doesn’t mean that we don’t need designers anymore. “No UI” buzzword is misleading. We still need designers, but their responsibilities and skill set will change.
The first, and probably the most important, design question is whether to humanize the bot. Should the bot pretend to be a human? Does personality matter? Is there a way to keep the personality, but don’t pretend to be a human?
How polite the bot should be? Does it always respond to questions? Does it say “I don’t understand” if it doesn’t catch the meaning of user’s message, or tries to quibble? Will your bot pass the Beer Test?
Chatbot technology ranges from simple rule-based systems, like those based on AIML language, to deep learning algorithms. Most of modern real world applications contain many different components, including deep learning models for tasks like customer intent classification, question answering, and search.
A few research labs actively work on training deep learning models which are capable of chatting with people without adding any custom logic, but it is far from being perfect yet. Recent “A Neural Conversational Model” paper from Google describes building a neural network model which learns from large datasets of movie transcripts and tech support chats.
Where do the bots live?
People use many different devices and applications to chat nowadays. E-mails, text messages, messengers (Facebook, Skype, WhatsUp, Kik, Slack, HipChat, Viber, etc.), web-based chats and forums. And it makes perfect sense for chat bots to use all these mediums too, right? If we want to make the interface as easy to use as possible, we have to integrate with devices, applications, and protocols which are already familiar to the users.
x.ai, a personal assistant which schedules meetings for you, is working over email. There are many chatbots which integrate with Slack. Facebook is developing a Chat SDK which will allow building bots integrated with Facebook Messenger.
Are you building an incredible chat bot yet? What technology do you use, and what are design challenges?
Let me know in the comments.