In a Transformer model, why does one sum positional encoding to the embedding rather than concatenate it? While reviewing the Transformer architecture, I realized something I didn't expect, which is that :


the positional encoding is summed to the word embeddings 
rather than concatenated to it.



  
  
  http://jalammar.github.io/images/t/transformer_positional_encoding_example.png


Based on the graphs I have seen wrt what the encoding looks like, that means that :


the first few bits of the embedding are completely unusable by the network because the position encoding will distort them a lot, 
while there is also a large amount of positions in the embedding that are only slightly affected by the positional encoding (when you move further towards the end).



  
  
  https://www.tensorflow.org/beta/tutorials/text/transformer_files/output_1kLCla68EloE_1.png


So, why not instead have smaller word embeddings (reduce memory usage) and a smaller positional encoding retaining only the most important bits of the encoding, and instead of summing the positional encoding of words keep it concatenated to word embeddings?
When you concatenate, you have to define a priori the size of each vector to be concatenated. This means that, if we were to concatenate the token embedding and the positional embedding, we would have to define two dimensionalities, $d_t$ for the token and $d_p$ for the position, with the total dimensionality $d = d_t + d_p$, so $d&gt;d_t$ and $d&gt;d_p$. We would be decreasing the total size we devote to tokens in favor of positional information.
However, adding them together is potentially a super case of the concatenation: imagine that there is an ideal split of $d$ into $d_t$ and $d_p$ in terms of minimizing the loss; then, the training could converge to position vectors that only take $d_t$ elements, making the rest zero, and the positions were learned and happened the same, taking the complementary $d_p$ elements and leaving the rest to zero.
Therefore, by adding them, we leave the optimization of the use of the $d$ dimensions to the optimization process, instead of assuming there is an optimal partition of the vector components and setting a new hyperparameter to tune. Also, the use of the vector space is not restricted by a hard split in the vector components, but takes the whole representation space.