本页是对 NLP1&词向量 至 NLP9&句法分析与树形递归神经网络 的总览,不替代各篇推导与例题。章节顺序大致对应从静态词表示 → 通用神经网络基础 → 句法结构 → 序列语言模型 → 编码器–解码器与注意力 → 应用(问答)→ 文本卷积 → 子词与指代 → 树结构网络的学习路径。
▸感性理解:NLP(1)–(9) 本质是“三问串联”
- 表示:离散符号怎么变成向量,才能参与梯度下降。
- 结构/组合:句子里“谁和谁有关”怎么进入模型(依存/树/递归)。
- 上下文:同一个词在不同位置为何语义不同(RNN、注意力、检索/生成)。
只要能回答这“三问分别对应哪种困惑”,就能把各章节读成一条主线。
一、词与上下文:从 n-gram 到分布式表示(NLP1)
核心问题
自然语言处理首先要回答:离散的词/符号如何进入可微、可学习的数值空间。早期离散式表示(one-hot 等)维度高、任意两个词等距,难以表达相似性;分布式表示用低维稠密向量承载语义,相似词在空间中接近。
n-gram 与平滑
n-gram 语言模型用前 $n-1$ 个词估计下一个词的概率,简单可解释,但受数据稀疏与指数级组合爆炸制约;需 smoothing(如加 $\delta$、回退)缓解零概率。n-gram 与词向量的对比要点:n-gram 是显式计数的局部共现,词向量则通过神经网络或矩阵分解在连续空间里压缩共现信息。
矩阵分解路线
共现矩阵 + SVD:由语料统计词与上下文(或词–词)共现,再对矩阵做低秩近似,得到词向量。思路清晰,但对高频词、长尾与矩阵规模敏感,工程上常由 Word2Vec / GloVe 等替代或衔接。
Word2Vec 与 GloVe
- Skip-gram(SG):以中心词预测上下文词,适合大语料、罕见词。
- CBOW:用上下文预测中心词,训练更快、对频繁词更稳。
- GloVe:显式利用全局共现统计与词向量内积的对应关系,与「计数再压缩」思路一脉相承。
评估与歧义
笔记区分内在评估(类比任务、向量空间可视化)与外在评估(下游任务增益)。一词多义需要上下文相关或多原型等扩展,否则单向量必然折中。
二、神经网络与训练套路(NLP2)
与 NLP1 的衔接
词向量层之后,分类/序列任务普遍归结为:嵌入 → 前向 → 损失 → 反向传播。本部分与深度学习通识课重叠,但在 NLP 笔记中强调合页损失、Dropout、梯度检查与优化器选择等落地细节。
反向传播与向量化
同一套数学,实现上分为单样本推导与批量向量化;后者是实际训练效率的关键。理解 $\frac{\partial L}{\partial W}$ 如何通过链式法则在层间传递,才能调试「梯度为 NaN、不更新」等问题。
正则化与优化
- Dropout:训练时随机丢弃,解释上近似模型集成。
- SGD / Momentum / Adam:在稀疏梯度、噪声大(文本 batch)时常用自适应方法;笔记中有超参数与动量的直观对照。
这一部分为后续 RNN、CNN、Seq2Seq 提供统一训练语言,避免在架构升级时重复踩坑。
三、句法结构 I:依存分析与转移解析(NLP3)
任务
依存分析将句子建成树(通常单根、投射或非投射依语言而定),边表示中心–依存关系(如 nsubj、dobj)。与「整句一个向量」不同,这里显式建模谁修饰谁。
转移系统
基于转移的解析器用状态机(栈、缓冲、已生成弧)与动作序列(移进、左弧、右弧等)逐步构建依存树。贪心确定性解析在每一步用分类器预测下一动作;特征是传统 NLP 时代的重点,神经解析器则用连续向量表示词、POS、位置等,再接 MLP/CNN 等打分。
与后面章节的联系
这里第一次系统出现「离散结构 + 神经网络打分」。到 NLP9 会再次遇到树,但对象扩展到成分树与 Tree-RNN;NLP5 的注意力则更多用于序列对齐,与依存是互补视角。
四、语言模型与循环网络(NLP4)
语言模型目标
给定前文,估计下一词(或子词)分布:$P(w_t \mid w_1,\ldots,w_{t-1})$。n-gram LM 可视为表格版;NNLM 用嵌入 + 前馈网络刻画更长上下文,但长度仍受固定窗口限制。
RNN 与变体
RNN 用隐状态汇总历史,权重在时间上共享,适合变长序列。双向 RNN 同时看左右上下文(编码用得多);多层 / 残差加深表达。LSTM / GRU 通过门控缓解长程依赖中的梯度消失,实践中 GRU 略简、LSTM 略强,依任务与调参而定。
局限性(笔记强调)
BPTT 上的梯度消失/爆炸、长序列计算不可并行(对比卷积与 Transformer),在 NLP5、NLP7 分别从注意力与局部卷积两条路缓解。
五、机器翻译:从 SMT 到 Seq2Seq 与注意力(NLP5)
脉络
规则 MT → 统计 MT(对齐、短语表)→ 神经 MT(端到端)。NMT 用 Seq2Seq:编码器读源句成上下文相关表示,解码器自回归生成目标词。
注意力
固定长度瓶颈向量难以处理长句;注意力让解码每一步动态检索编码器各位置的信息,形式为对键–值的加权求和(点积、加性、缩放点积等变体)。这是后来 Transformer 中 self-attention 的直接前驱(本系列笔记未单独成章,但逻辑上在此衔接)。
评估
BLEU 等基于 n-gram 重叠;生成任务还可看 PPL、BERTScore 等。笔记提醒:指标与人工判断并不总一致。
六、问答系统:阅读理解、开放域与 RAG(NLP6)
任务谱系
- 阅读理解式 QA:答案可抽取(span)或需推理;常见数据集驱动模型架构(编码问题–段落、多跳等)。
- 开放域 QA:需从大规模语料或网页中检索再阅读,引出 检索 + 阅读 流水线。
- RAG(检索增强生成):用外部知识库或非参数记忆补足参数模型,减轻幻觉、便于更新知识。
与 NLP5 相比:MT 是序列到序列生成;QA 常是在证据上定位或生成短答案,评价与错误分析也不同。
七、文本上的卷积神经网络(NLP7)
动机
RNN 逐步建模全局依赖但并行度差;一维卷积在固定窗口内提取 n-gram 模式,多层堆叠可扩大感受野,并行友好。
典型用法
词嵌入层后接多组卷积核(不同宽度)→ 池化(max / k-max)→ 全连接分类。适用于文本分类、匹配、序列标注(配合适当 padding 与结构)。笔记中有 CNN vs RNN vs Transformer 的对比表,可理解为归纳偏置与复杂度的权衡。
八、子词模型与指代消解(NLP8)
粒度
词级模型遇到未登录词、形态丰富语言时吃力。字符级与子词(BPE、WordPiece) 在词表大小、OOV、序列长度之间折中;FastText 等利用 n-gram 特征增强词级表示。
指代消解
Coreference 解决「哪些 mention 指向同一实体」:可先两两打分(mention pair)再聚类,或排序式选先行语。传统特征与神经模型在笔记中均有线索;与 NLP3/9 的句法可联合:句法有时帮助约束候选先行语范围。
九、句法结构 II:递归神经网络与 Tree-RNN(NLP9)
Recursive NN
与同构循环的 RNN 不同,递归网络按句法树的拓扑自底向上组合子节点向量,父节点由子节点经组合函数(矩阵–向量、张量积等)得到。SU-RNN、MV-RNN、RNTN 等变体在组合能力与参数量上取舍不同。
句法分析类型
- 成分句法:短语层级(NP、VP…),树为嵌套结构。
- 依存句法(与 NLP3 呼应):词之间弧关系。
Tree-RNN 显式利用短语结构,适合情感组合(如「not good」)等;但依赖外部 parser或联合学习,批处理与推断比线性模型麻烦。
与 Transformer 时代的关系
Tree-RNN 代表「结构先验写进网络」的路线;当前大模型更多用海量数据 + 自注意力隐式学结构,但理解递归形式仍有助于读早期文献与可解释性分析。
十一、强化版主线串联(把 NLP(1)–(9) 当成一条流水线)
这份总览现在可以把脑中的“零散知识”接成一条明确的数据流。可以用同一个问题反复追问:每一步在解决什么“矛盾”,以及下一步为什么必需。
1. 主线的三件事:表示、结构、上下文
- 表示(representation):离散符号怎么进网络。NLP1 处理的是从 n-gram/共现计数到连续词向量的表示;NLP8 处理的是词表大小/OOV 带来的表示问题(子词/字符/指代的粒度)。
- 结构(structure):句子内部关系怎么进模型。NLP3 是显式句法树(依存/解析);NLP9 是把树形组合“写进网络结构”的递归网络。
- 上下文(context):同一个词在不同位置为何语义会变。NLP4 是用 RNN 的隐状态汇总历史;NLP5 的注意力则是“每一步动态检索上下文”,从而把长句瓶颈前移并缓解固定长度瓶颈。
2. 用一个“贯穿式任务”示例跑通整条链条(机器翻译骨架)
以最典型的 Seq2Seq 机器翻译为例(同样的骨架也常见于摘要、对话生成)。
- 输入文本:分词/子词化(NLP8),把句子变成 token 序列 ${w_1,\ldots,w_T}$。
- 嵌入层:将每个 token 映射为向量 $\mathbf{e}_t$(NLP1/embedding)。
- 编码器(Encoder):把源句映射为表示(NLP4 的 RNN/GRU/LSTM;也可以用 NLP7 的文本 CNN 提取局部模式)。编码器输出通常是:
- 若用 RNN:每个时间步的隐状态 ${\mathbf{h}_1,\ldots,\mathbf{h}_T}$
- 若用 CNN:若干层的特征图(可再平铺成“键值”)
- 注意力与对齐(NLP5):解码器在生成第 $t$ 个目标 token 时,不再只依赖一个固定向量,而是计算每个源位置的重要性权重 $\alpha_{t,i}$,再得到上下文向量 $\mathbf{c}t=\sum_i \alpha{t,i}\mathbf{h}_i$。
- 解码器(Decoder)= 语言模型(NLP4):生成第 $t$ 步 token 的概率来自:
$$P(y_t\mid y_{<t},x)=\mathrm{softmax}(f(\mathbf{s}_t,\mathbf{c}_t)),$$
其中 $\mathbf{s}_t$ 是解码器的隐状态(RNN)或状态(更一般的结构)。 - 训练信号:最大化目标序列的对数似然,等价于各步交叉熵之和(NLP2 的训练套路)。
- 推断解码:用 greedy 或 beam search 选出概率最大的候选句子(NLP4 的“采样/解码”思想)。
3. 那句法(NLP3)与递归树(NLP9)在这里“插在哪”?
它们不一定是 Seq2Seq 的必需,但在想提升结构一致性、可解释性或处理特定组合现象时会被引入。常见插法是三类:
- 作为特征:把依存弧、POS、距离等作为额外输入特征,增强模型对“谁修饰谁”的偏好(NLP3)。
- 作为约束/结构先验:例如只在允许的树上组合,或对候选依赖结构做重打分(NLP3)。
- 直接改网络结构:用递归网络/Tree-RNN 自底向上组合短语向量,把句法树作为组合图(NLP9)。
理解这一点,就能回答:NLP3/9 不是另开新世界,而是在“结构与组合方式”上替换了 NLP4/NLP5 的默认线性展开。
十二、分步例题(用极简数值把关键公式“算一遍”)
下面例题的数值是为了演算而设定的“最小例子”,用来训练对公式的直觉;不是在复现某个论文结果。
例1:注意力 softmax 的一轮计算(对应 NLP5)
给定某一步解码器对 3 个源位置的打分(logit)为 $s_1=2,s_2=1,s_3=0$。注意力权重:
$$\alpha_i=\frac{e^{s_i}}{\sum_{j=1}^3 e^{s_j}}。$$
因此分母为 $e^2+e^1+e^0$,最大权重对应 $s_1$,且 $\alpha_1+\alpha_2+\alpha_3=1$。上下文向量
$$\mathbf{c}=\sum_{i=1}^3 \alpha_i\mathbf{h}_i$$
就是把不同源位置表示按“重要性”做凸组合。
要抓住的直觉是:注意力不是“硬选一个位置”而是“按概率混合位置”,所以端到端训练才可微。
例2:n-gram(含平滑)的一次概率计算(对应 NLP1)
以二元(bigram)模型为例,假设:
- 训练统计得到 $\mathrm{count}(w_{t-1}=\“I\“,w_t=\“like\“)=3$
- $\mathrm{count}(w_{t-1}=\“I\“)=10$
- 使用加一平滑(add-one):对词表大小 $|V|$ 记为 4(同样为示例)。
则
$$P(\text{like}\mid \text{I})=\frac{3+1}{10+|V|}=\frac{4}{14}。$$
要抓住的直觉是:平滑解决的是“某个二元组没出现导致概率为 0”带来的训练/推断崩塌问题。
例3:困惑度 PPL 与交叉熵的对应(对应 NLP4)
语言模型平均交叉熵为 $H$(以自然底 $e$ 表示)。困惑度定义为:
$$\mathrm{PPL}=e^{H}。$$
如果 $H=\ln 2$,则 $\mathrm{PPL}=e^{\ln 2}=2$。直觉上意味着:模型在下一步预测上,等价于“平均像从 2 个等可能候选里猜”。困惑度越小,模型越确定。
十三、把“串联逻辑”用一句话记住(自检清单)
在复盘时可以按下面顺序检查自己是否真的理解了串联,而不是只记住名词:
- 理解了为什么需要从离散 token 到连续表示(NLP1/8),以及表示的粒度如何影响 OOV 与上下文。
- 理解了为什么线性序列建模(NLP4)会遇到长程依赖/并行度问题,以及注意力如何绕开固定瓶颈(NLP5)。
- 理解了句法(NLP3)与递归树网络(NLP9)不是“替代注意力/RNN”,而是“替代结构先验/组合方式”。
- 能把任务类型(分类/序列标注/生成/问答)映射回对应章节:QA 为什么需要检索(NLP6)、文本 CNN 为什么是并行局部模式抽取(NLP7)。
如果以上 4 条都能用自己的话讲清楚,这份总览的“逻辑串联”就完成了。
十、总结与复习
NLP 九讲串联逻辑图
| 串联顺序 | 对应模块 |
|---|---|
| NLP1 | 表示层:词向量 · n-gram · Word2Vec/GloVe |
| NLP2 | 优化层:反向传播 · 正则 · 优化器 |
| NLP3 | 结构层:依存句法 · 转移解析 |
| NLP4 | 序列层:LM · RNN · LSTM/GRU |
| NLP5 | 对齐层:Seq2Seq · 注意力 · NMT |
| NLP6 | 应用层:问答 · 开放域 · RAG |
| NLP7 | 并行局部层:文本 CNN · 池化 |
| NLP8 | 粒度与指代:BPE · WordPiece · coref |
| NLP9 | 树结构层:Recursive NN · Tree-RNN |
串联顺序:NLP1 -> NLP2 -> NLP3 -> NLP4 -> NLP5 -> NLP6 -> NLP7 -> NLP8 -> NLP9
笔记篇目与主题对照
| 笔记文件 | 主题关键词 |
|---|---|
| NLP1&词向量 | n-gram、共现与 SVD、Word2Vec、GloVe、评估 |
| NLP2&神经网络与反向传播 | 神经元、反向传播、Dropout、优化算法 |
| NLP3&句法分析与依存解析 | 依存、转移解析、神经依存解析器 |
| NLP4&语言模型与RNN | NNLM、RNN、LSTM、GRU、BPTT 与梯度 |
| NLP5&机器翻译seq2seq注意力 | SMT/NMT、Seq2Seq、注意力、BLEU 等 |
| NLP6&问答系统 | 阅读理解、开放域、RAG |
| NLP7&卷积神经网络 | 文本 CNN、池化、分类/匹配 |
| NLP8&子词模型与指代消解问题 | BPE、WordPiece、指代消解 |
| NLP9&句法分析与树形递归神经网络 | Recursive NN、Tree-RNN、句法分析 |
三条主线(复习用)
| 主线 | 核心矛盾 | 在本系列中的体现 |
|---|---|---|
| 语义表示 | 离散符号 vs 可计算向量 | NLP1 词向量;NLP8 子词与字符 |
| 结构 | 线性序列 vs 句法树 | NLP3 依存;NLP9 成分与 Tree-RNN |
| 上下文依赖 | 局部共现 vs 长程依赖 | NLP4 RNN;NLP5 注意力;NLP7 卷积感受野 |
学习自检(可选)
- 词向量训练时,内在评估与外在评估各解决什么疑问?
- 依存分析的转移解析中,状态与动作如何对应到最终树?
- RNN 梯度消失与 LSTM 门控的因果关系能否用自己的话复述?
- Seq2Seq 无注意力的瓶颈在何处?注意力如何数值上缓解?
- 文本 CNN 与 RNN 各适合哪类归纳偏置?
- BPE 与 词级词表相比,训练与推理各带来什么变化?
- Tree-RNN 相比序列 RNN,多依赖了哪些外部信息?
以上问题均可直接在 NLP(1)–(9) 正文中找到对应小节,建议合上笔记用自己的推导或示意图回答一遍。


