IP Library Granted Patent US 11,314,941
Granted Patent B2
US 11,314,941 · App. 16/703,700 · Granted Apr 26, 2022

On-device convolutional neural network models for assistant systems

Inventors: Ahmed Aly (Kenmore, WA); Arun Babu (Mountain View, CA); Armen Aghajanyan (Bellevue, WA)
Assignee: Facebook Technologies, LLC.
G06F40/30G06F3/011G06F3/013G06F9/485G06F9/4881G06F9/547G06F16/90332G06F16/9536G06F40/205G06F40/242G06F40/253G06K9/00302G06K9/00671G06K9/00677G06K9/00718G06K9/3241G06N3/0454G06N3/0472G06N3/08G06N20/00G06Q50/01G10L15/08G10L15/1815G10L15/1822G10L15/22G10L15/30G10L15/32H04L51/12H04L51/32H04L67/306H04L67/36H04N7/147G06F3/017G06F3/167G06K2209/27G10L2015/088G10L2015/223G10L2015/227
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,314,941
App. No.
16/703,700
Granted
Apr 26, 2022
Kind
B2
Abstract

In one embodiment, a method includes receiving a user input comprising one or more words at a client system, wherein each word comprises one or more characters, inputting the words to a convolutional neural network (CNN) model stored on the client system, accessing a plurality of character-embeddings for a plurality of characters, respectively, from a data store of the client system, generating one or more word-embeddings for the one or more words, respectively, based on the accessed character-embeddings by processing the accessed character-embeddings with one or more convolutional layers and one or more gated linear units of the CNN model, determining one or more tasks corresponding to the user input for execution based on an analysis of the one or more word-embeddings by the CNN model, and providing an output responsive to the user input based on the execution of the one or more tasks at the client system.

Claims (50)

1. A method comprising, by a mobile client system:

receiving, at the mobile client system, a user input comprising one or more words, wherein each word comprises one or more characters;

inputting the one or more words to a convolutional neural network (CNN) model stored on the mobile client system;

accessing, from a data store of the mobile client system, a plurality of character-embeddings for a plurality of characters, respectively;

generating, based on the accessed character-embeddings, one or more word-embeddings for the one or more words, respectively, by processing the accessed character-embeddings with one or more convolutional layers and one or more gated linear units of the CNN model;

determining, based on an analysis of the one or more word-embeddings by the CNN model, one or more tasks corresponding to the user input for execution; and

providing, at the mobile client system, an output responsive to the user input based on the execution of the one or more tasks.

2. The method of claim 1 , further comprising:

parsing, by a natural-language understanding module stored on the mobile client system, the user input into the one or more words.

3. The method of claim 1 , wherein the CNN model comprises a plurality of layers, wherein the plurality of layers comprise at least a convolutional layer, a pooling layer, a gated linear unit, a linear layer, and a residual connection with gradient clipping.

4. The method of claim 1 , further comprising:

determining one or more intents associated with the user input by analyzing the one or more word-embeddings based on the CNN model.

5. The method of claim 4 , wherein determining the one or more intents comprises:

generating, by the one or more convolutional layers and one or more pooling layers of the CNN model, a feature representation for the user input based on the one or more word-embeddings;

calculating, by one or more linear layers of the CNN model, a plurality of probabilities corresponding to a plurality of intents based on the feature representation, wherein each probability indicates a likelihood that a corresponding intent is associated with the user input; and

determining, based on the calculated probabilities, the one or more intents from the plurality of intents.

6. The method of claim 1 , further comprising:

determining one or more slots associated with the user input by analyzing the one or more word-embeddings based on the CNN model.

7. The method of claim 6 , wherein determining the one or more slots comprises:

calculating, by one or more linear layers of the CNN model, a plurality of probabilities corresponding to a plurality of slots based on the one or more word-embeddings, wherein each probability indicates a likelihood that a corresponding slot is associated with a respective word; and

determining, based on the calculated probabilities, the one or more slots from the plurality of slots.

8. The method of claim 1 , wherein the processing of the accessed character-embeddings with the one or more convolutional layers of the CNN model is based on one or more digital signal processing (DSP) algorithms, wherein the one or more DSP algorithms are determined based on hardware components of the mobile client system.

9. The method of claim 1 , wherein the analysis of the one or more word-embeddings by the CNN model is based on one or more digital signal processing (DSP) algorithms, wherein the one or more DSP algorithms are determined based on hardware components of the mobile client system.

10. The method of claim 1 , wherein generating the one or more word-embeddings is further based on a plurality of dictionary features.

11. The method of claim 1 , wherein a plurality of parameters and a plurality of activations associated with the CNN model are quantized.

12. The method of claim 1 , further comprising:

sending, from the mobile client system to one or more remote servers, the one or more tasks for execution, wherein the output is generated by the one or more remote servers based on the execution of the one or more tasks.

13. The method of claim 12 , further comprising:

receiving, at the mobile client system from the one or more remote servers, instructions for providing the output.

14. The method of claim 1 , wherein the CNN model comprises a plurality of layers, wherein the plurality of layers are generated based on one or more pruning algorithms, wherein the one or more pruning algorithms are determined based on hardware components of the mobile client system.

15. The method of claim 1 , wherein the CNN model comprises a plurality of parameters, wherein the plurality of parameters are determined based on one or more sparsification algorithms.

16. One or more computer-readable non-transitory storage media embodying software that is operable when executed to:

receive, at the mobile client system, a user input comprising one or more words, wherein each word comprises one or more characters;

input the one or more words to a convolutional neural network (CNN) model stored on the mobile client system;

access, from a data store of the mobile client system, a plurality of character-embeddings for a plurality of characters, respectively;

generate, based on the accessed character-embeddings, one or more word-embeddings for the one or more words, respectively, by processing the accessed character-embeddings with one or more convolutional layers and one or more gated linear units of the CNN model;

determine, based on an analysis of the one or more word-embeddings by the CNN model, one or more tasks corresponding to the user input for execution; and

provide, at the mobile client system, an output responsive to the user input based on the execution of the one or more tasks.

17. The media of claim 16 , wherein the software is further operable when executed to:

parse, by a natural-language understanding module stored on the mobile client system, the user input into the one or more words.

18. The media of claim 16 , wherein the CNN model comprises a plurality of layers, wherein the plurality of layers comprise at least a convolutional layer, a pooling layer, a gated linear unit, a linear layer, and a residual connection with gradient clipping.

19. The media of claim 16 , wherein the software is further operable when executed to:

determine one or more intents associated with the user input by analyzing the one or more word-embeddings based on the CNN model.

20. A system comprising: one or more processors; and a non-transitory memory coupled to the processors comprising instructions executable by the processors, the processors operable when executing the instructions to:

receive, at the mobile client system, a user input comprising one or more words, wherein each word comprises one or more characters;

input the one or more words to a convolutional neural network (CNN) model stored on the mobile client system;

access, from a data store of the mobile client system, a plurality of character-embeddings for a plurality of characters, respectively;

generate, based on the accessed character-embeddings, one or more word-embeddings for the one or more words, respectively, by processing the accessed character-embeddings with one or more convolutional layers and one or more gated linear units of the CNN model;

determine, based on an analysis of the one or more word-embeddings by the CNN model, one or more tasks corresponding to the user input for execution; and

provide, at the mobile client system, an output responsive to the user input based on the execution of the one or more tasks.

Assignments (2)
CHANGE OF NAME Recorded Jul 6, 2022
From: FACEBOOK TECHNOLOGIES, LLC
To: META PLATFORMS TECHNOLOGIES, LLC
Reel/Frame 060591/0848 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2020
From: ALY, AHMED; BABU, ARUN; AGHAJANYAN, ARMEN
To: FACEBOOK TECHNOLOGIES, LLC
Reel/Frame 051609/0332 →
Continuity (2)
Provisional Application 62923342 · Oct 18, 2019
Related Publication 20210117623A1 · Apr 22, 2021
Cited By (1)
US 12,566,626