词嵌入是将自然语言中的词汇映射到低维稠密向量的技术,核心目标是让计算机通过向量空间中的距离(如余弦相似度)理解词语的语义和语法关系。例如,“国王-男人+女人≈女王”可体现向量对语义关系的捕捉。
传统模型(如Word2Vec、GloVe)生成静态词嵌入(每个词固定为一个向量),而现代模型(如BERT)生成动态词嵌入(同一词在不同上下文中有不同向量)。词嵌入是NLP的基础技术,广泛应用于机器翻译、情感分析等任务。
静态词嵌入 (Static Word Embedding)
特点
-
固定表示:每个词汇对应一个唯一的向量,与上下文无关。
-
预训练模型:通过大规模语料库预先训练,生成词向量后不可调整。
-
无法处理一词多义:例如,“苹果”在“水果”和“公司”上下文中共享同一向量。
常见模型
-
Word2Vec:通过CBOW或Skip-Gram模型学习词向量。
-
GloVe:基于全局词频统计与局部上下文窗口结合。
-
FastText:考虑子词(subword)信息,适合形态丰富的语言。
优点和缺点
-
优点
- 计算高效,适合轻量级任务。
- 训练和部署简单。
-
缺点
- 忽略上下文动态变化。
- 难以捕捉复杂语义。
应用场景
- 文本分类、基础情感分析等无需深度上下文的任务。
动态词嵌入 (Dynamic Word Embedding)
特点
-
上下文相关:同一词在不同语境中生成不同向量。
-
基于深度模型:通常使用Transformer等架构动态生成表示。
-
解决一词多义:例如,“bank”在“河岸”和“银行”中有不同向量。
常见模型
-
ELMo:双向LSTM生成多层上下文词表示。
-
BERT:基于Transformer编码器,掩码语言建模预训练。
-
RoBERTa/GPT:优化训练策略或生成式架构的动态嵌入。
优点和缺点
-
优点
- 语义表示更精准。
- 支持复杂NLP任务。
-
缺点
- 计算资源消耗大。
- 模型复杂度高,推理速度慢。
应用场景
- 机器翻译、问答系统、语义消歧等需深度理解的任务。
核心区别
| 维度 | 静态词嵌入 | 动态词嵌入 |
|---|---|---|
| 上下文感知 | ❌ 固定向量 | ✅ 动态生成 |
| 训练方式 | 无监督预训练,独立于任务 | 预训练+微调,任务导向 |
| 计算效率 | ⚡ 高 | ⚡ 低(需实时计算) |
| 典型模型 | Word2Vec, GloVe | BERT, ELMo |