更新于 2026年7月7日

TextRNN#

术语解释#

TextRNN 并不是指某一个特定的模型,而是一系列以循环神经网络(RNN)结构为基础构建的文本分类模型的总称。 TextRNN 把文本序列逐字送入 RNN,把最后一个时刻的隐藏状态作为整个句子的表示,再接全连接层做分类。常见变体包括 BiLSTM+Attention、BiGRU 等,是深度学习文本分类的经典方法。

TextRNN网络结构图
TextRNN网络结构图

TextRNN 的核心思想是利用 RNN 结构对文本进行特征提取 。其典型的处理流程如下 :

  • 词嵌入层:将离散的词(通常是 One-hot 编码)映射为低维稠密的连续向量表示。
  • RNN 层:将嵌入后的序列输入循环神经网络,可以是原始 RNN,也可以是其变体如 LSTM、GRU 或 双向 RNN(BiRNN)。
  • 特征组合:从 RNN 的输出中提取特征,常见做法包括只取最后一个时刻的输出,或者取所有时刻输出的均值或总和。
  • 分类层:将提取的特征向量输入全连接层,通过 Softmax 函数完成分类。

出现动机#

  • 捕捉时序依赖:文本数据具有天然的时序性,一个词的含义往往依赖于其前后的上下文。传统的词袋模型等方法难以捕捉这种序列关系,而 RNN 的循环结构使得它能够将历史信息带入当前计算,具备处理时序数据的“记忆”功能。
  • 全局语义建模:相比于卷积神经网络(CNN)侧重于局部特征提取,RNN 的设计初衷是利用其固有的特性对整个序列进行全局特征提取

优点缺点#

  • 优点:
    • 擅长时序建模:能够有效捕捉文本序列中词与词之间的先后顺序和长距离依赖关系。
    • 理解上下文信息:通过隐藏状态的更新,模型能够根据上下文语境动态地对文本进行编码。
    • 结构灵活:可以根据任务需求灵活选择不同的记忆单元(如更擅长长程记忆的 LSTM 或更高效的 GRU)以及单向或双向结构。
  • 缺点:
    • 计算效率低(串行限制):RNN 的计算必须逐个时刻按序进行,下一个时刻的计算依赖于前一个时刻的结果,这种固有属性导致它无法实现并行化计算,训练和推理速度通常较慢。
    • 梯度消失/爆炸问题:在处理长文本时,标准 RNN 极易出现梯度消失或爆炸,导致模型难以学到距离较远的语义关联(虽然 LSTM 和 GRU 缓解了这一问题,但并未从根本上消除串行瓶颈)。
    • 信息瓶颈:如果仅仅取最后一个时刻的输出作为整个序列的表示,随着输入序列长度增加,模型可能无法记住和区分源序列中所有时刻的编码信息

相关术语#

  • TextCNN
  • CNN-RNN
阅读 --

8.2 TextRNN网络

在本节内容中,我们首先介绍了TextRNN的基本思想,即一系列以RNN模型为基础所构造的一类模型的总称;然后详细介绍了模型具体的构造原理;最后一步一步介绍了如何从零实现TextRNN模型,并同时进行了实验示例。

7.2 时序数据

时序数据建模入门,讲清什么是时序数据、RNN 适合处理哪些序列任务,以及典型应用场景。

8.1 TextCNN网络

在本节内容中,我们首先详细介绍了TextCNN的原理,其本质上可以看作是利用卷积操作来对序列数据进行局部特征提取的方法;然后简单介绍了分词的工具jieba的使用方法;最后介绍了如何一步一步实现TextCNN模型并在头条数据集上进行了测试。

8.3 CNN-RNN网络

在前面两节内容中,我们分别介绍了通过CNN和RNN来对文本数据进行特征提取的建模方法,前者是从序列局部的角度来捕捉文本序列前后之间的依赖关系,而后者则是利用了RNN固有的特性来对序列数据进行特征提取。总的来说两者各有优势,在提取特征方面有不 …