Cognitive Computing: How to Transform Digital Systems to The Next Level of Intelligence

Cognitivecomputing might be oneofthemanybuzzwords that you today hearand see alongside such terms asArtificialIntelligence, MachineLearning, DeepLearningandBigData. However, quiteoppositetotheseterms, Cognitivecomputing, as it seems,doesnothaveaclear definitionyet – and this is the factcommonly agreed onintheindustry.

TheCognitiveComputingConsortium, whichrepresentsacross–disciplinarygroupofresearchers, developers, and practitioners of cognitive computing and its allied technologies, came up with the best (at present)definition of the term, sowe’re going tousetheirdescriptiontodepicthowcognitivecomputingdiffersfromtraditionalcomputing.

Atthesametime,ourgoalisnottoexplain the terminology, but rather todemonstratehowthisconceptcanbeappliedtorealbusinessneeds,andimplementedwith technologies availableonthemarket.

So, coming back totheconsortium’sdefinition,Cognitivecomputingaddressescomplexsituationsthatarecharacterizedbyambiguityanduncertainty; inotherwordsithandleshumankindsofproblems. Cognitivecomputingsystemsoftenneedtoweighconflictingevidenceandsuggestananswerthatcan be considered as “best” ratherthan “right”.

Thisisagoodstart,which allows for better distinguishing of traditionalcomputingsystemsfrom the cognitive ones, as well ashelpsunderstandwhattheyarelacking.

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 CognitiveComputingConsortiumsuggests, 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.

The Author

Serge Haziyev

Serge has more than 18 years' experience in designing, evaluating and modernizing large scale software architectures in various technology domains including BI, Big Data, Clouds, SOA and Carrier-grade telecommunication services for both Fortune 100 and startups.

He is a co-author of the architectural poker game currently used by leading institutions to teach students to architect Big Data solutions. Also, Serge is a co-author of Big Data chapter in the SEI Series book Designing Software Architectures: A Practical Approach.

Serge is a frequent speaker at professional and scientific conferences across the globe (such as SEI SATURN, IEEE ICSE, WICSA and HICSS) where he conducts tutorials and provides practical inputs on emerging technologies.