Embedding(嵌入/向量化)
将离散的符号(如单词、token)映射为连续的高维向量的技术。嵌入向量捕捉语义关系——含义相近的词在向量空间中距离更近。是所有神经网络处理文本的第一步。
Embedding(嵌入/向量化)
一句话理解
Embedding 就是给每个 token 分配一个高维数字向量,让计算机能用数学运算处理原本离散的文字符号。
为什么需要 Embedding
神经网络只能处理数字,不能直接处理"猫"、"狗"这样的文字。最简单的方法是 one-hot 编码——词表有 5 万个词,就用一个 5 万维的向量,只有对应位置是 1,其余全是 0。
问题是:
- 维度爆炸:词表越大向量越长,极其浪费
- 没有语义信息:"猫"和"狗"的 one-hot 向量之间的距离,跟"猫"和"飞机"完全一样——无法表达"猫和狗都是动物"这种语义关系
Embedding 的解法:用一个可学习的查找表,把每个 token 映射到一个低维稠密向量(如 768 维)。训练过程中,语义相近的词会自动聚到向量空间中相近的位置。
在 Transformer 中的位置
Embedding 是 Transformer 数据流的第一步:
Input=TokenEmbedding(x)+PositionalEncoding- 文本经过 Tokenization 变成 token ID 序列
- 每个 ID 通过 Embedding 层查表得到向量
- 加上位置编码后送入注意力层
直觉类比
类似于字典查询:给定一个"词条名",查表得到一组描述该词条含义的"属性值"。只不过这里的属性值是一组数字向量,且这张字典是模型在训练中自动学出来的。
关键特性
- 维度固定:不管词表多大,每个 token 的嵌入向量维度相同(如 768、1024、4096)
- 可学习:嵌入向量在训练过程中不断更新,最终自动编码语义关系
- 预训练价值:Word2Vec、GloVe 等早期工作证明,好的词嵌入本身就蕴含丰富的语言知识(如 "国王" - "男人" + "女人" ≈ "女王")
引用本术语的文章