IP Library › Granted Patent US 11,232,155
Granted Patent B2
US 11,232,155 · App. 16/692,432 · Granted Jan 25, 2022

Providing command bundle suggestions for an automated assistant

Inventor: Yuzhao Ni (Sunnyvale, CA)
Assignee: Google LLC
G06F16/90332G06F16/3334G06F40/216G06F40/35G06N3/006G06N3/02G06N3/084G10L15/22G10L15/26G06N5/022G10L2015/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,232,155
App. No.
16/692,432
Granted
Jan 25, 2022
Kind
B2
Abstract

Generating and/or recommending command bundles for a user of an automated assistant. A command bundle comprises a plurality of discrete actions that can be performed by an automated assistant. One or more of the actions of a command bundle can cause transmission of a corresponding command and/or other data to one or more devices and/or agents that are distinct from devices and/or agents to which data is transmitted based on other action(s) of the bundle. Implementations determine command bundles that are likely relevant to a user, and present those command bundles as suggestions to the user. In some of those implementations, a machine learning model is utilized to generate a user action embedding for the user, and a command bundle embedding for each of a plurality of command bundles. Command bundle(s) can be selected for suggestion based on comparison of the user action embedding and the command bundle embeddings.

Claims (77)

1. A method implemented by one or more processors, the method comprising:

identifying a corpus of command bundles accessible to a plurality of users, each of the command bundles comprising command bundle data that identifies a plurality of corresponding discrete actions that can be performed by an automated assistant application;

identifying peripheral device data for a particular user of the plurality of users, the peripheral device data indicating peripheral devices that are associated with the particular user and that are paired, for the particular user, with the automated assistant application;

selecting a subset of the corpus of command bundles for the particular user,

wherein selecting the subset of the corpus of command bundles comprises:

determining to include a given command bundle in the subset based on:

determining that the peripheral device data indicates that a given peripheral device, that is indicated as required for the given command bundle in the command bundle data for the given command bundle, is associated with the particular user and is paired, for the particular user, with the automated assistant application,

wherein the given peripheral device is an Internet of things (IoT) device, and

determining to exclude an additional command bundle from the subset based on:

the command bundle data for the additional command bundle indicating an additional peripheral device as required for the additional command bundle, and

the peripheral device data indicating that the particular user is not associated with the additional peripheral device and the additional peripheral device is not paired, for the particular user, with the automated assistant application;

responsive to selecting the subset of the corpus of command bundles, causing information related to at least the given command bundle of the subset to be presented as a recommendation, wherein the information is presented to the particular user via a computing device of the user; and

assigning at least the given command bundle of the subset to the particular user based on receiving a user selection of at least the given command bundle of the subset in response to causing the information related to at least the given command bundle of the subset to be presented.

2. The method of claim 1 , wherein the given command bundle comprises at least one slot, with an undefined value, for an additional action of the corresponding discrete actions for the given command bundle, and further comprising:

in response to receiving the user selection, engaging in a dialog with the particular user, via the computing device of the particular user, to resolve a value for the at least one slot;

wherein assigning the given command bundle to the particular user comprises storing the value in association with the at least one slot, for the given command bundle and for the particular user.

3. The method of claim 2 , further comprising:

subsequent to assigning the given command bundle to the particular user:

receiving a user interface input provided by the particular user;

determining that the user interface input is an invocation input that causes execution of the given command bundle; and

in response to determining that the user interface input is the invocation input:

performing, by the automated assistant application, the corresponding discrete actions of the given command bundle, including performing the at least one additional action using the value for the at least one slot.

4. The method of claim 1 , wherein the given command bundle includes one or more contextual conditions that, when satisfied, automatically invoke the given command bundle, and further comprising:

subsequent to assigning the given command bundle to the particular user:

determining satisfaction of the one or more contextual conditions, for the particular user; and

automatically invoking the given command bundle, for the particular user, responsive to the determining satisfaction of the one or more contextual conditions, for the particular user, and based on the given command bundle being assigned to the particular user.

5. The method of claim 4 , wherein the one or more contextual conditions include a certain time window, a certain day of the week, and/or a location of a client device being within a geographic bound.

6. The method of claim 1 , wherein the given command bundle includes an invocation phrase that, when spoken, invokes the given command bundle, and further comprising:

subsequent to assigning the given command bundle to the particular user:

receiving spoken input provided by the particular user via an assistant interface;

determining that the spoken input conforms to the invocation phrase for the given command bundle; and

in response to determining the spoken input conforms to the invocation phrase, and based on the given command bundle being assigned to the particular user, invoking the given command bundle for the particular user.

7. The method of claim 1 , wherein determining to include the given command bundle in the subset of the corpus of command bundles is further based on comparing the command bundle data for the given command bundle to assistant interaction data for the particular user, the assistant interaction data indicating a plurality of historical actions performed for the particular user by the automated assistant application.

8. The method of claim 7 , wherein the command bundle data comprises a command bundle embedding, and wherein comparing the command bundle data to the assistant interaction data for the particular user comprises:

generating a user action embedding based on processing at least part of the assistant interaction data for the particular user, and

comparing the user action embedding to the command bundle embedding.

9. The method of claim 8 , where generating the user action embedding comprises processing the at least part of assistant interaction data using a trained machine learning model.

10. The method of claim 9 , further comprising:

generating the command bundle embedding based on processing at least part of the command bundle data using the trained machine learning model or an additional trained machine learning model.

11. The method of claim 10 , wherein comparing the command bundle data for the given command bundle to the assistant interaction data for the particular user comprises:

determining a distance between the user action embedding and the command bundle embedding.

12. A system, comprising:

memory storing instructions;

one or more processors are operable to execute the instructions to cause the one or more processors to:

identify a corpus of command bundles accessible to a plurality of users, each of the command bundles comprising command bundle data that identifies a plurality of corresponding discrete actions that can be performed by an automated assistant application;

identify peripheral device data for a particular user of the plurality of users, the peripheral device data indicating peripheral devices that are associated with the particular user and that are paired, for the particular user, with the automated assistant application;

select a subset of the corpus of command bundles for the particular user,

wherein selecting the subset of the corpus of command bundles comprises:

determining to include a given command bundle in the subset based on:

 determining that the peripheral device data indicates that a given peripheral device, that is indicated as required for the given command bundle in the command bundle data for the given command bundle, is associated with the particular user and is paired, for the particular user, with the automated assistant application,

 wherein the given peripheral device is an Internet of things (IoT) device, and

determining to exclude an additional command bundle from the subset based on:

 the command bundle data for the additional command bundle indicating an additional peripheral device as required for the additional command bundle, and

 the peripheral device data indicating that the particular user is not associated with the additional peripheral device and the additional peripheral device is not paired, for the particular user, with the automated assistant application;

responsive to selecting the subset of the corpus of command bundles, cause information related to at least the given command bundle of the subset to be presented as a recommendation, wherein the information is presented to the particular user via a computing device of the particular user; and

assign at least the given command bundle of the subset to the particular user based on receiving a user selection of at least the given command bundle of the subset in response to causing the information related to at least the given command bundle of the subset to be presented.

13. The system of claim 12 , wherein the given command bundle comprises at least one slot, with an undefined value, for an additional action of the corresponding discrete actions for the given command bundle, and wherein one or more of the processors, in executing the instructions, are further to:

in response to receiving the user selection, engage in a dialog with the particular user to resolve a value for the at least one slot;

wherein in assigning the given command bundle to the particular user one or more of the processors are to assign the value in association with the at least one slot, for the given command bundle and for the particular user.

14. The system of claim 13 , wherein one or more of the processors, in executing the instructions, are further to:

subsequent to assigning the given command bundle to the particular user:

receive a user interface input provided by the particular user;

determine that the user interface input is an invocation input that causes execution of the given command bundle; and

in response to determining that the user interface input is the invocation input:

perform the corresponding discrete actions of the given command bundle, including performing the at least one additional action using the value for the at least one slot.

15. The system of claim 12 , wherein the given command bundle includes one or more contextual conditions that, when satisfied, automatically invoke the given command bundle, and wherein one or more of the processors, in executing the instructions, are further to:

subsequent to assigning the given command bundle to the particular user:

determine satisfaction of the one or more contextual conditions, for the particular user; and

automatically invoke the given command bundle, for the particular user, responsive to the determining satisfaction of the one or more contextual conditions, for the particular user, and based on the given command bundle being assigned to the particular user.

16. The system of claim 15 , wherein the one or more contextual conditions include a certain time window, a certain day of the week, and/or a location of a client device being within a geographic bound.

17. The system of claim 12 , wherein in determining to include the given command bundle in the subset of the corpus of command bundles one or more of the processors are to select the given command bundle further based on comparing the command bundle data for the given command bundle to assistant interaction data for the particular user, the assistant interaction data indicating a plurality of historical actions performed for the particular user by the automated assistant application.

18. The system of claim 17 , wherein the command bundle data comprises a command bundle embedding, and wherein in comparing the command bundle data to the assistant interaction data for the particular user one or more of the processors are to:

generate a user action embedding based on processing at least part of the assistant interaction data for the particular user, and

compare the user action embedding to the command bundle embedding.

19. The system of claim 18 , wherein in generating the user action embedding one or more of the processors are to process the at least part of assistant interaction data using a trained machine learning model.

20. The system of claim 19 , wherein one or more of the processors, in executing the instructions, are further to:

generate the command bundle embedding based on processing at least part of the command bundle data using the trained machine learning model or an additional trained machine learning model.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2019
From: NI, YUZHAO
To: GOOGLE LLC
Reel/Frame 051336/0074 →
Continuity (3)
Continuation 15730514 · Oct 11, 2017
Provisional Application 62567732 · Oct 3, 2017
Related Publication 20200089709A1 · Mar 19, 2020
Cited By (3)
US 12,198,696 US 12,308,020 US 12,585,658