Intelligent Agents? Show Me the Demo!
Posted by Bob Warfield on December 18, 2007
I’ve been hearing about Intelligent Agents for years. They’re supposed to be capable of revolutionizing our PC experience by automating away all sorts of drudgery. Exactly what an Intelligent Agent might be is never completely clear. We’re given a few simple examples and a lot of mumbling about how great it’s going to be when computers are powerful enough to run them in 5 or 10 years. Microsoft Chief Research Officer Craig Mundie is just one of the latest to trot out this old chestnut at their shareholder meeting. I got it courtesy of Greg Linden, and one of Mundie’s remarks sparked this post:
We’ve done this at the level of speculative execution … but only for the purposes of trying to make the machine go faster … Can … software that is wildly more complex and sophisticated … but well suited to this class of machine that will emerge in the next 5 to 10 years … make [machines] qualitatively different and better … [and] make the machine something that really borders on being your [assistant]?
To this 5 to 10 year business I say, show me the demo! Think about it. If 5 to 10 years of further PC performance development is what’s needed, why can’t we see the demo today? Run a cluster of PC’s to deliver the demo. Run them on Amazon’s Web Services. What are we talking about here? Let’s keep to the (sometimes) optimistic Moore’s Law and assume we’ll have twice as many cores every 18 months. Today we get 4 cores. Here is our timetable:
– 1.5 years from now: 8 cores = 2 PC’s of today
– 3 years from now 16 cores = 4 PC’s of today
– 4.5 years from now 32 cores = 8 PC’s of today
– 6 years from now 64 cores = 16 PC’s of today
– 7.5 years from now 128 cores = 32 PC’s of today
– 9 years from now 256 cores = 64 PC’s of today
– 10.5 years from now 512 cores = 128 PC’s of today
So, a cluster of 128 PC’s allows us to simulate the power of a PC 10 years hence. This is certainly well within the capacity of the Microsofts and Googles to run such simulations. Heck, using something like Amazon EC2 its within the power of a startup or university to play with this kind of thing. So let’s quit talking about how good it’s going to be and SHOW ME THE DEMO!
Greg is not quite so starry eyed as to chalk this up as merely a matter of waiting for enough PC power. He points out that knowing what software to write is essential too. Certainly some of the attempts at intelligent agents so far have been at best laughable and at worst extremely annoying (Die, Clippy, die!). Wouldn’t it be exciting to see an actual demo where the computer was doing something scary useful along the lines of intelligent agents? Wouldn’t it be great to be the company pioneering all that stuff and no doubt patenting every detail along the way?
Part of the challenge is in knowing what the software should do. Part of it is in amassing enough data to do it. There was recently a fascinating blog post in the Google Operating System Blog that talks about the value of large amounts of data. Apparently, Google is working on improving search on videos by enabling speech recognition of the video sound track. That’s a cool idea, I have to admit. To get there, they needed a lot of data on how people speak various phonemes. So, they created the Google 411 service to collect that data. This is a very clever move that is important when dealing with this kind of problem. They chose to solve a very narrow problem so that they could learn from the problem. Think about what a 411 service must do. It’s a pretty limited problem and they understand both sides of the conversation when its working. Understanding both sides is the key to building a bridge between them.
It will be much the same with intelligent assistants. The first problem is simply to understand what this assistant will do. Nobody seems to have a unified theory of it: we get dribs and drabs of examples that often seem unrelated. Many of these examples are going to be very squishy. There is no quick and clean algorithm for what must be done. Lots of heuristics will be called into play. This is not unlike speech recognition, which started out recognizing phonemes and when that still didn’t work, they added statistical likelihood. What word is most likely to follow the prior word? What happens if we stack up those probabilities to augment words we clearly recognize versus words we’re having a hard time with? Now let’s feed in grammar and parts of speech. Each addition moves us a little further, but there is no simple solution. And data will be hugely valuable, even essential, to gaining that understanding.
These two insights, the importance of data and the do-ability of assembling a powerful enough demo platform, make me wonder about whether Intelligent Agents won’t turn out to be more of a cloud computing thing than a desktop thing. Consider that whatever these agents are going to do, if it can be pre-processed to a large degree, then they only need to keep up with data as it changes. Across the entire web, a huge amount of data is changing. On a single PC, not so much data. My household has 5 computers that could be potential consumers of the Intelligent Agent service. We backup all of these machines to a NAS drive on the LAN, yet, the amoung of change as evidenced by backup logs is pretty slight. We could surely share that 128 PC cluster with a number of other households before it got too slow. After all, the cluster could never have spent all its time intelligent agenting even in Mundie’s scenario lest the underlying computer be completely unusuable. If we are using a separate cluster, it’s okay to completely monopolize it.
Isn’t the Cloud ideal for this kind of thing? The purveyors that live within the cloud have the data and the huge numbers of machines to deliver such a thing. Being able to receive such benefits might be one more reason to move your data into the cloud. I won’t hold my breath. I’ve heard about Intelligent Assistants too many times, but I do think it’s time to demand the demo rather than sit back and listen to another blue sky prediction.