It was one of those endless summers, like you remember from childhood, except with more maths. The undergrads were gone, Stanford was quiet. I remember deadly lunches at the all-you-can-eat Indian buffet in Palo Alto, and discussions with my friend Simon (on sabbatical from Cambridge) about sparse matrices and eigenvectors. I was trying to figure out a way to take my "agents" who'd learned bundles of user interests and split the successful ones up into meaningful components (the unsuccessful ones were killed off in the brutal artificial evolution I had running).

Our cohort of AI students had been influenced by the recent and disruptive work of people like Rodney Brooks at MIT, creating insect-like robots that appeared smart through their interactions with a complex environment, building in turn on ideas like Braitenberg's Vehicles or Minsky's Society of Mind. Rather than create a top-down architecture for my news recommendation service I was fascinated by the idea that it could evolve over time to get better at serving the interests of a population of users.

All the maths eventually worked out, and I ended up with a way of successfully taking a pile of news articles and breaking them up according to the same topics that human editors had assigned - unsupervised clustering using a spectral matrix decomposition.