Prevent Stuck Conversations with Disambiguation & Suggestions

Burak Akbulut
IBM watsonx Assistant
4 min readJan 5, 2021

Design your bot to run its own experiments

Using Watson Assistant’s disambiguation and suggestions is as easy as toggling a button and naming your dialog nodes or actions. However, after enabling these features, you may be surprised when your bot starts acting a little too free-spirited with its responses. Understanding the basic mechanism and nuances of these two features will help you create bots that can automatically resolve stuck conversations and self-improve over time.

Our documentation covers disambiguation and suggestions in detail. In this article, I will just clarify a few interesting details and also answer some of questions we frequently get about these two features.

What are disambiguation and suggestions?

Although disambiguation and suggestions are two separate features, they are powered by the same algorithm, and they serve the same basic purpose: allow your bot to ask its users clarifying questions when the user’s intent is not clear.

User experience

Disambiguation options are always displayed as part of the main flow, and triggered when there are multiple possibly-good answers. On the other hand, suggestions are always displayed in a dedicated section in web chat, and are triggered as a possible “escape hatch” when no good answers are found.

Disambiguation options in the main flow (left) and the suggestions in their dedicated section in web chat (right).

Note that disambiguation is available in all Watson Assistant integrations and plans. However, suggestions feature is only available in web chat integration and only in Plus and Enterprise plans.

When are they triggered?

Disambiguation is part of the happy path. If your bot has relatively high confidence that there are potentially multiple good responses to a user utterance, it may decide to clarify the right one with the user by showing disambiguation options.

Suggestions, on the other hand, are meant to help a user who may be struggling during a conversation. If your bot determines the user is stuck, a list of suggestions will be displayed in the special section (marked with a ? icon) of the web chat user interface.

Can they both be triggered in the same turn?

Yes, they can. But the suggestions and disambiguation options will never have the same answers for the same turn. The following image illustrate a specific condition where this happens, and gives a good hint to how these features work behind the scenes.

Dialog skill usage

In classic dialog skill, the disambiguation options and suggestions are list of dialog nodes the system thinks are likely to contain the correct response to an unclear user utterance. A dialog node is eligible to be listed as a disambiguation option or as a suggestion, only if the dialog designer has given this node a name. Also, the node must have the “Show node name” option enabled.

Finding the disambiguation setting in the node editor can be a little tricky. First, click on the Settings link in the dialog node:

To see dialog node disambiguation setting, click on Settings link under the node name field

Then, you will see the toggle for disambiguation (and suggestions) eligibility of that node:

Show node name toggle includes or excludes this node from suggestions and disambiguation options

Action skill usage

You can configure each action to be included or excluded from disambiguation in an action skill as follows:

Order of disambiguation options and suggestions

You may notice that your bot is changing the order of options for the very same user utterances. This works as designed. Actually, not only the order of the options, but also the options themselves may be changed automatically by the bot.

These changes are due to intentional randomization for the beta autolearning feature. These randomized changes allow your bot to learn from the options or suggestions the users tend to favor or ignore, and improve your bots performance automatically.

Can I have 100% control of the order and options?

Short answer is “no, but you can help your bot train itself to do a good job”. Note that this is exactly the answer you want!

Precise control over these two lists would either require you to consider an impractically large number combinations in your conversation flow, or you would have to use advanced machine learning techniques with proper training data. Watson Assistant already does the later for you out of the box.

Despite their amazing power and the sophisticated dialog and AI techniques behind the scenes, a conversation designer can easily start using disambiguation and suggestions. Give them a try. You will be amazed to find out how much better your bot will get with just a few button clicks, and a little time in production.

--

--

Burak Akbulut
IBM watsonx Assistant

I work for IBM Watson Assistant to create chatbots that improve customer service using ML. If not on Slack, I’m in Cape Cod kitesurfing, at gym or reading.