在回顾 Transformer 架构时,我意识到了一些我没想到的事情,那就是:
- 位置编码与词嵌入相加
- 而不是连接到它。
http://jalammar.github.io/images/t/transformer_positional_encoding_example.png
根据我看到的编码图,这意味着:
- 嵌入的前几位完全不能被网络使用,因为位置编码会使它们失真很多,
- 而嵌入中也有大量位置仅受位置编码的轻微影响(当您进一步靠近末端时)。
https://www.tensorflow.org/beta/tutorials/text/transformer_files/output_1kLCla68EloE_1.png
那么,为什么不使用更小的词嵌入(减少内存使用)和更小的位置编码,只保留最重要的编码位,而不是将词的位置编码相加,而是将其连接到词嵌入?