1. 自注意力机制的核心思想
自注意力机制是Transformer架构的核心组件,它允许模型在处理序列数据时,动态地关注输入序列的不同部分。这种机制的神奇之处在于,它不需要任何预设的规则或模式,而是通过数据驱动的方式自动学习哪些部分需要重点关注。
想象一下你在阅读一段文字时,大脑会无意识地根据上下文调整对每个词的理解。比如"苹果"这个词,在"我吃了一个苹果"和"苹果发布了新手机"这两个句子中,你的大脑会自动赋予它不同的含义。自注意力机制正是模拟了这种人类认知过程。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 输入数据的准备与表示
2.1 词嵌入的构建
在自然语言处理中,我们首先需要将词语转换为计算机可以处理的数值形式。这个过程称为词嵌入(Word Embedding)。在我们的示例中,我们使用了一个简单的4维向量来表示三个中文词汇:
python复制x = np.array([
[1, 0, 1, 0], # "我"
[0, 2, 0, 2], # "爱"
[1, 1, 1, 1] # "你"
])
这个矩阵的形状是(3,4),表示我们有3个token(词语),每个token用4维向量表示。在实际应用中,词向量的维度通常会大得多(如512或1024维),并且是通过预训练模型学习得到的。
2.2 权重矩阵的初始化
自注意力机制的核心在于三组权重矩阵:W_q(查询矩阵)、W_k(键矩阵)和W_v(值矩阵)。这些矩阵的作用是将原始的词向量映射到不同的表示空间:
python复制W_q = np.random.randint(0, 2, (input_dim, head_dim))
W_k = np.random.randint(0, 2, (input_dim, head_dim))
W_v = np.random.randint(0, 2, (input_dim, head_dim))
这里我们随机初始化了这些矩阵,但在实际训练中,这些权重是通过反向传播算法从数据中学习得到的。值得注意的是,这三个矩阵的维度都是(input_dim, head_dim),在我们的例子中是(4,3),表示将4维的输入向量映射到3维的查询、键和值空间。
