Chat Bots have been around a lot longer than most people think. The very first computer roleplaying game I played was called Colossal Cave Adventure. Originally designed between 1975 and 1977, the game allows a player to explore a virtual world (albeit text based) and interact with the dangers and denizens within. What struck me at the time was the ability to interact with entities in the game. In some ways the entire game was a Chat Bot, but you could also have multi turn conversations with various creatures within the game.
Since those first text games and MUDs (Multi User Dungeon), computer based roleplaying games have made heavy use of text based chat. For games like Neverwinter Nights, chat with non player characters (i.e bots) is the primary way to progress through the game, and the game is actually impossible without a considerable amount of conversation.
Now Chat Bots are appearing everywhere, and are being used for a number of purposes, from customer service representatives to natural language therapists. Natural language allows developers to build bot skills that can determine the intent of a user. QNA interfaces allow you to provide answers to specific questions, and control the feedback that users will receive from your bot.
You can further expand bots to perform almost any task. The Chat Bot is simply a web service that can both consume and provide information, or perform various specific jobs that it has been coded for.
Amongst the roleplaying community it has been felt that some level of randomization in the responses can add realism to a game. More importantly it increases replayability, as you do not get the same experience each time you play. When designing bots that will interact with users, replayability is vitaly important. You want users to re-engage with the bot, and have a different (but pleasant) experience each time. Randomized maps, randomized encounters and randomized treasure (i.e drops) make games more enjoyable and replayable. Randomized conversation can do the same thing.
A Specific Example - Microsoft QNA Maker (qnamaker.ai)
Microsoft QNA Maker allows a user to build, edit, test and train QNA knowledgebases that can provide users answers to their questions. QNA Maker can provide the foundations for an organization's bot, enabling it to communicate to users. Importantly, QNA Maker enables non-developers to be involved in the control over the questions and answers that the bot will handle.
By design, QNA Maker is organized around question and answer pairs. It is best to have a large number of questions for each answer. When designing a QNA pair it is suggested that you develop 10-15 different ways that a user might ask the same question. There is one answer to each question.
Crowdbitz feels it is much more interesting, and much more realistic, if the bot is capable of providing alternate answers to the same question. We have built such a system that is fully compatible with the QNA Maker knowledgebases. This allows our bot to have many answers to every question that you want to ask it, and to allow non-technical users to edit and control those responses.
Google, Alexa and Siri
The existing voice bots that most people interact with are Google, Alexa and Siri.
Google Assistant has made some limited use of randomized answers. To hear it in action, ask Google Assistant something like "hey Google, do you like me?". The Assistant will randomly choose between two or three different responses. This is well executed, but seems to be fairly limited in scope and usually with no more than 2-3 alternate answers per question.
Alexa and Siri implement similar multiple answer to multiple questions systems, but these seem to be a bit more limited that Alexa and Siri.
Bot Personality and Randomized Speech
Not enough attention is paid to the personality of bots. Personality is of vital importance. In roleplaying games it is important to feel that you are speaking to a dragon, a magical door, or a furtive goblin, and those first computer RPGs like Colossal Cavern achieved that feat in the early 80s.
Bots that interact with users are first and foremost customer service representatives. They should provide a positive impression of your organization. The personality of the bot is central to this impression.
Randomized speech should therefore enhance, and not detract, from the personality of the bot. All answers, even if there are 10 to the same question, should reflect the personality of the bot, and should not suddenly shift the mood or language.
Random Not Chaotic
Random should not mean chaotic. Well designed random systems should operate within specific boundaries that helps the final result appear to be natural. It should also serve the goals of the bot and its owners. You don't want to lead users away or turn users off with poorly randomized responses.
You should also be careful not to randomize everything. Sometimes you will want certainty in an answer, or you will be performing other programming tasks on the interaction that do not work well with the randomization. In these cases, just skip randomization. Google, for example, only randomizes a few key responses.
Enhancements to Randomized Speech
We have identified and are testing several enhancements to randomized speech.
- Silence says a lot - Sometimes no answer is a good answer. If asking a bot perform a task, it is sometimes appropriate that the bot will just come back with the results without and accompanying text.
- Randomized errors - This is important for bots attempting to imitate real people online. The introduction of randomized errors will enhance believability.
- Bots don't just answer with words - Bots can answer in lots of way besides words. These answers can also be randomized, keeping in mind the principles listed above
- Hesitancy - While humans have very little patience for delays from computers, some level of hesitancy can add believability. Hesitancy can be randomized.
- Random with memory - Google, Alexa and Siri have not bothered with this. However you can apply randomization with memory so that users never get the same answer twice in a row.
- Emotion states - Tracking the emotional state of the bot and its impressions of the user can allow more realistic interactions. This should never result in the bot becoming unhelpful or aggressive, but could enhance the user experience.
Randomization aids technology in numerous ways. Perhaps the most powerful use of randomizers is in creating replicas of the real world. This has been known and used since the days of pen and paper table top games, and followed gaming into computers. Mandlebrot was hired by IBM to create realistic terrain, and he discovered chaos math in finding a solution. Mandlebrot understood that randomization combined with organizing principles led to realistic simulacra of natural phenomena.
Text and voice interactions with bots can benefit greatly from randomization. This just has to be done while remaining mindful of the personality and intent of the bot, as well as the structure of natural language and engagement with users. Crowdbitz will continue to refine our development of randomization and use it to enhance our solutions.