Watson Conversation lets you build intelligent apps that can handle customer orders and queries for websites and customer services.
By using its combination of speech-to-text and natural-language comprehension skills, Watson Conversation is capable of helping create chat applications and virtual customer service agents that can handle many routine operations in those areas. This two-part series will focus first on Watson Conversation's attributes and some potential applications. The second installment will cover Watson Virtual Agent and explain how applications using that cloud service can improve customer services such as telephone support.
Similar to the abilities displayed by the iconic HAL 9000 in the classic movie 2001: A Space Odyssey, IBM Watson Conversation provides a cloud service that offers a natural-language interface simulating communications with another human being. Using this service, an enterprise can, for example, generate chatbots for websites, interactive Q&A virtual agents for telephone and messaging platforms, and other types of conversational systems that can communicate in not only English, but also French, German, Italian, Portuguese, and Spanish.
Defining a Customer Interaction
Basically, Conversation requires someone to imagine all the ways in which a human might interact with the application you want to Conversation-enable and provides a pathway for that alternative. To get a better idea of how this works, let's walk through a Conversation example.
In Conversation nomenclature, one sets up processing inside a workspace, which contains everything that defines a particular conversation flow for a given application. A Conversation service can consist of numerous workspaces, each containing its own set of artifacts for establishing two-way communication between a human customer and the machine interface to a given enterprise app. The number of workspaces supported varies with the service plan for which your enterprise may contract with IBM. An even simpler way to think about it is to consider each workspace to represent an individual chatbot, for instance.
Within a Conversation workspace are intents, entities, and dialogs.
Intents encapsulate what it is the human side of the conversation might be seeking within whatever your company is offering. Just for the sake of example, let's say your business is a one-stop shop for personal computers, parts, software, cables, and all the various toys and other peripherals one might connect to a PC. Someone logging onto your website might be looking for a product that could fall into any of those categories. Because intent represents anything the customer is looking for, your Conversation-based app would have to provide examples of each thing that might be, in this case, types of products. A desktop PC would be one intent, a laptop another, and an antivirus package to protect whichever one would be a third. So the second task after establishing a workspace would be to define all the possible intents anyone might have who would come to your website looking for whatever products and services you offer.
Entities are terms or names of things that relate to intents. In our PC superstore example, entities would consist of every brand and model of equipment you sell, every software package, every webcam model, and so on. You would therefore need to list as an entity every product, and hopefully any other term a potential customer might use to describe a product. Instead of a webcam, the customer might call it a Skype cam, for example. If "Skype cam" is also made an entity, a customer can find that kind of camera hardware you offer regardless of how the customer might intend to use it or what they have chosen to call it.
Dialogs are maps of all the ways in which a potential conversation between your app and a customer might interact. Let's say the customer simply says something like, "I need a cable." A dialog would provide the series of questions your app would have to ask to narrow that down. What kind of cable? Connecting via which kind of port? Connecting what to what? How long does the cable need to be? The dialog would consist of these questions and anything else that encourages the customer to define what they're looking for more granularly. Via Conversation's dialog builder, you gradually create responses based on the intents and entities your potential customer might state as the dialog proceeds.
Putting It All Together
Naturally, these steps are interrelated, and via these steps, you train the workspace itself. It's an iterative process, and, to help with that, Conversation includes a Try It Out feature that lets you test panel to check that your app is recognizing intents and entities correctly. The more quickly you can identify a customer's intent, the more smoothly you can transition to a dialog that sets the customer on the right track to finding what they want.
In its documentation, IBM encourages Conversation users to think of intents as verbs "(something a user wants to do)" and entities as nouns "(the object of, or the context for, an action)." This ultimately requires taking from experience with customers in the past all the products and terms any of those customers have used to describe them. From these examples, you can sort intents into categories in order to create a broad selection of terms that your Conversation app can recognize to guide customers to what they're looking for that you actually have.
In effect, each dialog is like an if/then statement in code. The customer input sets a condition to which your Conversation app provides a response. If a particular question contains more than one condition, you can develop child nodes that can break those down. This is done via slots, which are essentially more detailed questions that gather more information from the customer while saving the information the customer has already provided. Slots gather additional information needed to complete more-complex tasks. In our superstore example, this might be to fill an order of multiple products that need to be shipped to multiple locations.
Logically, this creates a tree that describes how you want to process each intent, and it will be a tree that you add branches to over time as new ways of expressing intents are tried out on your system by curious customers.
These steps may sound complicated, but the dialog builder walks you through them. The number of supported nodes varies, depending on the service plan you buy. The Lite plan can support up to 25,000 dialog nodes per workspace while the Standard/Premium plan supports up to 100,000 dialog nodes.
As an aside, the IBM Code Bot Asset Exchange is an online community where developers can display, configure, and discuss bots they've built using IBM Watson Conversation. There are also information resources such as videos and example bots as well as a rewards system that runs on points awarded for developed bots uploaded by developers.
The Improve Component
Once you launch the app(s) you've developed with Conversation, as time goes by and customers interact with what you've produced, you'll want to make modifications based on that experience. This is where Conversation's Improve component kicks in.
Improve begins by generating a history of all the interactions customers have with your Conversation app, which you can display in the Overview window of the Improve control panel. Another control panel display is for User conversations, which tracks all the separate utterances users have employed while interacting with your app, utterances being single messages the customer has sent to the app, either verbally or by text. An overview page summarizes all exchanges between users and your app.
This is important because, humans being who they are, they're liable to ask for information in all sorts of nonstandard ways and you'll want your app to react appropriately. Or at least not react inappropriately or appear to become confused. Another benefit of this process is the ability to review random utterances that may have been made by customers so you can train your app to ignore those that aren't relevant to the customers finding what they're looking for. (Overlooking swear words, for example.)
Another benefit of Improve is that you can use improvements from a particular workspace to apply to apps in other workspaces. Conversation Premium users, for instance, have the option of configuring access to log data from other workspaces.
Improve also lets you access both a development and a production version of your workspace or app, and make edits within one workspace carry over to other workspaces (or not if you prefer). This is done by controlling modification targets with a Deployment ID that uniquely identifies production and development versions of apps, even across multiple workspaces.
More to Come...
With its useful tools and guides, IBM Watson Conversation can help you build applications that can interact intelligently with humans. In the next part appearing next month, we'll explore further development possibilities for Conversation by discussing IBM Watson Virtual Agent.