TextRCNN、TextCNN、RNN…你都掌握了吗?一文总结文本分类必备经典模型(一)

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: TextRCNN、TextCNN、RNN…你都掌握了吗?一文总结文本分类必备经典模型(一)

机器之心专栏

本专栏由机器之心SOTA!模型资源站出品,每周日于机器之心公众号持续更新。 本专栏将逐一盘点自然语言处理、计算机视觉等领域下的常见任务,并对在这些任务上取得过 SOTA 的经典模型逐一详解。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。

本文将分 3 期进行连载,共介绍 20 文本分类任务上曾取得 SOTA 的经典模型。


  • 第 1 期:RAE、DAN、TextRCNN、Multi-task、DeepMoji、RNN-Capsule
  • 第 2 期:TextCNN、dcnn、XML-CNN、textCapsule、Bao et al.、AttentionXML
  • 第 3 期:ELMo、GPT、BERT、ALBERT、X-Transformer、LightXML、TextGCN、TensorGCN

您正在阅读的是其中的第 1 期。前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及 API 等资源。


本期收录模型速览

模型 SOTA!模型资源站收录情况 模型来源论文
RAE https://sota.jiqizhixin.com/models/models/c4afbfa6-a47f-4f7c-85fa-8b7ba8382f65
收录实现数量:1
Semi-Supervised Recursive Autoencoders for Predicting Sentiment Distributions
DAN https://sota.jiqizhixin.com/models/models/b7189fbd-871f-4e13-b4fd-fc9747efde11
收录实现数量:1
Deep Unordered Composition Rivals Syntactic Methods for Text Classification
TextRCNN https://sota.jiqizhixin.com/models/models/a5a82cbe-98b7-4f3d-87ae-f9fd59caa55e
收录实现数量:1
支持框架:TensorFlow
Recurrent Convolutional Neural Networks for Text Classification
Multi-task https://sota.jiqizhixin.com/models/models/351b1aba-c543-437a-8cf8-9b027c5c42b7
收录实现数量:1
支持框架:PyTorch
Recurrent Neural Network for Text Classification with Multi-Task Learning
DeepMoji https://sota.jiqizhixin.com/models/models/9f50abc9-d67e-483a-bb44-e10c3baeb327
收录实现数量:8
支持框架:TensorFlow、PyTorch、Keras
Using millions of emoji occurrences to learn any-domain representations for detecting sentiment, emotion and sarcasm
RNN-Capsule https://sota.jiqizhixin.com/models/models/f8cd1ed1-5ebe-42bf-8672-a1d2d9c1c97f
收录实现数量:1
支持框架:TensorFlow
Investigating Capsule Networks with Dynamic Routing for Text Classification


文本分类是自然语言处理中最基本、最经典的任务,大部分自然语言处理任务都可以看作是分类任务。近年来,深度学习在众多研究领域中获得了巨大的成功,如今,也成为了 NLP 领域的标配技术,广泛渗透入文本分类任务中。


与数字、图像不同,对文本的处理强调精细化的处理能力。传统的文本分类方法一般需要对输入模型的文本数据进行预处理,此外还需要通过人工标注的方法来获得良好的样本特征,然后使用经典的机器学习算法对其进行分类。类似的方法包括 NaiveBayes(NB)、K 近邻(KNN)、支持向量机 SVM 等。特征提取的水平对文本分类效果的影响甚至高于图像分类,而文本分类中的特征工程往往非常耗时且计算成本高。2010 年后,文本分类的方法逐渐过渡到深度学习模型。应用于文本分类的深度学习通过学习一系列的非线性变换模式将特征工程直接映射到输出,从而将特征工程集成到模型拟合过程中,一经应用就获得了巨大的成功。



与图像分类模型不同,文本分类模型一般不会采用堆叠模块、修改深度模型结构等方式去改进,更多则是通过引入其它技术手段改进模型效果,例如引入注意力机制、预训练、图神经网络、胶囊网络等。所以在介绍经典文本分类模型时,更多的是介绍为了解决文本分类中的哪一类具体问题,针对性的引入了哪些专门的技术 trick,以及这些引入的 trick 是如何与原有的经典架构融合的。


此外,NLP 领域中大量工作都聚焦于前端的词、语句、文本的处理或语义理解,目的是为下游的各类任务服务,当然也包括文本分类任务。为了更聚焦于文本分类模型,我们在这篇文章中只介绍专门的文本分类模型,其它 NLP 模型会放在后续的专题报告中介绍。最后,文本分类模型以 BERT 的出现明显呈现出两个不同的发展阶段,BERT 提出后(2019 年之后),单纯基于 RNN、CNN 改进的且效果比较突出的方法就比较少了。


一、ReNN


递归神经网络(Recursive Neural Network,ReNN)可以自动学习文本的语义,并自动学习语法树结构,而无需进行特征设计。ReNN 是最早期的应用于文本分类的深度学习模型。与传统模型相比,基于 ReNN 的模型提高了性能,并且由于排除了用于不同文本分类任务的特征设计,节省了人力成本。我们具体介绍 ReNN 中的 RAE 模型。


1.1 RAE


归自动编码器(Recursive AutoEncoder,RAE)被用来预测每个输入句子的情感标签分布,并学习多词短语的表述。在做文本分析时,依据词向量得到某一段文字的向量空间,然后逐层向上分析,继而得到整段文字的向量表示,对这个向量分析得到用户的情感。RAE 相关论文首次发表在 EMNLP 2011 中。图1给出了一个 RAE 模型的说明,该模型从无监督的文本中学习短语和完整句子的向量表示以及它们的层次结构。作者扩展了模型,在层次结构的每个节点上学习情感标签的分布。


图1. RAE 架构说明,RAE 学习短语的语义向量表示。词索引(橙色)首先被映射到语义向量空间(蓝色),然后,被同一个自动编码器网络递归地合并成一个固定长度的句子表示。每个节点的向量被用作预测情感标签分布的特征

半监督递归自动编码器(Semi-Supervised Recursive Autoencoders)

模型旨在为大小可变的短语在无监督&半监督的情况下寻找训练机制,这些词表征能用在后续任务中。本文首先介绍神经网络词表征,再提出一种基于autoencoder的递归模型,进而引入本文模型 RAE,以及 RAE 能学到短语、短语结构和情感分布联合表征原因。


1)神经词汇表征(Neural Word Representations)。首先将词表征为连续的向量。有两种方法,第一种方法是简单初始化每个词向量,通过一个高斯分布进行采样;第二种方法是通过无监督的方法进行词向量的预训练,这类模型能够在向量空间中学到词表征,通过梯度迭代词向量从他们共现的统计特征中捕获语法和语义信息。


2)传统递归自动编码器(Traditional Recursive Autoencoders)。传统的自动编码器作用是学习输入的表征,一般用于预给定的树结构,如图 2:


图2. 递归自动编码器在二进制树上的应用说明。没有填充的节点只用于计算重建误差。一个标准的自动编码器(方框内)在树的每个节点上都被重新使用


3)用于结构预测的无监督递归自动编码器(Unsupervised Recursive Autoencoder for Structure Prediction)。在没有给定输入结构的情况下,RAE 的目标是最小化子树中子节点对的重构误差,再通过贪心算法重构树结构。此外,作者还引入 Weighted Reconstruction 和 Length Normalization 以降低重构误差。

4)半监督的递归自动编码器(Semi-Supervised Recursive Autoencoders)。作者拓展了 RAE 用于半监督训练,去预测句子&短句级的目前分布 t。RAE 的优势之一在于树构建的每个节点都能关联到分布词向量表征,能被作为短语的特征表示。图 3 显示了一个半监督的 RAE 单元。


图3. 非终端树节点的 RAE 单元的图示。红色节点显示用于标签分布预测的有监督的 softmax 层


当前 SOTA!平台收录 RAE 共 1 个模型实现资源。


模型 SOTA!平台模型详情页
RAE 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/c4afbfa6-a47f-4f7c-85fa-8b7ba8382f65

二、MLP


多层感知器(MultiLayer Perceptron,MLP),有时被俗称为 "vanilla "神经网络,是一种简单的神经网络结构,用于自动捕捉特征。如图 4 所示,我们展示了一个三层的MLP 模型。它包含一个输入层,一个所有节点都有激活函数的隐藏层以及一个输出层。每个节点都用一定的权重𝑤𝑖连接。它将每个输入文本视为一个词袋,与传统模型相比,MLP 在许多文本分类基准上都取得了较好的性能。


图4. 三层MLP架构


2.1 DAN


论文 Deep Unordered Composition Rivals Syntactic Methods for Text Classification 提出了 NBOW (Neural Bag-of-Words) 模型和 DAN(Deep Averaging Networks) 模型。对比了深层无序组合方法 (Deep Unordered Composition) 和句法方法 (Syntactic Methods) 应用在文本分类任务中的优缺点,强调深层无序组合方法的有效性、效率以及灵活性。论文发表在 ACL 2015 中。

1)神经词袋模型(Neural Bag-of-Words Models)。论文首先提出了一个最简单的无序模型 Neural Bag-of-Words Models (NBOW model)。该模型直接将文本中所有词向量的平均值作为文本的表示,然后输入到 softmax 层。

2)考虑合成的语法问题(Considering Syntax for Composition)。探索更复杂的句法功能,以避免与 NBOW 模型相关的许多缺陷。具体包括:Recursive neural networks (RecNNs);考虑一些复杂的语言学现象,如否定、转折等 (优点);实现效果依赖输入序列(文本)的句法树(可能不适合长文本和不太规范的文本);引入卷积神经网络等。

3)提出了深度平均网络(DAN)。该网络在传统的 NBOW 模型的基础上叠加了非线性层,取得了与句法功能相当或更好的性能。

4)DropOut 提高了稳健性(Word Dropout Improves Robustness)。针对 DAN 模型,论文提出一种 word dropout 策略:在求平均词向量前,随机使得文本中的某些单词 (token) 失效。


图5. 两层DAN架构


当前 SOTA!平台收录 DAN 共 1 个模型实现资源。

模型 SOTA!平台模型详情页
DAN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/models/models/b7189fbd-871f-4e13-b4fd-fc9747efde11


相关文章
|
12月前
|
机器学习/深度学习 人工智能 搜索推荐
TextRCNN、TextCNN、RNN…你都掌握了吗?一文总结文本分类必备经典模型(二)
TextRCNN、TextCNN、RNN…你都掌握了吗?一文总结文本分类必备经典模型(一)
173 0
|
机器学习/深度学习 算法
【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比
【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比
159 0
【文本分类】基于BERT预训练模型的灾害推文分类方法、基于BERT和RNN的新闻文本分类对比
|
机器学习/深度学习
[译] RNN 循环神经网络系列 2:文本分类
本文讲的是[译] RNN 循环神经网络系列 2:文本分类,在第一篇文章中,我们看到了如何使用 TensorFlow 实现一个简单的 RNN 架构。现在我们将使用这些组件并将其应用到文本分类中去。主要的区别在于,我们不会像 CHAR-RNN 模型那样输入固定长度的序列,而是使用长度不同的序列。
4266 0
|
5月前
|
机器学习/深度学习 自然语言处理 TensorFlow
tensorflow循环神经网络(RNN)文本生成莎士比亚剧集
我们将使用 Andrej Karpathy 在《循环神经网络不合理的有效性》一文中提供的莎士比亚作品数据集。给定此数据中的一个字符序列 (“Shakespear”),训练一个模型以预测该序列的下一个字符(“e”)。通过重复调用该模型,可以生成更长的文本序列。
|
2天前
|
机器学习/深度学习 PyTorch TensorFlow
【Python机器学习专栏】循环神经网络(RNN)与LSTM详解
【4月更文挑战第30天】本文探讨了处理序列数据的关键模型——循环神经网络(RNN)及其优化版长短期记忆网络(LSTM)。RNN利用循环结构处理序列依赖,但遭遇梯度消失/爆炸问题。LSTM通过门控机制解决了这一问题,有效捕捉长距离依赖。在Python中,可使用深度学习框架如PyTorch实现LSTM。示例代码展示了如何定义和初始化一个简单的LSTM网络结构,强调了RNN和LSTM在序列任务中的应用价值。
|
8天前
|
机器学习/深度学习 数据可视化 网络架构
Matlab用深度学习循环神经网络RNN长短期记忆LSTM进行波形时间序列数据预测
Matlab用深度学习循环神经网络RNN长短期记忆LSTM进行波形时间序列数据预测
25 8
|
10天前
|
机器学习/深度学习 自然语言处理 TensorFlow
Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性
Python TensorFlow循环神经网络RNN-LSTM神经网络预测股票市场价格时间序列和MSE评估准确性
21 0
|
15天前
|
机器学习/深度学习 数据可视化 算法框架/工具
R语言深度学习KERAS循环神经网络(RNN)模型预测多输出变量时间序列
R语言深度学习KERAS循环神经网络(RNN)模型预测多输出变量时间序列
29 10
|
8月前
|
机器学习/深度学习 资源调度 自然语言处理
循环神经网络RNN完全解析:从基础理论到PyTorch实战1
循环神经网络RNN完全解析:从基础理论到PyTorch实战
257 0