IP Library Granted Patent US 10,885,277
Granted Patent B2
US 10,885,277 · App. 16/135,545 · Granted Jan 5, 2021

On-device neural networks for natural language understanding

Inventors: Sujith Ravi (Santa Clara, CA); Zornitsa Kozareva (Santa Clara, CA)
Assignee: Google LLC
G06F40/30G06F40/253G06N3/04G06N3/084
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 10,885,277
App. No.
16/135,545
Granted
Jan 5, 2021
Kind
B2
Abstract

The present disclosure provides projection neural networks and example applications thereof. In particular, the present disclosure provides a number of different architectures for projection neural networks, including two example architectures which can be referred to as: Self-Governing Neural Networks (SGNNs) and Projection Sequence Networks (ProSeqoNets). Each projection neural network can include one or more projection layers that project an input into a different space. For example, each projection layer can use a set of projection functions to project the input into a bit-space, thereby greatly reducing the dimensionality of the input and enabling computation with lower resource usage. As such, the projection neural networks provided herein are highly useful for on-device inference in resource-constrained devices. For example, the provided SGNN and ProSeqoNet architectures are particularly beneficial for on-device inference such as, for example, solving natural language understanding tasks on-device.

Claims (61)

1. A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to implement:

a projection neural network configured to receive a projection network input and to generate a projection network output from the projection network input, the projection neural network comprising:

a sequence of one or more projection layers, wherein each projection layer has a plurality of projection layer parameters that were learned during training of the projection neural network, wherein each projection layer is configured to:

receive a layer input;

apply a plurality of projection layer functions to the layer input, each projection layer function generating a respective projection function output that projects the layer input to a different space, wherein the plurality of projection layer functions comprise a plurality of locality sensitive hashing functions that were held static during training of the projection neural network, and

generate a layer output by applying the projection layer parameters for the projection ayer to the projection function outputs; and

a sequence of one or more additional hidden layers positioned structurally after the sequence of one or more projection layers, the sequence of one or more additional hidden layers configured to receive a layer output generated by a highest projection layer in the sequence of one or more projection layers and to generate one or more additional hidden layer outputs;

wherein execution of the instructions causes the one or more computers to perform operations comprising:

obtaining the projection network input;

inputting the projection network input into the projection neural network; and

receiving the projection network output generated by the projection neural network.

2. The system of claim 1 , wherein the projection neural network further comprises:

an output layer configured to receive the additional hidden layer output generated by a highest additional hidden layer in the sequence of one or more additional hidden layers and to generate the projection network output.

3. The system of claim 1 , wherein the sequence of one or more projection layers comprises a plurality of projection layers positioned structurally one after the other.

4. The system of claim 1 , wherein the sequence of one or more additional hidden layers comprises one or more fully connected layers that each comprise one or more non-linear activations.

5. The system of claim 1 , wherein the sequence of one or more additional hidden layers comprises one or more additional projection layers.

6. The system of claim 1 , wherein the sequence of one or more additional hidden layers comprises one or more projection sequence layers.

7. The system of claim 1 , wherein the projection neural network is trained to perform on-device text classification.

8. The system of claim 7 , wherein execution of the instructions by the one or more computers causes the one or more computers to:

receive an input text;

convert the input text into an intermediate feature vector; and

input the intermediate feature vector as the projection network input to the projection neural network.

9. The system of claim 8 , wherein the intermediate feature vector comprises one or more of the following intermediate features that have been generated from or associated with the input text:

skip-grams;

n-grams;

part of speech tags;

dependency relationships;

knowledge graph information; or

contextual information.

10. The system of claim 1 , wherein, for each projection layer, the plurality of projection layer functions are precomputed and held static.

11. The system of claim 1 , wherein execution of the instructions by the one or more computers causes the one or more computers to:

dynamically compute the plurality of projection layer functions at inference time using one or more seeds.

12. The system of claim 1 , wherein the projection neural network comprises a self-governing neural network that performs natural language processing without initializing, loading, or storing any feature or vocabulary weight matrices.

13. The system of claim 1 , wherein the projection neural network has been trained based solely on its own performance relative to training data.

14. The system of claim 1 , wherein, for each projection layer, each projection function is associated with a respective set of projection vectors, and wherein applying each projection function to the layer input comprises:

for each projection vector:

determining a dot product between the layer input and the projection vector;

when the dot product is negative, assigning a first value to a corresponding position in the projection function output; and

when the dot product is positive, assigning a second value to the corresponding position in the projection function output.

15. The system of claim 1 , wherein, for each projection layer, the projection functions are each encoded as sparse matrices and are used to generate a binary representation from the layer input.

16. The system of claim 1 , wherein the projection layer parameters include a parameter matrix and a bias vector, and wherein generating the layer output by applying the projection layer parameters for the projection layer to the projection function outputs comprises:

applying the parameter matrix to the projection function outputs and then adding the bias vector.

17. A system comprising one or more computers and one or more storage devices storing instructions that when executed by the one or more computers cause the one or more computers to implement:

a projection sequence network configured to receive an input and to generate an output from the input, the projection sequence network comprising:

a sequence of one or more projection layers, wherein each projection layer has a plurality of projection layer parameters that are learned during training of the projection sequence network, wherein each projection layer is configured to:

receive a layer input;

apply a plurality of projection layer functions to the layer input, each projection layer function generating a respective projection function output that projects the layer input to a different space, wherein the plurality of projection layer functions comprise a plurality of locality sensitive hashing functions that were held static during training of the projection neural network, and

generate a layer output by applying the projection layer parameters for the projection layer to the projection function outputs; and

one or more projection sequence layers positioned structurally after the sequence of one or more projection layers, wherein each of the one or more projection sequence layers is configured to provide first internal state data to a subsequent iteration of such projection sequence layer in a subsequent iteration of the projection sequence network and to receive second internal state data from the subsequent iteration of such projection sequence layer in the subsequent iteration of the projection sequence network;

wherein execution of the instructions causes the one or more computers to perform operations comprising:

obtaining the input;

inputting the input into the projection sequence network; and

receiving the output generated by the projection sequence network.

18. The system of claim 17 , wherein the input comprises text and the output comprises segments of the text that have been identified and classified into respective ones of a plurality of classes by the projection sequence network.

19. The system of claim 18 , wherein execution of the instructions by the one or more computers causes the one or more computers to:

receive the text;

convert the text into an intermediate feature vector; and

input the intermediate feature vector as the input to the projection sequence network.

20. The system of claim 17 , wherein each projection sequence layer comprises:

a first set of nodes configured to provide the first internal state data of the first set of nodes to a subsequent iteration of the first set of nodes in the subsequent iteration of such projection sequence layer in the subsequent iteration of the projection sequence network; and

a second set of nodes that are distinct from the first set of nodes, the second set of nodes configured to receive the second internal state data from a subsequent iteration of the second set of nodes in the subsequent iteration of such projection sequence layer in the subsequent iteration of the projection sequence network.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2018
From: RAVI, SUJITH; KOZAREVA, ZORNITSA
To: GOOGLE LLC
Reel/Frame 046913/0280 →
Continuity (2)
Provisional Application 62714028 · Aug 2, 2018
Related Publication 20200042596A1 · Feb 6, 2020
Cited By (31)
US 12,197,712 US 12,197,817 US 12,197,857 US 12,200,297 US 12,204,932 US 12,211,502 US 12,216,894 US 12,219,314 US 12,223,282 US 12,236,338 US 12,236,952 US 12,254,887 US 12,260,234 US 12,277,954 US 12,293,763 US 12,301,635 US 12,333,404 US 12,361,943 US 12,367,879 US 12,380,281 US 12,386,434 US 12,386,491 US 12,430,169 US 12,431,128 US 12,477,470 US 12,556,890 US 12,608,171 US 12,613,730 US 12,619,452 US 12,639,396 US 12,694,294