表示学习与向量直觉

本节目标

你将从 one-hot 的局限出发,理解“训练目标塑造向量空间”;区分静态词向量、上下文 token 表示、句子/文档向量与多模态向量;最后明确 Embedding 能做候选召回,却不能独立证明事实或授权。

为什么 one-hot 不够

假设词表有 个词,one-hot 为每个词分配一个长度为 的向量,其中只有一个位置是 1。不同词的点积都是 0:

所以“猫”和“狗”与“猫”和“数据库”在这种表示中同样不相似。向量还很稀疏,词表越大,存储与第一层参数越多。

Embedding 学习一个映射:

其中 往往远小于 one-hot 维度,且每一维通常都是非零浮点数。更重要的是,训练让某种关系在几何中可用:共享上下文、配对文本、类别、用户行为或图文对应等。

“靠近”的真正含义是:

在特定训练数据、训练目标、编码指令和相似度规则下,模型倾向把这两个输入放近。

它不是客观同义、事实一致或回答支持度的概率。

训练目标怎样塑造空间

上下文预测

word2vec 的核心直觉是:出现在相似上下文中的词,表示也可能相近。训练可以用中心词预测周围词,或用上下文预测中心词。最终得到每个词类型的静态向量。

对比学习

给模型正例对和负例,让正例更近、负例更远。正例可能是 query—相关 passage、同义句或图像—描述。负例如何选择非常重要:太容易的负例教不到细粒度边界;错误负例会把真实相关项推远。

蒸馏、分类与多任务

模型也可从更强模型分数蒸馏,或同时优化分类、聚类、检索等任务。多任务覆盖更广,但不保证你的领域术语、语言和查询分布被充分表示。

因此,不能只问“这个 embedding 模型多大”,还要问“它为了什么关系训练、模型卡要求怎样输入”。

四种常见层级

静态词向量

一个词类型只有一个向量。“苹果”无论指水果还是公司都相同,无法随上下文消歧。word2vec 适合建立直觉,但现代检索常用上下文模型。

上下文 token 表示

Transformer 中同一个 token 会因周围文本不同而得到不同隐藏状态。它解决部分多义问题,但一个序列会产生多个 token vectors,不自动等于高质量句向量。

句子或文档向量

需要把变长序列汇聚为一个固定向量,方法可能是特殊 token、mean pooling 或专门训练的 pooling。Sentence-BERT 原论文用孪生/三元组网络训练可高效比较的句子表示,说明“从任意生成模型取一个隐藏状态”不应被默认视为合格检索向量。

多模态向量

CLIP 等模型通过图文配对训练共同空间,使文本可以检索图像。只有模型明确训练并支持相应模态时,跨模态比较才有意义。两个模型输出维度一样,或一个模型都能接受两种输入,都不足以证明输出处于兼容共同空间。

Bi-encoder 与 reranker

Bi-encoder

Query 和 documents 分别编码:

文档向量可预先计算,查询时只编码一次并做大量快速点积/距离比较。这是语义召回的主要模式。

Cross-encoder / reranker

把 query 与一个 candidate document 一起输入,让模型直接建模二者交互。它通常更慢,无法预先为所有 query 缓存 document 交互结果,但适合对 bi-encoder 的 top-N 候选精排。

二者不是互斥竞品,而是常见两阶段系统:

  1. bi-encoder 快速扩大召回;
  2. metadata/关键词与向量候选合并;
  3. cross-encoder 或 LLM rerank;
  4. 在上下文预算内选择证据。

对称与非对称任务

  • 对称相似度:比较两个同类句子,例如重复问题检测。
  • 非对称检索:短 query 寻找较长 document,二者形式和目标不同。
  • 分类/聚类:关注样本间组织,不一定采用检索角色。
  • 跨模态检索:query 与 document 甚至不是同一模态。

一些模型用不同 encoder,一些用同一模型加 query/document prompt 或 task type;也有模型两种调用结果相同。必须遵循官方模型卡。Sentence Transformers 当前为检索推荐 encode_query() 与 encode_document(),但文档也说明没有专门 prompt/route 的模型可能得到相同结果。

几何直觉与边界

单维通常不可解释

若对整个空间做保持距离的旋转,检索排序可以不变,但每一维数值完全改变。因此“第 42 维表示法律”通常没有证据。要解释某一方向,需要专门探针或已知训练结构。

二维图会失真

PCA、t-SNE、UMAP 等把高维压到二维,必然丢失部分距离关系。图可帮助发现候选簇和离群点,但不能替代原空间的 Recall/MRR/nDCG。

高相似不是高置信概率

Cosine 0.8 不是“80% 相关”。分数分布依模型、领域、角色和归一化而变;阈值必须在开发集校准,新模型迁移后重做。

语义近不等于证据充分

“认证失败”和“认证失败不得重试”可能很近,但前者并不包含动作结论。Embedding 负责找候选;引用支持与完整条件仍要由 rerank、规则或回答评测确认。

RAG 中的典型失败

现象可能原因先做什么
专名、编号、错误码找不到训练偏语义,稀有 token 信号弱加关键词/混合检索与字段过滤
否定句排在肯定句旁边主题相近但极性区分不足加 hard negatives、rerank 与证据检查
短 query 找到泛化大段query/document 角色错误或 chunk 太大核对角色、前缀和 Chunking策略
中文明显弱于英文训练语言覆盖或语料不匹配做语言子组评测,换候选或领域适配
新旧数据结果忽高忽低空间混用、revision 漂移检查完整空间签名和索引版本
未授权内容出现在候选ACL 在召回后才过滤在检索层 fail-closed 过滤

练习

  1. 画出词表为 5 时“猫、狗、数据库”的 one-hot,解释为什么 one-hot 距离不能表达猫狗相近。
  2. 为“查找 API 超时配置”写一个 query、两个正例、一个容易负例和一个 hard negative;说明 hard negative 教会什么。
  3. 判断下列任务是对称还是非对称:重复问题、短问找长文、商品找同类商品、文字找图片。
  4. 找一个“主题相近但不能作为答案证据”的句对,解释为何 embedding 命中并不构成事实支持。
  5. 说明为什么两个 768 维模型的向量不能直接放进同一索引比较。

掌握检查

  • 我能从 one-hot 的稀疏与正交解释 embedding 的动机。
  • 我知道空间含义由训练数据、目标、输入角色与度量共同决定。
  • 我区分静态词、上下文 token、句子/文档和多模态向量。
  • 我能说明 bi-encoder 为什么适合召回、reranker 为什么更慢。
  • 我不会把单维、二维图或 cosine 分数过度解释。
  • 我把 embedding 当候选信号,而不是事实、权限或置信概率。

小结与下一步

理解表示的含义后,下一步不是立刻选榜单第一,而是把任务、角色、维度、度量、限制与成本写成候选契约:[[Knowledge/AI Agent Engineer/docs-CN/Embedding/02-模型维度与归一化选择|模型、维度与归一化选择]]。

参考资料

来源获取日期:2026-07-14。返回 [[Knowledge/AI Agent Engineer/docs-CN/Embedding/00-目录|Embedding 目录]]。