向量的"位置/方向"直觉你已经有了。这一课只补一个运算——点积,它就是 attention 用来衡量"两个 token 有多相关"的核心工具。
| Topic | 点积(dot product)作为相似度度量 |
| Objectives | 会算点积;理解它衡量"两个向量有多对齐";知道它就是 attention 打分的原理 |
| Prerequisites | Embedding ✅(token = 高维空间里的向量) |
| Outcome | 能一句话说清"两个向量点积大 = 语义相近",为 Transformer 的 Q·K 铺路 |
| Warning | 点积同时混了"方向"和"长度"两个因素——想只看方向要用余弦 |
点积 → 可解读为 相似度(本课到这为止)→〔后面〕过 softmax → 注意力权重
下一模块 Transformer 的核心问题是:读到某个词时,它该"关注"前面哪些词? 例如 “The animal didn't cross the street because it was tired” —— it 指的是 animal 还是 street?
要回答,模型得能量化"两个 token 有多相关"。而 token 现在都是向量(Embedding 课),所以问题变成:怎么用一个数字衡量两个向量有多"像"?
答案就是 点积。
两个同维向量,对应位置相乘,再全部加起来,得到一个标量(单个数字):
a = [2, 1, 3], b = [1, 0, 2]
a · b = 2×1 + 1×0 + 3×2 = 8
就这么简单:一串数字 × 一串数字 → 一个数。
点积还有个几何身份,这才是重点:
把它接回 Embedding 课:语义相近的 token,向量指向相近的方向 → 它们的点积大。所以点积给了我们一把尺子:
点积大 = 相关;点积接近 0 = 无关;点积为负 = 相反
= |a|·|b|·cosθ 同时混了两个因素:夹角(方向)和向量长度。一个"很长但方向一般"的向量,点积也可能不小。若只想比"方向像不像",要除掉长度 → 这就是余弦相似度 cosθ = (a·b)/(|a||b|)。下面只是让你知道点积会用在哪,不要求现在理解,后面 Module 1 会从头讲:
Transformer 里,每个 token 会生成一个 Query("我在找什么")和一个 Key("我能提供什么"),用 Query · Key 的点积当作"该给别的 token 多少注意力"的原始分数——这个分数再过 softmax 才变成真正的注意力权重。
点积 → 相似度分数 →〔softmax〕→ 注意力权重
记住这条链的位置即可;Query/Key/Value、softmax 都在待讲清单里。
a = [1, 2, 0],b = [3, 1, 4],点积是多少?(你已在讨论中答过这 3 题并通过 ✅)下一小课:softmax——把相似度分数变成"和为 1 的权重"。