Transformer 矩阵乘法:逐步拆解
交互式探索 X x W = Q / K / V 的计算过程
1
认识输入矩阵
在 Transformer 的自注意力机制中,输入序列的每个词首先被转换为一个嵌入向量(embedding)。
这些向量组成输入矩阵 X,然后分别乘以三个不同的权重矩阵
WQ、
WK、
WV,
得到查询(Query)、键(Key)、值(Value)三组表示。
Q = X WQ ,
K = X WK ,
V = X WV
X (输入, 4x3)
"I"
"love"
"deep"
"learning"
1.0
0.0
1.0
0.0
1.0
1.0
1.0
1.0
0.0
0.0
1.0
0.0
每个词的嵌入向量是一行(如 "I" = [1.0, 0.0, 1.0])。
乘以不同权重矩阵后,同一个词会得到不同的 Query、Key、Value 表示 ——
这正是注意力机制的核心:"同一个输入,不同的角色"。
2
交互式矩阵乘法
点击结果矩阵中的任意单元格,查看对应的逐元素计算过程。
或者使用自动播放功能,逐个观察每个位置的计算。
Q = X x WQ
(4x3) x (3x3) = (4x3)
X (输入)
"I"
"love"
"deep"
"learning"
x
=
Q (结果)
"I"
"love"
"deep"
"learning"
💡 点击右侧结果矩阵中的任意单元格,查看逐步计算过程
3
Q、K、V 结果对比
相同的输入矩阵 X 乘以不同的权重矩阵,产生三种不同的表示。
观察同一个词(同一行)在 Q、K、V 中的值如何不同 —— 这正是注意力机制赋予每个词不同"角色"的方式。
Query(查询):代表"我在找什么?"
Key(键):代表"我有什么信息?"
Value(值):代表"我实际要传递的内容"。
相同输入 X,不同权重矩阵 WQ、WK、WV 产生不同的结果,
这让每个词在注意力计算中能够同时扮演"提问者"和"被查询者"的角色。
4
注意力分数预览
有了 Q 和 K,就可以计算注意力分数矩阵 —— 它告诉我们每个词应该"关注"其他哪些词。
Attention Score = Q x KT
(4x3) x (3x4) = (4x4)
注意力分数矩阵是一个 4x4 的方阵,每个位置 [i][j] 表示第 i 个词对第 j 个词的原始关注程度。
在实际 Transformer 中,这些分数还会除以 sqrt(dk) 并经过 Softmax 归一化。
颜色越亮表示该词对目标词的关注度越高。
注意对角线上的值通常较高 —— 每个词天然地更关注自身。
但更有趣的是非对角线上的值,它们揭示了词与词之间的语义关联。