跳至主要內容

NLP基础

pptg大约 2 分钟

1. 词表示

在NLP任务中,首先要考虑词如何在计算机中表示。

1.1 one-hot

one-hot根据词语的数量N,生成长度为N的序列,只需要在当前词的位置标记为1即可。

  • 缺点:
    • 维度灾难:词数量大,导致维度过大
    • 无法度量相似性:词之间的cos计算均为0
one hot
one hot

1.2 词向量

词向量用有限的维度,表示无限的词语。

评估词向量:人工评估,类比实验。国王-王后 = 男人-女人

img.png
img.png

词向量模型

2.1 word2vec

假设: 文本中离得越近的词语相似度越高。有两种计算方法,CBOWskip-gram

  • CBOW:用附近的词,预测中心词,类似完形填空,适合小数据集。
  • skip-gram:用中心词,预测周围的词,类似造句,适合大数据集。 通过规定窗口的大小,来计算中心词和周围词共同出现的概率,来生成词向量。

缺点

  • 没有考虑多义词:每个词语和词向量一一对应
  • 无法处理复杂任务:基于局部的上下文,无法捕捉长距离的依赖关系
  • 词向量是静态的:在不同的上下文中,词向量相同

2.2 ELMo(Embeddings from Language Models)

ELMo主要基于双向语言模型(Bidirectional Language Model, BiLM),其核心思想是:

  • 使用深度双向 LSTM 生成上下文相关的词向量。
  • 基于整个句子的上下文,动态调整每个单词的表示。
  • 可以与其他 NLP 任务模型结合,提高性能。
  • ELMo 不像 Word2Vec 那样为每个单词生成一个固定的词向量,而是根据上下文生成动态的表示。 img.png

2.3 BERT

2.4 多种词向量模型对比

模型架构词向量类型适合任务
Word2Vec静态固定适用于简单 NLP 任务
ELMo双向 LSTM动态(基于上下文)适用于语义复杂的任务
BERTTransformer动态更强,适用于所有 NLP 任务