I’ve always disliked the term “cognitive computing.” I believe it was invented by some marketeer at IBM in an effort to differentiate its Watson product from other software capabilities. If so, it failed, because as soon as IBM began repeating the cognitive mantra a plethora of other vendors claimed that their products also cogitated.
If you seek the truth from Wikipedia, it is refreshingly honest, admitting that: “At present, there is no widely agreed upon definition for cognitive computing in either academia or industry.” Of course there isn’t; it’s marketing speak. Wikipedia then declares: “In general, the term cognitive computing has been used to refer to new hardware and/or software that mimics the functioning of the human brain.”
So a Raspberry Pi is cognitive because…well, it can add numbers up just like a human brain, and it can obey many other instructions, just like a human brain. Pretty much every piece of software you can think of is cognitive. Some, like neural networks, are specifically brain-like in their activity so they are no doubt cognitive squared. The term “cognitive” is now loosely applied to machine learning algorithms and pretty much any AI capability you care to shake a stick at.
The problem with all of this is that nothing’s happening here that is actually new. AI has been resurrected from the early 1990s when it acquired a reputation for doing nothing much. Nowadays it can do more, as long as you drown it in Big Data, throw it an army of machine learning algorithms and add a dash of natural language processing. OK, but it’s all retro techno.
In Boston, recently I visited the offices of indico (indico.io) and was treated to a demonstration of their text and image processing machine learning software. I was surprised by their capability. Yes, they are doing machine learning and they don’t choose to call it cognitive, but to be honest, if any technology I’ve seen recently deserves such a designation, it’s this.
Let me try to describe how it works, using one of indico’s explanations. Consider facial recognition. First you have an image – a rectangular collection of pixels. You need to recognize facial elements within the pixels, collections of features that might represent the tip of an ear or a nostril or the corner of an eye. You identify large collections of features that could be noses, mouths, ears, hair and so on. Enough of these elements in the right arrangement with the right colors constitutes a face. There can be many faces, but each has a unique set of characteristics, determined by: the distance between the corners of the mouth, the distance between pupils, the distance from the tip of the nose to the chin and so on. A collection of measured ratios like these uniquely identifies a face. So, armed with this you can now analyze a whole series of photographs and recognize the faces of a particular individual. This is reasonably well understood.
What indico has focused on is building a platform that, as it solves the top level problem (identifying the individual “face print” in this example), extrapolates the underlying learning that went into it and then leverages it for solving other similar problems more efficiently. And by applying this technique across a wide range of problems involving diverse data sets over the past two years, they have abstracted powerful generalized features that are useful in attacking many text and image analytic problems. You can think of it like this: a facial print is an abstraction from a very large population of photographs. We human beings know (cognitively) how to use such abstractions because we can recognize people. We have learned similar abstractions for recognizing sunrises, rain, deserts, mountainous landscapes, vehicles and so on. And the machine learning software that is equally capable of identifying such features has learned in its own way to make such abstractions and thus recognize these things.
What indico does that seems to go a step further is to identify and apply such abstractions in innovative ways. One of the demonstrations they gave involved their machine learning text capability (you can view this demo at https://indico.io/gallery/text_mining). They pointed their software at the text of Wikipedia articles on various socio-political systems such as communism, socialism, democracy and so on. Then, when you searched across this data looking for terms such as “wealth inequality,” the results not only showed direct references to that as you would expect but also gave you hits such as “the widening gap between the rich and the poor.” In effect, the platform recognized that language as being directly synonymous without any direct semantic analysis; it had simply applied the abstraction formed from the words it had been fed. Along these lines, indico also showed a separate capability that was able to provide effective summaries of long articles.
The primary application of this capability (at the moment) is in the financial sector where traders and fund managers are deluged with information on companies, sectors, economic trends and so forth. The software can be simply trained to cut through the volume of information, reducing it to what is relevant and useful.
The Cognitive Point
indico’s capability is impressive, innovative and, as far as I know, unique. I expect it to gain traction, especially in the financial sector. Time will tell. The cognitive point I wanted to make was this. There are now a plethora of products out there that choose to think of themselves as cognitive, and they probably are by the all-inclusive definition of the word I gave above, but how many of them are doing something that is “cognitively” new?
I think indico is. It’s applying the very cerebral technique of abstraction in ways that I’ve not seen before.