· 线性代数 · 第 1 / 10 讲

1 · 向量与向量空间

现实世界的数据如何变成数学能处理的对象?从几何、代数到 embedding 直觉。

本节解决一个问题:现实世界的数据,怎么变成数学能处理的对象? 答案是向量。


一、什么是向量(Vector)

向量有三种等价视角,都要熟悉:

① 几何视角:空间中一个带方向和长度的箭头,从原点指向某点。

② 代数视角:一列有序的数。二维向量 v=[32]\mathbf{v} = \begin{bmatrix} 3 \\ 2 \end{bmatrix} 表示「向右 3、向上 2」。

③ 数据视角:一组特征的打包。比如一套房子 = [面积,房间数,楼层,房龄][\text{面积}, \text{房间数}, \text{楼层}, \text{房龄}],一个 4 维向量。

应用直觉:在大模型里,每个词被映射成一个几百上千维的向量(word embedding)。「国王 − 男人 + 女人 ≈ 女王」之所以成立,就是因为语义被编码进了向量的方向和位置。向量是 AI 处理一切非数值数据(文本、图像、音频)的第一步。

二、向量的基本运算

加法:对应分量相加,几何上是「首尾相接」。

u+v=[u1+v1u2+v2]\mathbf{u} + \mathbf{v} = \begin{bmatrix} u_1 + v_1 \\ u_2 + v_2 \end{bmatrix}

数乘(Scalar Multiplication):每个分量乘同一个数,几何上是「拉伸或翻转」这个箭头。

cv=[cv1cv2]c\,\mathbf{v} = \begin{bmatrix} c v_1 \\ c v_2 \end{bmatrix}

这两个运算是整个线性代数的地基——「线性」二字指的就是「只允许加法和数乘」这两种操作。

内积(Dot Product):两个同维向量对应分量相乘后求和,结果是标量

ab=a1b1+a2b2++anbnR\mathbf{a}^\top\mathbf{b} = a_1 b_1 + a_2 b_2 + \cdots + a_n b_n \in \mathbb{R}

内积满足交换律:ab=ba\mathbf{a}^\top\mathbf{b} = \mathbf{b}^\top\mathbf{a}(对应分量相乘再求和,顺序无关)。

几何含义:ab=abcosθ\mathbf{a}^\top\mathbf{b} = \|\mathbf{a}\|\|\mathbf{b}\|\cos\theta——反映两向量的“对齐程度”。两向量垂直时 cos90°=0\cos 90°= 0,内积为 0;同向时 cos0°=1\cos 0° = 1,内积取到最大值 ab\|\mathbf{a}\|\|\mathbf{b}\|

投影x\mathbf{x} 在方向 b\mathbf{b} 上的投影长度为 xcosθ\|\mathbf{x}\|\cos\theta。由内积公式 xb=xbcosθ\mathbf{x}^\top\mathbf{b} = \|\mathbf{x}\|\|\mathbf{b}\|\cos\theta 可得:

投影长度=xcosθ=xbb\text{投影长度} = \|\mathbf{x}\|\cos\theta = \frac{\mathbf{x}^\top\mathbf{b}}{\|\mathbf{b}\|}

b\mathbf{b} 为单位向量 u^\hat{u}u^=1\|\hat{u}\|=1)时化简:投影长度=u^x\text{投影长度} = \hat{u}^\top\mathbf{x}。投影向量(长度×方向)为 (u^x)u^(\hat{u}^\top\mathbf{x})\,\hat{u}

三、线性组合与张成空间

线性组合(Linear Combination):把若干向量各自数乘后相加。

c1v1+c2v2++ckvkc_1 \mathbf{v}_1 + c_2 \mathbf{v}_2 + \cdots + c_k \mathbf{v}_k

张成空间(Span):一组向量所有线性组合能到达的全部点的集合。

从二维到三维:建立可延伸的直觉

在三维空间中,情况变得更丰富:

关键洞察:张成空间的维度,取决于向量组中真正「不同方向」的数量。哪怕有 100 个向量,如果其中只有 2 个方向是独立的,张成空间也只是一个平面。

推广到高维:不必「看见」,只需「数方向」

四维、百维、千维空间无法直观想象,但规律完全一致:nn 个真正不同方向的向量,张成一个 nn 维子空间。高维只是这个规律的数字延伸,本质没有改变。

实用的思维方式:与其试图「看见」高维空间,不如问——这组向量能独立控制多少个方向? 答案就是张成空间的维度。

应用直觉:神经网络某一层能表达的「特征空间」,本质就是它的权重向量所张成的空间。若权重矩阵的列向量中只有 rr 个方向是线性无关的(即矩阵的秩为 rr),那么无论输入多复杂,这一层的输出永远被限制在一个 rr 维子空间里。表达能力不足,往往是因为张成空间维度太低——也就是有效独立方向太少。

四、线性相关与线性无关

线性无关(Linearly Independent):一组向量中,没有任何一个能由其他向量线性组合得到——每个都贡献了「新的方向」。形式定义:

c1v1++ckvk=0    c1==ck=0c_1 \mathbf{v}_1 + \cdots + c_k \mathbf{v}_k = \mathbf{0} \;\Rightarrow\; c_1 = \cdots = c_k = 0

只有全取 0 才能凑出零向量,就叫线性无关;否则线性相关(有冗余)。

为什么要这样定义?

这个公式初看抽象,换一种说法就清晰了:如果存在不全为零的系数使线性组合等于零向量,就意味着某个向量可以用其他向量「拼出来」——它是多余的,去掉它张成空间也不会缩小。形式定义只是在用数学语言精确表达这件事。

直觉总结:线性无关 = 没有冗余,每个向量都不可替代;线性相关 = 至少有一个向量可以被其他向量表示。

应用直觉:特征之间「线性相关」= 信息冗余。比如数据集里同时有「身高(cm)」和「身高(m)」两列,它们线性相关,第二列没带来新信息。降维(如 PCA)做的就是去掉这种冗余——找出真正线性无关的方向,保留最多的有效信息。

五、基与维度

基(Basis):一组线性无关且能张成整个空间的向量。它是空间的「最小坐标系」。

最常用的是标准基,二维平面里就是 e1=[10],  e2=[01]\mathbf{e}_1 = \begin{bmatrix}1\\0\end{bmatrix},\; \mathbf{e}_2 = \begin{bmatrix}0\\1\end{bmatrix}。任何向量都能唯一写成基的线性组合,组合的系数就是它的「坐标」。

维度(Dimension):基里向量的个数。Rn\mathbb{R}^n 的维度是 n。

应用直觉:embedding 维度(如 768、1536)就是你给语义空间选的「基的数量」。维度越高,能区分的概念越细,但算力和数据需求也越大。

六、跨领域应用案例

以下五道例题来自五个完全不同的领域,找到你熟悉的方向直接切入。


例题一:AI / 自然语言处理 — 词向量语义类比

背景:大模型把每个词映射成高维向量,语义关系被编码进向量的方向——「性别」「职业」「地点」这类关系都可以用向量差表示。

题目:已知如下简化词向量(已降至 2 维便于计算):

向量
国王[0.8, 0.6]
男人[0.7, 0.2]
女人[0.6, 0.5]
女王(待求)?

用向量运算预测「女王」的向量。

解题

类比公式:女王 ≈ 国王 − 男人 + 女人

[0.8,  0.6][0.7,  0.2]+[0.6,  0.5]=[0.7,  0.9][0.8,\;0.6] - [0.7,\;0.2] + [0.6,\;0.5] = [0.7,\;0.9]

实际女王向量 = [0.7, 0.9],完全吻合。

小结:「男人→国王」的差向量 [0.1, 0.4] 代表「皇室地位」这个语义方向。把这个方向加到「女人」身上就得到「女王」。性别切换和地位切换,都是向量空间里的平移——语义 = 方向,关系 = 向量差。

📌 额外补充:真实 NLP 系统的完整运作流程

第一步(训练阶段,离线,只做一次):训练 Embedding 模型

通过 Word2Vec、GloVe、BERT 等架构,在数百亿词的文本上训练神经网络。训练目标是:出现在相似上下文里的词,向量要彼此靠近。「国王」和「女王」都频繁出现在「权力」「宫廷」等词旁边,向量方向便自然相近。没有人手工写下任何语义关系,全部由模型从语料中自动涌现。训练完成的神经网络本身就成为 Embedding 模型,可以把任意文字编码成向量。

第二步(推理阶段,每次查询时):把输入编码成查询向量

把用户输入的文字直接丢进 Embedding 模型,模型自动输出对应的向量——这就是查询向量,无需任何人工公式。

这里有个关键问题:无论是一个词、一句话还是一整篇文章,输出的向量维度始终相同(比如都是 768 维)。模型把所有信息压缩进固定大小的空间,词的信息少压缩损失小,长文章则必然丢失大量细节。提高维度(如 1536 维)能提升语义精度,同时编码更多方向(性别、职业、地域、情感……),但解决不了长度问题。实践中处理长文本的主流方案是分块(Chunking):把文章切成若干段(每段 200~400 词),每段单独编码,存储多个向量——长文本 = 多个向量,而不是更高维的单一向量

第三步:计算余弦相似度,排序取结果

拿查询向量与数据库里所有候选向量逐一计算余弦相似度(第 4 节正式介绍),得到 0~1 之间的分数,越高代表语义越接近。按分数排序,取前几名(Top-K)作为最终结果。工程上通常用 FAISS 等近似最近邻算法大幅加速搜索。

这个流程是几乎所有现代 NLP 应用的核心:语义搜索(搜「怎么减肥」也能找到「体重管理方法」的文章)、推荐系统(找与用户历史行为向量相似的内容推送)、问答系统(从知识库里检索相似度最高的答案片段)——本质都是同一套机制,也是 RAG(检索增强生成)的检索核心。


例题二:金融 / 量化 — 投资组合作为线性组合

背景:每种资产在不同时期的收益率可以打包成一个向量,持有多种资产的投资组合就是这些向量的线性组合,权重就是仓位比例。

题目:已知三种资产各季度收益率:

资产Q1Q2Q3Q4
股票 A10%−5%8%12%
债券 B2%2%2%2%
黄金 C−3%15%−2%5%

持仓:50% 股票 A、30% 债券 B、20% 黄金 C。计算投资组合每季度的收益率向量。

解题

r组合=0.5rA+0.3rB+0.2rC\mathbf{r}_{\text{组合}} = 0.5\,\mathbf{r}_A + 0.3\,\mathbf{r}_B + 0.2\,\mathbf{r}_C

季度计算过程结果
Q10.5×10% + 0.3×2% + 0.2×(−3%)5.0%
Q20.5×(−5%) + 0.3×2% + 0.2×15%1.1%
Q30.5×8% + 0.3×2% + 0.2×(−2%)4.2%
Q40.5×12% + 0.3×2% + 0.2×5%7.6%

投资组合收益率向量 = [5.0%, 1.1%, 4.2%, 7.6%]

直觉:债券 Q2 收益稳定,抵消了股票的 −5%;黄金 Q2 大涨进一步拉回损失。不同方向的向量叠加可以互相抵消风险——这就是分散投资的数学本质。 调整仓位比例 = 调整线性组合的系数,结果向量随之改变。


例题三:生物医学 — 基因表达量向量与癌症分型

背景:每个细胞样本可以用一个「基因表达量向量」描述,每个维度是某个基因的活跃程度。两个向量相差越小,细胞越相似——这是癌症分型和精准医疗诊断的数学基础。

题目:已知三个细胞样本的基因表达量向量(简化为 4 个基因,数值为表达强度):

样本基因1基因2基因3基因4
A(正常细胞)2.10.34.51.2
B(待测细胞)8.40.41.04.7
C(已知癌细胞)8.50.31.04.9

通过向量差判断待测细胞 B 更接近正常细胞 A,还是癌细胞 C?

解题

差向量 B − A = [8.4−2.1, 0.4−0.3, 1.0−4.5, 4.7−1.2] = [6.3, 0.1, −3.5, 3.5]

差向量 B − C = [8.4−8.5, 0.4−0.3, 1.0−1.0, 4.7−4.9] = [−0.1, 0.1, 0.0, −0.2]

用差向量的长度(欧氏距离)量化两个样本间的距离:

BA=6.32+0.12+(3.5)2+3.52=64.208.01\|B - A\| = \sqrt{6.3^2 + 0.1^2 + (-3.5)^2 + 3.5^2} = \sqrt{64.20} \approx 8.01

BC=(0.1)2+0.12+0.02+(0.2)2=0.060.24\|B - C\| = \sqrt{(-0.1)^2 + 0.1^2 + 0.0^2 + (-0.2)^2} = \sqrt{0.06} \approx 0.24

0.24 ≪ 8.01,B 与癌细胞 C 的距离远小于与正常细胞 A 的距离。判断:B 为癌变细胞。

小结:差向量的大小衡量两个样本的「距离」,距离越小越相似。细胞分型的本质就是在基因表达量向量空间里做分类——精准医疗的基因组学算法,底层就是在比较向量。

📌 额外补充:欧氏距离与范数

上面用到的「差向量长度」公式 v=v12+v22++vn2\|\mathbf{v}\| = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2} 叫做范数(Norm),是勾股定理的高维推广,第 4 节正式介绍。实际的基因组学分类算法在几千个基因维度上做类似计算,常用两类方法:k 近邻(k-NN) 需要提供一批已标注类别的参考样本(如已确认的正常细胞和癌细胞),找距离最近的 k 个样本投票判定类别;聚类算法(如 k-means)则不需要任何标注,直接根据向量间距离自动分组。两者数学本质相同,都是比较向量之间的欧氏距离,不需要手工编写分类规则。不同应用场景也会选用其他距离度量(如余弦相似度、曼哈顿距离),具体取决于数据特点。


例题四:物理 / 工程 — 桥梁节点受力分析

背景:力是带方向和大小的向量。结构工程中,节点处于平衡的条件是所有力向量之和等于零向量——这是牛顿第一定律的向量表达。

题目:某桥梁节点同时承受三个力(单位:kN):

来源向量(水平, 竖直)
F₁自重(竖直向下)[0, −50]
F₂左侧拉索(向右上方)[30, 40]
F₃右侧拉索(向左上方)[−30, 15]

向量分量说明:每个力用 [水平分量, 竖直分量] 表示,水平向右为正,竖直向上为正。例如 F₂ = [30, 40] 表示该力水平向右 30 kN、竖直向上 40 kN,两个分量合成一个斜向右上方的力。

计算合力向量,判断节点是否平衡。若不平衡,需增加什么力才能使其平衡?

解题

合力 = F₁ + F₂ + F₃ = [0+30+(−30), −50+40+15] = [0, 5]

合力不为零向量,节点竖直方向有 5 kN 净力,结构未平衡

若要达到平衡,需再施加 F₄ = [0, −5] kN(增加 5 kN 向下的配重)。

小结:结构平衡 = 力向量线性组合为零向量。每一座桥、每一栋楼的结构设计,本质都是在确保这个向量等式成立。向量加法是土木、机械、航空工程计算的核心语言。

📌 额外补充:力向量的模长(独立于例题,可选阅读)

F₂ = [30, 40] 的实际大小(模长)= 302+402=2500=50\sqrt{30^2 + 40^2} = \sqrt{2500} = 50 kN,方向与水平面成约 53° 角。向量的「模长」和「方向」是两个独立的信息,合在一起才完整描述一个力。工程上通常先分解为水平和竖直分量分别计算,再根据需要合成。模长的正式定义(范数)见第 4 节。


例题五:社会科学 — 城市发展模式向量比较

背景:城市的发展特征可以打包成一个多维向量,比较向量间的差异,就能找到发展模式相似的「标杆城市」,为政策制定提供参考。

题目:用四个指标衡量城市特征:[人均 GDP(万元), 大学生比例(%), 工业占比(%), 服务业占比(%)]

城市人均 GDP大学生比例工业占比服务业占比
A(科技型)15252055
B(工业型)8125530
C(待规划)14222552

城市 C 正制定五年发展规划,应优先参考哪个城市的经验?

解题

差向量 C − A = [14−15, 22−25, 25−20, 52−55] = [−1, −3, 5, −3]

差向量 C − B = [14−8, 22−12, 25−55, 52−30] = [6, 10, −30, 22]

各分量绝对值之和:|C−A| = 1+3+5+3 = 12,|C−B| = 6+10+30+22 = 68

城市 C 与科技型城市 A 更接近,应优先参考城市 A 的发展经验

小结:城市相似性 = 特征向量的距离。区域经济学中「标杆城市」分析的本质,就是在多维特征向量空间里找最近邻。同样的方法也用于教育政策、公共卫生、城市规划的跨城市比较研究。

七、小结

概念一句话理解典型应用
向量一列数 / 一个箭头 / 一组特征embedding、特征向量
线性组合加法 + 数乘的结果神经网络加权求和
张成空间能到达的所有点模型表达能力
线性无关没有冗余方向去除冗余特征
基与维度最小坐标系及其大小embedding 维度选择

下一节:数据表示成了向量,怎么对一整个空间的向量做统一的操作?这就引出矩阵与线性变换