Author: Satnam Alag
Publisher: Manning, 2008
Aimed at: Web developers
Pros: Good discussion of open source tools
Cons: Insufficient depth of probability theory and statistical methods
Reviewed by: Mike James
Collective Intelligence is often used to mean the sort of behaviour that emerges from a collection of individual units, such as birds flocking or ants cooperating, and any book with this phrase in the title would usually be on how to program such behaviour using AI - Artificial Intelligence. This book is about a different, but perhaps not all together unrelated topic - how you can obtain usual information from the behaviour of Internet users. It describes the ideas behind such innovations as product recommendations based on previous purchasing or searching patterns that many e-shops offer. As such its topic is really what might be called by others "data mining", i.e. discovering patterns that might be useful/valuable in data collected usually for other purposes.
To get into such an area you really need a good grounding in probability theory and statistics, especially so if you plan to innovate. As such this book can't really hope to get you very far because it tries to introduce some very difficult ideas in a few pages. Put simply it doesn't cover the statistical methods in enough depth for you to really get a working grasp of what is going on and in particular it avoids most of the maths. Of course, if you really don't want the maths then this might be a recommendation rather than a criticism.
The book does explain enough of the basic ideas for you to appreciate roughly how they work and to see how they are implemented. You will find descriptions of simple stats ranging from means and standard deviations to smallest space analysis and regression. Some AI techniques are also described, including neural networks, clustering and classifiers. Anyone who knows the volume of literature on these subjects will realise the author can hardly scratch the surface of any of them. There are even examples of how to implement various techniques using Java code - although I'm not sure that this level of detail really fits with the book. If you are trying to cope with the general ideas do you really want to be faced with pages of Java? You do if you plan to implement some of the techniques.Where the book is on target is with its discussion of using the available open tools - Lucene, Nuch, JDM, Weka and so on.
As long as you are the right reader wanting just the right amount of mathematical explanation of the main techniques in use implementing such things as discovering and making use of user likes and dislikes and general user behaviour then this book will be an eye opener. You will, however, almost certainly need to read around the subject if you want to implement anything groundbreaking.