1 · 向量与向量空间
现实世界的数据如何变成数学能处理的对象?从几何、代数到 embedding 直觉。
本节解决一个问题:现实世界的数据,怎么变成数学能处理的对象? 答案是向量。
一、什么是向量(Vector)
向量有三种等价视角,都要熟悉:
① 几何视角:空间中一个带方向和长度的箭头,从原点指向某点。
② 代数视角:一列有序的数。二维向量 表示「向右 3、向上 2」。
③ 数据视角:一组特征的打包。比如一套房子 = ,一个 4 维向量。
应用直觉:在大模型里,每个词被映射成一个几百上千维的向量(word embedding)。「国王 − 男人 + 女人 ≈ 女王」之所以成立,就是因为语义被编码进了向量的方向和位置。向量是 AI 处理一切非数值数据(文本、图像、音频)的第一步。
二、向量的基本运算
加法:对应分量相加,几何上是「首尾相接」。
数乘(Scalar Multiplication):每个分量乘同一个数,几何上是「拉伸或翻转」这个箭头。
这两个运算是整个线性代数的地基——「线性」二字指的就是「只允许加法和数乘」这两种操作。
内积(Dot Product):两个同维向量对应分量相乘后求和,结果是标量:
内积满足交换律:(对应分量相乘再求和,顺序无关)。
几何含义:——反映两向量的“对齐程度”。两向量垂直时 ,内积为 0;同向时 ,内积取到最大值 。
投影: 在方向 上的投影长度为 。由内积公式 可得:
当 为单位向量 ()时化简:。投影向量(长度×方向)为 。
三、线性组合与张成空间
线性组合(Linear Combination):把若干向量各自数乘后相加。
张成空间(Span):一组向量所有线性组合能到达的全部点的集合。
- 两个方向不同的二维向量,它们的张成是整个平面。
- 两个方向相同(共线)的向量,张成只是一条直线。
从二维到三维:建立可延伸的直觉
在三维空间中,情况变得更丰富:
- 1 个向量 → 张成一条直线
- 2 个线性无关向量 → 张成一个平面(在三维空间中只是一张「切片」)
- 3 个线性无关向量 → 张成整个三维空间
关键洞察:张成空间的维度,取决于向量组中真正「不同方向」的数量。哪怕有 100 个向量,如果其中只有 2 个方向是独立的,张成空间也只是一个平面。
推广到高维:不必「看见」,只需「数方向」
四维、百维、千维空间无法直观想象,但规律完全一致: 个真正不同方向的向量,张成一个 维子空间。高维只是这个规律的数字延伸,本质没有改变。
实用的思维方式:与其试图「看见」高维空间,不如问——这组向量能独立控制多少个方向? 答案就是张成空间的维度。
应用直觉:神经网络某一层能表达的「特征空间」,本质就是它的权重向量所张成的空间。若权重矩阵的列向量中只有 个方向是线性无关的(即矩阵的秩为 ),那么无论输入多复杂,这一层的输出永远被限制在一个 维子空间里。表达能力不足,往往是因为张成空间维度太低——也就是有效独立方向太少。
四、线性相关与线性无关
线性无关(Linearly Independent):一组向量中,没有任何一个能由其他向量线性组合得到——每个都贡献了「新的方向」。形式定义:
只有全取 0 才能凑出零向量,就叫线性无关;否则线性相关(有冗余)。
为什么要这样定义?
这个公式初看抽象,换一种说法就清晰了:如果存在不全为零的系数使线性组合等于零向量,就意味着某个向量可以用其他向量「拼出来」——它是多余的,去掉它张成空间也不会缩小。形式定义只是在用数学语言精确表达这件事。
直觉总结:线性无关 = 没有冗余,每个向量都不可替代;线性相关 = 至少有一个向量可以被其他向量表示。
应用直觉:特征之间「线性相关」= 信息冗余。比如数据集里同时有「身高(cm)」和「身高(m)」两列,它们线性相关,第二列没带来新信息。降维(如 PCA)做的就是去掉这种冗余——找出真正线性无关的方向,保留最多的有效信息。
五、基与维度
基(Basis):一组线性无关且能张成整个空间的向量。它是空间的「最小坐标系」。
最常用的是标准基,二维平面里就是 。任何向量都能唯一写成基的线性组合,组合的系数就是它的「坐标」。
维度(Dimension):基里向量的个数。 的维度是 n。
应用直觉:embedding 维度(如 768、1536)就是你给语义空间选的「基的数量」。维度越高,能区分的概念越细,但算力和数据需求也越大。
六、跨领域应用案例
以下五道例题来自五个完全不同的领域,找到你熟悉的方向直接切入。
例题一:AI / 自然语言处理 — 词向量语义类比
背景:大模型把每个词映射成高维向量,语义关系被编码进向量的方向——「性别」「职业」「地点」这类关系都可以用向量差表示。
题目:已知如下简化词向量(已降至 2 维便于计算):
| 词 | 向量 |
|---|---|
| 国王 | [0.8, 0.6] |
| 男人 | [0.7, 0.2] |
| 女人 | [0.6, 0.5] |
| 女王(待求) | ? |
用向量运算预测「女王」的向量。
解题:
类比公式:女王 ≈ 国王 − 男人 + 女人
实际女王向量 = [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(检索增强生成)的检索核心。
例题二:金融 / 量化 — 投资组合作为线性组合
背景:每种资产在不同时期的收益率可以打包成一个向量,持有多种资产的投资组合就是这些向量的线性组合,权重就是仓位比例。
题目:已知三种资产各季度收益率:
| 资产 | Q1 | Q2 | Q3 | Q4 |
|---|---|---|---|---|
| 股票 A | 10% | −5% | 8% | 12% |
| 债券 B | 2% | 2% | 2% | 2% |
| 黄金 C | −3% | 15% | −2% | 5% |
持仓:50% 股票 A、30% 债券 B、20% 黄金 C。计算投资组合每季度的收益率向量。
解题:
| 季度 | 计算过程 | 结果 |
|---|---|---|
| Q1 | 0.5×10% + 0.3×2% + 0.2×(−3%) | 5.0% |
| Q2 | 0.5×(−5%) + 0.3×2% + 0.2×15% | 1.1% |
| Q3 | 0.5×8% + 0.3×2% + 0.2×(−2%) | 4.2% |
| Q4 | 0.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.1 | 0.3 | 4.5 | 1.2 |
| B(待测细胞) | 8.4 | 0.4 | 1.0 | 4.7 |
| C(已知癌细胞) | 8.5 | 0.3 | 1.0 | 4.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]
用差向量的长度(欧氏距离)量化两个样本间的距离:
0.24 ≪ 8.01,B 与癌细胞 C 的距离远小于与正常细胞 A 的距离。判断:B 为癌变细胞。
小结:差向量的大小衡量两个样本的「距离」,距离越小越相似。细胞分型的本质就是在基因表达量向量空间里做分类——精准医疗的基因组学算法,底层就是在比较向量。
📌 额外补充:欧氏距离与范数
上面用到的「差向量长度」公式 叫做范数(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] 的实际大小(模长)= kN,方向与水平面成约 53° 角。向量的「模长」和「方向」是两个独立的信息,合在一起才完整描述一个力。工程上通常先分解为水平和竖直分量分别计算,再根据需要合成。模长的正式定义(范数)见第 4 节。
例题五:社会科学 — 城市发展模式向量比较
背景:城市的发展特征可以打包成一个多维向量,比较向量间的差异,就能找到发展模式相似的「标杆城市」,为政策制定提供参考。
题目:用四个指标衡量城市特征:[人均 GDP(万元), 大学生比例(%), 工业占比(%), 服务业占比(%)]
| 城市 | 人均 GDP | 大学生比例 | 工业占比 | 服务业占比 |
|---|---|---|---|---|
| A(科技型) | 15 | 25 | 20 | 55 |
| B(工业型) | 8 | 12 | 55 | 30 |
| C(待规划) | 14 | 22 | 25 | 52 |
城市 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 维度选择 |
下一节:数据表示成了向量,怎么对一整个空间的向量做统一的操作?这就引出矩阵与线性变换。