Cognitive Computing: What’s in a Name?
Cognitive computing might be one of the many buzzwords that you today hear and see alongside such terms as Artificial Intelligence, Machine Learning, Deep Learning and Big Data. However, quite opposite to these terms, Cognitive computing, as it seems, does not have a clear definition yet – and this is the fact commonly agreed on in the industry.
The Cognitive Computing Consortium, which represents a cross–disciplinary group of researchers, developers, and practitioners of cognitive computing and its allied technologies, came up with the best (at present) definition of the term, so we’re going to use their description to depict how cognitive computing differs from traditional computing.
At the same time, our goal is not to explain the terminology, but rather to demonstrate how this concept can be applied to real business needs, and implemented with technologies available on the market.
So, coming back to the consortium’s definition, Cognitive computing addresses complex situations that are characterized by ambiguity and uncertainty; in other words it handles human kinds of problems. Cognitive computing systems often need to weigh conflicting evidence and suggest an answer that can be considered as “best” rather than “right”.
This is a good start, which allows for better distinguishing of traditional computing systems from the cognitive ones, as well as helps understand what they are lacking.
Traditional Computing Systems versus Cognitive Computing
Here are some examples of what “human kinds of problems” might cover:
- Speech understanding
- Face detection
- Recommendations
- Medical diagnosis
- Risk assessment
- Sentiment analysis
- Psychometrics to identify psychological profiles
The last one was allegedly used in the recent US elections for manipulating voters’ preferences.
Some of these problems are almost intractable for traditional computing techniques although people have been successfully solving them for thousands of years. On the other hand, the majority of them is still challenging even for a human mind.
Your Personal Digital Assistant
Continuing with the Cognitive computing definition: Cognitive computing systems may play the role of an assistant or a coach for the user, and they may act virtually autonomously in many problem-solving situations. Their output may be prescriptive, suggestive, instructive, or simply entertaining.
For example, your personal assistant, should it be Siri, Google Assistant, Alexa or Cortana is a great example of a Cognitive computing system for personal use.
Implementation Approaches
But can an enterprise system have Cognitive computing capabilities? Of course, it can, and there are multiple examples: fraud detection in Finance, investment risk management, commerce recommender systems, predictive maintenance in manufacturing, detection of anomalies in Oil & Gas production cycle to prevent oil spills and so on.
As the Cognitive Computing Consortium suggests, in order to achieve the cognitive level of computing, the systems must be Adaptive, Interactive, Iterative and stateful, and Contextual.
Below we will analyze these requirements and map to possible implementation approaches which help achieve better intelligence for digital systems:
- Adaptive – as the information changes, and goals and requirements evolve, the systems must learn. They must resolve ambiguity and tolerate unpredictability. They must be engineered to feed on dynamic data in real time, or near real time.
This is a reasonable requirement, after all, cognitive systems are supposed to mimic the ability of humans to learn and improve from experience. This implies that one can’t just write a program for solving a particular task, the program itself should be dynamic enough in order to adapt and improve with experience. From the implementation standpoint, this requirement falls well into the Machine Learning approach, which by definition “gives computers the ability to learn without being explicitly programmed” (Arthur Samuel, 1959).
Over many years, Machine Learning community has been developing new techniques and algorithms, gradually increasing their accuracy. During this time, performance of the majority of AI applications remained to be sub-human, i.e. it was worse than average human performance. But starting from 2012, the situation has started to change, and the changes were quite drastic. Although there were several factors that made this progress possible, perhaps the most important one was the emerging of the Deep Learning field, which is a family of Machine Learning techniques inspired by cognitive and neuroscience that are now considered state-of-the-art in Artificial Intelligence.
- Interactive – the systems must easily interact with users so that those users can define their needs in a comfortable and natural way. They may also interact with other processors, devices, and Cloud services, as well as with people.
User Experience and Design Thinking methodologies in particular are a great foundation to start designing the interactivity. Modern human interfaces may vary a lot, starting from traditional Mobile, Web or Wearable to innovative speech, gestures or even mind controlled systems. Moreover, this problem is bi-directional. Cognitive systems should not only understand human input; they also should act and provide their results in the way people will find natural and easy to understand. A recent breakthrough in Deep Learning and AI particularly addresses these challenges giving a way to achieve a near human-level of experience in interacting with cognitive systems.
System interfaces between devices often require fast and lightweight M2M protocols such as MQTT or CoAP. These are de-facto standards in modern IoT solutions, often supported by Cloud platforms with IoT capabilities such as AWS or MS Azure or more specialized like C3 IoT or PTC ThingWorx.
- Iterative and stateful – the systems must aid in defining a problem by asking questions or finding an additional source input if a problem statement is ambiguous or incomplete. They must “remember” previous interactions in a process and return information that is suitable for the specific application at that point in time.
Mitigating today’s financial, market, and even social risks makes reliability of the Cognitive systems the highest priority for businesses, as they are supposed to provide highly trusted and consistent results. From the design and architectural standpoints, meeting this requirement requires careful application of the data quality and validation methodologies in order to ensure that the system is always provided with enough information, and that the data sources it operates on deliver reliable and up-to-date input.
- Contextual – the systems must understand, identify, and extract contextual elements such as meaning, syntax, time, location, appropriate domain, regulations, user’s profile, process, task, and goal. They should draw on multiple sources of information, including both structured and unstructured digital information, as well as sensory inputs (visual, gestural, auditory, or sensor-provided).
As Cognitive Systems aim to handle real world problems, which are highly uncertain and may be influenced by potentially unlimited number of different factors, quality and consistency of their results highly depends on the number of factors they consider while making the decision. That brings yet another technological trade-off as the complexity of the problem grows tremendously with the number of the data sources. Aggregating and integrating the data from different data sources and processing it in a unified way is also challenging. Here is where Apache Spark project comes into play providing distributed and highly efficient tool that covers most of the present data processing and analytics routines. It also addresses another important requirement of having the most important data available for the real-time ad-hoc access while being able to reach a long track of historical data for better insight. A complex Cognitive system usually is a combination of multiple technologies that are glued together. As an example, Kafka, Spark, Elasticsearch, Cassandra, Hadoop, and other technologies can coexist in a single solution to handle in-memory ‘hot’ contextual data and a batch processing of massive ‘cold’ historical data. The science and art of designing such complex solutions now is a subject of cooperation between practitioners and academia. The SmartDecisions game, which simulates the software architecture design process in a format that makes the learning process more enjoyable for students, is a good example of such a cooperation that introduces gamification to solving comprehensive technological challenges in a fun way.
Conclusion
To sum up, Cognitive Computing doesn’t bring a drastic novelty into the AI and Big Data industry. Rather it urges digital solutions to meet human-centric requirements: act, think, and behave like a human in order to achieve maximum synergy from human-machine interaction.
In this article, we tried to translate this broad and high-level concept into specific technological challenges and provide some practical recommendations on the way they can be addressed.
We believe that soon every digital system will be measured on its cognitive abilities. Like User Experience was the next big step for improving application usability, Cognitive Computing will be a significant step towards digital humanism.
Like this article? Subscribe to our weekly newsletter to never miss out!
Image: Steve Jurvetson, CC BY 2.0