

NLP基础学习笔记1
NLP的基础知识,包括基本概念、词嵌入、经典NLP模型(如Word2Vec、RNN、LSTM、GRU)、Transformer在NLP中的应用(如BERT、GPT)等内容。
自然语言处理#
1.Intro#
1.1.自然语言处理任务#
- 语言建模(Language Modeling):预测下一个词或填补句子中的空白。
- 机器翻译(Machine Translation):将文本从一种语言翻译成另一种语言。
- 情感分析(Sentiment Analysis):识别文本中的情感倾向。
- 命名实体识别(Named Entity Recognition, NER):识别文本中的实体,如人名、地名等。
- 问答系统(Question Answering):根据给定的问题从文本中提取答案。
1.2.自然语言处理发展#
自然语言处理的发展经历了从基于规则的方法到统计方法,再到深度学习的方法。早期的方法依赖于手工设计的规则和特征提取技术。随着统计方法的发展,基于概率模型的方法如隐马尔可夫模型(HMM)和条件随机场(CRF)被广泛应用。近年来,深度学习方法,特别是基于Transformer架构的方法,如BERT和GPT,显著提升了自然语言处理任务的性能。
2.词嵌入#
2.1.词袋模型(Bag of Words)#
词袋模型是一种简单的文本表示方法,将文本表示为词的无序集合,忽略了词的顺序和语法结构。每个文本被表示为一个向量,向量的每个维度对应一个词汇表中的词,值表示该词在文本中出现的频率或存在与否。
2.2.词向量(Word Embeddings)#
词向量是一种将词映射到连续向量空间的方法,捕捉词之间的语义关系。常见的词向量方法包括Word2Vec和GloVe。词向量通过训练神经网络模型,使得语义相似的词在向量空间中距离较近。
3.经典NLP模型#
注:此部分内容图片来自LSTM从入门到精通(形象的图解,详细的代码和注释,完美的数学推导过程) ↗和pytorch中LSTM参数详解(一张图帮你更好的理解每一个参数) ↗。
3.1.Word2Vec#
Word2Vec通过两种架构(CBOW和Skip-gram)来学习词向量。CBOW模型通过上下文词预测目标词,而Skip-gram模型通过目标词预测上下文词。
3.2 RNN#
3.2.1 RNN的结构#

对于中文分词任务而且,其中的代表中文的一个字,然后即代表BMES标签中的一个标签,代表RNN的隐藏状态。RNN通过循环连接来处理序列数据,能够捕捉序列中的时间依赖关系。然而,传统的RNN存在梯度消失和梯度爆炸问题,以及串行的运行方式,限制了其在长序列上的表现。
3.2.2 RNN的缺点#
(1)梯度消失与梯度爆炸问题
在训练过程中,RNN的梯度可能会随着时间步的增加而迅速变小(消失)或变大(爆炸),导致模型难以学习长距离依赖关系。而这个梯度消失和爆炸问题主要是由于RNN在反向传播过程中需要计算多个时间步的梯度乘积,

通过上图的推导可以看到,是一个指数函数,递增或递减的速度取决于权重矩阵的值。如果的值小于1,那么随着时间步的增加,会迅速趋近于0,导致梯度消失;如果的值大于1,那么随着时间步的增加,会迅速增大,导致梯度爆炸。
3.3 LSTM#
3.3.1 LSTM的结构#

LSTM的核心是引入了一个单独的记忆单元(Cell State)和三个门控机制,输入门(Input Gate)、遗忘门(Forget Gate)和输出门(Output Gate)。记忆单元能够在时间步之间传递信息,而门控机制则控制信息的流动,允许模型选择性地保留或丢弃信息,从而有效地捕捉长时间的依赖关系。
3.3.1 LSTM的Pytorch应用与结构对应#
3.4 GRU#
4.Transformer在自然语言处理中的应用#
4.1.BERT (Bidirectional Encoder Representations from Transformers)#
BERT使用双向Transformer编码器,通过掩码语言模型(Masked Language Model, MLM)和下一句预测(Next Sentence Prediction, NSP)任务进行预训练。BERT能够捕捉上下文信息,提高了多种NLP任务的性能。
4.2.GPT 1 (Generative Pre-trained Transformer)#
GPT使用单向Transformer解码器,通过自回归语言模型进行预训练。GPT在生成任务中表现出色,能够生成连贯且有意义的文本。