IP Library Granted Patent US 10,650,302
Granted Patent B2
US 10,650,302 · App. 14/885,086 · Granted May 12, 2020

Augmenting neural networks with external memory

Inventors: Alexander Benjamin Graves (London, GB); Ivo Danihelka (London, GB); Gregory Duncan Wayne (London, GB)
Assignee: DeepMind Technologies Limited
G06N3/04G06N3/08
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,650,302
App. No.
14/885,086
Granted
May 12, 2020
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on computer storage media, for augmenting neural networks with an external memory. One of the methods includes providing an output derived from a first portion of a neural network output as a system output; determining one or more sets of writing weights for each of a plurality of locations in an external memory; writing data defined by a third portion of the neural network output to the external memory in accordance with the sets of writing weights; determining one or more sets of reading weights for each of the plurality of locations in the external memory from a fourth portion of the neural network output; reading data from the external memory in accordance with the sets of reading weights; and combining the data read from the external memory with a next system input to generate the next neural network input.

Claims (53)

1. A method for processing a sequence of system inputs to generate a sequence of system outputs using an augmented neural network system comprising a neural network and an external memory, wherein the neural network is configured to receive a sequence of neural network inputs and to process each neural network input to generate a neural network output from the neural network input, wherein the external memory is external to the neural network and is configured to store a respective value vector in each of a plurality of locations in the external memory, and wherein the method comprises, for each neural network output:

providing an output derived from a first portion of the neural network output as a system output in the sequence of system outputs;

determining one or more sets of writing weights for each of the plurality of locations in the external memory from a second portion of the neural network output, wherein the second portion includes a content-based subportion and a location-based subportion, wherein the content-based subportion is different from the location-based subportion, and wherein determining each of the one or more sets of writing weights comprises:

for each of the plurality of locations in the external memory:

computing a similarity measure between (i) a key vector derived from the content-based subportion and (ii) a respective value vector stored in the location, and

determining a respective content-based writing weight based on the computed similarity measure, and

adjusting the content-based writing weights using preceding writing weights assigned to the plurality of locations and a shift vector derived from the location-based subportion to generate the one or more sets of writing weights;

writing data defined by a third portion of the neural network output to the external memory in accordance with the sets of writing weights;

determining one or more sets of reading weights for each of the plurality of locations in the external memory from a fourth portion of the neural network output;

reading data from the external memory in accordance with the sets of reading weights; and

combining the data read from the external memory with a next system input in the sequence of system inputs to generate a next neural network input in the sequence of neural network inputs.

2. The method of claim 1 , further comprising, for each of the neural network outputs:

determining one or more sets of erasing weights for each of the plurality of locations in the external memory from a fifth portion of the neural network output; and

erasing data from the external memory in accordance with the sets of erasing weights.

3. The method of claim 2 , wherein the sets of erasing weights are the same as the sets of writing weights and the second portion is the same as the fifth portion.

4. The method of claim 1 , wherein determining each of the one or more sets of writing weights further comprises:

determining a set of location-based writing weights; and

adjusting the content-based writing weights using the location-based writing weights to generate the one or more sets of writing weights.

5. The method of claim 1 , wherein determining each of the one or more sets of reading weights comprises:

determining a set of content-based reading weights from the fourth portion of the neural network output.

6. The method of claim 5 , wherein determining each of the one or more sets of reading weights further comprises:

determining a set of location-based reading weights; and

adjusting the content-based reading weights using the location-based reading weights to generate the set of reading weights.

7. The method of claim 1 , wherein reading data from the external memory in accordance with the sets of reading weights comprises, for each set of reading weights:

determining a weighted average of values stored in the plurality of locations in the external memory in accordance with the reading weights in the set of reading weights.

8. The method of claim 1 , wherein writing data defined by the third portion of the neural network output to the external memory in accordance with the sets of writing weights comprises, for each of the sets of writing weights:

determining, from the third portion of the neural network output, a write vector for the set of writing weights; and

writing the write vector to the plurality of locations in accordance with the set of writing weights.

9. One or more non-transitory computer storage media storing instructions that, when executed by one or more computers, cause the one or more computers to perform operations for processing a sequence of system inputs to generate a sequence of system outputs using an augmented neural network system comprising a neural network and an external memory, wherein the neural network is configured to receive a sequence of neural network inputs and to process each neural network input to generate a neural network output from the neural network input, wherein the external memory is external to the neural network and is configured to store a respective value vector in each of a plurality of locations in the external memory, and wherein the operations comprise, for each neural network output:

providing an output derived from a first portion of the neural network output as a system output in the sequence of system outputs;

determining one or more sets of writing weights for each of the plurality of locations in the external memory from a second portion of the neural network output, wherein the second portion includes a content-based subportion and a location-based subportion, wherein the content-based subportion is different from the location-based subportion, and wherein determining each of the one or more sets of writing weights comprises:

for each of the plurality of locations in the external memory:

computing a similarity measure between (i) a key vector derived from the content-based subportion and (ii) a respective value vector stored in the location, and

determining a respective content-based writing weight based on the computed similarity measure, and

adjusting the content-based writing weights using preceding writing weights assigned to the plurality of locations and a shift vector derived from the location-based subportion to generate the one or more sets of writing weights;

writing data defined by a third portion of the neural network output to the external memory in accordance with the sets of writing weights;

determining one or more sets of reading weights for each of the plurality of locations in the external memory from a fourth portion of the neural network output;

reading data from the external memory in accordance with the sets of reading weights; and

combining the data read from the external memory with a next system input in the sequence of system inputs to generate a next neural network input in the sequence of neural network inputs.

10. The one or more non-transitory computer storage media of claim 9 , wherein the operations further comprises, for each of the neural network outputs:

determining one or more sets of erasing weights for each of the plurality of locations in the external memory from a fifth portion of the neural network output; and

erasing data from the external memory in accordance with the sets of erasing weights.

11. A system comprising one or more computers and one or more non-transitory computer storage media storing instructions that, when executed by the one or more computers, cause the one or more computers to perform operations for processing a sequence of system inputs to generate a sequence of system outputs using an augmented neural network system comprising a neural network and an external memory, wherein the neural network is configured to receive a sequence of neural network inputs and to process each neural network input to generate a neural network output from the neural network input, wherein the external memory is external to the neural network and is configured to store a respective value vector in each of a plurality of locations in the external memory, and wherein the operations comprise, for each neural network output:

providing an output derived from a first portion of the neural network output as a system output in the sequence of system outputs;

determining one or more sets of writing weights for each of the plurality of locations in the external memory from a second portion of the neural network output, wherein the second portion includes a content-based subportion and a location-based subportion, wherein the content-based subportion is different from the location-based subportion, and wherein determining each of the one or more sets of writing weights comprises:

for each of the plurality of locations in the external memory:

computing a similarity measure between (i) a key vector derived from the content-based subportion and (ii) a respective value vector stored in the location, and

determining a respective content-based writing weight based on the computed similarity measure, and

adjusting the content-based writing weights using preceding writing weights assigned to the plurality of locations and a shift vector derived from the location-based subportion to generate the one or more sets of writing weights;

writing data defined by a third portion of the neural network output to the external memory in accordance with the sets of writing weights;

determining one or more sets of reading weights for each of the plurality of locations in the external memory from a fourth portion of the neural network output;

reading data from the external memory in accordance with the sets of reading weights; and

combining the data read from the external memory with a next system input in the sequence of system inputs to generate a next neural network input in the sequence of neural network inputs.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2025
From: DEEPMIND TECHNOLOGIES LIMITED
To: GDM HOLDING LLC
Reel/Frame 071109/0414 →
CORRECTIVE ASSIGNMENT TO CORRECT THE DECLARATION AGAINST APPLICATION NO. 14885086 PREVIOUSLY RECORDED AT REEL: 044695 FRAME: 0115. ASSIGNOR(S) HEREBY CONFIRMS THE DECLARATION . Recorded Jan 12, 2022
From: DEEPMIND TECHNOLOGIES LIMITED
To: DEEPMIND TECHNOLOGIES LIMITED
Reel/Frame 058705/0726 →
CHANGE OF NAME Recorded Dec 5, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044695/0115 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2017
From: GOOGLE INC.
To: DEEPMIND TECHNOLOGIES LIMITED
Reel/Frame 044242/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 16, 2015
From: GRAVES, ALEXANDER BENJAMIN; DANIHELKA, IVO; WAYNE, GREGORY DUNCAN
To: GOOGLE INC.
Reel/Frame 036812/0612 →