Back to results
US 11,113,598 B2Granted
Dynamic memory network
Assigneesalesforce.com, inc.
InventorsRichard Socher, Ankit Kumar, Ozan Irsoy, Mohit Iyyer, Caiming Xiong, Stephen Merity, Romain Paulus
Life of this patent
Estimating the term…
Abstract
A novel unified neural network framework, the dynamic memory network, is disclosed. This unified framework reduces every task in natural language processing to a question answering problem over an input sequence. Inputs and questions are used to create and connect deep memory sequences. Answers are then generated based on dynamically retrieved memories.
Claims23
A method of using a question-answering model embedded in a process machine to answer questions, the method including:
- receiving, at a question module configured to compute a representation of a question, a question posed against one or more input facts stored as vector representations of input facts at one or more input fact memories in an input encoding module, wherein the one or more input fact memories are sequentially connected, and at least one input fact memory stores an end-of-passes representation;
- accessing at least one question memory that stores a vector representation of the question at hand and a plurality of episodic memories to which attention gate weights are assigned;
- in a first pass sequentially traversing the one or more input fact memories:
- applying a gating function to the input facts and contents received directly from the question memory,
- calculating updated attention gate weights by iterating the input facts from the one or more input fact memories in the first pass, and
- assigning the updated attention gate weights to a first episodic memory in the input encoding module;
- in one or more subsequent passes each sequentially re-traversing the one or more input fact memories:
- applying the gating function to the input facts and contents received directly from the question memory and the updated attention gate weights from an episodic memory that has been updated from a most recent previous pass,
- re-calculating attention gate weights by re-iterating the input facts from the one or more input fact memories in each respective pass, and
- assigning the newly re-calculated attention gate weights to a most recent episodic memory in the input encoding module;
- updating a final hidden state of a gated recurrent unit (GRU) based on the newly re-calculated attention gate weights;
- computing an updated episodic memory vector for the respective episodic memory based on the newly re-calculated attention gate weights and a contextual vector generated by the updated final hidden state of the GRU during the respective pass;
- and
- completing the one or more subsequent passes when the end-of-passes representation is chosen as a most relevant fact during the respective pass;
- and
- outputting, upon completion of the one or more subsequent passes, a final outcome from the most recent episodic memory in the input encoding module to an answer module that is separate from the input encoding module, and that iteratively generates a sequence of one or more output labels responsive to the question.
13 more elements
A processor-based device including:
- a processor and memory coupled to the processor that implement:
- a question module configured to compute a representation of a question, the question module receiving a question posed against one or more input facts stored as vector representations of input facts;
- at least one input fact memory, in an input encoding module, that stores a vector representation of input facts from which questions are answered and an end-of-passes representation;
- at least one question memory that stores a vector representation of the question at hand;
- a plurality of episodic memories to which attention gate weights are assigned;
- gate attention means for:
- in a first pass traversing the at least one input fact memory, applying a gating function to the input facts and contents received directly from the question memory to calculate updated attention gate weights by iterating the input facts from the at least one input fact memory, and
- in one or more subsequent passes each re-traversing the at least one input fact memory, applying the gating function to the input facts and contents received directly from the question memory to re-calculate updated attention gate weights from an episodic memory that has been updated from a most recent previous pass;
- wherein the gate attention means assigns the calculated attention gate weights for a current pass to a current episodic memory and particular attention calculated gate weights indicate relevance of particular input facts;
- updating a final hidden state of a gated recurrent unit (GRU) based on the re-calculated attention gate weights, and
- computing an updated episodic memory vector for the respective episodic memory based on the re-calculated attention gate weights and a contextual vector generated by the updated final hidden state of the GRU during the current pass;
- and
- completing the one or more subsequent passes when the end-of-passes representation is chosen as a most relevant fact during the respective pass;
- and
- an output that upon completion of the one or more subsequent passes, sends a final outcome from the most recent episodic memory in the input encoding module to an answer module that is separate from the input encoding module and that iteratively generates a sequence of one or more output labels responsive to the question.
12 more elements
A method comprising:
- receiving, at a question module configured to compute a representation of a question, a question posed against one or more input facts stored as vector representations of input facts at a plurality of input fact memories in an input encoding module, wherein the plurality of input fact memories are sequentially connected and at least one input fact memory stores an end-of-passes representation;
- storing a vector representation of the question at a question memory;
- in a first pass sequentially traversing the plurality of input fact memories:
- applying a gating function to the input facts in the one or a plurality of ore input fact memories and a current copy of the vector representation of the question in the question memory,
- calculating, based on application of the gating function, attention gate weights by iterating the input facts from the a plurality of input fact memories in the first pass, and
- assigning the attention gate weights to a first episodic memory in the input encoding module;
- in one or more subsequent passes each sequentially re-traversing the plurality of input fact memories:
- re-applying the gating function to the input facts and updated attention gate weights from an episodic memory that has been updated from a most recent previous pass,
- re-calculating new attention gate weights by re-iterating the input facts from the a plurality of input fact memories in each respective pass, and
- assigning the newly re-calculated attention gate weights to a most recent episodic memory in the input encoding module;
- updating a final hidden state of a gated recurrent unit (GRU) based on the newly re-calculated attention gate weight, and
- computing an updated episodic memory vector for the respective episodic memory based on the newly re-calculated attention gate weights and a contextual vector generated by the updated final hidden state of the GRU during the respective pass;
- and
- completing the one or more subsequent passes when the end-of-passes representation is chosen as a most relevant fact during the respective pass;
- and
- upon completion of the one or more subsequent passes, outputting a final outcome from the most recent episodic memory in the input encoding module to an answer module that is separate from the input encoding module.
13 more elements
Dependencies are inferred from the claim text.