从小白到Embedding高手:BERT、T5、Qwen3和DeepSeek的嵌入技术全解
1. 什么是 Embedding?
1.1 基本概念
Embedding 就是把文字变成数字向量,让机器能理解“词语之间的关系”。
- 输入:离散的单词(如“猫”“狗”)
- 输出:连续的向量(如 [0.12, 0.88, -0.33,…])
目的:语义相似的词→向量距离更近。
1.2 为什么要用 Embedding?
- One-Hot 问题:
- “猫” = [1,0,0,0,…],“狗” = [0,1,0,0,…]
- 缺点:维度非常高(词表有多大,向量就有多长),且"猫"和"狗"完全无联系。
- Embedding 优势:
- 降维(一般 256~1024 维)。
- 表达语义关系:“猫” 和 “狗” 向量更接近,而"猫"和"汽车"距离远。
1.3 小白直觉类比
- 想象每个词是一个城市,Embedding 是它的经纬度。
- 距离近 → 意义相近。
2. 数学直觉
- 每个词对应一个向量
- ew∈Rd \mathbf{e}_w \in \mathbb{R}^d ew∈Rd
- 相似度:用余弦相似度衡量:
cosine(a,b)=a⋅b∥a∥ ∥b∥ \text{cosine}(\mathbf{a},\mathbf{b}) = \frac{\mathbf{a}\cdot\mathbf{b}}{\|\mathbf{a}\|\,\|\mathbf{b}\|} cosine(a,b)=∥a∥∥b∥a⋅b
- 范围:[-1,1],越接近1越相似。
小代码(PyTorch)
import torch
# 假设词表大小=5,维度=2
embedding = torch.nn.Embedding(5, 2)
ids = torch.tensor([0, 1, 2]) # "苹果", "香蕉", "公司"
print(embedding(ids))
输出:每个id对应一个2维向量。
3. Embedding技术演进
3.1 静态词向量(Word2Vec)
- 年份:2013
- 特点:
- 每个词固定一个向量,通过上下文窗口共现统计训练得到。
- 缺点:不能处理多义词(例如“苹果”是水果还是公司?)
- 应用:文本相似度、词义聚类、简单文本分类
Word2Vec 有两种主要架构-:
CBOW(Continuous Bag of Words)
目标:用上下文预测中心词。
示例:给定上下文 “I ___ reading a book”,预测空格中的词 “am”。
优点:训练速度快,适合大语料。
工作流程:
上下文词用 one-hot 编码表示。
投影到词向量空间(嵌入矩阵)。
对上下文向量取平均或加权求和。
用 softmax 预测中心词概率。
Skip-gram
目标:用中心词预测上下文词。
示例:给定词 “reading”,预测它前后若干词,例如 “I”, “a”, “book”。
优点:对低频词表现更好。
工作流程:
中心词 one-hot 编码。
投影到词向量空间。
预测上下文词的概率分布。
可以理解为:CBOW 重视上下文信息来预测词,Skip-gram 重视中心词来预测上下文。
3.2 BERT:上下文动态Embedding
- 年份:2018
- 亮点:
- 基于 Transformer 的双向编码,每个词向量会根据上下文变化。
- 嵌入由词嵌入 + 位置嵌入 + 段落嵌入组成,使用 WordPiece 分词。
- 应用:文本理解、问答、搜索、命名实体识别
- 补充:WordPiece 分词是一种子词级分词方法,原理是将词拆成更小的单位(子词),通过统计语料中字符或子词序列出现的频率,构建一个固定大小的子词词表。这样既能表示常见词,也能处理新词或罕见词,解决传统词级分词的词表过大和未登录词问题。举例:词 “unbelievable” 可以被拆成 un ##believ ##able,词 “p

最低0.47元/天 解锁文章
863

被折叠的 条评论
为什么被折叠?



