Cognitive Computing with IBM Watson
上QQ阅读APP看书,第一时间看更新

Can Machines Converse Like Humans?

We are exposed to a wide range of chatbots in our everyday activities—Siri, Alexa, and Google Home are just a few examples. I can speak out loud to various devices with utterances, such as, Siri, what is the weather in Seattle? or Alexa, Turn on the lights, or Google, What is the tallest mountain in the world? And these devices just respond with answers or actions.

What they do is fairly remarkable in that there are many ways of inquiring about the weather. For example, I might say, What is the weather in Washington?, Tell me the temperature in Seattle, or even the more ambiguous, What is it like up North? All of these have essentially the same intent and are generally referring to the same location. For the most part, all of these devices are doing the same thing: using machine learning algorithms to classify your intention, and to determine the entity (location, in this case) you are inquiring about. They then need to map that onto some predefined action, such as determining the weather, switching on the lights in your room, or looking up some information. There is no doubt that doing these basic activities in response to your vocal expression is useful. However, these really are not conversations. They are simple single-turn command-response, or question-response systems. What they fail to do is to get to the heart of the problem, which is how we distinguish them from conversational agents.

If I ask a service agent, What is my account balance? I need to know what my balance is. But that's not really my problem. My bigger concern is that I'm getting ready to buy something, or I'm trying save up for my kid's education, or trying to pay my bills. There is something deeper and more important to me than simply trying to see how much money I have. A conversation is about trying to get to that deeper concern.

A conversation between two people generally involves each person coming into the conversation with their own set of ideas. Over the course of the discussion, those ideas are expressed, reshaped, or reinforced; they're blended in some way. The result is that each person goes away from any conversation with something they didn't have when they went in. A problem is solved, new ideas are created, or new issues revealed. The conversation is a catalyst in the creative process. And that's the effect that we are looking for in conversational agents, and what distinguishes them from the plethora of chatbots on the market today.

But, is that possible from artificial intelligence (AI)? What are the means by which AI is able to both assist people in uncovering their problems, and inspire them with new ideas that will help them solve those problems better than they could on their own? Certainly, that requires something more than a simple chatbot. Fortunately, for most deployments of AI in useful scenarios, the context of its use has a naturally limiting scope—that is, if you're working with a bank, conversations are likely to be confined to banking concerns; if you're dealing with a retail store, they are likely to be oriented to issues having to do with finding products, or getting problems with those products resolved. This both helps in the construction of an effective conversational agent, and also corresponds nicely to real-world experiences. You generally don't make an appointment to see your doctor to discuss real estate questions; you don't stop random people on the street to converse about that rash that has been creeping up your leg. The context of the conversation generally determines the kinds of things that we will discuss in that conversation. Knowing this will help simplify the task of creating a great conversational agent.

In this chapter, we will help you understand how to build a conversational agent—first by creating a workspace in which to build and train your conversation service, and then showing you how to program an application to use that workspace.

 We will cover the following topics in this chapter:

  • Creating a conversational agent workspace
  • Creating a set of conversational intents
  • Programming your conversational application