Ray Kurzweil’s Ambition and Musings on The Future of Virtual Agent Technology

Digital BrainSingularity Hub did an interview with Ray Kurzweil back in January, during which Kurzweil talked about his vision for an artificial intelligence that will act as a trusted personal assistant to humans. Kurzweil had only just started his stint at Google when the interview took place. He briefly shared his vision of constructing an artificially intelligent software system that mimics the hierarchical architecture of the human brain. It remains to be seen how successful Kurzweil and the team at Google will be in their endeavor. Whatever the outcome, the race to produce smarter and smarter digital entities is definitely underway. As Gary Marcus points out in his review of Kurzweil’s book on building a brain, there are many different machine learning techniques and cognitive systems that are being researched today in the public and private sector. Whether Kurzweil’s hierarchical approach pans out or not is really irrelevant. Advanced AI that can understand human intent and provide answers to human questions will happen. The progress made in this field is bound to influence commercially available virtual agent technologies, both in the mobile personal assistant and in the enterprise and customer support virtual agent domains.

Older conversational agent technologies will most likely be superseded by new ones. The work that Ray Kurzweil, the DeepQA team, and many other artificial intelligence researchers are engaged in today is producing techniques that far outpace the rudimentary pattern matching technology deployed in most simple chatbots. In the hands of dedicated and savvy bot masters, chatbot scripting languages such as AIML can be used to create impressive question answering agents. But unless it is combined with natural language processing, search, and machine learning algorithms, AIML by itself can’t produce a truly effective virtual agent.  It’s sporty to make any predictions when it comes to the future of artificial intelligence, but one pretty safe prediction would seem to be this: the intelligent virtual agent that one day passes the Turing Test won’t have been created using basic AIML pattern matching technology.

For commercially viable virtual agents in the field of customer support, incorporating strong search capabilities would seem to be a must. Search can be combined with pattern matching against a broad database of known frequently asked questions to provide web or mobile users with basic self serve information. Text and/or speech recognition and natural language processing would also seem to be non-negotiable skills for a virtual customer service agent. User profiling and targeted recommendations are capabilities that advanced virtual agents should also have in their toolkit. We could go even farther and list attributes such as a sense of humor, the ability to detect human emotion, and empathy. All of these would be desirable qualities in a customer-facing virtual agent.

Perhaps as Kurzweil / Google and others work towards recreating the human brain in digital form, advancements in cognitive computing, speech recognition, natural language processing, and other interrelated fields will be the outcome. It will be hugely interesting to see how software vendors in the virtual agent and personal digital assistant space capitalize on these breakthroughs to improve and reshape their commercial offerings.

Creating Your Own Virtual Agent Chatbot using AIML

AIMLWe wrote in an earlier post about two virtual agent software vendors that offer tools you can use to quickly get a virtual agent up and running for your business’s website. If you have loftier ambitions and more time, you can construct a virtual agent from the ground up. There are several chatbot scripting language frameworks available that you can use to develop anything from a simple conversational chatbot to a more complex virtual customer support assistant. In this post, we’ll take a quick look at AIML.

AIML, which stands for Artificial Intelligence Markup Language, is the creation of Dr. Richard Wallace and is offered as an open source chatbot scripting framework by ALICE AI Foundation. AIML is similar to HTML or XML, in that it consists standard and extensible tags that you use to mark up text so that it can be understood by an the AIML interpreter.

Pandorabots offers an extensive tutorial on how to build your chatbot using AIML. The concept behind AIML and other similar frameworks if straightforward. As the botmaster, you need to try to predict all the possible inputs that your chatbot will have to respond to. For every input, you write a matching output. The art of writing good AIML lies in this predictive reasoning, but also in using the tools of AIML to try to account for all the different ways in which a human can say basically the same thing. For example, if your chatbot only recognizes the greeting “Hello,” it won’t have a good response if someone says “Hi,” “Howdy,” Hey,” or “Good Morning.” This multiplicity of common inputs is one of the challenges that botmasters face and that scripting languages like AIML are equipped to deal with.

In my experience, an effective way to build your AIML virtual assistant and test it out is to sign up for a free user account on Pandorabots. Pandorabots has been around for many years and provides both a free AIML bot hosting platform, as well as a more robust platform for commercial use for a monthly fee. I found the free environment to be easy to use and a good way to debug my first chatbots to help me better understand why some patterns weren’t matching up as I had expected.

Building your personal virtual assistant requires time. You’ll need to create enough input and matching response patterns to give your chatbot the ability to have at least a rudimentary conversation. Pandorabots offers you the option of beginning your virtual agent with pre-populated AIML templates. You’ll need to examine this content to determine if you want to use it, especially if you’re creating a chatbot to represent your business. Some of the default responses may not align with the message or tone that you’d like for your virtual agent, so it may be better to start from scratch.

AIML offers quite a bit of flexibility. There are techniques that enable your chatbot to remember the last thread of a conversation and respond appropriately. This response can be conditional. For example, you can have the virtual chatbot ask “How are you feeling today?” and it can offer a different response, depending on how the other party answers the question.

Skipper-Bot is an example of a fairly simple AIML chatbot that I created. Skipper-Bot’s only function is to test people’s seamanship and boating knowledge. The chatbot randomly asks a series of True or False questions and lets the quiz taker know whether their response was correct or not. Give Skipper-Bot a try and test your boating knowledge. At the end of this article you’ll find a short sample of the AIML mark-up that controls Skipper-Bot’s conversational ability:

As you add more patterns and work on training your virtual AIML agent, there are numerous forums you can turn to for help from other AIML developers. One such forum is located on Chatbots.org.

Once your conversational chatbot is ready to deploy, you have the option of using a hosting platform that provides a speaking avatar to represent your virtual agent. SitePal is an example of an intelligent agent hosting provider that offers a choice of animated, talking avatars. Research by experts such as Amy L. Baylor has shown that people are much more likely to make a meaningful connection with a life-like avatar than with a disembodied voice. If your virtual agent communicates via a simple text interface, then you should at least consider personalizing the chatbot with a representational photo.

In future posts, we’ll introduce some alternative virtual agent chatbot development frameworks that you might also want to consider for constructing virtual support agents to assist your online customers.

Sample AIML Snippet from Skipper-Bot

<?xml version=”1.0″ encoding=”UTF-8″?>

<aiml version=”1.0″>

<category>

<pattern>ASK</pattern>

<template>

<random>

<li>True or False: Midchannel buoys are always even numbered</li>

<li>True or False: The right side of the boat is called the port side</li>

<li>True or False: Boats 16 feet or more must carry at least two throwable PFDs on board</li>

</random>

</template>

</category>

<category>

<pattern>TRUE</pattern>

<that>Midchannel buoys are always even numbered</that>

<template>Nope. Trick question! Midchannel buoys aren’t numbered at all!</template>

</category>

<category>

<pattern>FALSE</pattern>

<that>Midchannel buoys are always even numbered</that>

<template>Very good! They aren’t numbered at all</template>

</category>

</aiml>