点积、叉积与外积讲透:Maths, CS & AI Compendium向量乘积详解
【免费下载链接】maths-cs-ai-compendiumBecome a cracked AI/ML researcher/engineer with this unconventional textbook covering maths, computing, and ML with intuition.项目地址: https://gitcode.com/GitHub_Trending/mat/maths-cs-ai-compendium
向量乘积是连接数学直觉与 AI 系统的桥梁。在开源教材Maths, CS & AI Compendium的向量篇中,点积(Dot Product)、叉积(Cross Product)与外积(Outer Product)被拆解为三种回答不同问题的"乘法":点积告诉你两个向量有多一致,叉积给你一个全新的垂直方向,外积则把两个向量"膨胀"成一个矩阵。这篇文章用尽量少的公式,帮你一次讲透它们的定义、几何意义和在机器学习中的真实用途。
为什么向量需要"乘法"?
向量加法解决"方向叠加",标量乘法解决"伸缩",但工程中最常问的问题其实是:
- 这两段文本/两个用户有多相似?→ 点积与余弦相似度
- 这个力臂产生的旋转方向是什么?→ 叉积
- 如何用两个向量构造一张数据矩阵?→ 外积
教材在 04. products.md 中给出的起点是抽象的内积:任何把两个向量变成一个标量的"乘法",只要满足正定性、对称性、线性性三条规则,都算内积。点积就是最常用、几乎无处不在的具体实现。
点积:最实用的"一致度"度量
💡算法只有一句话:对应分量相乘,再全部加起来。
对 $\mathbf{a}=(a_1,\dots,a_n)$ 与 $\mathbf{b}=(b_1,\dots,b_n)$:
$$\mathbf{a}\cdot\mathbf{b}=\sum_{i=1}^{n}a_i b_i$$
真正精彩的是它的几何含义:
$$\mathbf{a}\cdot\mathbf{b}=|\mathbf{a}|,|\mathbf{b}|\cos\theta$$
| 两向量关系 | 夹角 θ | 点积结果 | 直观理解 |
|---|---|---|---|
| 同向 | 0° | 最大正值 | 完全"合拍" |
| 正交 | 90° | 0 | 互相无关(正交判据) |
| 反向 | 180° | 负值 | 完全"唱反调" |
由点积还能得到两个高频概念:
- 投影:$\mathrm{proj}_{\mathbf{b}}(\mathbf{a})=\dfrac{\mathbf{a}\cdot\mathbf{b}}{|\mathbf{b}|^2},\mathbf{b}$,即"光照下来 a 在 b 上的影子",表示 a 里有多少分量沿 b 方向。
- 余弦相似度:$\cos\theta=\dfrac{\mathbf{a}\cdot\mathbf{b}}{|\mathbf{a}|,|\mathbf{b}|}$,取值 $[-1,1]$,只看方向、不看长度——这是比较文档、词嵌入、用户偏好的标准工具。
叉积:从"一个数"变成"一个新向量"
点积消耗两个向量、吐出一个数;叉积则相反:两个向量进去,一个新向量出来。
$$\mathbf{a}\times\mathbf{b}=(a_2b_3-a_3b_2,;a_3b_1-a_1b_3,;a_1b_2-a_2b_1)$$
三个必须记住的特性:
- 仅存在于 3 维空间(点积则对任意维度有效);
- 大小等于平行四边形面积:$|\mathbf{a}\times\mathbf{b}|=|\mathbf{a}|,|\mathbf{b}|\sin\theta$。注意规律:点积用 $\cos\theta$ 衡量"一致",叉积用 $\sin\theta$ 衡量"差异";
- 不满足交换律:$\mathbf{a}\times\mathbf{b}=-(\mathbf{b}\times\mathbf{a})$,交换顺序方向翻转。方向由右手定则决定——右手四指从 $\mathbf{a}$ 弯向 $\mathbf{b}$,拇指即结果方向。
平行向量的叉积为零向量($\sin 0°=0$):没有面积,也没有垂直方向可言。
三重积:点积与叉积的合体
把三种向量组合起来会得到三重积:
- 标量三重积$\mathbf{a}\cdot(\mathbf{b}\times\mathbf{c})$:输出一个数,等于三向量构成的斜盒子(平行六面体)体积;为 0 说明三向量共面。
- 向量三重积$\mathbf{a}\times(\mathbf{b}\times\mathbf{c})=(\mathbf{a}\cdot\mathbf{c})\mathbf{b}-(\mathbf{a}\cdot\mathbf{b})\mathbf{c}$:结果落在 $\mathbf{b},\mathbf{c}$ 张成的平面内。叉积不满足结合律,顺序不能乱改。
外积:两个向量"膨胀"成一个矩阵
教材矩阵篇的 03. operations.md 中给出了外积定义:列向量 $\mathbf{u}$ 乘行向量 $\mathbf{v}^{\mathsf{T}}$,每个元素是两个向量各取一个分量的乘积:
$$\mathbf{u}\mathbf{v}^{\mathsf{T}}=\begin{bmatrix}1\2\3\end{bmatrix}\begin{bmatrix}4&5\end{bmatrix}=\begin{bmatrix}4&5\8&10\12&15\end{bmatrix}$$
外积最有价值的两点:
- 结果秩永远为 1(每一行都是 $\mathbf{v}^{\mathsf{T}}$ 的缩放版);
- 任意矩阵都可以写成若干秩-1 外积之和——这正是 SVD 分解在做的事(见 05. decompositions.md),也是低秩近似能大幅压缩模型体积的原理。
一图速查:三种乘积对比
| 输入 → 输出 | 维度限制 | 几何意义 | 满足交换律 | |
|---|---|---|---|---|
| 点积 $\mathbf{a}\cdot\mathbf{b}$ | 向量×向量 →标量 | 任意维度 | 一致程度($\cos\theta$) | ✅ 满足 |
| 叉积 $\mathbf{a}\times\mathbf{b}$ | 向量×向量 →向量 | 仅 3 维 | 垂直方向+面积($\sin\theta$) | ❌ 反交换 |
| 外积 $\mathbf{u}\mathbf{v}^{\mathsf{T}}$ | 向量×向量 →矩阵 | 任意维度 | 秩-1 数据矩阵 | ❌ 不满足 |
这些乘积在 AI 里用在哪?
- 注意力机制:Transformer 的 $\mathrm{softmax}(\mathbf{Q}\mathbf{K}^{\mathsf{T}})$ 本质是批量点积,衡量 Query 与每个 Key 的"匹配度",再用矩阵乘法(外积思想的推广)加权求和 Value;
- 嵌入与推荐:文本/用户/物品表示成向量后,用余弦相似度排序召回——推荐系统与语义搜索的地基;
- 3D 视觉与机器人:叉积计算法线、力矩与坐标系旋转,是 SLAM、自动驾驶感知栈的常规操作;
- 模型压缩:SVD 把大矩阵分解为秩-1 外积之和再截断,是低秩近似的经典手法。
延伸阅读与动手路径 📌
- 向量乘积完整推导与练习:04. products.md(含用 JAX 求夹角、验证叉积垂直性的编程任务)
- 外积与矩阵运算:03. operations.md
- 向量模长、正交、单位向量等前置概念:02. vector properties.md
- 全书章节总览:llms.txt 与 README.md
一句话总结:点积度量"像不像",叉积生成"垂直方向",外积构造"秩-1 矩阵"——掌握这三种乘积,你就拿到了读懂注意力机制、嵌入检索与矩阵分解的第一把钥匙。
【免费下载链接】maths-cs-ai-compendiumBecome a cracked AI/ML researcher/engineer with this unconventional textbook covering maths, computing, and ML with intuition.项目地址: https://gitcode.com/GitHub_Trending/mat/maths-cs-ai-compendium
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考