词嵌入是将自然语言中的词汇映射到低维稠密向量的技术,核心目标是让计算机通过向量空间中的距离(如余弦相似度)理解词语的语义和语法关系。例如,“国王-男人+女人≈女王”可体现向量对语义关系的捕捉。

传统模型(如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, GloVeBERT, ELMo