Skip to the content.

Welcome to Watson

Cognitive computing can be complex, but we’re here to help you make sense of it. This is a technically focused set of pages that will allow you to explore the technology, see the latest best practices, and help you master cognitive application development.

Contents


Introduction - Getting Started

The IBM Cloud

Watson is the collection of cogntive services hosted on the IBM Cloud platform. They are available as cloud based services. These services include all of the services listed below. Many of these services can also be used in an “on premises” mode, with the use of IBM Cloud Packs. These pages cover the basics about these services, and will get into some technical detail - most of which also apply to these services on other platforms (like the IBM Cloud Packs).

References for Further Reading

Support on the IBM Cloud

In traditional support scenarios, support comes along with the purchase of product licenses. How does support work when you are just paying for what you use on the IBM Cloud? Is my support metered too? Do I have to pay by the ticket? No, you don’t. Support on the IBM Cloud looks like this:

If you are like me, you use an unpaid (either trial or free) IBM Cloud account. You are not paying anything for using it. For these accounts, you begin with just preliminary support. It means that you start with just very simple support - no support for the services on the IBM Cloud, just for the Cloud infrastructure itself.

Creating tickets is available to EVERYONE within the context of their own account. In the context of another account (like most individual user situations), this ability is granted to particular users. This is done through account management on the IBM Cloud (read more about IAM here).

Once an account starts to spend money, they get BASIC support. This gets you 24 x 7 access to the IBM Cloud technical support team through support cases. Phone and chat are available for these customers, but there are no SLA’s (service level agreements), and responses may not be as quick as you might like. This support is still kind of basic (thus the name).

If you want something a bit more robust, you can pay for ADVANCED support. This gets you 24 x 7 access to the IBM Cloud technical support team through support cases, phone and chat. There are some specific SLA’s for different severity levels of support case. Responses may not be as detailed as you might want, but IBM Support will give your case some priority. This is typically what we would suggest for a customer that has one or two production applications deployed or dependent on the IBM Cloud.

If you want something even more robust, you can pay a little more for PREMIUM support. Premium support gives you the usual access to support tickets, phone and chat. The SLA’s for Premium support are even more responsive than those associated with the Advanced support plan (which is what you would expect). In addition to better priority and quicker responsiveness, you also get access to IBM experts, which can help you when you are looking at strategic uses of the IBM Cloud. You will also get an Technical Account Manager assigned to you - and they will help you manage your support tickets, and make sure that the IBM Cloud is providing value to you. This contribution to your business goals is covewred in. quarterly business reviews. This is typically what we would suggest to a customer that has a large number of applications either deployed or dependent on the IBM Cloud - where the IBM Cloud is a major part of your IT infrastructure.

References for Further Reading


Watson Services and APIs

The following section will focus on the various Watson services and API’s, providing links to high quality technical content focused specifically on these services. This is an overview of each of these services, click on the links to go to the individual landing pages for each service to find materials that are specific to that service. This is meant as more of a high level description and review of the capabilities of the services and business value that they bring. For the technical details, go diving into those service specific pages.

Watson Assistant

The Watson Assistant was formerly called Watson Conversation, and you might still here some people refer to it as that. The name was changed in March 2018 - but now most people I know of refer to it by it’s real name, Watson Assistant.

The Assistant service allows you to add a natural language interface to your application, and to automate interactions with your end users. Common applications include virtual agents and chat bots that can integrate and communicate on any channel or device.

The tooling used to “develop” the Assistant service consists of three parts. The first part deals with user intents. The purpose of intents is to map “what a user says” to “what a user means”. Because of the wide variety of utterances users say to mean the same intent, Watson Assistant leverages deep learning technology to extract intents from user statements (often called utterances). You, as the app developer, have complete control in defining what intents are relevant to your application. Once you’ve defined your list of intents, you need to teach Watson how to recognize these intents by providing it with sample utterances and how they map to these intents. Probably the most common question we get from developers is “how many sample utterances do I need to provide”. While the tool requires a minimum of five sample utterances, the general guideline is “the more the better”. We’ve typically seen good results with 10-30 sample utterances per intent. The key observation is to try and capture real end-user input utterances and then map those to the intents you’ve defined for your application. We mean REAL utterances, with misspellings, bad grammar, “umms”, and all of the other things that can make communication a challenge.

The second part handles Entities. Entities provide specific information that your bot can leverage to provide most relevant response. For example, if the user’s utterance is “I would like to book a flight to Paris”, then the intent might be “book_flight”, and the entity would be “Paris”. You, as the app developer, define the entities that are relevant for your application by providing a list of entity names and for each entity, a list of values and for each value a corresponding list of synonyms.

Once intents and entities are defined in the Assistant service, it is the third part, called Dialog, that actually orchestrates the conversation based on extracted intents and entities, as well as context provided by the application. Context is an extremely important concept as it is the bridge that links the Assistant service to your bot (or application). Any information communicated back and forth between the Assistant service and the bot goes across through the context variables. Dialog consists of a number of user defined nodes where each node executes based on whether its condition is true. Think of each node as an “if” condition where the condition checked is based on a combination of intents, entities, and context variables (or any derived variables). If the condition is true, then the node executes; if not, the flow continues to the next node in the dialog. Please note that the order of the nodes is important as the flow executes top to bottom, left to right.

References for Further Reading

Watson Discovery

The Watson Discovery service helps you gather insights from large amounts of data, similar to a search engine. The big difference is that the Discovery service doesn’t just “look for keywords”, it understands concepts as well. Discovery lets you upload (or ingest) your own enterprise data and then uses its enrichment capabilities to understand the data and gather insights. You can use Discovery in various use cases such as capturing insights from data as well as question/answer use cases where the corpus consists of a large number of documents and the objective is to find the most relevant answers to a query.

This can also be used in conjunction with custom annotation/ontology models developed using Watson Knowledge Studio, enabling you to identify industry/domain specific entities and relations in the ingested content.

Another interesting feature of Discovery is that it comes preinstalled with a Watson News data set. This is a public data set of the news, with approximately 300,000 articles and blogs daily, that is pre-enriched with cognitive insights. This results in a data set of primarily English language news sources that is updated continuously. You can use the Discovery News capability to query this data set for insights that you can integrate directly into your application.

References for Further Reading

Watson Language Translator

From translating documents, apps, and websites to creating multilingual chatbots, what will you build? Instantly translate your content into multiple languages. Add on to your base translation model via corpus customization; which allows you to create your own translation models which account for regional or industry-specific terms.

References for Further Reading

Watson Natural Language Understanding (NLU)

The Natural Language Understanding (NLU) service allows you to analyze text to extract meta-data from supplied content such as concepts, entities, keywords, categories, sentiment, emotion, relations, and semantic roles. It also has the capability to be used in conjunction with custom annotation models developed using Watson Knowledge Studio, enabling you to identify industry/domain specific entities and relations in unstructured text.

It has replaced most of the functionality that was previously exposed in the Alchemy Language service. Users who utilized Alchemy Language in the past are now encouraged to use the Watson NLU service.

References for Further Reading

Watson Natural Language Classifier (NLC)

The Natural Language Classifier service applies cognitive computing techniques to return the best matching classes (typically referred to as intents) for a sentence or phrase. For example, you submit a question and the service returns keys to the best matching intents. You create a classifier instance by providing a set of utterances and a corresponding set of correct intents for each training question. After training, the new classifier can accept new questions or phrases and return the top matches with a probability score for each match.

This is the same kind of “intent detection” capability that you see in the Watson Assistant service - and we encourage new users to use the Watson Assistant service instead. It provides more and better tools for managing and testing yopur classification engine.

References for Further Reading

Watson OpenScale

Watson OpenScale allows enterprises to automate and operationalize the AI lifecycle in business applications. It will help ensure that AI models are free from bias, can be easily explained and understood by business users, and are auditable in business transactions. OpenScale supports AI models built and run in Watson Studio. Examples are Watson Machine Learning, Azure ML, Amazon SageMaker, and others.

References for Further Reading

Watson Personality Insights (PI)

Watson Personality Insights (often abbreviated as PI) derives insights from written and social media data to identify psychological traits which can influence personal decisions, intent and behavioral traits; all of which can be utilized to improve customer interactions, customer engagement, and customer satisfaction. The service needs samples of a user’s written communications, and uses these to build a psychological profile and will identify psychological traits which determine purchase decisions, intent and behavioral traits; which can then be utilized to improve conversion rates.

References for Further Reading

Watson Speech (STT/TTS)

Watson Speech services include both Speech to Text (STT) and Text to Speech (TTS). These are well understood capabilities, so no use in going into a long and boring explanation. They convert spoken word to text, and text to spoken word. There is support for multiple different languages - and this is expanding over time, so if your target language isn’t supported today, contact someone and see if it is on the roadmap to be supported in the future. Watson Speech services are often coupled with Watson Natural Language Understanding (NLU) or Watson Assistant, to help form compelling cognitive applications.

One of the more recent integrations of speech has been with chatbot and conversational assistants. There is a Watson Assistant for Voice Interaction (WAVI) that will provide a cost effective and intelligent alternative to traditional IVR systems.

Often latency can be an issue with STT, and is is HIGHLY recommended that you you use Web Sockets for your data transfer when using STT. It greatly reduces the latency (as compared to http).

References for Further Reading

Watson Tone Analyzer

Watson Tone Analyzer leverages cognitive linguistic analysis to identify a variety of tones at both the sentence and document level. This insight can then used to refine and improve communications. It detects two types of tones, emotion (anger, fear, joy and sadness), and language styles (analytical, confident and tentative) from the input text.

References for Further Reading

Watson Tradeoff Analytics

This service has been deprecated.

Watson Visual Recognition

The Watson Visual Recognition API is used for vision services. The service has a “general” model which it uses to classify things in submitted images. You can also train the service to recognize more specific items in images. Be careful, people will sometimes abbreviate this and call it Watson VR - which might give some people that impression that it is a virtual reality service. It isn’t.

Often when doing analysis of pictures, it is useful to “tile” the image, and break it down into smaller chunks. See the link to the Visual Recognition Tile Localization tool, which is a KEY component for segmenting larger images into bite size pieces for Visual Recognition.

References for Further Reading

Watson Knowledge Studio (WKS)

The Watson Knowledge Studio is used to teach Watson the language of your domain, creating custom models that identify entities and relationships unique to your industry, in unstructured text. You are able to build your models in a collaborative environment designed for both developers and domain experts, without needing to write code. Use the resulting models in Watson Discovery, Watson Natural Language Understanding (NLU), and Watson Explorer.

References for Further Reading

Watson Studio

Watson Studio is an environment which encompasses a variety of tools, capabilities, and services. It supports the use of Jupyter notebooks (for Python), R Studio, Watson Machine Learning, and other machine learning technologies (like TensorFlow, Caffe, and Keras). The Watson Studio environment will allow you to clean and prepare data, and then use that data to build a variety of different types of machine learning models which can then be used to help provide some level of business intelligence and analytics capability.

The Jupyter Python environment is the one that I am most familiar with. The experience in Watson Studio is comparable to what you get when running on your own local machine. You can share and collaborate on your work with other team members, and you have the ability to easily develop your Python code and access a wide variety of IBM Cloud resources, from Watson services, to IBM Cloud data storage solutions, to various database services on the IBM Cloud.

References for Further Reading


Common Use Cases

This section will cover some of the basic patterns and cognitive use cases that we have seen implemented using the Watson services. Ryan Anderson has a blog post on Leveraging Cognitive Design Patterns for Enterprise Value Creation which I suggest you take 5 minutes to read. It’s an older article, but a lot of it still rings true. Ryan is a smart guy - he has a lot of good ideas here.

Chatbots

Chatbots are popular right now, and they can help serve a real purpose. Many customers use them for customer care and customer support scenarios. They have been integrated into a number of different communications channels, and they can often do the repetitive work associated with common customer questions and requests. Some are deplopyed as internal facing, support functions. Some are customer facing.

References for Further Reading

Visual Inspection

This use case involves a visual inspection of still images using the Visual Recognition service and some other technologies. Used to inspect, identify, and inform.

References for Further Reading


Cognitive Development Topics

This is a colection of various popular topics within the realm of cognitive development. Before you dive in and beginn building that first Watson driven application, you probably want to check out the IBM Watson Coding Tips and Tricks. This is a colection of observations and lessons learned from people actually building things with the IBM Watson services.

General Cognitive Development Information

Cognitive development in general is not always a well understood topic. Software development teams are unfamiliar with the changes to typical concerns and iterations that a cognitive development project will have. Teams often have incorrect expectations, and underestimate the importance of data, as well as the number of training iterations required to build a highly effective cognitive model.

References and Further Reading

Cognitive Architectures

Cognitive architectures are not that different from the architectures for applications that you are familiar with. They just use cognitive capabilities and components that may behave somewhat differently than a more “classical” software component. You also need to take into account the need for training in your maintenance of a cognitive solution, which adds a new wrinkle to how you architect a cognitive application.

References for Further Reading

The Importance of Data

Data is the lifeblood of any cognitive solution. You need to be aware of the common challenges that you will face when working with the data that powers your cognitive solution. The training processes used with cognitive systems is iterative, and the management of the data to do this training is an ongoing concern. It’s part of the common maintenance that is needed for a truly cognitive system.

Many tasks require specialized models and a lot of data - and many large data sets are not commercially available without incurring a large cost. So IBM makes some common AI models available out on the Model Asset Exchange, which shares some common AI models and allows you to quickly get started. Some of these may not meet your needs, and you might want to train your own models - but you need data to do this. IBM makes some nice datasets available (for free, and for commercial use) out on the Data Asset Exchange. Some of these datasets are just collections of freely available data, some are new data sets.

The IBM Watson Studio

IBM has an environment that will help you with the intersection of data science and machine learning, it’s called the IBM Watson Studio. This has a variety of resources and tools to help with your data science projects, and allow you to “unlock” the value hidden in your data. Check out the special landing page devoted to Watson Studio.

Data Science, Design and User Experience

Data science manages to surface data and information from large data sets, to help us understand better. Design and user experience design help bring this data, and it’s insights, to life for your end user. Any powerful application that delights it’s end users will have both a strong user experience, and a strong data science component. Here is some suggested reading on the intersection of design and data:

References for Further Reading

DevOps with Cognitive on IBM Cloud

The topic of DevOps when working in IBM Cloud is deserving of it’s own “landing page”. The open cloud platform and the ability to apply the Continuous Delivery service, along with it’s support for toolchains, means that you have a lot of options when configuring your IBM Cloud environment to promote best practices and DevOps principles.

References for Further Reading

Testing Approaches and Methods

When looking at testing Cognitive systems, we run into issues that are new to software developers. Cognitive systems are trained, and they may be non-deterministic. So we have to apply some different principles and techniques when we test cognitive systems.

Andrew Freed has an excellent series of articles that cover the testing pyramid, and discuss cognitive system concepts for smoke testing, accuracy testing, ingestion and NLP testing, and finally unit testing. The series is a great overview of cognitive testing concepts.

There are also some good tools available to help you in you testing of your Watson cognitive services. There is the Watson Cognitive Testing Framework for measuring performance, which provides several commonly used performance metrics of custom ML models (Accuracy, Precision/Recall/F1, Confusion Matrix, AUC). Andrew Freed has an excellent 2 part series on testing your chatbot.

References for Further Reading

Watson/IBM Cloud Security Concerns

There are some very real security implications that you will have to consider when developing applications and systems that use the IBM Cloud, and the Watson services hosted on that cloud. Many of the “standard” questions that an infosec team will ask, have already been answered by IBM Security teams out on the Cloud Security Alliance website.

If you are just concerned with basic application security best practices on the IBM Cloud, you should look at the IBM Cloud Security site. It covers best practices, has information about cloud security risks and threats, frameworks, and checklists.


Code, Development Resources, and GitHub Repositories

This section has a list of great places where you can see working code, find development resources, or GitHub repositories with useful content.

Development Resources

Learning and Training

This section will share a few different learning environments and approaches. I am always interested in hearing feedback from real people who took any of these courses, indicating how useful and effective they are.

Coursera 


Common Tips and Tricks

This section will cover some of the common tips and tricks used by cognitive develpment professionals, and covers some of those things that are not addressed in the documentation.

Staying Aware of Watson and Cloud Best practices

There are some very good sources for current material on best practices with the Watson services. Often these are published in a few “hotspots”, and it’s possible for you to monitor these so you are always aware of the latest information. Here are some RSS feeds to some key “hotspots”: