1. 维度与稀疏性
One-Hot编码
定义:每个词被表示为一个高维稀疏向量,维度等于词汇表大小。例如,词汇表有10,000个词,每个词对应一个10,000维的向量,其中仅有一个位置为1(表示当前词),其余为0。
缺点:
维度灾难:词汇表越大,向量维度越高,导致存储和计算成本激增。
稀疏性:向量中大部分元素为0,难以有效利用数据中的统计规律。
Embedding
定义:将词映射到一个低维稠密向量(如300维),所有元素均为实数。
优点:
低维稠密:显著降低计算复杂度,适合深度学习模型。
可学习性:向量值通过训练动态调整,捕捉词之间的语义关系。
2. 语义信息
One-Hot编码
无语义关联:所有词向量相互正交(点积为0),无法表达词之间的相似性。例如,“猫”和“狗”的One-Hot向量无任何关联。
Embedding
语义捕捉:通过训练,语义或语法相似的词在向量空间中距离更近。例如,“猫”和“狗”的向量可能在高维空间中邻近。
上下文感知:在Transformer等模型中,Embedding可结合位置编码,动态适应不同上下文(如“苹果”在“水果”和“公司”中的不同含义)。
3. 计算效率
One-Hot编码
矩阵运算低效:与神经网络权重矩阵相乘时(如全连接层),需要处理高维稀疏矩阵,计算资源浪费严重。
Embedding
高效计算:通过查表(Lookup Table)直接获取低维向量,避免了高维矩阵乘法。例如,词汇表索引i直接映射到嵌入矩阵的第i行。
4. 参数数量
One-Hot编码
参数爆炸:若词汇表大小为V,模型输入层到第一隐藏层的权重矩阵尺寸为V × H(H为隐藏层大小),当V=10^5时,参数数量极大。
Embedding
参数可控:嵌入矩阵尺寸为V × D(D为嵌入维度,通常D=300),参数量远小于One-Hot方案。例如,V=10^5, D=300时仅需3千万参数。
5. 应用场景
One-Hot编码
传统机器学习(如逻辑回归、SVM)中的简单特征表示。
类别型数据预处理(如标签编码)。
Embedding
几乎所有深度学习模型(如RNN、CNN、Transformer)的标配。
支持迁移学习(如复用预训练的Word2Vec、BERT嵌入)。
直观对比示例
One-Hot:
猫 → [0, 0, 1, 0, …, 0](10,000维)
狗 → [0, 1, 0, 0, …, 0](10,000维)
Embedding:
猫 → [0.2, -0.5, 1.3, …, 0.7](300维)
狗 → [0.3, -0.4, 1.1, …, 0.6](300维)
总结
特性 One-Hot编码 Embedding
维度 高维稀疏(V维) 低维稠密(D维,D≪V)
语义信息 无 可捕捉语义和语法关系
计算效率 低(稀疏矩阵运算) 高(直接查表)
参数数量 巨大(V×H) 较小(V×D)
主要用途 传统机器学习、简单分类 深度学习、语义相关任务
在大语言模型中,Embedding因其高效性和语义表达能力成为主流,而One-Hot编码仅在某些特定场景(如输出层的概率分布)中保留符号意义。