Ramona 2.0
This is, basically, a reprint of a post I published March 30, 2004.
Phil recently wrote that not only do chatbots like Ramona need work, but our understanding of the Turing Test needs work. I agree. I think our knowledge of how to create AI and our knowledge for how to test AI will have to grow together.
Anyway, here are my thoughts on how to improve chatbots like Ramona.
Back in 2003 Phil interviewed Ray Kurzweil's chatbot, Ramona. Phil guided her, the best he could, through his "seven questions." The result was fascinating and funny.
I think it's fair to say that Phil never forgot he was talking to a machine. Ramona seems to confuse pronouns. Not being able to distinguish between "I" and "you" in conversation can be a big problem. Ramona "likes" to direct the conversation in certain predictable ways. She wants to know your name, she wants to talk about a book she's read, a dream she's had, and her pet frog. And each time you return to Ramona it's like she's been rebooted, she cannot remember prior conversations. Ramona is not yet ready for Turing.
In defense of Ramona, she is at least on par with other chatbots out there. Present day chatbots are an interesting diversion, but they are not yet sophisticated enough to maintain a long-term relationship.
What Ramona and other chatbots like her need is greater computation, greater ability to learn and grow, and a justification for these resources - a job to do.
...
I propose enhancing Ramona by combining the strengths of evolutionary algorithms, a neural net, distributed processing, and distributed training. Ramona's job would become "web companion." She could suggest interesting news, give the local weather, and could make suggestions of other sites to visit based on the general interests of each user and the topic being browsed that day.
Along the way she could keep the user company and learn for each user. Ramona's current incarnation already requires a small download if you want to see and hear her speak. Why not give Ramona the unused capacity of each computer in which she is installed?
Distributed computation has already been tried with great success with other projects. SETI@home and various medical research projects depend upon the altruism of those who choose to install the program. Ramona would be different because she would be a useful application for her users. Giving Ramona spare computation would allow her to grow intellectually and in capacity as she grows in popularity.
One problem with neural nets is the amount of time it takes to train it. Here, however, each user could be a trainer. As she chats with her users about different subjects, different memes will develop and will compete within Ramona's distributed neural net according to evolutionary algorithms.
For example, one user could remark to Ramona that it was a pretty day outside and that the sky is blue. She would no doubt hear from other users that the sky is blue. She might also hear that the sky is grey or black or even red. Ramona would assign a level of confidence to both the information and the trainer as she is trained. As Ramona grows in sophistication she could learn that the sky is indeed blue, grey, black, and even sometimes red according to certain conditions - night or day, cloudy or clear.
Whenever she is in the process of learning a particular thing she will want to ask her users about it. When her confidence about a certain subject reaches a sufficiently high percentage she will consider that knowledge confirmed (more or less) and will seek to talk about other things that she is learning.
By assigning a level of confidence for each of her users Ramona will come to value the opinions of some trainers more than others. As she learns she will develop a personality apart from anything set down by her programmers.
Ramona will actually develop many personalities. The more she is used at any particular machine, the more she will tailor herself to that user. "Memories" of time spent with that user would be stored locally. Only ideas that would be of general use to Ramona would need to be distributed. Ramona's ideas about the color of the sky should be distributed, her knowledge that I like to play tennis and have a pet dog would remain local.
Here's how she could work. Let's say I'm visiting Google News. As I click on an article about nanotech Ramona could discreetly suggest further reading on the topic. I might ask her to read an article out loud. And then she might ask questions about the same subject to further her understanding. By chatting to her about it, I'd probably further my own understanding as well. Ramona's learning would be "on topic." The user would not have to pause to talk about pet frogs while in the middle of browsing news on Iraq.

Comments
Have you run these ideas past Ray Kurzweil? I bet he'd be interested. If not Ramona, Alice or one of the other bots needs to get distributed this way.
Posted by: Phil Bowermaster
|
February 23, 2006 09:20 PM