表示、坐标与范数
本节目标
从“有顺序的数值”与“空间中的箭头”两种视角理解向量,能区分维度、分量、L1/L2 范数和单位化,并知道这些概念在 Embedding 与检索中的工程约束。
向量的两种视角
- 数据视角:有顺序的 个数字,例如
[长度, 价格, 评分]。 - 几何视角:从原点指向空间一点的箭头,有方向和长度。
两向量只有在相同空间、相同维度、相同模型/版本下才可直接比较。一个 768 维文本向量不能与另一个模型的 768 维向量因“维度相同”就混用。
坐标与维度
二维向量 的分量依赖坐标基。Embedding 的坐标轴由训练过程学得,单个维度通常没有稳定的人类含义;语义可能分布在许多维。维度高也不自动代表质量高,它同时增加存储和计算。
“稠密/稀疏”描述存储与非零分量分布,不是维度高低:词袋向量可能有十万维但绝大多数为 0,神经网络 embedding 往往维度更低却大多数分量非零。两者都必须在同一坐标空间中比较。
范数
L2 范数(欧氏长度):
长度为 5。L1 范数:
无穷范数是最大绝对分量。不同范数定义不同“大小”和几何,优化中的 L1/L2 正则化也会产生不同偏好。
归一化
非零向量单位化:
方向不变,L2 长度变为 1。对 得 。归一化会丢掉模长信息;如果模型让模长编码流行度、置信度或频率,归一化会改变排序。
零向量不能归一化,因为除数为 0。工程代码必须明确定义:拒绝、跳过、使用特殊值,不能产生 NaN 后继续入库。
浮点计算会有舍入误差,验证单位化结果时应检查 是否小于容差,而不是要求二进制浮点结果严格等于 1。
ML/Embedding/评测用途
- 特征尺度差异会让距离被大数值特征主导。
- cosine 相似度隐式只比较方向;预先单位化可简化计算。
- 梯度裁剪常以整体范数限制更新大小。
- 向量数据库中的 dimension 必须与 embedding 模型输出一致。
常见误区
- 把向量分量当成独立可命名概念。
- 所有向量无条件归一化。
- 零向量与“没有语义”直接画等号;它也可能是数据/模型错误。
- 跨模型、跨版本比较相似度。
练习
- 计算
(1,-2,2)的 L1/L2 范数并单位化;答案应得到 L1 为 5、L2 为 3、单位向量为(1/3,-2/3,2/3)。 - 解释
(0,0,0)为什么不能单位化,并给出 API 应选择“拒绝、跳过、特殊值”中的哪一种及理由。 - 比较十万维稀疏词袋向量和 768 维稠密 embedding:维度、非零分量、坐标语义与可比较条件分别是什么?
掌握检查
- 我能区分维度、长度和样本数量。
- 我会在归一化前检查零范数。
- 我知道归一化可能丢失有用模长。
参考资料
资料核验日期:2026-07-14。下一步:点积与余弦相似度。