最近在学习 AI 相关知识时, 我发现 向量 (Vector) 是理解这一切的基础
很多同学一看到数学公式就打退堂鼓,其实真的不用怕!我把自己从“懵圈”到“开窍”的过程整理成这篇指南——用例子讲透向量,带你真正看懂 AI 是怎么 “思考” 的
我是印刻君,一位探索 AI 的前端程序员,关注我,让 AI 知识有温度,技术落地有深度
向量是什么?
标量 vs 向量
在数学和物理学中, 我们通常将"量"分为两类:
- 标量 (Scalar): 只有大小, 没有方向
- 例子: 今天气温是 25 摄氏度;我的体重是 60 公斤
- 向量 (Vector): 既有大小, 又有方向
- 例子: 北风 4 级 (4 级是大小, 北是方向);向东走 500 米 (500 米是大小, 东是方向)
🤔 为什么 AI 偏爱向量, 而且是高维向量?
现实世界太复杂, 单一的数字 (标量) 往往无法完整描述一个事物
如果说二维向量让我们能够同时描述 "大小" 和 "方向", 那么高维向量则让我们能精确描述事物成百上千种特征
在计算机科学中, 向量的每一个维度都可以被理解为一种特征 (Feature)
所谓高维向量, 本质上就是多种特征的组合:
举个例子, 要描述一个"苹果", 光说"甜度 5 分" 是不够的
如果我们构建一个特征向量 (颜色, 甜度, 脆度) = (0.9, 5, 8), AI 就能精准知道: "哦, 这是一个红彤彤、微甜、超脆的苹果"
同理,当向量的维度扩展到几百、几千维时,AI 就能捕捉到人类语言里那些特别微妙的语义差别 —— 比如 “开心” 和 “愉悦” 的细微不同,这也是大模型能读懂我们说话的基础
向量的表示
在画布上, 二维向量是一个带箭头的线段:
- 箭头指向:代表方向(对应事物的特征倾向)
- 线段长度:代表大小(对应事物的特征强度)
比如下图, 这是一个从点 A(0, 0) 指向点 B(3, 4) 的向量:
💻 为什么计算机里只存坐标 (x, y)?
你可能有疑惑: "向量有起点和终点两个点, 为什么代码里通常只写 [0.12, 0.88] 只有一个点的数组?"
这是因为在计算机处理中, 为了统一标准, 我们通常使用位置向量 (Position Vector) —— 将所有向量的起点都固定在坐标原点 (0, 0)
既然起点是固定的, 我们只需要记录终点的坐标, 就等同于确定了整个向量
转换公式:
如果一个向量是从任意点 A(x1, y1) 指向 B(x2, y2), 我们可以通过 "终点减起点" 将其转换为标准位置向量:
向量的加减与模
理解了向量的表示, 我们来看向量的基本运算, 以及它们在 AI 语义理解中的核心作用
1. 加减法
向量的加减法遵循对应分量相加减的规则:
在几何上, 这遵循"平行四边形法则”或"三角形法则"
💡 AI 案例: 词向量的加减运算
向量加减法, 本质上就是特征的叠加或抵消
加法把两个概念融合, 减法把某个特征去掉
经典的例子是: 国王 - 男人 + 女人 = ?
为了便于理解, 假设我们的词向量只有两个维度(实际上通常几百维或更多):
- x 轴代表性别(数值越大越女性化)
- y 轴代表地位(数值越大越尊贵)
我们定义以下坐标:
| 词 | 坐标 | 含义 |
|---|---|---|
| 国王 | (1, 9) | [男性, 尊贵] |
| 男人 | (1, 1) | [男性, 普通] |
| 女人 | (9, 1) | [女性, 普通] |
现在进行运算:
国王 - 男人,(1, 9) - (1, 1) = (0, 8)这一步去除了"男性"属性, 保留了"尊贵"属性(即纯粹的"皇室地位"概念)+ 女人,(0, 8) + (9, 1) = (9, 9)将"女性"属性叠加到"皇室地位"上
结果 (9, 9) 对应的是 [女性, 尊贵], 在向量空间中, 这个坐标最接近的词就是女王
这就是大语言模型理解"语义"的基础逻辑: 通过向量空间中的位置关系, 来表现词与词之间的逻辑关联
2. 向量的模
向量的模(也叫长度)是一个标量, 表示向量的大小
根据初中学的勾股定理, 二维向量 (x, y) 的模为:
举个例子:
向量 (3, 4) 的模就是:
💡 AI 案例: 模的作用
归一化: 在 AI 应用中, 有时我们只关心向量的方向 (代表内容主题), 而不关心其长度 (代表文本长短或词频)
此时, 我们会将向量除以它的模, 使其变为单位向量(长度为 1)
这样做可以消除文本长度对相似度计算的影响
衡量向量间的关系(相似度)
在 AI 中, 判断两个对象(文本、图片)是否相似, 本质上是计算它们对应向量的距离或夹角
1. 点乘
点乘是计算相似度的数学基础, 其结果是一个标量
- 代数定义: 对应分量相乘再求和
- 几何定义:
2. 余弦相似度
利用点乘公式, 我们可以推导出两个向量夹角的余弦值, 这就是最常用的余弦相似度:
数值含义:
- 1 (θ = 0 度): 方向完全相同 (语义极度相似)
- 0 (θ = 90 度): 相互垂直 (毫无关系, 正交)
- -1 (θ = 180 度): 方向完全相反 (语义对立)
为什么 AI 偏爱余弦相似度?
因为它关注的是方向而非距离
- 例子: 一句简短的"我爱编程"和一篇 5000 字赞美编程技术的文章
- 它们的向量方向非常接近 (都在讨论编程主题), 因此余弦相似度很高
- 但由于文本长度差异巨大, 长文章的向量模长很大, 两者在空间中的欧氏距离会很远在这种场景下, 余弦相似度更能反映语义的一致性
3. 欧氏距离
即两点间的直线距离, 也就是连接两个向量终点的线段长度:
💡 适用场景
数值的大小(量级)非常关键时, 使用欧氏距离
- 例子: 电商用户聚类
- 用户 A: 购买 1 个苹果
- 用户 C: 购买 2 个苹果
- 用户 B: 购买 1000 个苹果(批发商)
虽然三者购买方向一致 (都是苹果), 但 A 和 C 的 消费能力 (距离) 更近
系统会将 A 和 C 归为普通消费者, 而将 B 归为商业客户
从二维到高维 AI 世界
在 AI 领域, 向量通常拥有几百甚至几千个维度 (例如 OpenAI 的 text-embedding-3-small 模型是 1536 维)
虽然我们无法在脑海中构想出高维图像, 但数学规则是完全一致的:
假设向量 A = (a1, ..., an), B = (b1, ..., bn)
-
加法
对应位相加
-
模
-
点乘
总结来说, 我们可以用加法对词语的各种特征进行组合, 用模来衡量强度, 用点乘来抽象地计算相似度
总结
本文系统性地介绍了向量在 AI 中的核心作用:
【核心概念】
- 向量:兼具大小和方向的数学对象,是 AI 表示复杂特征的基础
- 高维向量:能够同时编码数百种语义特征,实现精细的语义理解
【关键运算及其意义】
- 加减法:实现语义的组合与推演(如"国王 - 男人 + 女人 = 女王")
- 模(长度):衡量特征强度,用于归一化处理
- 点乘与余弦相似度:计算语义相似性,是检索和匹配的核心
【实际价值】
向量为 AI 提供了一种可计算的语义表示方法,使得:
- 计算机能够"理解"词语间的逻辑关系
- 实现基于语义的智能搜索和推荐
- 构建更准确的自然语言处理系统
我是印刻君,一位探索 AI 的前端程序员,关注我,让 AI 知识有温度,技术落地有深度
本文略过了叉乘(Cross Product), 因为它主要用于 3D 图形学(计算法线等), 在 AI 语义分析中极少使用