趋近智
将输入令牌表示为密集向量 (vector) (dense vector)(令牌嵌入 (embedding))以及生成表示其位置的独特信号(位置编码 (positional encoding))是Transformer模型处理输入的一个基本步骤。这两种信息源需要被整合。自注意力 (self-attention)机制 (attention mechanism)是Transformer的核心组件,在处理输入元素时本身不了解它们的顺序。因此,我们必须将这种位置信息直接提供给输入到Transformer堆栈的表示中。
原始Transformer论文(《Attention Is All You Need》)中提出的一种标准且非常有效的方法十分直接:逐元素相加。如果 表示长度为 的序列的令牌嵌入矩阵,且 表示对应的位置编码,那么组合后的输入表示 的计算方式如下:
这表示序列中每个令牌 ( 的范围从 到 ),其最终输入向量 是其令牌嵌入 和其位置编码 的和:
在此,令牌嵌入 和位置编码 都必须具有相同的维度,。这种维度上的一致性是加法运算的基本要求。
为什么是简单的加法?尽管可以设想其他组合函数,但加法具有多项优势:
实际操作中,组合嵌入 (embedding)和位置编码 (positional encoding)通常涉及以下步骤:
[batch_size, sequence_length, d_model] 的张量。[1, sequence_length, d_model] 或 [sequence_length, d_model],可以进行广播或切片。[1, sequence_length, d_model] 或类似的张量,其中包含可训练向量。流程图,说明了通过逐元素相加组合令牌嵌入和位置编码,从而创建Transformer层的输入表示。
如果使用学习到的位置嵌入而不是正弦嵌入,组合机制保持不变:逐元素相加。主要区别在于,表示位置 的向量 (vector)现在是在训练过程中优化的参数 (parameter),而不是由固定函数确定。模型会根据数据学习对任务最有效的表示。加法步骤仍然将这些学习到的位置信号与语义令牌嵌入合并。
通过将位置编码 (positional encoding)直接添加到令牌嵌入中,我们创建了一个输入表示 ,它为后续的Transformer层提供了精密的序列理解所需的“什么”(来自 的语义)和“哪里”(来自 的序列顺序)信息。这个组合表示构成了编码器或解码器堆栈第一层的输入。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•