不再费脑, 写给 AI 爱好者的向量 (Vector) 入门指南

1,031 阅读7分钟

最近在学习 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), 我们可以通过 "终点减起点" 将其转换为标准位置向量:

AB=(x2x1,y2y1)\vec{AB} = (x_2 - x_1, y_2 - y_1)

向量的加减与模

理解了向量的表示, 我们来看向量的基本运算, 以及它们在 AI 语义理解中的核心作用

1. 加减法

向量的加减法遵循对应分量相加减的规则:

  • a+b=(x1+x2,y1+y2)\vec{a} + \vec{b} = (x_1+x_2, y_1+y_2)
  • ab=(x1x2,y1y2)\vec{a} - \vec{b} = (x_1-x_2, y_1-y_2)

在几何上, 这遵循"平行四边形法则”或"三角形法则"

💡 AI 案例: 词向量的加减运算

向量加减法, 本质上就是特征的叠加或抵消

加法把两个概念融合, 减法把某个特征去掉

经典的例子是: 国王 - 男人 + 女人 = ?

为了便于理解, 假设我们的词向量只有两个维度(实际上通常几百维或更多):

  • x 轴代表性别(数值越大越女性化)
  • y 轴代表地位(数值越大越尊贵)

我们定义以下坐标:

坐标含义
国王(1, 9)[男性, 尊贵]
男人(1, 1)[男性, 普通]
女人(9, 1)[女性, 普通]

现在进行运算:

  1. 国王 - 男人, (1, 9) - (1, 1) = (0, 8)这一步去除了"男性"属性, 保留了"尊贵"属性(即纯粹的"皇室地位"概念)
  2. + 女人, (0, 8) + (9, 1) = (9, 9)将"女性"属性叠加到"皇室地位"上

结果 (9, 9) 对应的是 [女性, 尊贵], 在向量空间中, 这个坐标最接近的词就是女王

这就是大语言模型理解"语义"的基础逻辑: 通过向量空间中的位置关系, 来表现词与词之间的逻辑关联

2. 向量的模

向量的(也叫长度)是一个标量, 表示向量的大小

根据初中学的勾股定理, 二维向量 (x, y) 的模为:

v=x2+y2|\vec{v}| = \sqrt{x^2 + y^2}

举个例子:

向量 (3, 4) 的模就是:

v=32+42=9+16=25=5|\vec{v}| = \sqrt{3^2 + 4^2} = \sqrt{9 + 16} = \sqrt{25} = 5

💡 AI 案例: 模的作用

归一化: 在 AI 应用中, 有时我们只关心向量的方向 (代表内容主题), 而不关心其长度 (代表文本长短或词频)

此时, 我们会将向量除以它的模, 使其变为单位向量(长度为 1)

这样做可以消除文本长度对相似度计算的影响

衡量向量间的关系(相似度)

在 AI 中, 判断两个对象(文本、图片)是否相似, 本质上是计算它们对应向量的距离或夹角

1. 点乘

点乘是计算相似度的数学基础, 其结果是一个标量

  • 代数定义: 对应分量相乘再求和 ab=x1x2+y1y2\vec{a} \cdot \vec{b} = x_1x_2 + y_1y_2
  • 几何定义: ab=a×b×cos(θ)\vec{a} \cdot \vec{b} = |\vec{a}| \times |\vec{b}| \times \cos(\theta)

2. 余弦相似度

利用点乘公式, 我们可以推导出两个向量夹角的余弦值, 这就是最常用的余弦相似度:

cos(θ)=aba×b\cos(\theta) = \frac{\vec{a} \cdot \vec{b}}{|\vec{a}| \times |\vec{b}|}

数值含义:

  • 1 (θ = 0 度): 方向完全相同 (语义极度相似)
  • 0 (θ = 90 度): 相互垂直 (毫无关系, 正交)
  • -1 (θ = 180 度): 方向完全相反 (语义对立)

为什么 AI 偏爱余弦相似度?

因为它关注的是方向而非距离

  • 例子: 一句简短的"我爱编程"和一篇 5000 字赞美编程技术的文章
  • 它们的向量方向非常接近 (都在讨论编程主题), 因此余弦相似度很高
  • 但由于文本长度差异巨大, 长文章的向量模长很大, 两者在空间中的欧氏距离会很远在这种场景下, 余弦相似度更能反映语义的一致性

3. 欧氏距离

即两点间的直线距离, 也就是连接两个向量终点的线段长度:

Distance=(x1x2)2+(y1y2)2\text{Distance} = \sqrt{(x_1-x_2)^2 + (y_1-y_2)^2}

💡 适用场景

数值的大小(量级)非常关键时, 使用欧氏距离

  • 例子: 电商用户聚类
    • 用户 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)

  • 加法

    对应位相加

  • a12+...+an2\sqrt{a_1^2 + ... + a_n^2}

  • 点乘

    a1b1+...+anbna_1b_1 + ... + a_n b_n

总结来说, 我们可以用加法对词语的各种特征进行组合, 用来衡量强度, 用点乘来抽象地计算相似度

总结

本文系统性地介绍了向量在 AI 中的核心作用:

【核心概念】

  • 向量:兼具大小和方向的数学对象,是 AI 表示复杂特征的基础
  • 高维向量:能够同时编码数百种语义特征,实现精细的语义理解

【关键运算及其意义】

  • 加减法:实现语义的组合与推演(如"国王 - 男人 + 女人 = 女王")
  • 模(长度):衡量特征强度,用于归一化处理
  • 点乘与余弦相似度:计算语义相似性,是检索和匹配的核心

【实际价值】

向量为 AI 提供了一种可计算的语义表示方法,使得:

  • 计算机能够"理解"词语间的逻辑关系
  • 实现基于语义的智能搜索和推荐
  • 构建更准确的自然语言处理系统

我是印刻君,一位探索 AI 的前端程序员,关注我,让 AI 知识有温度,技术落地有深度

本文略过了叉乘(Cross Product), 因为它主要用于 3D 图形学(计算法线等), 在 AI 语义分析中极少使用