# What's the role of the commitment loss in VQ-VAE?

I'm reading about VQ-VAE, and trying to understand the commitment loss $$\beta||z_e(x) - sg(e)||^2$$, described in the following sentence:

Finally, since the volume of the embedding space is dimensionless, it can grow arbitrarily if the embeddings $$e_i$$ do not train as fast as the encoder parameters. To make sure the encoder commits to an embedding and its output does not grow, we add a commitment loss, the third term in equation 3

what do they mean by the embedding space volume being dimensionless? and what would happen if we omit this term? aren't we covered by the reconstruction loss term?

suppose we have a codebook of just two entries, $$z=0$$ for cats and $$z=1$$ for dogs. also let's assume that the embedding has just one dimension (a scalar), and initialize $$e_0 = [-1]$$ and $$e_1 = [1]$$.
now let's optimize the reconstruction error (the first term of our loss) - the decoder gets as input one of our two embeddings, and of course it will want to push cats and dogs away from each other. when we back-prop, we will straight-through copy this gradient to the encoder output, so the encoder will always push its output of cats towards $$-\infty$$, and the output of dogs towards $$+\infty$$, and there would be absolutely no punishment for that in the reconstruction error.
the problem would now be when we optimize for the vq-vae loss (the second term of our loss). it would get larger and larger and the embeddings would always try to chase the encoder outputs towards $$-\infty$$ and $$+\infty$$, thus creating an instable cycle, effectively ruining the training process.