
1. 项目概述一份来自山大的NLP复习笔记又到了期末季看着书架上那本厚厚的《自然语言处理导论》是不是感觉头都大了公式、模型、算法还有各种评估指标知识点又多又杂想复习都不知道从哪下手。这份笔记就是我当年在山东大学准备NLP课程考试时自己一个字一个字敲出来的“救命稻草”。它不是教材的简单摘抄而是我结合课堂重点、课后作业和历年真题梳理出的一套核心知识框架和解题思路。今天把它分享出来希望能帮到正在为NLP考试发愁的你或者任何想快速回顾NLP核心脉络的朋友。这份笔记的核心目标很明确高效复习直击考点。它不会面面俱到地覆盖NLP所有前沿而是聚焦于课程考核中最常出现的经典模型、基础算法和关键概念。我会用最直白的语言把那些看似复杂的原理讲清楚并附上我总结的记忆口诀、易错点辨析和典型例题的解题步骤。无论你是想考前突击还是想建立NLP的知识体系这份笔记都能提供一个清晰、实用的路线图。2. 复习笔记的整体架构与核心脉络一份好的复习笔记绝不是知识点的罗列而应该有自己的逻辑骨架。在整理这份笔记时我遵循了“从基础到应用从模型到实践”的递进思路将NLP的核心内容分成了几个清晰的模块。2.1 知识模块划分的逻辑我的笔记主要分为五大模块这也是大多数高校NLP课程的核心结构基础与资源这是所有NLP任务的基石。包括语言模型从N-gram到神经概率语言模型、词表示从One-hot到Word2Vec、GloVe。这部分的关键在于理解“如何用数学表示语言”以及不同表示方法的优劣和演进逻辑。文本分类与序列标注NLP最经典的两类任务。文本分类如情感分析会重点讲朴素贝叶斯、SVM以及TextCNN等经典模型序列标注如分词、词性标注、命名实体识别则深入剖析隐马尔可夫模型HMM和条件随机场CRF的核心思想、区别与联系。这部分是考试大题的重灾区。句法分析与语义分析理解语言的结构和含义。句法分析会介绍上下文无关文法CFG和依存句法分析的基本概念语义分析则涵盖词义消歧、语义角色标注SRL以及语义表示如AMR的初步概念。这部分概念性强需要理解其目标而非死记硬背公式。深度学习模型核心这是现代NLP的引擎。必须彻底搞懂循环神经网络RNN、长短期记忆网络LSTM、门控循环单元GRU的结构、前向/反向传播过程以及它们如何用于处理序列数据。注意力机制Attention是这里的重中之重要能从Encoder-Decoder框架的弊端引出Attention的必要性并理解其计算过程。预训练模型与前沿概览作为课程收尾需要了解从Word Embedding到Contextual Embedding的飞跃。Transformer的结构自注意力、前馈网络、层归一化、位置编码是核心考点。基于Transformer的BERT、GPT等模型的基本思想和主要创新点也需要掌握虽然不要求推导但要能说出它们解决了什么问题。这个架构的好处是当你复习到后面复杂的模型时可以随时回溯前面的基础概念形成知识网络。比如看到Transformer的自注意力就能联想到之前词向量的“表示”问题理解它如何实现了上下文相关的动态表示。2.2 重点与考点的提炼方法如何从几百页的教材和PPT里抓出重点我的经验是“三看”看课堂反复强调的老师花一节课讲推导的模型如HMM、CRF、LSTM一定是重点。看课后作业和编程题作业题和实验项目直接反映了需要掌握的应用能力。比如实现一个基于HMM的词性标注器或者用TextCNN做文本分类。看历年真题这是最直接的考纲。通过分析真题我发现计算题常出在语言模型概率计算、维特比算法解码、CRF的特征函数与概率计算、神经网络如LSTM某个时间步的推导。概念题常围绕不同模型的对比如HMM vs CRF, RNN vs LSTM、注意力机制的原理、Transformer的优缺点、Word2Vec的两种模型等。基于这“三看”我在笔记中会把核心公式、推导步骤、对比表格放在最醒目的位置并用“【考点】”、“【易混点】”等标签进行标注。注意不要试图整理一份“完美”的笔记。复习笔记的核心是“为你所用”。我的架构是一个参考你应该根据自己的薄弱环节进行调整比如在你不懂的地方增加更多图解和示例已经熟悉的地方则可以简略。3. 核心基础词表示与语言模型详解这一部分是NLP大厦的地基概念多且容易混淆必须扎实掌握。3.1 词表示从符号到向量的演进词表示的核心目标是让计算机能“计算”词语。最原始的方法是One-hot编码每个词是一个维度很高、大部分为0的向量。它的缺点是维度灾难、无法表示语义相似度任意两个词向量正交。Word2Vec是里程碑式的突破。它通过“一个词的上下文可以定义这个词”的分布式假设将词映射到低维稠密向量空间中。重点掌握两种模型CBOW连续词袋用上下文词预测中心词。训练速度快对高频词效果更好。Skip-gram用中心词预测上下文词。在低频词上表现更好更常用。它们的训练都是通过神经网络实际上结构很简单和负采样Negative Sampling或层次Softmax来优化。不需要死记公式但要理解负采样是如何通过简化计算来近似softmax的这是常考的点。Word2Vec得到的向量语义相似的词在空间中的距离会更近例如vector(‘国王’) - vector(‘男人’) vector(‘女人’) ≈ vector(‘女王’)。GloVe则是基于全局词-词共现矩阵进行分解结合了全局统计信息和局部上下文窗口的优点。理解其损失函数是如何基于共现概率比值设计的有助于记忆。实操心得比较Word2Vec和GloVe时可以这样记Word2Vec是“局部预测”起家GloVe是“全局统计”优化。在考试中如果问“如何获得词向量”要能按历史脉络简述One-hot - 分布式表示Word2Vec, GloVe - 上下文相关表示ELMo, BERT。3.2 语言模型计算一句话的可能性语言模型的任务是计算一个句子 $P(w_1, w_2, ..., w_m)$ 的概率。最经典的是N-gram模型。它基于马尔可夫假设即第n个词只依赖于前n-1个词。公式$P(w_i | w_1, ..., w_{i-1}) ≈ P(w_i | w_{i-n1}, ..., w_{i-1})$必须掌握平滑技术因为会遇到未登录词OOV和零概率问题。拉普拉斯平滑加一平滑是最基础的但要理解其缺点。古德-图灵估计和Katz回退、Kneser-Ney平滑是更高级的方法需要了解其核心思想是为了把概率量重新分配给未看见或低频的N-gram。神经概率语言模型如NNLM用神经网络通常是Embedding层隐藏层来直接学习词序列的概率分布。它虽然计算量大但避免了数据稀疏问题并且自动得到了词向量副产物。这是连接统计模型和神经网络模型的关键一环。关键计算题型给定一个小语料计算某个句子的Bigram或Trigram概率并可能需要使用平滑技术。解题步骤通常是先统计词频和N-gram频次构造条件概率表再代入句子计算联合概率连乘。4. 经典模型HMM、CRF与文本分类这部分是传统机器学习方法在NLP中的集大成者公式推导和模型比较是重中之重。4.1 隐马尔可夫模型HMM与维特比解码HMM用于序列标注它假设有一个看不见的状态序列如词性通过可见的观测序列如词语来推断。记住两个核心假设齐次马尔可夫性当前状态只依赖于前一状态和观测独立性当前观测只依赖于当前状态。HMM由三组参数 $\lambda (A, B, \pi)$ 定义状态转移概率矩阵 A$a_{ij} P(q_{t1}s_j | q_t s_i)$观测概率矩阵 B$b_j(k) P(o_t v_k | q_t s_j)$初始状态概率分布 $\pi$HMM要解决三个基本问题但序列标注主要用到解码问题给定观测序列O和模型λ求最可能的状态序列Q。这就是维特比算法Viterbi Algorithm的用武之地。它本质是一个动态规划算法一定要会手动推导。考试中常给一个小例子让你画出篱笆网络图并一步步计算每个节点的概率和回溯指针。维特比算法手动计算步骤初始化计算第一个时刻所有状态的初始概率 $\delta_1(i) \pi_i b_i(o_1)$。递推对每个时刻t1和每个状态j计算 $\delta_t(j) \max_{i} [\delta_{t-1}(i) a_{ij}] b_j(o_t)$并记录使该值最大的前驱状态 $\psi_t(j)$。终止找出最终时刻概率最大的状态 $q_T^* \arg\max_{i} \delta_T(i)$。回溯根据 $\psi$ 指针从 $q_T^*$ 向前回溯得到最优路径。4.2 条件随机场CRF与HMM的深刻对比CRF是判别式模型HMM是生成式模型。这个根本区别决定了它们的一切不同。我总结了一个对比表格来帮助记忆特性HMMCRF模型类型生成式模型判别式模型建模对象联合概率 P(O, Q)条件概率 P(Q|O)图结构有向图贝叶斯网络无向图马尔可夫随机场特征能力仅局部、单一特征当前观测灵活、全局、多样特征前后观测、词语形态等优点模型简单训练速度快特征设计灵活能容纳更多上下文信息通常效果更好缺点强独立性假设特征能力弱训练复杂计算量大CRF通过定义特征函数和权重来建模。全局归一化是CRF的一大特点它考虑了整个序列的所有可能状态路径避免了标签偏置问题这是MEMM的缺点。虽然CRF的公式看起来复杂但考试中更多是考查其思想CRF可以任意定义特征函数这些函数可以看当前状态、前后观测、甚至整个序列。例如可以定义一个特征函数“如果当前词是大写字母开头且当前标签是‘名词’则返回1否则为0”。这种灵活性是HMM不具备的。避坑技巧当题目要求比较HMM和CRF时不要只背表格。可以这样回答“对于类似词性标注的任务如果数据量小且特征简单HMM可能更快更稳定但如果需要利用丰富的上下文特征如词的前后缀、整个句子的关键词CRF的表达能力更强性能通常更优。在序列标注中CRF层常接在LSTM层后面利用LSTM提取的高级特征再由CRF进行全局标签解码这就是BiLSTM-CRF模型。”4.3 文本分类的经典模型演进文本分类是从朴素贝叶斯开始的。记住它的“朴素”之处在于条件独立性假设在给定类别下所有特征词相互独立。虽然这个假设很强但在文本分类中往往效果不错且计算效率高。支持向量机SVM在文本分类中曾长期占据主导地位。它的核心思想是寻找一个超平面使不同类别的样本间隔最大化。对于文本这样的高维稀疏数据线性SVM配合TF-IDF特征就非常有效。关键要理解核函数的作用将低维不可分的数据映射到高维使其线性可分。但在文本领域线性核通常就足够了。深度学习模型如TextCNN是必须掌握的。它用不同尺寸的一维卷积核在词向量序列上滑动提取n-gram特征然后通过池化层通常是最大池化得到固定长度的向量最后用全连接层分类。它的优点是能并行计算捕捉局部特征。常考画图画出Embedding层、卷积层、池化层和全连接层的结构。5. 深度学习核心RNN、LSTM与注意力机制进入深度学习部分理解“为什么”比记住公式更重要。5.1 RNN的困境与LSTM的救赎RNN的设计初衷是为了处理序列数据让网络具有“记忆”。其核心是循环结构当前时刻的隐藏状态 $h_t$ 由当前输入 $x_t$ 和上一时刻隐藏状态 $h_{t-1}$ 共同决定$h_t f(W_{xh}x_t W_{hh}h_{t-1} b)$。但RNN有两个致命问题梯度消失/爆炸误差在反向传播时需要连乘权重矩阵。当序列很长时梯度会指数级缩小消失或放大爆炸导致无法学习长距离依赖。短期记忆实际上RNN很难记住很久以前的信息。长短期记忆网络LSTM通过精巧的“门控”机制解决了这两个问题。LSTM单元有三个门遗忘门决定从细胞状态 $C_{t-1}$ 中丢弃哪些信息。输入门决定将哪些新信息存入细胞状态 $C_t$。输出门基于更新后的细胞状态决定输出什么到隐藏状态 $h_t$。细胞状态 $C_t$ 像一条“传送带”在整个链路上只进行线性操作加和乘使得梯度可以稳定流动从而缓解了梯度消失。门控循环单元GRU是LSTM的简化版将遗忘门和输入门合并为“更新门”并合并了细胞状态和隐藏状态参数更少训练更快效果通常与LSTM相当。实操心得在考试中画LSTM结构图时务必清晰标出三个门σ符号、细胞状态C和隐藏状态h的数据流向。一个常考的问题是“为什么LSTM能缓解梯度消失” 标准答案是因为细胞状态的更新主要是加法操作$C_t f_t \odot C_{t-1} i_t \odot \tilde{C}_t$梯度在反向传播时通过加法路径可以几乎无损耗地传递避免了连乘导致的指数衰减。5.2 注意力机制让模型学会“聚焦”注意力机制是NLP乃至整个深度学习领域的革命性思想。它的出现是为了解决Encoder-Decoder框架尤其是基于RNN的的瓶颈编码器需要将整个输入序列压缩成一个固定长度的上下文向量这会造成信息丢失特别是对于长序列。注意力机制的核心思想在解码的每一步不再只依赖同一个上下文向量而是让解码器“回头去看”编码器所有时刻的隐藏状态并动态地决定当前步应该更“关注”输入序列的哪些部分。这个关注程度就是“注意力权重”。计算注意力分为三步计算对齐分数用解码器当前时刻的隐藏状态 $s_t$ 与编码器所有时刻的隐藏状态 $h_i$ 分别计算一个分数score。常用方法有点积、加性concat后通过一个网络、缩放点积等。计算注意力权重将对齐分数通过softmax函数归一化得到权重分布 $\alpha_{ti}$。$\alpha_{ti}$ 表示解码第t步时对输入第i个词的关注程度。计算上下文向量将编码器隐藏状态按注意力权重加权求和得到当前步的动态上下文向量 $c_t \sum_i \alpha_{ti}h_i$。这个机制极大地提升了机器翻译、文本摘要等任务的性能。更重要的是注意力权重本身是可解释的我们可以可视化它看到模型在生成某个词时重点关注了输入文本的哪些词。6. 现代架构Transformer与预训练模型精要Transformer完全摒弃了RNN和CNN仅依赖自注意力机制和前馈神经网络实现了并行化计算和强大的长程依赖建模能力。6.1 Transformer架构核心拆解Transformer的编码器和解码器都由N个相同的层堆叠而成。每一层编码器包含两个子层多头自注意力层这是灵魂。它让序列中的每个词都能同时与序列中所有其他词进行交互直接计算它们之间的相关性从而捕获全局上下文信息。前馈神经网络层一个简单的全连接网络对每个位置的表示进行独立变换。每一子层外都包裹着残差连接和层归一化。残差连接缓解了深层网络的梯度消失问题层归一化则稳定了训练过程。自注意力Self-Attention的计算是重中之重。给定输入序列的矩阵表示X通过三个可学习的权重矩阵 $W^Q, W^K, W^V$ 得到查询Q、键K、值V三个矩阵。注意力分数的计算为$Attention(Q, K, V) softmax(\frac{QK^T}{\sqrt{d_k}})V$。其中$\sqrt{d_k}$ 是缩放因子防止点积结果过大导致softmax梯度太小。多头注意力就是将这个过程重复h次即h个头每个头学习在不同子空间下的注意力模式最后将结果拼接并线性变换。这增强了模型的表达能力。位置编码由于Transformer没有循环和卷积结构它需要显式地注入序列的顺序信息。通过正弦和余弦函数生成的位置编码矩阵与词向量相加为模型提供了位置线索。6.2 BERT与GPT预训练范式的代表理解了Transformer就能快速掌握BERT和GPT。BERT双向编码表示基于Transformer的编码器。它的核心预训练任务是掩码语言模型和下一句预测。通过随机遮盖输入中的一些词用[MASK]标记让模型根据上下文预测这些词从而学习到深层的双向语境表示。BERT在下游任务中通常只需在预训练好的模型后添加一个简单的任务层进行微调即可。GPT生成式预训练基于Transformer的解码器通常掩码了自注意力使其只能看到左侧上下文。它的核心是自回归语言模型即根据前面的词预测下一个词。这种训练方式使其天生适合文本生成任务。GPT通过在海量文本上预训练然后在特定任务上微调或通过提示工程来获得强大能力。考试要点对比BERT和GPT。关键区别在于注意力机制的方向性BERT是双向的编码器能看到整个上下文GPT是单向的解码器只能看到左侧上下文。因此BERT更擅长理解类任务如分类、问答GPT更擅长生成类任务。此外要能简述预训练-微调范式的优势利用海量无标注数据学习通用语言表示再用少量标注数据适配特定任务极大地降低了标注成本提升了模型性能。7. 复习策略与典型考题实战解析最后一部分我想分享一些具体的复习和应试技巧。7.1 高效复习时间线与记忆法对于NLP这种内容繁多的课程建议分三轮复习第一轮构建骨架快速通读教材和笔记的目录、大标题用思维导图画出整个知识体系。明确哪些是基础词表示、语言模型哪些是核心HMM/CRF、RNN/LSTM哪些是前沿Transformer、预训练模型。这一轮不求甚解但求有全局观。第二轮填充血肉深入每个章节搞懂每一个核心模型的动机、假设、原理、计算过程、优缺点。对于关键算法维特比、前向-后向、注意力计算一定要在纸上手动推导一遍。把容易混淆的概念如HMM vs CRF, RNN vs LSTM, BERT vs GPT做成对比卡片。第三轮实战与回顾集中做课后习题和历年真题。遇到不会的立刻回到对应章节巩固。考前最后一天不再看细节只回顾思维导图和自己整理的错题本、对比卡片。记忆技巧对于复杂的流程如LSTM的数据流可以编一个故事。比如“细胞状态C是长期记忆的传送带。遗忘门看门老头决定扔掉哪些旧记忆输入门新信息审核员和候选细胞状态新记忆素材决定加入哪些新记忆最后输出门发言人根据新的长期记忆决定对外隐藏状态h说什么。”7.2 典型计算题与概念题解题实录这里分析两道极具代表性的题目题目一计算题给定语料用Bigram模型计算句子“我爱自然语言处理”的概率并使用加一平滑。解题步骤统计语料中所有单词的出现次数以及所有Bigram对的出现次数。计算加一平滑后的条件概率$P(w_i|w_{i-1}) \frac{Count(w_{i-1}, w_i) 1}{Count(w_{i-1}) V}$其中V是词表大小。句子概率$P(我爱自然语言处理) P(我|) * P(爱|我) * P(自然|爱) * P(语言|自然) * P(处理|语言) * P(|处理)$。注意句首和句尾要加入开始符s和结束符/s。将步骤2中计算出的各个条件概率代入连乘。题目二概念题简述Transformer模型为何完全摒弃了RNN和CNN结构其优势是什么答题要点摒弃原因RNN无法并行计算训练慢且存在长程依赖问题CNN虽可并行但感受野有限需要多层堆叠才能捕获长距离信息。核心替代Transformer使用自注意力机制让序列中任意两个位置都能直接交互一步到位地捕获全局依赖关系。主要优势并行化能力自注意力计算可以矩阵化极大提升训练和推理速度。长程依赖建模直接计算所有位置对的关系不受距离限制。可解释性注意力权重可视化了模型关注的重点。扩展性为后续大规模预训练模型如BERT、GPT奠定了基础架构。在回答此类问题时采用“问题-解决方案-优势”的结构会让逻辑非常清晰。复习NLP就像在理解人类如何教会机器理解我们自己。这个过程充满了精巧的模型和深刻的数学思想。希望这份融合了我个人理解和应试经验的笔记能帮你拨开迷雾不仅通过考试更能体会到这门学科的魅力。最后别忘了动手实践哪怕只是用Python简单的几行代码复现一下N-gram的计算或者画一个LSTM的单元图都比单纯背诵要印象深刻得多。祝你复习顺利