Let me first start with an introduction on “Cognitive Computing”. Cognitive computing are systems that are designed to make computer’s think and learn like human brain.Similar to an evolution of a human mind from new born to child to an adult, where new information is learned and existing information is augmented, cognitive system’s learn through the vast amount of information fed to it and training on a set of information,so it can understand the context and help in making informed decisions.
For example, if you look at any learning methodology, a human mind learns and understand the context, but its equipped to answer questions in an examination/interview which it might not have seen before, but using the experiences and past learning,a informed judgement can be made. Similarly cognitive systems are modelled to learn from past set of reference data set (or learning) to help users make informed decisions. Cognitive systems can be thought of as a non programming system which learns through the set of information, training, interactions and a reference data set.
From a technology perspective, at a very high level, building a cognitive systems requires technologies that can understand the language,context, entities and relationship (NLP), learn through a set of supervised or unsupervised learning (Machine learning methodology), domain adoption through various techniques, technologies to help source, curate and manage content, runtimes to build out the components together in a loosely coupled manner and wide variety of tooling’s and methodology to enable making cognitive applications. I envision most of the cognitive capabilities offered as service over a cloud (a marketplace for cognitive and smart apps) which can be used individually or as a composite to create applications. The key here is domain adaptability, else we are looking at a general purpose AI system, which in my view would not provide precise and accurate suggestions or predictions. Most of the first generation cognitive services are focused on providing API without any provision to train or adapt to use cases. Even if they provide a provision for training and recognizing new terms etc, based on my experiences it doesn’t work out well. For instance, take the example of Google NLP, Watson NLP APIs or any open source NLP framework like standford or Apache NLP, which provides general NLP parsing (based on wikipedia it can recognize common terms etc..), but fails to solve any real use case on its own. The point is you can’t just rely on the bare APIs, you need to build upon it to solve for any real use case. When it comes to solving enterprise solutions,you are looking at precise suggestions at the top and most of AI engines in the market are actually general purpose AI , which fails to get the level of accuracy required from an AI system. Even if you train a general purpose AI, there are “n” number of factors to get the required level of accuracy. I haven’t seen a AI system or design, which is build from the ground up to make it easy for end consumers, enterprises or users to adapt to required use cases.
Through my upcoming book – “Building Cognitive Solutions – A Definitive Handbook”, I would share my experiences on building a cognitive solution, the right way. There are lot of misconceptions on how to build cognitive applications and this would be the first practical guide on building cognitive solutions.
I plan to show a general methodology to build cognitive applications and the recipe to build and end to end cognitive solution. The book would also cover “deep learning” and new approaches to build cognitive solutions. This would follow the same style as my earlier handbook -” Enterprise IoT – A Definitive handbook”
I am looking out for contributors/co-author for my book, who are experts on deep learning and would like to contribute and share their knowledge with the wider audience. Kindly reach me at me@naveenbalani.com for more details.