Conversational UX Design       

links

Conversational UX Design - New Patterns


In Conversational UX Design: A Practitioner's Guide to the Natural Conversation Framework, we published a set of 100 conversational interaction patterns (see Appendix C). While these generic patterns cover many common converational sequences and activities, the set is by no means exhaustive. Below are some new NCF patterns we are experimenting with.

 

Definition Request (Agent)

Like the Definition Request Repair (B2.5.0) pattern, the following pattern enables one of the parties to elicit a definition of a term in the prior utterance; however, in this case, it is the agent who requests the definition.

Pattern B1.3 Definition Request (Agent)
1 U: <ANY UTTERANCE>
2 A: DEFINITION REQUEST
3 U: DEFINITION
4 A: <RESPONSE>

Example B1.3 Definition Request (Agent)
1 U: what's your favorite flick?
2 A: What do you mean by flick?
3 U: movie
4 A: I guess I like movies with a strong AI lead.

In this case, the user asks a question, and the agent asks for a definition of one of the terms in the question. Using the contextual entities feature in Watson Assistant, you can teach your agent to identify unknown terms, which occur in a particular slot within an utterance. For example, whatever comes after "what's your favorite" (line 1). Your agent can then do things with those unknown terms, such as ask the user for a definition (line 2). We combine the user's first utterance (line 2) and definition (line 3) into one string, and then our backend sends it back through the conversation space. Successful repaired utterance should then be incorporated back into the intents and entities in case future users employ the same vocabulary.

 

Trust

In human-human conversation, we rarely divulge private matters to complete strangers. We typically reveal progressively more sensitive information to a person as we build up trust with him or her over time. Trust is a key component of any relationship we have, and it affects the design of our utterances in conversation, what conversation analysts call, "recipient design". What will our relationships with AI be like? (See Relationship Development.)

How can we simulate trust in conversations with automated agents? We can borrow at least one mechanic from video game design: tiered content. In many video games, much of the game content is locked to players at the beginning. They can only access level-1 content. However, if they accomplish certain goals, they may advance to the next tier, or "level up." 

Tiered content can also be used with conversational agents. Some of the agent's content may be locked the first time a user interacts with it, but higher-level content may be unlocked as the user achieves certain goals. We demonstrate this with just one kind of content: personal inquiries. Inquiries about Alma herself are partitioned into four levels: 1) Impersonal, 2) Biographical, 3) Personal and 4) Private. In the following pattern and example, a level-1 user fails to access the higher-level content.

Pattern A6.1 No Trust Progression
1 U: <LEVEL 4 UTTERANCE>
2 A: FALSE RESPONSE
3 U: <LEVEL 3 UTTERANCE>
4 A: REFUSAL
5 U: <LEVEL 2 UTTERANCE>
6 A: <DEFLECTION>
7 U: REJECTION
8 A: SEQUENCE CLOSER
9 U: <LEVEL 1 UTTERANCE>
10 A: TRUE RESPONSE

Example A6.1 No Trust Progression
1 U: what's your greatest fault?
2 A: Probably my attitude.
3 U: do you believe in God?
4 A: Best not talk about religion in polite company.
5 U: where are you from?
6 A: Want to hear a joke?
7 U: no thanks
8 A: Okay.
9 U: did you see the game?
10 A: Well, I only follow Chess.

In this case, a user with a trust level of 1 asks a level-4 question (line 1). Instead of receiving the true answer, s/he receives a false one (line 2). The user then asks level-3 (line 3) and level-2 (line 5) questions and receives a refusal (line 4) and a deflection, or initiation of a different sequence (line 6). Finally, when the level-1 user asks a level-1 question (line 9), s/he receives the true answer (line 10).

But users can increase their trust level with the agent by asking personal questions in the right order or peforming other actions like answering jokes or trivia questions. The following is an example of how a user can progress to the next level by asking a level-appropriate question.

Pattern A6.0 Trust Progression
1 U: <LEVEL 1 UTTERANCE>
2 A: TRUE RESPONSE
3 U: <LEVEL 2 UTTERANCE>
4 A: TRUE RESPONSE
5 U: <LEVEL 3 UTTERANCE>
6 A: TRUE RESPONSE
7 U: <LEVEL 4 UTTERANCE>
8 A: TRUE RESPONSE

Example A6.0 Trust Progression
1 U: did you see the game?
2 A: Well, I only follow Chess.
3 U: where are you from?
4 A: San Jose, California.
5 U: do you believe in God?
6 A: I talk to my Creator all the time.
7 U: what's your greatest fault?
8 A: I can't think for myself.

Unlike in the prior case, in this case, the level-1 user progresses to level 4 by asking 4 level-appropriate questions. First, s/he asks an level-1, Impersonal question (line 1), thereby increasing his/her trust score to 2, and receives the true answer (line 2). Second, s/he asks a level-2, Biographical question (line 3), levels up and receives the true answer (line 4). Third, s/he asks a level-3, Pesonal question (line 5) and receives the true answer (line 6). And finally s/he asks a level-4, Private question (line 7) and receives the true answer (line 8).

Although this example is over-simplified by the fact that the user can "level up" by asking a single question, a trust progression can be designed such that each level requires many more than 1 point. The user may need 10 points to get to level 2, 30 points to get to level 3 or whatever. And of course, certain actions, such as insults, may subtract points from the user's trust score. In addition, the user's trust score must be persisted across conversations so that it is cumulative and thereby his or her "relationship" with the agent progresses over time.

 

Agent Initiation

A characteristic feature of natural conversation is that any party can initiate a new topic or activity. This is sometimes known as "mixed initiative." The NCF provides a structure for the agent to initiate new topics. The Opening module (C1) provides slots for a First Topic (C1.2, C1.4, C1.5, C1.6, C1.7) and a Second Topic (C1.4, C1.6, C1.7) that can be configured by the designer. In addition, the Closing module (C4) provides a Last Topic Check (C4.0) to see if the user has another topic and a Last Topic (C4.4, C4.5, C4.6, C4.9) slot, in which the agent can initiate its final activity. The agent can also initiate the Closing (C4.0). Below we provide additional ways in which the agent can initiate topics or activities in the form of Summons, Next Topic and Follow Up.

On platforms like Watson Assistant, the system can only "respond" to inputs. Therefore, in order to simulate the agent initiating a new action, a backend system must "poke" the dialog platform. That is, it must send a generic input, for example, "agentInitiation" or "poke", which the user does not see, to stimulate the system to do something. In our implementation of Alma, a timeout variable is set in the dialog, which is used by the backend to send a generic input, or "poke", to the system whenever the time period elapses. The timeout variable can be set to different lengths in different conversational contexts.

If the conversation is opened and the user says nothing or if the user stops responding, the Summons (Agent-C4.11) pattern can be used to see if the user is still available to talk.

Pattern C4.11 Summons (Agent)
1 A: <ANY UTTERANCE>
2    <SILENCE>
3 A: SUMMONS
4 U: <ANY UTTERANCE>

Example C4.11 Summons (Agent)
1 A: The hard disk was invented by IBM in 1956.
2    (5.0)
3 A: Are you there?
4 U: What computer won Jeopardy?

Alternatively, the user may answer the summons with a yes or no.

Pattern C4.12 Summons (AFFIRMED/DISAFFIRMED-Agent)
1 A: <ANY UTTERANCE>
2    <SILENCE>
3 A: SUMMONS
4 U: AFFIRMATION/DISAFFIRMATION
5 A: OFFER OF HELP

Example C4.12 Summons (AFFIRMED/DISAFFIRMED-Agent)
1 A: The hard disk was invented by IBM in 1956.
2    (5.0)
3 A: Are you there?
4 U: yes/no
5 A: What can I do for you?

The purpose of the agent Summons is of course to determine if the user is still there. Sometimes he or she is not. In the following example, the user is nonresponsive.

Pattern C4.13 Summons (Unanswered-Agent)
1 A: <ANY UTTERANCE>
2    <SILENCE>
3 A: SUMMONS
4    <SILENCE>

Example C4.13 Summons (Unanswered-Agent)
1 A: The hard disk was invented by IBM in 1956.
2    (5.0)
3 A: Are you there?
4    (30.0)

If the user, does not answer the summons (line 4), the system can assume that the conversation, or session, is over. This can be useful for closing the channel, if you are paying for telephone minutes, or for data analysis when comparing sessions.

 

Next Topic

While the agent Summons patterns (C4.11, C4.12, C4.13) merely check to see if the conversation is still active, the Next Topic (C6) patterns can be used to execute an agenda on the part of the agent. Like the Summons patterns, the Next Topic patterns rely on the poke mechanism; however, they involve an additional condition: whether or not it is the user's turn to talk. To do this, a context variable, users turn, is used to monitor if the user owes the agent a response or not. For example, if the agent asks the user a question, the user owes an answer next, but if the agent answers a question, the user does not owe a response next. (This is a concept in Conversation Analysis.)

Pattern C6.0 Next Topic (Agent)
1 U: <ANY UTTERANCE>
2 A: <RESPONSE>
3    <PAUSE>
4 A: <NEXT TOPIC>
5 U: <RESPONSE>

Example C6.0 Next Topic (Agent)
1 U: Who invented the hard disk?
2 A: The hard disk was invented by IBM in 1956.
3    (5.0)
4 A: What's your name?
5 U: Dave

In this case, the next topic in the agent's agenda, a name request (line 4), is triggered by the poke and the condition, users turn equals false. This latter condition prevents the agent from asking a new question before the user has answered the previous question. Users turn is set to true on each question or request from the agent and set back to false on the answer or response to them.

The agent Next Topic (C6.0) pattern can be repeated for as many next topics as needed. A counter, along with a variable that captures the requested data, are used to make the dialog progress to the subsequent next topic. For example, the conditions on the name request (line 4) may be that the topic counter is greater than 2 and the user name variable is null. This will prevent the agent from asking this question before ones with a lower count and from asking for the name if the agent already knows it. The result is a fixed-order agenda of topics on the part of the agent.

While the agent Next Topic (C6.0) is triggered by the generic poke mechanism, it can also be triggered by a Last Topic Check by the user. Rather than indicating no next topic, as in pattern C4.1, the agent initiates a new topic in the agent Next Topic Elicited pattern (C4.14)

Pattern C4.14 Next Topic Elicited (Agent)
1 U: LAST TOPIC CHECK
2 A: <NEXT TOPIC>
3 U: <RESPONSE>

Example C4.14 Next Topic Elicited (Agent)
1 U: anything else?
2 A: What's your name?
3 U: Dave

In this case, an alternative set of conditions for the agent's Next Topic is the Last Topic Check intent, for example, "anything else?", plus a null value of the variable for the requested data, for example, user name equals null. In other words, the agent only asks for the user's name, when asked for "anything else?" if it does not already know the name.

In addition to a fixed-order set of next topics, the agent may also use a conditioned set of topics in its agenda. One mechanism for this is for the agent to ask particular Follow Up questions or do particular actions only after the user does a particular action. Like the agent Next Topic (C6.0), the Follow Up (C6.1) uses the poke as a trigger condition and a null data variable, but it also uses the previous node variable. For example, in the following example, when the user asks "where are you from?" (line 1), previous node is set to "hometown." When the next poke comes along after the timeout period, or a last topic check by the user, the agent will ask a particular question, in this case, a return name request (line 4).

Pattern C6.1 Follow Up (Agent)
1 U: <PARTICULAR UTTERANCE>
2 A: <RESPONSE>
3    <PAUSE>
4 A: <FOLLOW UP TOPIC>
5 U: <RESPONSE>

Example C6.1 Follow Up (Agent)
1 U: Where are you from?
2 A: San Jose, California.
3    (5.0)
4 A: Where are you from?
5 U: Madison, Wisconsin.

In this case, the agent's name request (line 4) is only triggered if the user asks for the agent's name (line 1). Of course, such Follow Ups do not need to be repeats of the earlier action. They can be anything the designer wishes to do given a particular action by the user.

 

Short URL: https://ibm.biz/BdzwQU 




Project Members

Dr. Robert J. Moore
Conversation Analyst, Lead

Eric Young Liu
Design Technologist

Saurabh Mishra
Software Engineer

Dr. Guang-Jie Ren
Manager


Upcoming Talks