diff --git a/人人都能看懂的Transformer/第三章——位置编码.md b/人人都能看懂的Transformer/第三章——位置编码.md index 0f757f3..9170925 100644 --- a/人人都能看懂的Transformer/第三章——位置编码.md +++ b/人人都能看懂的Transformer/第三章——位置编码.md @@ -256,6 +256,14 @@ tensor(-0.1923, grad_fn=) +### 为什么是简单相加 + +聪明的你会注意到,位置编码跟向量是相加的,既然相加是不是意味着最终模型也分辨不出里面的位置信息呢?为什么不是用concat进行拼接,单独的数值来表示位置。 + +首先,拼接会让维度再度翻倍,其次,多头注意力里的QKV矩阵是线形变换,本质上也是将位置编码和向量进行类型的加工,作者把这个称为隐式拼接(concat)。但我觉得,最大的可能性就是模型效果好。这也可能是为什么GPT-2不使用正弦和余弦生成位置编码,而是直接用模型训练。 + + + ### 总结 位置编码使得模型能够理解单词在句子中的位置,从而更好地处理自然语言。无论是通过正弦和余弦函数的固定公式,还是通过可学习的参数,位置编码都为模型提供了理解文本所必需的结构信息。