What is: Memory Network?
Source | Memory Networks |
Year | 2000 |
Data Source | CC BY-SA - https://paperswithcode.com |
A Memory Network provides a memory component that can be read from and written to with the inference capabilities of a neural network model. The motivation is that many neural networks lack a long-term memory component, and their existing memory component encoded by states and weights is too small and not compartmentalized enough to accurately remember facts from the past (RNNs for example, have difficult memorizing and doing tasks like copying).
A memory network consists of a memory (an array of objects indexed by and four potentially learned components:
- Input feature map - feature representation of the data input.
- Generalization - updates old memories given the new input.
- Output feature map - produces new feature map given and .
- Response - converts output into the desired response.
Given an input (e.g., an input character, word or sentence depending on the granularity chosen, an image or an audio signal) the flow of the model is as follows:
- Convert to an internal feature representation .
- Update memories given the new input: , .
- Compute output features given the new input and the memory: .
- Finally, decode output features to give the final response: .
This process is applied at both train and test time, if there is a distinction between such phases, that is, memories are also stored at test time, but the model parameters of , , and are not updated. Memory networks cover a wide class of possible implementations. The components , , and can potentially use any existing ideas from the machine learning literature.
Image Source: Adrian Colyer