IP Library › Granted Patent US 11,200,885
Granted Patent B1
US 11,200,885 · App. 16/219,228 · Granted Dec 14, 2021

Goal-oriented dialog system

Inventors: Arindam Mandal (Redwood City, CA); Nikko Strom (Kirkland, WA); Angeliki Metallinou (Mountain View, CA); Tagyoung Chung (Sunnyvale, CA); Dilek Hakkani-Tur (Los Altos, CA); Suranjit Adhikari (San Jose, CA); Sridhar Yadav Manoharan (Cupertino, CA); Ankita De (San Jose, CA); Qing Liu (Sunnyvale, CA); Raefer Christopher Gabriel (San Jose, CA); Rohit Prasad (Lexington, MA)
Assignee: Amazon Technologies, Inc.
G10L15/063G06F16/3329G10L15/1815G10L15/22G10L2015/223
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,200,885
App. No.
16/219,228
Filed
Dec 13, 2018
Granted
Dec 14, 2021
Kind
B1
Art Unit
2659
USPC
704/231
Abstract

A dialog manager receives text data corresponding to a dialog with a user. Entities represented in the text data are identified. Context data relating to the dialog is maintained, which may include prior dialog, prior API calls, user profile information, or other data. Using the text data and the context data, an N-best list of one or more dialog models is selected to process the text data. After processing the text data, the outputs of the N-best models are ranked and a top-scoring output is selected. The top-scoring output may be an API call and/or an audio prompt.

Claims (121)

1. A computer-implemented method comprising:

receiving first input data corresponding to a first request of a dialog, the first input data comprising natural language;

determining the natural language includes an entity;

determining dialog history data representing the dialog;

determining first dialog focus data including:

the first input data,

an indicator corresponding to the entity, and

the dialog history data;

processing the first dialog focus data to determine:

a first score representing a first relationship between the first dialog focus data and a first trained model corresponding to a first category of functions, and

a second score representing a second relationship between the first dialog focus data and a second trained model corresponding to a second category of functions;

sending, based at least in part on the first score, the first dialog focus data to the first trained model;

sending, based at least in part on the second score, the first dialog focus data to the second trained model;

receiving, from the first trained model, first response data corresponding to a first potential response to the first request;

receiving, from the second trained model, second response data corresponding to a second potential response to the first request;

determining a third score representing a third relationship between the first input data and the first response data;

determining a fourth score representing a fourth relationship between the first input data and the second response data; and

performing, based at least in part on the third score and the fourth score, a first action associated with the first response data.

2. The computer-implemented method of claim 1 , further comprising:

sending the first dialog focus data to a third trained model corresponding to a third category of functions; and

receiving, from the third trained model, third response data corresponding to an application programming interface (API) call.

3. The computer-implemented method of claim 1 , further comprising:

determining a user account corresponding to the first input data;

determining user preference data corresponding to the user account;

determining that the user preference data indicates a negative preference of a system associated with the second trained model; and

determining the fourth score based at least in part on the negative preference.

4. A computer-implemented method comprising:

receiving first input data corresponding to a first command of a dialog, the first input data comprising natural language;

determining that the natural language includes an entity;

determining dialog history data representing the dialog;

determining first dialog focus data including:

the first input data,

a first indicator corresponding to the entity, and

the dialog history data;

processing the first dialog focus data to determine a first relationship between the first dialog focus data and a first model corresponding to a first category of functions;

sending, based at least in part on the first relationship, the first dialog focus data to the first model;

receiving, from the first model, first response data corresponding to a first potential response to the first command;

processing the first dialog focus data to determine a second relationship between the first response data and a first goal represented in the first input data;

determining, based at least in part on the second relationship, that a first action associated with the first response data is to be performed; and

performing the first action.

5. The computer-implemented method of claim 4 , further comprising:

determining second dialog focus data including the first dialog focus data and a second indicator corresponding to the first action.

6. The computer-implemented method of claim 4 , further comprising:

processing the first dialog focus data to determine a third relationship between the first dialog focus data and a second model corresponding to a second category of functions;

sending the first dialog focus data to the second model;

receiving, from the second model, second response data corresponding to the first command;

processing the first dialog focus data to determine a fourth relationship between the second response data and the first goal represented in the first input data; and

determining the first action further based at least in part on the fourth relationship.

7. The computer-implemented method of claim 4 , further comprising:

receiving second input data corresponding to a second command of the dialog;

determining second dialog focus data including at least the first dialog focus data and the second input data;

sending the second dialog focus data to a second model; and

receiving, from the second model, second response data corresponding to the second command.

8. The computer-implemented method of claim 4 , further comprising:

receiving first model data corresponding to the first model and an application programming interface (API);

determining that the first model data corresponds to the entity; and

determining the first relationship based at least in part on the first model data corresponding to the entity.

9. The computer-implemented method of claim 4 , further comprising:

determining second dialog focus data including at least the first dialog focus data and the first response data;

receiving second input data corresponding to a second command of the dialog;

sending the second dialog focus data to a second model; and

receiving, from the second model, second response data corresponding to the second command.

10. The computer-implemented method of claim 4 , further comprising:

determining a first candidate domain corresponding to the first input data;

determining a second candidate domain corresponding to the first input data; and

determining that the first input data corresponds to the entity based at least in part on processing the first input data using:

a first entity recognizer corresponding to the first candidate domain, and

a second entity recognizer corresponding to the second candidate domain.

11. The computer-implemented method of claim 4 , further comprising:

determining a user account corresponding to the first input data;

determining user preference data corresponding to the user account; and

determining the first dialog focus data to further include the user preference data.

12. A system comprising:

at least one processor; and

at least one memory including instructions that, when executed by the at least one processor, cause the system to:

receive first input data corresponding to a first command of a dialog, the first input data comprising natural language;

determine that the natural language includes an entity;

determine dialog history data representing the dialog;

determine first dialog focus data including:

the first input data,

a first indicator corresponding to the entity, and

the dialog history data;

process the first dialog focus data to determine a first relationship between the first dialog focus data and a first model corresponding to a first category of functions;

send, based at least in part on the first relationship, the first dialog focus data to a first model;

receive, from the first model, first response data corresponding to a first potential response to the first command;

process the first dialog focus data to determine a second relationship between the first response data and a first goal represented in the first input data;

determine, based at least in part on the second relationship, that a first action associated with the first response data is to be performed; and

perform the first action.

13. The system of claim 12 , wherein the at least one memory further includes instructions that, when executed by the at least one processor, further cause the system to:

determine second dialog focus data including the first dialog focus data and a second indicator corresponding to the first action.

14. The system of claim 12 , wherein the at least one memory further includes instructions that, when executed by the at least one processor, further cause the system to:

process the first dialog focus data to determine a third relationship between the first dialog focus data and a second model corresponding to a second category of functions;

send the first dialog focus data to the second model;

receive, from the second model, second response data corresponding to the first command;

process the first dialog focus data to determine a fourth relationship between the second response data and the first a goal represented in the first input data; and

determine the first action further based at least in part on the fourth relationship.

15. The system of claim 12 , wherein the at least one memory further includes instructions that, when executed by the at least one processor, further cause the system to:

receive second input data corresponding to a second command of the dialog;

determine second dialog focus data including at least the first dialog focus data and the second input data;

send the second dialog focus data to a second model; and

receive, from the second model, second response data corresponding to the second command.

16. The system of claim 12 , wherein the at least one memory further includes instructions that, when executed by the at least one processor, further cause the system to:

receive first model data corresponding to the first model and an application programming interface (API);

determine that the first model data corresponds to the entity; and

determine the first relationship based at least in part on the first model data corresponding to the entity.

17. The system of claim 12 , wherein the at least one memory further includes instructions that, when executed by the at least one processor, further cause the system to:

determine second dialog focus data including at least the first dialog focus data and the first response data;

receive second input data corresponding to a second command of the dialog;

send the second dialog focus data to a second model; and

receive, from the second model, second response data corresponding to the second command.

18. The system of claim 12 , wherein the at least one memory further includes instructions that, when executed by the at least one processor, further cause the system to:

determine a first candidate domain corresponding to the first input data;

determine a second candidate domain corresponding to the first input data; and

determine that the first input data corresponds to the entity based at least in part on processing the first input data using:

a first entity recognizer corresponding to the first candidate domain, and

a second entity recognizer corresponding to the second candidate domain.

19. The system of claim 12 , wherein the at least one memory further includes instructions that, when executed by the at least one processor, further cause the system to:

determine a user account corresponding to the first input data;

determine user preference data corresponding to the user account; and

determine the first dialog focus data to further include the user preference data.

20. The system of claim 12 , wherein the first input data is automatic speech recognition (ASR) output data.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 4, 2021
From: PRASAD, ROHIT
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 057683/0701 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2021
From: MANDAL, ARINDAM; STROM, NIKKO; METALLINOU, ANGELIKI; CHUNG, TAGYOUNG; HAKKANI-TUR, DILEK; ADHIKARI, SURANJIT; MANOHARAN, SRIDHAR YADAV; DE, ANKITA; LIU, QING; GABRIEL, RAEFER CHRISTOPHER
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 057470/0224 →
Cited By (8)
US 12,210,830 US 12,217,025 US 12,242,810 US 12,308,032 US 12,321,707 US 12,380,344 US 12,555,579 US 12,572,747