The encoder-decoder architecture is a very generic framework, with applications in communications, cryptography, electronics, and beyond. According to this framework, the encoder is a function that maps input samples into a latent space, that is, a hidden structured set of values defined by the encoder. The decoder is the complementary function that maps elements from this latent space into a predefined target domain. For example, an encoder can be built to parse media files (with their content represented as elements in its latent space), and it can be paired with a decoder defined, for instance, to output the media contents in a different file format. Well-known examples are the image and audio compression formats we commonly use nowadays. JPEG tools encode our media, compressing them into lighter binary files; they then decode them to recover the pixel values at display time.
In machine learning, encoder-decoder networks have been used for a long time now (for...