# US 11,308,940 B2 · Counterfactual annotated dialogues for conversational computing

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,308,940 B2
- Document ID: US11308940B2
- Status: Granted
- Kind: B2
- Application number: 16/593,803
- Filed: 2019-10-04
- Published: 2021-02-11
- Granted: 2022-04-19
- Earliest claimed: 2019-08-05
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Jayant Sivarama Krishnamurthy; Zachary John Tellman
- Web page: https://patentgrep.com/patent/US11308940B2

## CPC

- G06F 16/3329: Natural language query formulation
- G10L 15/16: using artificial neural networks
- G06F 40/35: Discourse or dialogue representation
- G10L 15/005: {Language recognition}
- G10L 15/22: Procedures used during a speech recognition process, e.g. man-machine dialogue
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G10L: SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING

## Abstract

A method of configuring a conversational computing interface. The method comprises maintaining a branching dialogue representing a plurality of multi-turn conversations each including a plurality of turns, wherein a turn indicates one or both of a conversational computing interface action and a conversation event, the branching dialogue including a shared prefix of turns common to the plurality of multi-turn conversations and at least two different counterfactual branches descending from the shared prefix of turns, each different counterfactual branch including one or more descendent turns corresponding to a different multi-turn conversation of the plurality of multi-turn conversations. The method further comprises providing the branching dialogue in a computer-readable format traversable to retrieve a particular multi-turn conversation of the plurality of multi-turn conversations, the particular multi-turn conversation represented by the shared prefix of turns and a particular counterfactual branch including descendent turns corresponding to the particular multi-turn conversation.

## Claims

### Claim 1

A method of configuring a conversational computing interface, comprising:
maintaining a branching dialogue representing a plurality of multi-turn conversations each including a plurality of turns, wherein a turn indicates one or both of a conversational computing interface action and a conversation event, the branching dialogue including a shared prefix of turns common to the plurality of multi-turn conversations and at least two different counterfactual branches descending from the shared prefix of turns, each different counterfactual branch including one or more descendent turns corresponding to a different multi-turn conversation of the plurality of multi-turn conversations;
responsive to receiving a command to modify the branching dialogue, traversing the branching dialogue to retrieve a particular multi-turn conversation of the plurality of multi-turn conversations, the particular multi-turn conversation represented by the shared prefix of turns and a particular counterfactual branch including descendent turns corresponding to the particular multi-turn conversation; and
recording a modification to the branching dialogue based on the received command and the particular multi-turn conversation.

### Claim 2 (depends on 1)

The method of claim 1, wherein the command is to modify a turn of the particular multi-turn conversation of the plurality of multi-turn conversations, and recording the modification to the branching dialogue in the computer-readable format includes automatically adding a second, different multi-turn conversation to the branching dialogue in the computer-readable format, the second, different multi-turn conversation including the modified turn.

### Claim 3 (depends on 1)

The method of claim 1, wherein the command is to modify a turn of the particular multi-turn conversation of the plurality of multi-turn conversations, and recording the modification to the branching dialogue in the computer-readable format includes editing the particular multi-turn conversation, wherein the modification is also automatically propagated to a second, different multi-turn conversation of the plurality of multi-turn conversations based on the shared prefix.

### Claim 4 (depends on 1)

The method of claim 1, wherein the branching dialogue in the computer-readable format is maintained in a dialogue store data structure including a plurality of nodes, wherein each node representing a descendent turn in a multi-turn conversation includes a pointer indicating a parent node from which that node descends in the dialogue store data structure.

### Claim 5 (depends on 4)

The method of claim 4, wherein each node includes at most one pointer indicating a parent node, such that the plurality of nodes and pointers between nodes define a tree structure.

### Claim 6 (depends on 4)

The method of claim 4, wherein one or more nodes include a plurality of pointers indicating a corresponding plurality of different parent nodes, such that the plurality of nodes and pointers between nodes define a directed acyclic graph structure.

### Claim 7 (depends on 4)

The method of claim 4, wherein two different nodes of the dialogue store data structure each have a pointer to a shared parent node, wherein the shared parent node corresponds to a last turn in the shared prefix of turns and the two different nodes are constituent elements of two different counterfactual branches.

### Claim 8 (depends on 4)

The method of claim 4, further comprising recording the modification to the branching dialogue in the computer-readable format, the modification automatically adding to the dialogue store data structure a new node having a parent pointer to a parent node in a prefix of turns of the particular multi-turn conversation.

### Claim 9 (depends on 1)

The method of claim 1, wherein the branching dialogue further includes metadata indicating a sampling frequency with which a corresponding counterfactual branch occurs in a distribution of exemplary multi-turn conversations.

### Claim 10 (depends on 9)

The method of claim 9, further comprising machine-learning training a conversational computing interface with training data sampled from the distribution of exemplary multi-turn conversations based on the sampling frequency.

### Claim 11 (depends on 1)

The method of claim 1, wherein the branching dialogue includes a counterfactual branch corresponding to an erroneous outcome and metadata labelling the erroneous outcome.

### Claim 12 (depends on 11)

The method of claim 11, further comprising machine-learning training the conversational computing interface to avoid the erroneous outcome.

### Claim 13 (depends on 11)

The method of claim 11, wherein the branching dialogue further includes a turn including a corrective conversational computing interface action for correcting the erroneous outcome, the method further comprising machine-learning training the conversational computing interface to respond to the erroneous outcome based on the corrective conversational computing interface action.

### Claim 14

A computer system, comprising:
a logic subsystem; and
a storage subsystem holding instructions executable by the logic subsystem to:
maintain, in the storage subsystem, a branching dialogue representing a plurality of multi-turn conversations each including a plurality of turns, wherein a turn indicates one or both of a conversational computing interface action and a conversation event, the branching dialogue including a shared prefix of turns common to the plurality of multi-turn conversations and at least two different counterfactual branches descending from the shared prefix of turns, each different counterfactual branch including one or more descendent turns corresponding to a different multi-turn conversation of the plurality of multi-turn conversations; and
responsive to receiving a command to modify the branching dialogue:
traverse the branching dialogue in the computer-readable format to locate a previously-defined multi-turn conversation, the previously-defined multi-turn conversation represented by the shared prefix of turns and a particular counterfactual branch including descendent turns corresponding to the previously-defined multi-turn conversation; and
record a modification to the branching dialogue based on the received instruction and the previously-defined multi-turn conversation.

### Claim 15 (depends on 14)

The computer system of claim 14, wherein the command to modify the branching dialogue is received via a dialogue graphical user interface.

### Claim 16 (depends on 14)

The computer system of claim 14, wherein the command is a command to modify a turn of the previously-defined multi-turn conversation of the plurality of multi-turn conversations, and the command also triggers automatic addition of a second, different multi-turn conversation to the branching dialogue in the computer-readable format, the second, different multi-turn conversation including the modified turn.

### Claim 17 (depends on 14)

The computer system of claim 14, wherein the command is a command to modify a turn of the previously-defined multi-turn conversation of the plurality of multi-turn conversations, the command also triggers automatically propagating an edit applied to the previously-defined multi-turn conversation to a second, different multi-turn conversation of the plurality of multi-turn conversations based on the shared prefix.

### Claim 18 (depends on 14)

The computer system of claim 14, wherein the branching dialogue is maintained in a dialogue store data structure including a plurality of nodes, wherein a node representing a descendent turn in a multi-turn conversation includes a pointer indicating a parent node from which that node descends in the dialogue store data structure, the parent node corresponding to a parent turn from which the turn descends in the multi-turn conversation.

### Claim 19 (depends on 18)

The computer system of claim 18, wherein the command triggers automatically adding to the dialogue store data structure a new node having a parent pointer to a parent node in a prefix of turns of the previously-defined multi-turn conversation.

### Claim 20

A method of configuring a conversational computing interface, comprising:
maintaining, in a dialogue store data structure including a plurality of nodes, a branching dialogue representing a plurality of multi-turn conversations, wherein:
each multi-turn conversation is represented by a plurality of nodes, each node representing a turn in the multi-turn conversation, and each turn indicating one or both of a conversational computing interface action and a conversation event;
the branching dialogue includes a shared prefix of turns common to the plurality of multi-turn conversations and at least two different counterfactual branches descending from the shared prefix of turns, each different counterfactual branch including one or more descendent turns corresponding to a different multi-turn conversation of the plurality of multi-turn conversations, and
each node representing a descendent turn in a multi-turn conversation includes a pointer indicating a parent node from which that node descends in the dialogue store data structure; and
responsive to receiving a command to modify the branching dialogue, traversing the dialogue store data structure in a computer-readable format to retrieve a particular multi-turn conversation of the plurality of multi-turn conversations, the particular multi-turn conversation represented by the shared prefix of turns and a particular counterfactual branch including descendent turns corresponding to the particular multi-turn conversation; and
recording a modification to the branching dialogue based on the received command and the particular multi-turn conversation.
