What problems will chatbots solve in the next few years? What should I focus on while building my chatbot? I recently read that Kik, a messaging app, started using chatbots for customer feedback and surveys. Originally appeared on Quora: the place to gain and share knowledge, empowering people to learn from others and better understand the world.
I have seen several types of chatbots, with the simpler/more popular type being nothing new (at least for a CS researcher). Let me first explain what simple bots do and how they can be useful, then outline more advanced categories.
Simple bots respond to a small set of boilerplate commands. They can easily be represented by a UI with a drop-down menu for commands and a couple of text fields for the arguments. Here’s an example – a chatbot that tells time and can set alarms. Users can issue commands “time in Madrid”, ” Time in San Francisco”, or just “Time Madrid” or even “t madrid”. Users can also say “set alarm for 9:34am” or “alarm +2hrs” or “alarm +70m”. This illustrates how chatbots can perform lookups in real time (using specialized hardware or a database) and also initiate simple actions. Other examples include traffic-related queries – is your bus on time? – mail delivery status, election/game results, etc.
At a conceptual level, this has been done long time ago. For example, Dungeons & Dragons games in the 1970s and 1980s had similar interfaces, but with more sophisticated commands. They also had real-time notifications, for example when you played a game, an elf could appear and deliver your (real) email messages. Many industrial control systems operate in similar ways – engineers issue commands to check system status and to initiate changes. Such interfaces replace huge control panels with hundreds of switches and blinking lights by a couple of monitors that can show different things on demand (expressed by commands).
So, why is this beaten-up functionality suddenly so popular?
- For the first time, there is a large number of users (not just computer geeks) who are so comfortable with online chat that they are willing to type commands and talk to bots.
- For the first time, effective voice interfaces are widely available (courtesy Google and Apple).
- A lot of useful information is available in databases, and many people want to access those databases.
- Many consumer products are “smart” enough to include a microprocessor and a network interface, which allows the to talk to a server, accessible to their users here are several advanced categories of bots.
In short, chat bots replace people where people are asked simple questions and produce simple answers. Aside from the obvious customer-service example, the dating service Ashley Madison was apparently populated by chatbots that sent boilerplate messages to men and women, and replied in predetermined ways, pretending to be real people in search of adventures (AM was marketed in such a way that users would not openly discuss their conversations – that’s a clever, although deceptive business practice).
Chatbots can operate solo, for example, when automatically commenting on recent events (such as sports, where a lot of data are produced and can be processed/summarized by machines).
For interactive chatbots, understanding multiple alternative sentence structures is a big deal because users don’t need to remember the list of allowed commands and what parameters they take. More advanced bots can maintain a conversation by using information provided to them and building sentences with it. There is a broad range of how well bots understand what they are told – for practical purposes, understanding means transforming information in useful ways and using it to look up more information. Even more advanced bots can perform optimization, can sense user’s emotions, can access multiple databases, understand and combine terms from multiple domains (say, law and politics, or sports and medicine).
More profound (than current uses) is the use of bots as “flexible” interfaces, where any reasonably-worded query can be answered. I have not yet seen multiple bots talk to each other, but this is definitely on the horizon. This allows using human language as a loose specification.