1.10 让模型理解“顺序”:位置编码(Positional Encoding)的数学与代码全解析
引言:Transformer的“阿喀琉斯之踵”
在前面的章节中,我们已经深入剖析了Transformer架构的核心引擎——自注意力机制(Self-Attention)。我们知道,它通过计算Query、Key、Value,让模型能够并行地、全局地捕捉句子中任意两个词之间的依赖关系。这种设计带来了无与伦比的效率和长距离依赖捕捉能力,是Transformer成功的关键。
但这种设计也带来了一个天生的、巨大的缺陷,堪称它的“阿喀琉斯之踵”:它本身是无法感知词语顺序的。
想象一下,对于自注意力机制来说,句子
“狗咬人”和“人咬狗”在输入时,如果仅考虑词本身,其计算过程是完全一样的。它看到的是一个由{“人”, “狗”, “咬”}组成的“词袋”(Bag of Words),词语之间的先后顺序信息完全丢失了。这显然是不可接受的,因为在自然语言中,顺序决定了天差地别的含义。那么,Transformer是如何解决这个问题的呢?答案就是引入一个精巧的“补丁”——位置编码(Positional Encoding, PE)。它是一种将词语在序列中的绝对或相对位置信息,以数学方式注入到模型中的技术。
本章节,我们将:
订阅专栏 解锁全文
949

被折叠的 条评论
为什么被折叠?



