为什么两句话用词差不多,意思却可能完全相反?

Embedding 与语义检索

约 12 分钟4 道小题

学完你能说清楚Embedding 把文字放进可比较的语义空间。

01学完这一课,你能做到什么

假设你要给一份研报找相似段落。把文字变成数字后,系统才能计算“像不像”;但数字相近不等于事实相同,也不等于回答一定正确。

学完这一课,你能:

  1. 说清词袋、N-gram、TF-IDF、Word2Vec 和现代 的关系;
  2. 用余弦相似度比较两个向量,并解释分数的边界;
  3. 识别否定词、数字、年份和别名导致的检索风险;
  4. 按任务、语言、维度、延迟和数据位置选择嵌入模型。

Embedding(嵌入)就是把文字编码成固定长度的数字向量。向量是检索用的表示,不是证据本身。

从文字到语义检索
  1. 1准备文本统一清洗和切分规则
  2. 2编码向量把问题和文档放进同一空间
  3. 3比较距离计算相似度并排序
  4. 4检查证据回到资料文字核对数字和口径

一句话记住向量是检索表示,不是事实本身。

02先把文字变成同一把尺子上的数值

最简单的办法是词袋:先建立共同词表,每个位置代表一个词,数值代表这个词出现了几次。比如比较公司简介或研报片段时,所有文本都必须使用同一套词表,否则同一个位置代表不同词,向量就不能比较。

中文通常需要分词,英文也要处理大小写、标点和词形。词袋只记录出现了什么、出现几次,不记录词在句子里的位置。

假设词表固定为“这个、程序、代码、太、乱、那个、规范、不”,两句话经统一分词后可以得到八维计数向量。重点不是背某一组数字,而是保留“第几个位置对应哪个词”。如果换了词表,原来的数字就失去含义。

一句话记住同一词表,向量才可比较。

03余弦相似度比较方向

余弦相似度看两个向量的方向是否一致,常用公式是 cos(A,B)=(A·B)/(‖A‖‖B‖)。点积是对应位置相乘再相加,向量长度是各分量平方和再开根号。

假设 A=(1,1,2,1,1,1,0,0),B=(1,1,1,0,1,2,1,1),点积为 7,两个长度的乘积为 √90,所以余弦约等于 0.738。这个分数表示在当前表示和当前模型下较接近,不是“语义正确率 73.8%”。

非零向量的余弦范围是 −1 到 1;同向为 1,正交为 0,反向为 −1。词频向量通常是非负的,所以多落在 0 到 1。空文本可能得到零向量,不能直接计算,要单独处理。

(1,1) 和 (2,2) 方向相同,余弦为 1,即使后者词更多。二维人物坐标也只能作为比喻:如果 J=(−0.4,0.8),人为设定的两个角色可能得到约 0.87 和 −0.2 的关系;真实嵌入的每一维通常没有这样直观的名字。

余弦相似度

cos(A,B)=(A·B)/(‖A‖‖B‖)

比较方向,不把文本长度直接当成相似度。

一句话记住相似度分数不是正确率。

04词袋为什么会读错否定

把“不规范”拆开后,词袋可能只看到“规范”和“不”各出现一次,却不知道“不”修饰的是哪一个对象。词序一变,句意可能改变,词频却不变。

N-gram(连续词组)用相邻词保留局部顺序:一元是单个词,二元是连续两个词,三元是连续三个词。它比单纯词袋多保留一些结构,但仍然无法完整理解长距离关系。

金融文本里的“不增长”“未盈利”“尚未扭亏”都可能改变结论,不能凭直觉把否定词删掉。停用词是对当前任务区分力很弱的常见词,不是所有常见词,也没有一份永远适用的清单。

表示方法的取舍
词袋

简单快速

记录词频,但容易忽略词序和否定关系。

N-gram

保留局部顺序

能识别部分词组,维度和稀疏程度也会增加。

一句话记住否定词不能不加判断地删除。

05TF-IDF 把稀有词凸显出来

TF 表示一个词在当前文本中出现得多不多,IDF 表示这个词在整个语料中稀不稀有。常见做法是把两者相乘:TF-IDF=TF×IDF。不同实现会使用不同的归一化、平滑和对数公式,使用时要记录配置。

如果西雅图的酒店描述几乎都有“Seattle”和“hotel”,它们区分力低;只有少数文本出现的服务词,可能更能帮助推荐相似酒店。

加入一元、二元、三元特征后,特征数可能达到 3329;152 篇文本就会形成 152×3329 的稀疏矩阵,因为每篇只用到少量特征。两两余弦可以得到 152×152 的相似关系。查询某家酒店时,要按自身 ID 排除它,再取 Top 10,不能机械删除排名第一项,因为重复描述可能并列,自身也不一定排在预期位置。

TF-IDF 是很有用的关键词检索基准。大规模场景不一定保存完整两两矩阵,也可以只计算当前查询与语料之间的分数。

TF-IDF 检查点
TF

文本内频率

当前片段里出现得多不多。

IDF

语料内稀有度

是不是几乎每份文本都有。

结果

按任务验收

不能只看分数,要检查 Top K 是否相关。

一句话记住常见词不一定有区分力。

06稠密嵌入表达学习到的特征

Embedding 可以把词、句子或其他对象表示成固定维度的向量。词袋和 TF-IDF 通常维度很大且大部分位置为 0,叫稀疏向量;稠密向量的维度较小,很多位置都有数值。

常见维度可以是 50、100、300,也可以是现代模型的 1024 或 4096。原始文本长短不同,仍然可以输出同一个维度。维度越大不代表效果一定越好,因为模型训练、语料、任务匹配和索引设置同样重要。

把向量看成“压缩后的任务表示”比较合适,但压缩可能丢掉数字、否定和细节。最终要用自己的检索问题集评测,而不是只看维度大小。

一句话记住高维不自动等于高质量。

07Word2Vec 怎样从邻居学习词向量

Word2Vec 用“预测邻居”这个任务学习词的表示。假设词表有 10000 个词,输入某个词的独热编码,隐藏层可以是 300 维;训练后,嵌入矩阵中对应词的一行就是它的向量。

Skip-gram 是用中心词预测上下文,CBOW 是用上下文预测中心词。窗口大小决定哪些词算邻居。文本自身提供训练信号,所以这属于自监督学习,不需要人工逐词标注语义。

苹果、香蕉和橘子常出现在“喜欢吃”附近,邻居分布相似,向量可能靠近;这不保证它们是同义词,反义词也可能共享很多上下文。king−man+woman 接近 queen、余弦约 0.85,只是某些语料和模型里的示例,不是语言规律,也可能携带偏见。

训练参数不能只看一个矩阵的大小。完整训练还涉及输入和输出参数,目标是更好预测上下文,不是逐字无损还资料文字本。

邻居预测学习表示
  1. 1中心词例如“苹果”
  2. 2上下文窗口观察附近词
  3. 3预测任务调整向量参数
  4. 4词向量相似上下文可能更接近

一句话记住相近来自上下文,不等于同义。

08小说练习能说明什么,不能说明什么

在一部小说上训练词向量,可以查询孙悟空、猪八戒、孙行者的近邻,也可以换用《三国演义》查询曹操的近邻。结果会受到分词、别名、语料大小、窗口、维度、训练轮数和随机种子影响。

小语料里人物频繁共同出现,可能产生很高的相似度。例如 100 维版本的示例分数约为 0.97、0.98,另一个较低维版本约为 0.924、0.928。高分可能反映共同出现,不代表模型真的理解人物关系。

做实验时要保存语料版本、分词字典、窗口、维度、训练轮数和随机种子。小说上学到的空间不能直接当作金融研报检索模型。

一句话记住高相似度也可能只是共同出现。

09现代句子嵌入怎样选择

实际 通常直接使用已经训练好的文本嵌入模型,可以本地运行,也可以调用 API。选择时不要只看一个总榜,要看它是否适合你的任务:中文和多语种能力、金融术语、最大输入长度、检索或重排评测、延迟、存储、许可、费用,以及文本是否会发送到云端。

BGE-M3、Qwen 的文本嵌入方向、Jina 等都可能成为候选,但模型名称、版本、维度和服务规则会变化。最可靠的办法是准备同一组问题,标出真正相关片段,再比较召回质量和耗时。

现代句子嵌入可能使用编码器、解码器或其他架构,并采用池化、对比学习等训练方法。不能把所有模型都理解成“生成模型最后一层”,也不能把词向量和句子向量混在同一个索引里。

选模型先看任务
效果

检索评测

同义问题、数字差异、年份差异和否定表达都要测。

约束

工程条件

看长度、延迟、内存、许可、费用和数据位置。

一句话记住模型要按任务评测,不按榜单盲选。

10维度、内存与套娃表示

向量存储量大致随维度线性增长。假设其他条件不变,从 768 维改成 1024 维,增加比例是 (1024−768)/768≈33.3%。如果效果只改善很少,额外内存和检索成本未必值得;如果召回明显变差,也不能为了省空间强行缩小。

Matryoshka(套娃)表示是专门训练出来的表示形式,使前 128、256、512、1024 等子维度也可能承担检索任务。只有模型明确支持时,才可以按指定维度使用,并遵循它要求的归一化方式。任意截断普通向量,不等于得到可用的低维模型;前面的维度也不是天然按重要性排序。

维度取舍
更高维

容量和成本增加

可能保留更多信息,但不保证任务效果更好。

可截断表示

需要专门训练

套娃模型才能按 128、256 等子维度可靠使用。

一句话记住只有支持套娃的模型才能安全截断。

11用一组小测试选择嵌入模型

先手算一组词频向量的余弦,再移动否定词的位置,观察词袋是否会给出相同表示。然后准备一组合法可用的公司简介或研报片段,建立 TF-IDF 一到三元基准,再换成兼容的句子嵌入。

测试至少包括:同义问题、数字不同、年份不同、否定表达和资料外问题。每个问题标记真正相关的片段,记录模型名和版本、输出维度、归一化方式、Top K 结果、召回质量与耗时。

换嵌入模型后要重建对应索引,不能把不同向量空间混在一起。最终选择的是在你的数据和问题上更可靠的方案,而不是维度最大或榜单最高的方案。

一句话记住用真实问题集比较召回质量。

检验
检验一下

4 道小题

全部答对,这一课就算真正读懂了。答错了会告诉你为什么。

01余弦相似度约为 0.738,最合适的解释是什么?
02为什么“不盈利”和“盈利”不能只靠词袋放心地区分?
03选择研报嵌入模型时,哪项做法更可靠?
04什么时候可以把向量截成前 256 维使用?
知识卡

这一课,浓缩成一张卡

学完可以保存或分享给朋友。保存成图片的功能会在下一版加上。

AI+金融投资训练营 · Embedding 与语义检索Embedding 在 RAG 里解决什么问题?

把问题和文档编码到同一语义空间,便于检索相近片段。

  • 同一空间
  • 比较相似度
  • 按任务评测
quant.jtxaionline.com
这一课的要点

记住这 5 句话

  1. 01词袋和 TF-IDF 是可解释的关键词表示,但可能忽略词序、否定和长距离关系。
  2. 02余弦相似度比较向量方向,分数不是正确率,也没有跨模型通用的阈值。
  3. 03Word2Vec 从邻居预测中学习词向量,相近反映上下文分布,不保证同义或无偏。
  4. 04现代 Embedding 要按语言、金融术语、任务评测、维度、延迟、费用和数据位置选择。
  5. 05维度越高不保证效果更好;套娃表示只能按模型明确支持的子维度使用。
完成这一课

完成这一课

读完讲义、答对小题,这一课就算学完了。

  • 读完讲义
  • 通过随堂自测

实验数据AI+金融投资训练营教学样本。固定教学样本

固定教学样本只用于解释量化研究方法,不代表任何真实标的未来表现,也不构成投资建议。