跳转到内容

11.2.1 表示学习路线图:用向量表达语义

表示学习关心的是:文本如何变成带语义的数字,而不仅仅是编号。

文本表示的历史可以理解为:从“认出词是谁”,逐步走向“理解词在当前语境里是什么意思”。

表示阶段能解决什么主要局限
one-hot / 词表 id区分不同 token 的身份看不出相似词接近
BoW / TF-IDF把文本变成传统模型可用特征,突出区分性词顺序和上下文弱
静态词向量相似词距离更近,适合相似度和迁移一词多义处理差
上下文化表示同一个词在不同句子里可以有不同向量需要更大模型和更多计算
语言模型表示用预测任务学习更广泛语言模式仍要配合任务定义、评估和安全边界

这就是为什么本节不只讲“怎么把文本转数字”,还要比较每种表示保留了什么、丢掉了什么。表示方式一变,分类、检索、RAG 和抽取的效果都会跟着变。

NLP 表示学习章节学习顺序图

Embedding 语义空间图

上下文向量对比图

这条路径从稀疏词身份,到词向量,到上下文向量,再到学习更广泛语言模式的语言模型。

vectors = {
"cat": [1.0, 0.8],
"dog": [0.9, 0.7],
"car": [0.1, 0.2],
}
def dot(a, b):
return sum(x * y for x, y in zip(a, b))
print("cat_dog:", round(dot(vectors["cat"], vectors["dog"]), 2))
print("cat_car:", round(dot(vectors["cat"], vectors["car"]), 2))

预期输出:

Terminal window
cat_dog: 1.46
cat_car: 0.26

这是玩具分数,但体现了核心思想:语义接近的文本,应该更容易被模型比较。

步骤阅读实操产出
1词向量解释语义接近等于向量接近
2上下文化表示解释同一个词为什么会有不同含义
3语言模型把表示学习连接到 next-token 或 masked prediction

如果你能比较稀疏特征、词向量和上下文向量,并解释表示质量为什么影响分类、检索和 RAG,就通过了本章。

检查思路与讲解
  1. 合格答案要从文本单元和输出类型说起:token、span、句子标签、序列、embedding 或生成文本。
  2. 证据应包含小样本、模型或 pipeline 选择、评价指标,以及至少一个被检查过的错误案例。
  3. 自检时要能区分预处理问题和模型问题,例如分词错误、标签歧义、数据不平衡或生成幻觉。

学完这一页,至少保留这张证据卡:

表示
BoW、TF-IDF、静态 embedding、上下文 embedding,或语言模型分数
比较
最近文本、相似度分数或下一 token/log-prob 风格输出
解释
该表示捕捉了什么,以及遗漏了什么
失败检查
一词多义、领域不匹配、文本过短、分词问题或语义漂移
期望产出
至少有一个意外结果的小型对比表