数学基础
/
Feb 08, 2026
Step 4 04. 线性代数:矩阵与向量
<!-- Title: 04. 线性代数:从推荐系统到深度学习 -->
<!-- ID: 243 -->
<!-- Series: 程序员的数学修养 (ID: 16) -->
<!-- Author: 潘卫 -->
# 线性代数:从推荐系统到深度学习
## 1. 向量 (Vector):万物皆可 Embedding
在传统数学中,向量是有大小和方向的量。
在计算机科学(特别是 AI 时代)中,向量是**特征的容器**。
我们可以把世间万物变成向量:
* **用户**:`[年龄, 性别, 浏览时长, 点击率...]` -> `[25, 1, 120, 0.05]`
* **文本 (Word2Vec)**:`"King"` -> `[0.12, 0.88, -0.32, ...]`
* **图片**:`[像素1, 像素2, 像素3...]`
一旦事物变成了向量,我们就可以用数学方法来计算它们之间的关系。
## 2. 点积 (Dot Product):计算相似度
两个向量 $\vec{a} = (a_1, a_2)$ 和 $\vec{b} = (b_1, b_2)$ 的点积定义为:
$\vec{a} \cdot \vec{b} = a_1b_1 + a_2b_2 = |\vec{a}||\vec{b}|\cos\theta$
**核心应用:余弦相似度 (Cosine Similarity)**
如果不考虑向量的大小,只看方向($\cos\theta$),点积可以衡量两个向量的**相似程度**。
* $\cos\theta = 1$:方向完全相同(完全相似)。
* $\cos\theta = 0$:方向垂直(完全不相关)。
* $\cos\theta = -1$:方向相反(截然相反)。
**推荐系统实战**:
用户 A 的喜好向量:`[科幻: 5, 爱情: 1]`
电影 B 的特征向量:`[科幻: 5, 爱情: 0]`
电影 C 的特征向量:`[科幻: 0, 爱情: 5]`
计算点积:
$A \cdot B = 5\times5 + 1\times0 = 25$ (非常推荐)
$A \cdot C = 5\times0 + 1\times5 = 5$ (不推荐)
这就是今日头条、Netflix 推荐算法的底层逻辑之一。
## 3. 矩阵 (Matrix):变换的魔法
矩阵不仅是二维数组,它是**线性变换**(Linear Transformation)的描述。
将一个向量乘以一个矩阵,等于对这个向量进行旋转、缩放、切变或投影。
### 3.1 图形学中的应用
在 3D 游戏(如 Unity/Unreal)中,摄像机的移动、物体的旋转,本质上都是在不停地做**矩阵乘法**。
$$
\begin{bmatrix} x' \\ y' \end{bmatrix} =
\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}
\begin{bmatrix} x \\ y \end{bmatrix}
$$
### 3.2 深度学习中的应用
神经网络的每一层,本质上就是一个**矩阵乘法**加上一个激活函数。
$$Y = f(WX + b)$$
* $X$: 输入向量(如图片像素)。
* $W$: 权重矩阵(模型学习到的知识)。
* $b$: 偏置项。
* $Y$: 输出结果(分类概率)。
训练神经网络的过程,就是在不断调整矩阵 $W$ 中的数字,使得输出 $Y$ 最接近真实标签。
这也是为什么显卡(GPU)对 AI 如此重要——GPU 也就是为大规模矩阵并行运算而生的。
## 4. 稀疏矩阵 (Sparse Matrix)
在工程实践中,很多矩阵是非常“空”的。
比如社交网络图的邻接矩阵,几亿个用户,每个人只认识几百人。绝大多数位置都是 0。
如果直接存二维数组,内存瞬间爆炸。
因此,我们需要特殊的存储格式(如 CSR, COO)来只存储非零元素。
这是大数据计算(如 Spark, PageRank)中的关键优化技术。
## 结语
线性代数提供了处理**高维数据**的语言。
当你能把一个复杂的业务问题抽象成向量和矩阵的运算时,你就拥有了降维打击的能力。
无论是做游戏开发、数据挖掘,还是人工智能,线性代数都是那把打开新世界大门的钥匙。
P
潘卫
南京市沉思波网络科技有限责任公司创始人、CEO
您的观点 (可选)
🎁 注册账号,同步您的个性化学习路径