A little bit of history...
I originally wrote a
playful bot called Quest in 1997. It was fairly simple, but featured 3
different bots in one, Red (a redneck), Quest (a spokesbot), and Sassy
(a sassy bot). I've been conceptualizing the next couple of generations
for a long time and recently I kicked off a preview of the new project.
Here are the basics of this new project: I wanted to create a bot
that emulated a human, not one that readily admitted to being a bot.
Instead of creating a fictional person to emulate, I decided to emulate
me. So in this light, I built a bot that would hold a conversation that
would represent a conversation with me. After all, the realism of
modeling yourself is much greater than the fabrication of a created
entity.
The difference between your project and "ordinary" chatterbots...
I didn't want to model
a baby... that's too easy. I wanted to emulate an adult with a full
vocabulary and knowledge base. Of course, this is a huge task but I
built it to a certain level and then began coaching and training it
based on interactions from the users that had access to the preview
(which has grown to about 30 sessions a day just based on word of
mouth). The engine is called augDog (for augmented reality) and the bot
is called the MarkBot. The resulting bot could be setup to emulate
anyone, from a celebrity, to your grandfather, to the president of a
company.
The premise of the site is that you may be chatting with Mark or
you may be chatting with the Markbot, making it the first true
web-based Turing test. Of course, it is just an illusion, because you
always get the bot. However, it is important to note that people
entering for the first time don't know for sure which they have. It
gives me a cleaner session than if they knew it was a bot or if it
emulated an admitted bot.
You can see it in action at http://www.markconnell.com.
Bot features...
Interesting features
of the bot: multiple modules are already in place, including a math
module, preferences module, context containers, natural language
parsing and simplification, multiple paths resulting from the same
interactions, a personalization database, and a learning knowledge
base. I also have some other modules in testing or early development.
The learning k-base has a separate automated chat-type interface for
capturing additional information and interaction with mentors and
parents providing "verification" of the information. The information
must be verified before the Markbot starts using it as knowledge.
Before it is verified, it is considered rumor and may be used as such.
I believe the bot is breaking new barriers and has reached a level
above the bots I've seen before. It is now ready for more exposure to
continue the learning process. The premise of the Turing test has
allowed me to scientifically test it in a manner more pure than most
contests and probably on par with a research department doing focus
group type tests. The only difference is I probably have more people
interacting with it daily and combined with my daily mentoring
sessions, the bot continues to advance very rapidly.
I wasn't able to get
into the Loebner contest this year because I didn't have a great
transcript by the entry date but I believe that it surpasses last years
winner already and it has only been learning for less than 2 months. It
just needs to continue to grow it's knowledge.
The bot is built with
a variety of interface and scripting tools (Visual Basic, stored
procedures, Java), but the structure of the backend is where most of
the complexity is. The potential answers are not stored in one database
and pulled out based on keyword hits. Instead, there are multiple ways
to produce an answer from various different intelligent modules. Each
module has a priority assigned to it so an answer found in one section
may carry more weight than an answer in another module.
It is easy to look at
bots as pretty much the same thing, mainly because the basic questions
are generally the same and the responses are similar as well. It takes
some time to get to the deeper levels that have varying levels of
complexity. For instance, none of the bots I've seen can answer the
following questions:
What color is a blue car?
What is John Young's last name?
What would a W look like upside down?
What is 3+2+4+5
Reverse the digits in the number 632
This bot can do that.
Of course, I'd say that all of those (and a number of other situations
that it handles) are just programming tricks that emulate intelligence.
While those types of things are beyond most other bots, they aren't
what makes this bot different. The backend is built with an extended
language parser that allows much more coverage than an average bot.
This gives the bot a big advantage.
What the future holds...
I wanted to build a
bot that was better than the recognized leaders in the field. It is
close, if not all the way there, right now. Second, I wanted to achieve
the standard goal of the Turing test. The recognition will help me get
my efforts better funding and exposure. In building this bot, I have
been preparing it to be the platform for the next level, which to me is
morphing it into a personal assistant.
The
final scenario is this: voice interaction, extensive knowledge base,
conversational ability, multiple personality/expertise, customizable
through observed preferences.
One example: You are
talking to a friend and they reference someone you don't recognize...
say Buckminister Fuller or Douglas Lenat. You activate your assistant
and say "do you know who Douglas Lenat is?" Automatically, it tells you
that he is the CEO of Cycorp and is famous because of advances in AI.
At the same time it pops up the Cycorp website or another related site.
All on one simple voice command... no searching and choosing the right
page from thousands.
Afterwards, you are
thinking about building a deck on your house, so you call up your
assistant and ask it if there is a bot that specializes in home repair
or projects. It directs you to Derek, an expert on deck plans,
products, and local contractors. Or maybe the bot specializes in GE
products and can help you fix a problem with your refrigerator. After
all, it has access to all of the manuals for all models and can even
have a new one delivered if need be. It will be easy to incorporate
more data into the structure that I've built.
Then you say: "So, what's going on today", and your bot tells you what the latest news, customized to what your interests are.
In addition to this
direction, I think it would be interesting to capture the preferences
and personality of people... Your grandfather, a CEO, or a celebrity
(or an expert in a field), and then allow people to talk and interview
that person. For instance, I'd love to be able to chat with my
grandfather and see what he was thinking in 1965. But that knowledge is
gone forever. It wouldn't be a perfect copy, but it would be
interesting to know what he thought about certain things (it would be a
snapshot of his thinking at a particular time). Asking for advice,
learning from his experiences. Or talk to Clinton from a virtual
impression made from his thoughts immediately upon leaving office.
There is so much potential in this area.