CNN、GRNN、CLSTM、TD-LSTM/TC-LSTM…你都掌握了吗?一文总结情感分析必备经典模型(1)

本文涉及的产品
NLP自然语言处理_高级版,每接口累计50万次
NLP自然语言处理_基础版,每接口每天50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: CNN、GRNN、CLSTM、TD-LSTM/TC-LSTM…你都掌握了吗?一文总结情感分析必备经典模型


机器之心专栏

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

本文将分 3 期进行连载,共介绍 18 推荐系统任务上曾取得 SOTA 的经典模型。


  • 第 1 期:CNN、GRNN、CLSTM、TD-LSTM/TC-LSTM
  • 第 2 期:MemNet、AT-LSTM、IAN、AF-LSTM
  • 第 3 期:Bert on ABSA、ASGCN、GAN、Sentic GCN

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


本期收录模型速览

模型 SOTA!模型资源站收录情况 模型来源论文
CNN https://sota.jiqizhixin.com/project/textcnn
收录实现数量:6
支持框架:PyTorch,TensorFlow等
Convolutional Neural Networks for Sentence Classification
GRNN https://sota.jiqizhixin.com/project/grnn-2 Document modeling with gated recurrent neural network for sentiment classification
CLSTM https://sota.jiqizhixin.com/project/clstm Cached Long Short-Term Memory Neural Networks for Document-Level Sentiment Classification
TD-LSTM/TC-LSTM https://sota.jiqizhixin.com/project/td-lstm-2
收录实现数量:11
支持框架:PyTorch,TensorFlow等
Effective LSTMs for Target-Dependent Sentiment Classification


情感分析(sentiment analysis)是指利用计算机技术对文本、图像、音频、视频甚至跨模态的数据进行情绪挖掘与分析。广义上讲,情感分析还包括对观点、态度、倾向的分析等。情感分析是自然语言处理的一个重要的研究领域。情感分析主要涉及两个对象,即评价的对象(包括商品、服务、组织、个体、话题、问题、事件等)和对该对象的态度、情感等。情感分析在社会的舆情管理、商业决策、精准营销等领域有着广泛的应用。从情感分析的数据来源角度看,可分为人脸情感分析、语音情感分析、肢体语言情感分析、文本情感分析和生理模式情感分析等,本文聚焦于文本的情感分析,这也是目前网络内容理解中使用的重要技术(如无特别说明,下文中提到的情感分析均为文本情感分析)。

在自然语言处理中,情感分析属于典型的文本分类问题,即把需要进行情感分析的文本划分为其所属类别。主流的情感分析方法有两种:基于词典的方法和基于机器学习算法的方法。基于词典的方法主要通过制定一系列的情感词典和规则,拆解文本、提取关键词、计算情感值,最后通过情感值来作为文本的情感倾向判断依据。这种方法往往会忽略其词顺序、语法和句法,将这段文本仅仅看做是一个词集合,因此不能充分的表达文本语义信息。而引入深度学习技术的机器学习方法,利用词嵌入技术可以避免文字长短不均带来的处理困难;使用深度学习抽象特征,可以避免大量人工提取特征的工作;模拟词与词之间的联系,有局部特征抽象化和记忆功能,因此,深度学习技术在情感分析中发挥了越来越重要的作用。

目前情感分析用到的深度学习神经网络有多层神经网络(MLP)、卷积神经网络(CNN)和长短期记忆模型(LSTM),具体不同的模型通过交叉验证技术选取最优参数(比如,几层模型、每层节点数、Dropout 概率等)。情感分析的模型主要分为三个层面,分别为:Document level、Sentence level和Aspect level。其中,Document level是将整个文本作为分析单元并假设该文本讨论的对象为单一实体且情感、观点都是鲜明、清晰的,即neural、positive or negative 。Sentence level则是以每个句子作为单独的分析对象,由于句子与句子间可能存在某些关联,因此我们不能将其认为是观点明确的。而对于Aspect level其分类粒度更细,即我们需要抽取出targets不同层面相互独立的评价,并进行总结综合得到最后的情感。

本文回顾情感分析中必备的TOP模型。一些经典的自然语言处理领域的模型,例如XLNet、Bert及各种变体,适用于NLU、文本生成、情感分析等多个领域,本文均不涉及。本文只专注于专门的sentiment analysis模型。




一、Document level/Sentence level


1、 CNN

这篇文章引入卷积神经网络(CNN),将层与卷积滤波器应用于局部特征。最初发明用于计算机视觉的CNN模型后被证明对NLP有效,并在语义分析、搜索查询检索、句子建模和其他传统NLP任务中取得了优异的结果。本文训练了一个简单的CNN,在一个无监督的神经语言模型得到的单词向量的基础上再加上一层卷积,最初保持单词向量静态,只学习模型的其他参数。这个简单的模型在多个基准上取得了很好的结果,这表明预先训练的向量是“通用”的特征提取器,可以用于各种分类任务。通过微调学习特定于任务的向量,可以得到进一步的改进。最后,作者描述了对网络结构的一个简单修改,通过拥有多个通道,允许使用预先训练的和任务特定的向量。


图1 有两个通道的例句的模型结构


设xi ∈ Rk 为对应于句子中的第i个单词的k维词向量,句子长度为n,图1左侧是一个n*k的矩阵,表示一句话的n个词语,每个词语是一个k维向量,假设文本中最长的句子中的词个数为n,则 小于n 的句子填充为m。最终得到的词向量矩阵为 n * k。表示为:




其中,⊕是串联运算符。X_i:n为单词xi的串联(从第i个单词到第n个单词,把它们串联起来),卷积运算包含一个滤波器w∈R^hk,它被应用于单词h的窗口以生成一个新的特征。例如,特征c_i由单词x_i:i+h−1的窗口生成:



其中,b∈R是一个偏置项,w是权重,f是一个非线性函数。这个过滤器应用于句子{X_1:h, X_2:h+1, …, X_n-h+1:n}生成特征图:



然后在特征映射上应用max超时池化操作,并将最大值ˆc=max{c}作为与此对应的特征特殊过滤器。其思想是为每个特征映射捕获最重要的特征,即具有最高值的特征。这种池化方案可以处理可变的句子长度。

此外,本文在倒数第二层使用了dropout以解决过拟合问题,当模型参数太多而训练样本少的时候容易出现过拟合问题。


项目 SOTA!平台项目详情页
CNN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/textcnn


2、 GRNN

这篇文章引入了一个神经网络,以统一的、自底向上的方式来学习基于向量的文本表示方法。该模型首次使用CNN/LSTM来学习句子表示,利用Gated RNN自适应地对句子的语义及其之间关系进行编码。


图2 文本级情感分类的神经网络模型。(w_i)^n代表第n个句子中的第i个词,l_n是句子长度

词向量表示
词向量表示有两种实现方式:随机初始化或者预训练的方式。作者参考的是word2vec实现方案,并且用预训练词向量的方式以保留更多的语义信息。

句子表示
CNN和LSTM模型都可以用于句子编码。两种模型可以将非固定长度的句子表示成定长的向量,且不需依赖依存句法分析或者成分句法分析就能保留句子的词序等信息。作者在本文中使用CNN with multiple conventional filters of different widths的方式实现句子编码。作者在文章中分别使用宽度为1,2,3的卷积核去获取unigrams,bigrams和trigrams。为了得到句子的全局语义信息,作者随后接入一个average pooling layer,再接入tanh激活函数(作用是引入非线性),最后将整个句子的不同宽度卷积核的向量表示接入一个Average层,从而得到该句平均向量表示。整个过程如图3所示。


图3 使用卷积神经网络进行句子合成

篇章表示
一个最简单的实现策略是:忽略句间顺序,直接使用句向量的平均值作为该文本向量表示。先不考虑计算效率问题,这种方式并不能有效的保留句子之间复杂的语言关系(比如:原因结构,反义结构等)。CNN模型可以用来表示篇章,这种模型通过其线性层储存句间关系。RNN也可以实现,但基本的RNN模型存在缺陷:梯度消失或者梯度爆炸。在长句中问题就会凸显出来:梯度可能会呈指数级上升或者衰减,这就使得长距离依赖问题变得棘手。为了解决这个问题,作者将基本RNN改造成一种带有门控结构的RNN,这种方式类似于LSTM或者GNN,区别见下列转换函数:

该模型可以被看作是一个LSTM,它的输出门永远是打开的,因为我们更倾向于不抛弃句子的任何部分语义来获得更好的文本表示。图4(a)显示了一个标准的顺序方式,其中最后一个隐藏向量被视为情感分类的文本表示。我们可以做进一步的扩展,比如将隐性向量的平均值作为文本表示,这需要考虑具有不同颗粒度的历史语义的层次结构。该方法如图4(b)所示。进一步,可以以同样的方式使用前面的历史和后面的证据,并利用双向门控RNN作为计算工具。


图4 用门控递归神经网络进行文本文建模。GNN代表了门控递归神经网络的基本计算单元

组合的文本表示可以自然地被视为文本特征,用于情感分类而不需要特征工程。具体来说,首先添加一个线性层,将文本向量转化为实值向量,其长度为类号C。之后,添加一个softmax层,将实值转化为条件概率,其计算方式如下:



对于模型训练,作者使用黄金情感分布P^g(d)和预测的情感分布P(d)之间的交叉熵误差作为损失函数:



然后通过反向传播对整个参数集求损失函数的导数,使用随机梯度下降算法更新参数:


项目 SOTA!平台项目详情页
GRNN 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/grnn-2



相关文章
|
4月前
|
机器学习/深度学习 API 异构计算
7.1.3.2、使用飞桨实现基于LSTM的情感分析模型的网络定义
该文章详细介绍了如何使用飞桨框架实现基于LSTM的情感分析模型,包括网络定义、模型训练、评估和预测的完整流程,并提供了相应的代码实现。
|
4月前
|
机器学习/深度学习 自然语言处理 算法
7.1.3、使用飞桨实现基于LSTM的情感分析模型
该文章介绍了如何使用飞桨(PaddlePaddle)实现基于长短时记忆网络(LSTM)的情感分析模型,包括数据处理、网络定义、模型训练、评估和预测的详细步骤。
|
2月前
|
机器学习/深度学习 编解码 算法
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
【深度学习】经典的深度学习模型-01 开山之作:CNN卷积神经网络LeNet-5
43 0
|
3月前
|
机器学习/深度学习
ACM MM24:复旦提出首个基于扩散模型的视频非限制性对抗攻击框架,主流CNN和ViT架构都防不住它
【9月更文挑战第23天】复旦大学研究团队提出了ReToMe-VA,一种基于扩散模型的视频非限制性对抗攻击框架,通过时间步长对抗性潜在优化(TALO)与递归令牌合并(ReToMe)策略,实现了高转移性且难以察觉的对抗性视频生成。TALO优化去噪步骤扰动,提升空间难以察觉性及计算效率;ReToMe则确保时间一致性,增强帧间交互。实验表明,ReToMe-VA在攻击转移性上超越现有方法,但面临计算成本高、实时应用受限及隐私安全等挑战。[论文链接](http://arxiv.org/abs/2408.05479)
82 3
|
4月前
|
机器学习/深度学习
CNN模型验证和CNN模型保存
【8月更文挑战第10天】CNN模型验证和CNN模型保存。
68 27
|
4月前
|
机器学习/深度学习
加载CNN保存模型
【8月更文挑战第10天】加载CNN保存模型。
46 12
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
算法金 | 秒懂 AI - 深度学习五大模型:RNN、CNN、Transformer、BERT、GPT 简介
**RNN**,1986年提出,用于序列数据,如语言模型和语音识别,但原始模型有梯度消失问题。**LSTM**和**GRU**通过门控解决了此问题。 **CNN**,1989年引入,擅长图像处理,卷积层和池化层提取特征,经典应用包括图像分类和物体检测,如LeNet-5。 **Transformer**,2017年由Google推出,自注意力机制实现并行计算,优化了NLP效率,如机器翻译。 **BERT**,2018年Google的双向预训练模型,通过掩码语言模型改进上下文理解,适用于问答和文本分类。
163 9
|
4月前
|
机器学习/深度学习 算法 数据可视化
基于Python flask的豆瓣电影数据分析可视化系统,功能多,LSTM算法+注意力机制实现情感分析,准确率高达85%
本文介绍了一个基于Python Flask框架的豆瓣电影数据分析可视化系统,该系统集成了LSTM算法和注意力机制进行情感分析,准确率高达85%,提供了多样化的数据分析和情感识别功能,旨在帮助用户深入理解电影市场和观众喜好。
144 0
|
2月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真
本项目展示了基于贝叶斯优化(BO)的CNN-LSTM网络在数据分类中的应用。通过MATLAB 2022a实现,优化前后效果对比明显。核心代码附带中文注释和操作视频,涵盖BO、CNN、LSTM理论,特别是BO优化CNN-LSTM网络的batchsize和学习率,显著提升模型性能。
|
4月前
|
机器学习/深度学习
【机器学习】面试题:LSTM长短期记忆网络的理解?LSTM是怎么解决梯度消失的问题的?还有哪些其它的解决梯度消失或梯度爆炸的方法?
长短时记忆网络(LSTM)的基本概念、解决梯度消失问题的机制,以及介绍了包括梯度裁剪、改变激活函数、残差结构和Batch Normalization在内的其他方法来解决梯度消失或梯度爆炸问题。
180 2

热门文章

最新文章