4.2 深度学习方法


4.2 深度学习方法

本节摘要:SOURCE 4.2 介绍 RNN/LSTM、TextCNN 与 Transformer 微调。本节按演化顺序说明各架构捕捉的模式,并给出选型建议。

你能学到什么

  1. 说明 CNN 在文本上捕捉 n-gram 模式
  2. 解释 LSTM 处理长依赖的优劣
  3. 对比 TextCNN 与 BERT 微调的数据需求

一、架构演化

架构 捕捉模式 典型时代
TextCNN 局部 n-gram 2015–2017
LSTM/GRU 序列依赖 2015–2018
Transformer 全局自注意力 2018+

二、TextCNN 概念结构

# 概念:多尺寸卷积核 = 多尺度 n-gram # conv1d(kernel=3) → bigram 模式 # conv1d(kernel=5) → 4-gram 模式 # max-over-time pooling → 固定长向量

SOURCE 4.2:Kim 2014 TextCNN 在多个基准上超越传统方法,是嵌入时代的代表。

三、Transformer 微调

预训练 BERT + 任务头在大数据上 SOTA;小数据可尝试 冻结底层只训分类头DistilBERT 蒸馏模型。

三、Transformer 微调

⚠️ 常见坑:LSTM batch 训练未 pad/pack——变长序列效率极差。

💡 关键直觉:CNN 看局部,LSTM 看顺序,Transformer 看全局——演化是能力递增。

本章回顾

  • TextCNN:多卷积核提取 n-gram
  • LSTM:序列建模,训练慢于 CNN
  • BERT 微调是当前高精度默认路线
  • 小数据可蒸馏/冻结层降过拟合

纵深:深度学习架构的工程落地

TextCNN 的直觉是「卷积核等于局部 n-gram 检测器」:kernel 大小 3 的卷积等价于检测 trigram 模式,大小 5 则对应 5-gram。多组不同尺寸的卷积核并行,相当于同时抓多种局部模式;max-over-time pooling 从每个特征图上取最大值,把变长输入压成固定长度向量。TextCNN 参数少、训练快,在嵌入时代是性价比之王,但它是「局部窗口」模型,抓不到长距离依赖——这正是 LSTM 存在的意义。

LSTM 用门控机制(输入门、遗忘门、输出门)沿序列逐步编码,能建模长距离依赖,但训练比 CNN 慢,且序列很长时首尾信息仍会稀释。工程上 LSTM 常用双向变体,把正反两个方向的隐状态拼接,捕捉「后面的词对当前词的影响」。处理变长序列时要打包或按桶排序加 pad,避免把大量填充 token 也送进计算,既浪费算力又引入噪声。

Transformer 用自注意力让任意两个位置直接交互,全局建模能力最强,但需要更多数据与算力。BERT 微调是当前高精度的默认路线;对短文本、类别明确的场景,TextCNN 往往能以十分之一的开销达到接近的水平。架构选型不应只看基准分数,还要看推理预算与标注量。

一个容易被低估的点是 embedding 初始化:TextCNN/LSTM 用随机初始化的嵌入层,在数据量不足时学不出语义;用预训练词向量初始化嵌入层,能显著加速收敛并提升效果。但注意预训练词向量的词表与分词粒度要匹配——你用的是 jieba 分词,预训练向量也应该是按同样粒度训练的,否则查不到表。嵌入层冻结与否取决于数据量:数据多可微调,数据少应冻结,防止梯度冲坏先验。

训练深度模型的实践清单:固定随机种子保证可复现;记录每次实验的架构、超参与验证分数,形成实验台账;用早停控制训练轮数;对类别不均衡加类别权重;对过拟合先降容量或加 Dropout,而不是盲目加数据。这些内容在第 4.3 节展开,但它们与架构选择是同时发生的,别把「选模型」和「训模型」拆成两个孤立的环节。

# 概念:TextCNN 的卷积核与池化 # conv1d(kernel=3, filters=128) → trigram 特征 # conv1d(kernel=5, filters=128) → 5-gram 特征 # max-over-time pooling → 每特征图取最大值 # concat + dense + softmax → 类别概率
架构 捕捉模式 训练成本 适用
TextCNN 局部 n-gram 短文本
BiLSTM 长距离依赖 序列建模
Transformer 全局交互 大数据

深度学习实验的复现清单

复现性是深度实验的基本要求,按下面清单逐项核对。

做法
随机种子 固定框架与库的种子
数据顺序 固定 shuffle 种子
框架版本 记录精确版本号
超参记录 写入实验日志

很多人「昨天跑出高分,今天却低一截」,原因往往是随机种子或数据打乱顺序变了。把复现清单固化成脚本模板,每次新建实验自动生成含版本号的配置,可大幅减少无效返工。第 4.3 节的训练策略与此处配合使用:先保证可复现,再谈调优。

常见失败模式速查

深度模型训练失败往往有固定的模式,对照排查能省很多时间。loss 不下降:先查学习率是否过高或过低,再查数据预处理是否有大量空样本;loss 震荡:减小 batch 或降低学习率;验证分数远低于训练:典型过拟合,加 Dropout、降容量或加正则;训练集分数就不高:特征或模型容量不足,回到表示层面。记录下每次失败的上下文,比记住结论更可靠——因为同样一句话背后的配置可能完全不同。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U