趋近智
在Transformer模型处理输入文本之前,我们需要将词语序列(或分词后得到的子词序列)转换为适合神经网络的格式:实数向量。原始文本,无论是字符串形式还是映射到词汇表的整数ID形式,都无法直接被网络用于表达语义,也不符合其所涉及的数学运算要求。这一重要的初始步骤由输入嵌入层来完成。
可以把输入嵌入层看作一个精密的查找表。首先,输入文本会被分词,分解为标记(根据选择的分词器,可以是词、子词或字符)并根据预定义的词汇表将每个标记映射到一个唯一的整数ID。我们将在第4章更详细地了解字节对编码(BPE)或WordPiece等分词策略,但现在,假设我们有一个表示输入句子的整数ID序列。
词汇表中的每个唯一ID都关联着一个向量,称为其嵌入。嵌入层维护一个大型矩阵,通常称为嵌入矩阵或权重矩阵。此矩阵的大小为V×dmodel,这里V是我们词汇表的大小(模型知道的唯一标记总数),dmodel是嵌入向量的维度(也因此是Transformer模型大多数层中使用的维度)。在最初的“Attention Is All You Need”论文中,dmodel被设定为512。
当标记ID序列进入嵌入层时,该层会执行一次查找操作。对于输入序列中的每个标记ID,它会从嵌入矩阵中检索出对应的行向量。
例如,如果我们的输入序列由ID [101, 7592, 2054, 102]表示,并且dmodel为512,那么嵌入层将输出一个包含四个向量的序列,其中每个向量都有512维。第一个向量是标记ID 101的嵌入,第二个是标记ID 7592的嵌入,依此类推。
输入序列中的每个标记ID都用于在嵌入矩阵中查找其对应的密集向量表示。
这些嵌入向量并非任意表示。它们是可学习参数。最初它们可能是随机值,但在模型的训练过程中,这些向量会通过反向传播进行调整。目的是让学习到的嵌入能够捕捉标记间的语义相似性。例如,在成功训练后,“king”的嵌入向量在高维嵌入空间中可能与“queen”的向量在几何上相近,体现了它们之间的语义关系。这种密集表示比独热编码等稀疏表示更有效且功能强大,尤其适用于大型词汇表。
因此,输入嵌入层的输出是一个向量序列,原始输入序列中的每个标记对应一个向量,每个向量的维度都是dmodel。这个向量序列现在包含了关于输入标记的更丰富、分布式的消息。
然而,这些嵌入只表示标记本身的含义。如果我们只是简单地将这个向量序列直接输入到后续层,模型将无法获得序列中标记顺序的消息。由于Transformer架构不像RNN那样使用循环,它本身并不按顺序处理标记。它需要一种明确的方式来理解标记的位置。这就引出了下一个重要的组成部分:位置编码。
这部分内容有帮助吗?
© 2026 ApX Machine Learning用心打造