1. Introduction
Vector Quantisation (VQ) [12] is a basic building block of many machine learning techniques. It is often used to help learning unsupervised representations for vision and language tasks, including data compression [1], [39], [36], recognition [26], [3], [44], [24], [23], and generation [37], [31], [11], [32], [47], [34], [33]. VQ quantises continuous feature vectors into a discrete space by embedding them to the closest vectors in a codebook of representatives or codevectors. Quantisation has been shown to simplify optimization problems by reducing a continuous search space to a discrete one.