---
doc_type: hypothesis-highlights
url: 'https://blog.csdn.net/Tink1995/article/details/105080033'
---
# 史上最小白之Transformer详解_Stink1995的博客-CSDN博客_transformer
## Metadata
- Author: [blog.csdn.net]()
- Title: 史上最小白之Transformer详解_Stink1995的博客-CSDN博客_transformer
- Reference: https://blog.csdn.net/Tink1995/article/details/105080033
- Category: #source/article🗞
- Tags:
## Highlights
- 输入inputs embedding后需要给每个word的词向量添加位置编码positional encoding

- 咱们的Transformer 的是完全基于self-Attention地，而self-attention是不能获取词语位置信息地

- 《Attention Is All You Need》论文中Transformer使用的是正余弦位置编码。位置编码通过使用不同频率的正弦、余弦函数生成，然后和对应的位置的词向量相加，位置向量维度必须和词向量的维度一致

- 可以通过数据训练学习得到positional encoding，类似于训练学习词向量，goole在之后的bert中的positional encoding便是由训练得到地

- pos表示单词在句子中的绝对位置，pos=0，1，2…，例如：Jerry在"Tom chase Jerry"中的pos=2；dmodel表示词向量的维度，在这里dmodel=512；2i和2i+1表示奇偶性，i表示词向量中的第几维，例如这里dmodel=512，故i=0，1，2…255。

- 拼接相加都可以，只是本身词向量的维度512维就已经蛮大了，再拼接一个512维的位置向量，变成1024维，这样训练起来会相对慢一些，影响效率。两者的效果是差不多地，既然效果差不多当然是选择学习习难度较小的相加了。


