KNOWLEDGE / 06LAYER 1下一阶段

向量空间、余弦相似度与表示选择

Vector Space Model and Cosine Similarity

把查询和文档表示为多维向量,通过夹角比较方向相似度;理解“向量”既可稀疏也可稠密,表示决定相似度的含义。

先修知识TF-IDF:局部强度与全局区分度
解锁能力语义搜索稠密检索聚类与近重复发现
默认基础向量、点积和平方根基础
本页目录 · 11 个学习环节
01

学习契约与正确模型

先明确为什么学、学完能做什么,以及如何证明自己真的掌握。

为什么现在要学

SEO 和 AI 工具频繁使用“向量相似度”,却常忽略向量由什么产生。TF-IDF 稀疏向量反映词项重合,embedding 稠密向量尝试编码语义;相同 cosine 数字不能跨模型解释。

完成本页后,你应能
  • 手算二维或三维 cosine similarity
  • 区分稀疏与稠密表示
  • 说明归一化、零向量和模型版本对结果的影响
建议节奏

精读 35 分钟 → 引导练习 25 分钟 → 实战任务 55 分钟。实战时间单列,不再把浏览页面和项目操作混成一个数字。

它是什么
向量空间模型用维度表示特征,以点积或 cosine 衡量查询与文档接近程度;cosine 关注方向并部分减弱绝对长度影响。
为什么重要
它把多词证据组合为可排序分数,并为相似度检索与聚类提供统一数学语言。
什么时候使用
用于 TF-IDF 检索、内容聚类、相似页面检测、embedding 搜索与混合检索解释。
什么时候不要套用
cosine 高不等于事实正确、任务满足或商业价值高;不同向量空间的分数不可直接比较。
边界与不确定性
相似度只相对于表示模型、语料和预处理有意义;向量不自动包含来源可信度、时效或权限。
02

机制精讲

先读完整因果链,再看每个环节留下什么可观察信号。

向量空间模型先决定一组维度,再把查询和文档映射成同一空间中的坐标。经典稀疏表示让维度对应词项、坐标采用 TF-IDF 等权重;稠密 embedding 则由模型学习连续坐标。点积或余弦只比较这些坐标,因此“相似”究竟表示字面重合、主题接近还是某种训练目标,完全取决于表示如何生成。讨论向量结果时,第一句话应说明模型、语料、预处理、字段、截断与归一化,而不是只报一个小数。

余弦相似度用 q·d/(||q||×||d||) 比较方向,能减弱绝对向量长度的影响,却不会自动解决长文、否定、权限、事实正确性或业务任务。零向量没有方向,不能硬算为零后悄悄进入排序;不同模型和版本形成不同坐标系,0.85 也不能跨空间直接比较。向量空间是站内检索、相似页审查和 RAG 的通用数学工具,但它不是 Google 已公开的网页排名公式,向量接近更不等于页面应合并或会获得同样排名。

01

表示选择定义维度含义

稀疏向量的维度可追溯到词项,便于解释贡献,却容易漏掉同义表达;稠密向量可连接训练中学到的语义关系,但单维通常不可解释,也可能压缩掉否定、数字和对象差异。

观察什么记录向量来源、维数、词表或模型版本、输入字段与最大长度,并用同义、否定、型号样本检查。
02

点积结合方向与尺度

未归一化点积同时受夹角和向量长度影响;若向量已 L2 归一化,点积等于余弦。索引或 API 声称使用 cosine 时仍要确认其是否自动归一化以及返回的是相似度还是距离。

观察什么对少量向量手算点积、范数和 cosine,并与库输出核对排序方向及数值范围。
03

余弦降低长度影响但保留表示偏差

余弦把两个向量长度除掉,关注方向一致性;若长文表示被模板词主导、关键段落被截断或整页平均掩盖差异,归一化不能恢复丢失信息。

观察什么比较整页与段落向量、原始与去模板文本、高中低相似度区间的人工任务标签。
04

阈值必须由任务校准

相似度阈值不是跨数据集常数。去重、聚类、候选召回的误报与漏报成本不同,应在本地标注集上画 precision-recall 或混淆矩阵,再由人工规则决定动作。

观察什么保存阈值版本、验证样本、假阳性/假阴性和人工复核结论,避免阈值自动删除内容。
03

关键概念

掌握术语之间的关系,才能迁移到不同网站、行业和工具。

01

稀疏向量

维度通常对应词项,大部分为零,可解释性强但对同义表达敏感。

02

稠密向量

低得多的连续维度由模型学习,可能连接语义近似表达,但单维通常难解释。

03

余弦相似度

点积除以两向量长度;需要处理零向量,并明确是否已做 L2 归一化。

04

完整示范

跟随一次“输入 → 分析 → 中间产物 → 结论”,看见专家是怎样做判断的。

WORKED EXAMPLE

三维稀疏向量的余弦比较

以下均为教学用合成数据。词项维度依次为[供应商, 准入, 解约],查询 q=[1,1,0];D1“供应商准入流程”向量=[2,1,0],D2“供应商准入与解约总览”=[1,1,1],D3 因全部词被停用规则误删而成为[0,0,0]。

前提与样例口径
  • 三维权重已由同一 tokenizer 和同一语料产生
  • 使用 cosine similarity,未加入字段或业务权重
  • 人工任务认为D1高度相关、D2部分相关、D3需要作为管道错误处理
  • 坐标仅演示数学,不代表 Google、真实 embedding 或网页排名分数
  1. 计算查询与 D1 的点积

    输入
    q=[1,1,0],D1=[2,1,0]。
    分析
    q·D1=1×2+1×1+0×0=3;||q||=sqrt(1²+1²)=sqrt2≈1.414,||D1||=sqrt(2²+1²)=sqrt5≈2.236。
    输出
    cos(q,D1)=3/(sqrt2×sqrt5)=3/sqrt10≈0.949。
  2. 计算 D2 并比较

    输入
    D2=[1,1,1]。
    分析
    q·D2=2;||D2||=sqrt3≈1.732;cos=2/(sqrt2×sqrt3)=2/sqrt6≈0.816。额外“解约”维度改变方向,因此低于D1。
    输出
    在该表示内,D1 的0.949高于D2的0.816,方向更贴近查询。
  3. 识别零向量边界

    输入
    D3=[0,0,0]。
    分析
    ||D3||=0,公式分母为0,余弦未定义。若代码强行填0,会隐藏停用词或分词配置已丢掉全文特征的事实。
    输出
    把D3送入异常队列,记录零向量率并修复预处理,不参与正常阈值决策。
  4. 用人工任务校准解释

    输入
    人工等级D1=3、D2=1;候选合并阈值暂定0.90。
    分析
    阈值会把D1判为近似,却不应据此直接合并;还需比较页面意图、独有事实、流量、链接和规范目标。D2虽低于阈值仍可能适合作为导航总览。
    输出
    相似度只生成复核候选,最终动作为保留D1、评估D2的导航角色并修复D3。
  5. 挑战表示而非追逐数字

    输入
    另一页面使用“vendor onboarding”且中文三维向量全零。
    分析
    当前词项空间无法表示跨语言同义,不是把阈值从0.90降到0.20就能可靠解决;需扩展词表、翻译、稠密或混合表示并重新标注评估。
    输出
    新增跨语言查询切片,比较增量 Recall、误合并率、延迟与人工复核成本。

结论:D1 与查询的余弦约0.949,D2约0.816,结果可由坐标复算;差异表示当前三维词项方向,不是客观语义真值。D3 的余弦未定义,暴露了输入管道问题。任何阈值都只应服务明确任务和本地标注。

迁移到真实项目:真实内容审查应同时保留向量版本、输入文本和人工决策。对稀疏与稠密表示分别抽查同义、否定、数字、实体和跨语言错误;只有当候选质量、误操作风险和人工成本共同达标,才把向量用于自动化更深的环节。

05

决策规则与证据边界

把“看到什么、意味着什么、下一步做什么”连起来,同时区分公开事实、实践推断和未知项。

信号解释行动限制
出现零向量或极低范数输入可能为空、被截断,或 tokenizer/停用规则删除了所有可用特征。停止正常相似度排序,检查源文本、语言、分词和模型覆盖,并监控零向量率。把未定义 cosine 默认为0会掩盖数据质量故障。
高相似候选在人工判断中属于相反任务共享主题压过否定、阶段或对象差异,表示不等于任务相关性。加入困难样本,测试分段、混合检索或重排,并把合并保留为人工决定。单纯提高阈值可能同时增加漏报,需看完整 precision-recall。
同一页面升级模型后 cosine 大幅变化坐标空间或归一化发生变化,旧阈值和历史分数不可直接沿用。重建索引,在固定验证集重新校准,并采用双跑与回滚。新旧向量通常不能混在同一索引中直接比较。
稀疏与稠密各自找回不同正确页面两种表示对精确词项与同义语义具有互补性。测试透明融合或查询路由,并记录候选来源和增量 Recall。融合扩大候选与成本,也可能引入更多错误,需要重排和过滤。
可确认
  • 给定同一坐标空间中的非零向量,点积、范数和余弦可精确复算。
  • 零向量使余弦分母为零;不同表示模型和版本产生不同坐标空间。
工作推断
  • 在本地标注集上高余弦可作为相似候选信号,但是否同一任务仍需验证。
  • 稀疏与稠密结果互补时,混合表示可能提高目标任务召回。
不要声称已知
  • Google 网页搜索使用哪些向量表示、查询路由、阈值或权重未完整公开。
  • 第三方向量分数无法直接换算成排名、内容质量或页面合并的正确性。
06

引导练习

先独立完成,再按提示修正,最后展开参考解法并用 0–4 级量规评分。

YOUR TURN

教学用合成数据:q=[1,0,1],A=[1,1,1],B=[2,0,2],C=[0,0,0]。请手算 q 与 A、B 的 cosine,处理C,并为“自动合并页面”设计比单一阈值更安全的流程。

给定材料

  • 公式卡:cos(q,d)=(q·d)/(||q||×||d||),范数为各坐标平方和开根号
  • 人工审查表:页面意图、独有事实、规范URL、自然流量、转化、链接与内容owner
需要提示时再展开
  1. B 是 q 的两倍,方向完全相同;想一想 cosine 是否关注绝对长度。
  2. C 的分母为0;不要把数学未定义悄悄解释为不相关。
完成后核对参考解法

q·A=2,||q||=sqrt2,||A||=sqrt3,所以cos(q,A)=2/sqrt6≈0.816。q·B=4,||B||=sqrt8=2sqrt2,因此cos(q,B)=4/(sqrt2×2sqrt2)=1;B虽长度是q的两倍,方向相同,余弦仍为1。C的范数为0,余弦未定义,应作为输入或预处理异常隔离。即使B达到1,也不能自动合并页面:先把相似度作为候选,再由人工核对查询任务、独有事实、版本、流量、外链与规范目标;在有代表性的正负样本上校准阈值,统计误合并和漏报,并要求可回滚。报告还应写明向量来源与版本,不能把该数值外推到另一模型或 Google 排名。

自评分量规

0 级未使用公式,或把C直接当作正常0分并自动删除页面。
1 级大致判断B更相似,但计算错误或忽略零向量。
2 级正确得到A约0.816、B为1,并识别C未定义。
3 级除计算正确外,还提出标注校准、人工复核与可回滚合并流程。
4 级进一步覆盖模型版本、跨空间不可比、误报漏报成本与任务切片。
07

真实项目实战

把理解变成一个可以检查、复核和复用的工作产物。

FIELD LAB

比较词法与语义的内容聚类

内容团队要合并 120 篇“供应商 onboarding”文章,但标题词汇差异大。

  1. 建立 TF-IDF 稀疏向量与指定 embedding 模型的稠密向量
  2. 分别计算 cosine 邻居并固定相似度候选数量
  3. 人工标注任务相同、主题相邻与不相关样本
  4. 检查两种表示在哪些同义、实体和否定案例上失败
  5. 以人工任务判断决定合并、互链或保留,不以阈值自动删除
需要交付双表示相似页面报告,含模型版本、阈值、人工决策和误差样本。

验收条件

  • 不跨模型比较原始 cosine 数值
  • 至少抽检高、中、低三个相似度区间
  • 合并决策考虑搜索任务、流量与转化,不由相似度单独驱动
08

诊断练习

目标不是猜中答案,而是提出竞争假设并选择能区分它们的证据。

SCENARIO

embedding 判定两个页面高度相似,但一个讲供应商准入,另一个讲供应商解约。

竞争假设

  1. 共享大量领域语义,模型未重视相反流程阶段
  2. 长文被整体嵌入,关键差异被平均
  3. 阈值在另一个数据集调定,不适合当前语料

应该检查的证据

  1. 段落级与整页向量结果
  2. 人工任务标签和混淆矩阵
  3. 模型卡、输入截断长度和版本

常见陷阱:按单一相似度阈值自动合并或删除业务页面。

完成后用本页决策规则复核
  1. 若观察到:出现零向量或极低范数
    应优先:停止正常相似度排序,检查源文本、语言、分词和模型覆盖,并监控零向量率。
    把未定义 cosine 默认为0会掩盖数据质量故障。
  2. 若观察到:高相似候选在人工判断中属于相反任务
    应优先:加入困难样本,测试分段、混合检索或重排,并把合并保留为人工决定。
    单纯提高阈值可能同时增加漏报,需看完整 precision-recall。
  3. 若观察到:同一页面升级模型后 cosine 大幅变化
    应优先:重建索引,在固定验证集重新校准,并采用双跑与回滚。
    新旧向量通常不能混在同一索引中直接比较。
  4. 若观察到:稀疏与稠密各自找回不同正确页面
    应优先:测试透明融合或查询路由,并记录候选来源和增量 Recall。
    融合扩大候选与成本,也可能引入更多错误,需要重排和过滤。
09

自测与误区

先口头回答,再展开检查。无法给出例外与证据,说明还没真正掌握。

你应该能回答

1. 每个向量维度或整体表示来自什么?

参考答案:稀疏 TF-IDF 向量的每个维度通常对应词表中的一个词项,坐标来自该文档的词项权重;稠密 embedding 的整体表示来自指定模型对输入文本的编码,单个维度通常没有稳定的人类语义。无论哪种,都要记录模型/词表版本、字段、tokenizer、截断、池化和归一化,否则“向量”无法审计。

为什么:表示来源定义了距离的含义,也决定同义、否定、长度和语言错误会如何出现。

2. 相似度对应词项重合还是模型语义?

参考答案:若维度是 TF-IDF 词项,余弦主要反映加权字面重合;若维度来自训练好的 encoder,它可能反映训练目标下的语义邻近,但仍会混淆相反任务、数字或实体。应通过词项贡献、模型卡和人工标注的错误样本判断,不能仅凭“用了 embedding”就把分数解释为真实语义。

为什么:相同的 cosine 公式作用在不同空间会衡量不同关系,数值本身不说明表示学到了什么。

3. 人工任务判断与向量结果冲突时如何处理?

参考答案:先复核输入是否完整、版本是否一致以及人工 rubric 是否明确;若人工能指出任务、否定、对象或独有事实差异,应以任务判断约束业务动作,把冲突样本写入挑战集,并调整切分、表示、混合或重排。相似度可以生成候选,不能独立决定删除、合并、canonical 或权限;改进后须在独立样本复评。

为什么:向量是有损表示,人工冲突往往揭示模型未编码的重要边界,也可能反过来暴露标签不一致,二者都需要证据化复核。

需要避开的误区

  • 所有向量都是 embedding
  • cosine 0.9 在任何模型里都代表同等语义
  • 向量接近就说明两页应合并
10

术语与复盘

用自己的话复述术语和结论;如果只能认出、不能解释,就还没有形成可调用的知识。

向量空间
用统一维度和坐标表示对象、从而能够计算距离或相似度的数学空间。
稀疏向量
大多数坐标为零、维度常对应明确词项的表示。
稠密向量
多数坐标非零、通常由模型学习的固定长度连续表示。
点积
对应坐标乘积之和,既受方向也可能受向量尺度影响。
L2 范数
各坐标平方和的平方根,用于衡量向量长度。
余弦相似度
点积除以两向量范数,比较方向;对零向量未定义。
阈值校准
依据本地标注和错误成本选择决策界线,而非沿用任意通用数字。

离开本页前记住

  1. 表示选择决定相似度究竟衡量词项还是模型学习关系。
  2. 余弦比较方向并减弱尺度影响,但不会恢复表示中丢失的信息。
  3. 零向量必须作为数据质量异常处理。
  4. 不同模型或版本的 cosine 数值不可直接比较。
  5. 相似度适合生成复核候选,不应独立触发页面删除或合并。
  6. 向量空间是通用 IR 工具,不是 Google 公开的网页排名公式。
11

资料与证据

优先采用官方和一手资料。实践材料用于补充工作方法,不替代机制证据。