Cognitive computing
What makes a computer system cognitive?
Cognitive computing systems address complex situations that are characterized by ambiguity and uncertainty—in other words, human kinds of problems. In those dynamic, information-rich and shifting situations, data tends to change frequently, and it is often conflicting. The goals of users evolve as they learn more and redefine their objectives. To respond to the fluid nature of users’ understanding of their problems, a cognitive computing system offers a synthesis not just of information sources, but also of influences, contexts and insights. To do that, systems often need to weigh conflicting evidence and suggest an answer that is “best” rather than “right.”
Cognitive systems go far beyond either search or business intelligence (BI) systems not only by including additional technologies, but also by integrating them all into highly interactive, adaptive systems that are built on machine learning. The system learns from a user’s actions and from new information as it flows in. It uses a user’s context—including the task, the time and location, the person’s history and interests and goal—to filter and rank results. That is what a fine personal assistant should do, but if we add a cognitive system to a personal assistant, a physician, a stock trader or an intelligence analyst, we enlarge the scope of knowledge and understanding. Those systems can analyze and combine more information on a topic than any one person could ever be expected to understand. They carry only the biases of their algorithms, not human biases based on past experience or emotion. They don’t get tired. Taken together, cognitive systems and people make a team in which each half complements the other.
Six processes and technologies
The diagram (on page 15, KMWorld, Vol.24, Issue 8 or download chart) shows the basic processes and components in a cognitive system including:
- Ingestion loop. Takes in information in any format from any source. Provides APIs and connectors to collect the data. Normalizes, extracts entities, relationships, other attributes like location, time, sentiment. Stores in information hub in a variety of knowledge representations, usually triples. Storage may be in search indexes, relational databases, triple stores or graph databases. Provides interaction feedback to learning engine.
- Dialog loop–Problem and query definition. Defines the information need interactively, expands query and proposes additional hypotheses.
- Cognitive processor–Probabilistic matching and learning engine. Explores multiple hypotheses, gathers evidence for each and weighs strength of evidence. Merges results and presents them in ranked order according to a set of criteria designed for the specific cognitive application.
- Context filters. Uses contextual clues (user profile, task, location, history, part of task, etc.) to filter output from matching engine. May add additional criteria like utility or urgency to ranking. Delivers ranked results.Exploration loop. Presents results in interactive form for iterative exploration. Results may be in the form of text or spoken answers, graphs, charts, maps, images, sound or a combination thereof. Designed to be exploratory and conversational. Gathers user interactions to feed back to learning engine.
- Feedback. Uses feedback and new information to adjust the weights for each triple. That means that an information quest undertaken today will not match the same request results from last month. The system should know that the searcher has already received certain information, has chosen some to pursue further and the new directions need to be given more weight. Machine learning systems function best if they learn from use as well as from constant streams of information. Use tells the system what is interesting, what works and what doesn’t. Feedback loops add users’ interactions and choices to the cognitive processor to enrich the knowledgebase.
In our next columns, we will explore each of those processes in more depth.