摘要#
自然语言处理(NLP)是深度学习应用最为广泛的领域之一,其核心目标是让计算机能够理解、表示并生成自然语言文本。与图像或结构化数据不同,自然语言具有高度的歧义性、上下文依赖性以及强烈的语义抽象特征,这使得NLP任务在建模上更具挑战性。从早期基于规则的语言处理方法,到统计语言模型,再到如今基于神经网络与大规模预训练模型的方案,NLP经历了从“人工设计规则”到“数据驱动学习”的深刻转变。本章将围绕这一演进过程,系统介绍自然语言处理中的核心方法与经典模型,帮助读者建立从语言建模到序列生成的完整认知框架。
本章首先介绍自然语言处理的基本概念与语言模型的发展历程,分析基于规则、统计方法以及神经网络方法在建模思想上的差异,使读者理解语言建模从显式规则到概率建模再到表示学习的演进逻辑。在此基础上,将重点讲解词向量表示方法,包括 Word2Vec 的核心思想、CBOW 与 Skip-gram 模型结构,以及词向量训练与使用方法,使读者理解如何将离散词汇映射为连续语义空间中的向量表示。随后,本章将进一步介绍 GloVe 模型,从全局词共现矩阵的角度解释词向量学习机制,并结合实际应用说明词嵌入在文本任务中的重要作用。
在模型应用层面,本章将介绍 fastText 文本分类模型,分析其通过浅层网络实现高效文本表示学习的设计思想,并展示词向量在分类任务中的实际使用方式。同时,本章将深入讲解 Seq2Seq 序列到序列模型,系统分析其编码器-解码器结构以及搜索策略在生成任务中的作用,并进一步介绍序列模型的评价指标,如困惑度等,用于衡量语言模型质量。在机器翻译任务中,本章将以神经机器翻译(NMT)为例,展示 Seq2Seq 模型的完整应用流程。
在更高层次的模型增强方法中,本章将重点介绍注意力机制,分析其如何解决传统 RNN 在长序列建模中的信息衰减问题,并讲解 Bahdanau 与 Luong 等经典注意力结构。同时,将进一步介绍带注意力机制的 NMT 模型以及带注意力的 RNN 结构,说明注意力机制如何在不同任务中提升模型对关键上下文信息的捕捉能力。通过本章学习,读者将全面掌握自然语言处理中的核心表示方法与序列建模技术,并为后续 Transformer 与大模型时代的学习打下坚实基础。
本章内容
9.1 自然语言处理介绍
在本节内容中,我们首先介绍了自然语言处理出现的背景和目的;然后简单介绍了什么是语言模型以及语言模型的应用场景;最后以自然语言处理的技术发展为脉络分别介绍了基于规则的语言模型、基于统计的语言模型和基于神经网络的语言模型三者的基本概念和原理。
9.2 Word2Vec词向量
在9.1节内容中,我们详细梳理了自然语言处理发展时所经历的3个核心阶段,并且同时提到目前主流的是基于深度学习的语言模型。在本节内容中我们将会介绍第1种基于神经网络的将单词表示为连续向量的自然语言处理技术——Word2Vec。
9.3 Word2Vec训练与使用
Word2Vec训练与使用教程,介绍 CBOW、Skip-gram、负采样等训练思路,以及词向量的实际应用。
9.4 GloVe词向量
在9.2节内容中,我们详细介绍了Word2Vec中两训练词向量的模型CBOW和Skip-gram背后的思想与原理,即在固定窗口中通过中心词来预测上下文或上下文来预测中心词的思想来捕捉词与词之间的语义关系,从而学习得到词的向量表示。在接下来的 …
9.5 词向量的微调使用
在本节内容中,我们首先详细介绍了词嵌入层的原理和应用场景;然后介绍了如何基于PyTorch框架来完成两种策略下词嵌入层的使用;最后以GloVe词向量为例,介绍了如何在TextCNN模型中构建一个多通道的文本表示矩阵完成对影评数据MR的分类任 …
9.6 fastText网络
在9.2节和9.4节内容中我们分介绍了Word2Vec和GloVe这两种词向量模型的原理,可以发现它们有一个共同的特点就是都是以词为粒度来训练其对应的词向量。在接下来的这节内容中,我们将会介绍另外一种从此的形态学来训练词向量的模型。
9.7 Seq2Seq网络
在9.1节内容中,我们探讨了自然语言处理的核心概念,即理解与生成。其中,自然语言理解可以看作是自然语言生成的前置任务。在自然语言理解任务中,主要目标是对原始输入文本进行编码(Encode)操作,即将文本转换为特征向量表示,然再将其应用于文本 …
9.8 序列模型评价指标
在7.6节内容中我们首次接触了序列生成模型,并以准确率来作为序列生成的评价指标。虽然准确率在一定程度上能够评估模型的优劣,但是对于语言模型来说它并不是一个好的选择。例如对于翻译模型来说,生成的序列并不需要完全与目标序列一样对应,只需要在 …
9.9 NMT网络
在9.7节内容中,我们大致介绍了Seq2Seq架构的思想和基本原理,它通过编码器将源输入编码成一个固定维度的中间向量,然后再依靠解码器将这一中间向量解码成任务需要的目标序列。同时,这种序列到序列的网络架构也使得我们可以采用不同的网络模型来作 …
9.10 注意力机制
在9.9节内容中,解码器在解码时我们直接取了编码器最后一个时刻的输出进行循环解码,然而随着输入序列长度的增加这样的处理方式将会成为一种信息瓶颈( Information Bottleneck),即使得解码器无法记住和区分源序列中各个时刻的编 …
9.11 含注意力的NMT网络
在本节内容中,我们首先详细介绍了含注意力机制的NMT模型的整体结构;然后一步步介绍了如何在原有解码器的基础上实现包含注意力机制的解码过程。这里值得一提的是NMT模型仅仅只是作为利用深度学习来完成翻译任务的开山之作,其效果并没有达到一个可以产 …
9.12 含注意力的RNN网络
在本节内容中,我们首先引入了一种新场景下的注意力机制运用方法,并介绍了其出现的动机;然后我们详细介绍了整个模型的构建原理与过程;最后,我们基于TextRNN模型来实现了含注意力的RNN文本分类模型,并与原始的TextRNN的分类结果进行了对 …