# US 2018/0024994 A1 · Contextual language generation by leveraging language understanding

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

- Number: US 2018/0024994 A1
- Document ID: US20180024994A1
- Status: Published application
- Kind: A1
- Application number: 15/720,174
- Filed: 2017-09-29
- Published: 2018-01-25
- Earliest claimed: 2015-06-15
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Ruhi SARIKAYA
- Web page: https://patentgrep.com/patent/US20180024994A1

## CPC

- G06F 40/40: Processing or translation of natural language (natural language analysis G06F40/20; semantic analysis G06F40/30)
- G06F 16/3322: {using system suggestions (G06F16/3325 takes precedence)}
- G06F 40/253: Grammatical analysis; Style critique
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Technology is provided for improving digital assistant performance by generating and presenting suggestions to users for completing a task or a session. To generate the suggestions, a machine learned language prediction model is trained with features extracted from multiple sources, such as log data and session context. When input is received from a user, the trained machine learned language prediction model is used to determine the most likely suggestion to present to the user to lead to successful task completion. In generating the suggestion, intermediate suggestion data, such as a domain, intent, and/or slot, is generated for the suggestion. From the generated intermediate suggestion data for the suggestion, a surface form of the suggestion is generated that can be presented to the user. The resulting suggestion and related context may further be used to continue training the machine learned language prediction model.

## Claims

### Claim 1

A system comprising:
a machine-language-based classifier, wherein the machine-language-based classifier is configured to perform the following actions:
receive a first user input requesting a digital assistant to perform a requested task;
identify a first context for the user;
analyze the first user input to determine first intermediate task data corresponding to the requested first task;
provide the first context and the first intermediate task data as inputs to a machine learned language prediction model, wherein the machine learned language prediction model is based on log data, the log data comprising historical data representing previous interactions between one or more users and one or more digital assistant applications;
receive as output from the machine learned language prediction model, first intermediate suggestion data for generating a first suggestion for the user, wherein the first suggestion is for a second task to be requested based on the inputs to the machine learned language prediction model; and
an output module, wherein the output module is configured to present the first suggestion to the user.

### Claim 2 (depends on 1)

The system of claim 1, wherein the first intermediate suggestion data includes at least one data type selected from the group consisting of a domain, an intent, and a slot for generating the first suggestion to the user.

### Claim 3 (depends on 1)

The system of claim 1, further comprising a language generation suggestion module configured to generate a surface form of the first suggestion based on the first intermediate suggestion data.

### Claim 4 (depends on 1)

The system of claim 1, further comprising a log data module configured to receive the first intermediate suggestion data, the first suggestion, and the first context to the log data.

### Claim 5 (depends on 1)

The system of claim 1, further comprising:
a machine learned language prediction module, wherein the machine learned language prediction module is configured to perform the following actions:
receive updated log data; and
training the machine learned language prediction model with the updated log data to generate an updated machine learned language prediction model.

### Claim 6 (depends on 5)

The system of claim 5, wherein the machine-language-based classifier is further configured to perform the following actions:
receive a second user input, wherein the second user input is the same as the first user input;
receive a second context for the user;
analyze the second user input to determine second intermediate task data corresponding to the requested task;
provide the second context and the second intermediate task data as inputs to the updated machine learned language prediction model;
receive as output from the updated machine learned language prediction model, second intermediate suggestion data for generating a second suggestion for the user, wherein the second suggestion is different from the first suggestion; and
wherein the output module is further configured to present the second suggestion to the user.

### Claim 7 (depends on 1)

The system of claim 1, wherein the machine-language-based classifier is further configured to perform the following actions:
receive a second user input, wherein the second user input is the same as the first user input;
receive a second context for the user, wherein the second context is the different from the first context;
analyze the second user input to determine second intermediate task data corresponding to the requested task;
provide the second context and the second intermediate task data as inputs to the machine learned language prediction model;
receive as output from the machine learned language prediction model, second intermediate suggestion data for generating a second suggestion for the user, wherein the second suggestion is different from the first suggestion; and
wherein the output module is further configured to presenting the second suggestion to the user.

### Claim 8 (depends on 2)

The system of claim 2, wherein the machine learned language prediction model includes a predictive model for domains, a predictive model for intents, and a predictive model of slots.

### Claim 9

A computer-implemented method comprising:
receiving a first user input requesting a digital assistant to perform a requested task;
identifying a first context for the user;
analyzing the first user input to determine first intermediate task data corresponding to the requested first task;
providing the first context and the first intermediate task data as inputs to a machine learned language prediction model, wherein the machine learned language prediction model is trained from log data, the log data comprising historical data representing previous interactions between one or more users and one or more digital assistant applications;
receiving as output from the machine learned language prediction model, first intermediate suggestion data for generating a first suggestion for the user, wherein the first suggestion is for a second task to be requested based on the inputs to the machine learned language prediction model; and
presenting the first suggestion to the user.

### Claim 10 (depends on 9)

The method of claim 9, wherein the first intermediate suggestion data includes at least one data type selected from the group consisting of: a domain, an intent, and a slot for generating the first suggestion to the user.

### Claim 11 (depends on 9)

The method of claim 9, further comprising generating a surface form of the first suggestion based on the intermediate suggestion data.

### Claim 12 (depends on 9)

The method of claim 9, further comprising:
receiving updated log data;
training the machine learned language prediction model while offline with the updated log data to generate an updated machine learned language prediction model.

### Claim 13 (depends on 9)

The method of claim 9, further comprising:
receiving updated log data;
training the machine learned language prediction model at runtime with the updated log data to generate an updated machine learned language prediction model.

### Claim 14 (depends on 13)

The method of claim 13, further comprising:
receiving a second user input, wherein the second user input is the same as the first user input;
receiving a second context for the user;
analyzing the second user input to determine second intermediate task data corresponding to the requested task;
providing the second context and the second intermediate task data as inputs to the updated machine learned language prediction model;
receiving as output from the updated machine learned language prediction model, second intermediate suggestion data for generating a second suggestion for the user, wherein the second suggestion is different from the first suggestion; and
presenting the second suggestion to the user.

### Claim 15 (depends on 9)

The method of claim 9, further comprising:
receiving a second user input, wherein the second user input is the same as the first user input;
receiving a second context for the user, wherein the second context is the different from the first context;
analyzing the second user input to determine second intermediate task data corresponding to the requested task;
providing the second context and the second intermediate task data as inputs to the machine learned language prediction model;
receiving as output from the machine learned language prediction model, second intermediate suggestion data for generating a second suggestion for the user, wherein the second suggestion is different from the first suggestion; and
presenting the second suggestion to the user.

### Claim 16 (depends on 9)

The method of claim 9, wherein the machine learned language prediction model includes a predictive model for domains, a predictive model for intents, and a predictive model of slots.

### Claim 17

A system comprising:
a machine learned language prediction module, wherein the machine learned language prediction module is configured to:
receive log data from a log data module;
train a machine learned language prediction model based on log data comprising historical data representing previous interactions between one or more users and one or more digital assistant applications; and
provide a machine-based-classifier access to the machine learned language prediction model, such that the machine-based-classifier can provide inputs to the machine learned language prediction model in the form of user input and context for the user and receive outputs from the machine learned language prediction model in the form of intermediate suggestion data; and a log data module configured to:
receive log data from interactions between multiple users and digital assistants; and
provide the log data to the machine learned language prediction module.

### Claim 18 (depends on 17)

The system of claim 17, wherein the intermediate suggestion data includes at least one data type selected from the group consisting of a domain, an intent, and a slot for generating the suggestion to the user.

### Claim 19 (depends on 17)

The system of claim 17, wherein the machine learned language prediction module is further configured to receive updated log data and update the machine learned language prediction model by training the machine learned language prediction model with the updated log data.

### Claim 20 (depends on 17)

The system of claim 17, wherein the context for the user includes a user profile and device settings.
