基于序列卷积网络的Twitter情感分类

2020-05-22 12:32孙盼盼李大舟于广宝张奥南
计算机工程与设计 2020年5期
关键词:残差卷积向量

高 巍,孙盼盼,李大舟,张 宇,于广宝,张奥南

(沈阳化工大学 计算机科学与技术学院,辽宁 沈阳 110142)

0 引 言

Twitter是全球互联网访问量最大的十大网站之一,允许用户随时发布自己的最新动态和想法,成为热点舆情产生、传播的重要源地。对Twitter情感分析,有助于研究者及时了解舆情信息[1]。由于Twitter内容有别于传统文本,其内容通常不遵循语法句法特性,特征向量稀疏、上下文语境依赖性强。所以,传统分类方法(比如KNN、贝叶斯、最大熵方法和支持向量机(SVM)等)对Twitter短文本进行分类无法达到较高的准确度[2-4]。近年来,深度学习在处理文本分类问题中得到广泛应用[5-8]。其中,循环神经网络(RNN)被视为处理文本等序列性问题的默认配置,但利用RNN存在梯度消失和爆炸等问题。虽然RNN中的长短时记忆(LSTM)[9,10]利用门控装置解决文本分类问题,具有更强的记忆能力,但也无法记得全部历史信息。这使得很多研究者将卷积神经网络(CNN)应用到文本处理等序列建模问题中[11-14],卷积神经网络具有善于获取局部敏感信息、特征提取速度快、参数少、网络结构简单等特点。基于以上问题,本文提出一种基于序列卷积神经网络的分类模型。利用该模型对Twitter文本数据进行情感分类可以学习文本的静态特征,获取临近单词间的关联信息,有效提高了分类的准确性。

1 序列卷积网络

序列卷积网络是在时间卷积网络(TCN)思想的基础上[15],将一维因果卷积和扩张卷积结合作为神经网络的卷积层,每次卷积对数据进行批标准化以克服神经网络层数加深导致的模型难以训练问题,然后使用PReLU函数对其进行激活,并利用残差模块在每两个这样的卷积层与恒等映射中堆叠起一个深度网络,使用卷积层代替最后的全连接层,构建完整的全卷积神经网络。

1.1 因果卷积

为了用卷积网络的思想解决时序性问题,本文提出的序列卷积模型应用了因果卷积[16]。因果卷积只能对过去时间的输入进行运算,即因果卷积的输出仅与当前(t时间点)与过去(0到t-1时间点)的输入有关,不涉及到未来(t+1时间点)的信息。根据一个已知序列出现的先后顺序判断未来的t+1时间点上什么出现的可能性更高,设定输入序列为x0,x1,x2,…,xt,t时间点的输出为Yt,那么就有

Yt=f(x0,x1,x2…xt)

(1)

在训练过程中,所有过去时间步的卷积预测可以并行化,因为它们的输入和标注真值都是已知的,所以这相对于循环神经网络在训练上有非常大的优势。

1.2 扩张卷积

由于使用因果卷积需要非常多的层级数或较大的卷积核来扩宽感受野,而构建长期记忆就必须要较大的感受野,而扩宽感受野就会增加计算量。此外,如果将一般卷积运算的步幅增大也可以增加感受野,但当卷积步幅大于1时就会起到降采样的效果,这样输出序列的长度会减小。为了在不影响输出序列并且不加大计算量的情况下扩展感受野,本文提出的序列卷积网络使用扩张卷积[17]增加数个量级的感受野。扩张卷积在保持输入不变的情况下,向卷积核中添加值为零的权重,从而增加观察序列长度,以指数速度扩大感受野且不会降低特征的大小。形式上,对于一维的输入序列x∈Rn和卷积核f∶{0,…k-1}→R,对序列中元素s的扩张卷积运算F可以定义为

(2)

其中,d为扩张系数、k为卷积核大小,s-d·i表示采用上层哪一个单元。扩张系数控制两个卷积核之间插入多少零值,当d=1时,空洞卷积就会降为一般的卷积运算。较大的扩张系数使输出神经元表征更大范围的输入,有效扩宽感受野。

扩张卷积感受野指数级计算的公式如下:记F0,F1,…Fn-1∶Z2→R为离散函数,k0,k1,…kn-2∶Ω→R是离散的3*3filters,采用指数增长扩张的filters后

Fi+1=Fi*2ikifori=0,1,2,…,n-2

(3)

定义Fi+1中的元素p的感受野为:F0中可以改变Fi+1(p) 值的元素集Fi+1中p的感受野的大小即为这些元素集的数目。由此可见Fi+1中各元素的感受野大小为

(2i+2-1)*(2i+2-1)

(4)

即,感受野为指数增长的平方。

一般在使用扩张卷积时,深度将随着网络深度i的增加而指数级地增加。这可以确保卷积核在有效历史信息中覆盖更多的输入序列,同样也可以确保使用深度网络能产生很长的有效历史信息。因果卷积结合扩张卷积的效果如图1所示(扩张系数d=1,2,4,8,卷积核大小k=2,感受野能覆盖输入序列中的所有值)。

图1 因果卷积结合扩张卷积效果

如图1所示,序列卷积网络的一维卷积的卷积核大小为2,第一层使用的dilation为1,即常规的卷积运算。而后面层级的扩张大小依次加大,常规卷积只能从右到左观察到5个输入数据,而扩张卷积可以观察到所有16个输入数据。

1.3 残差模块

由于序列卷积网络的感受野取决于网络深度n、卷积核大k和扩张系数d,因此更深的网络需要更强的稳定性。为此本文使用残差模块来加深卷积网络。残差模块使用全等映射直接将前一层输出传到后面,使数据流可以跨层流动。标准残差模块结构如图2所示。假设神经网络的输入x,期望输出为H(x),输出结果利用残差模块直接把输入x传到输出,则有

H(x)=Activation(x+F(x))

(5)

残差模块能够有效消除因为层数增加导致的训练集上误差增大的现象。由图2可以看出,残差模块的输出结合了输入信息与残差内部运算的信息,这种残差连接可以表示深层网络的准确度至少不能低于浅层网络。

图2 标准残差模块结构

序列卷积在每个残差模块内使用两层扩张和因果卷积,由于序列卷积的残差模块内输入与输出有不同的维度,因此使用额外的1×1卷积来确保F(x)与x间对应像素相加有相同的维度。

1.4 批标准化

序列卷积网络利用残差模块堆叠起一个深度网络,随着神经网络层数加深,在训练过程中,每个隐藏层都会面临输入变化较大难以训练的问题。批标准化是对于每个隐藏层神经元,把逐渐向取值区间极限饱和区靠拢的输入分布强制拉回到均值为0方差为1的较标准的正态分布,使非线性变换函数的输入值落入对输入比较敏感的区域,以此使梯度一直都能保持比较大的状态,提高神经网络参数调整效率,加快收敛速度。

假设每个batch输入为x=[x0,x1,x2,…,xn] (其中每个xi都是一个样本,n是batch_size)假如在第一个隐藏层后加入批标准化层,那么第一层输出h1的计算过程就被替换为如下:

(1)矩阵x先经过Wh1的线性变化后得到S1;

(6)

(7)

(8)

(但S2多数会被限制在正态分布以下,使网络表达能力下降,为解决这个问题引入参数:γ,β,它们的值通过训练网络自己学习获得。)

(3)将S2乘以γ调整参数大小,再加上β增加偏移后得到S3

S3=γ·S2+β

(9)

(4)S3经过激活函数后得到h1。

应用批标准化后序列卷积网络的残差模块结构如图3所示。

图3 序列卷积残差模块

1.5 全卷积网络

传统卷积神经网络使用全连接层将特征映射为固定长度的向量,这相当于对卷积抽取的高级特征进行线性组合而最终实现分类,但它的局限性在于只能对整张图像或整段序列做分类处理。此外,低层卷积的感受野较小,对特征的位置变化不敏感,而高层卷积的感受野非常大,对特征的变化过于敏感而容易丢失一些细节。为了改善这种局限性以实现密集型的分类预测,本文提出的序列卷积网络将传统CNN最后几个全连接层替换为卷积层。全卷积网络(fully convolutional networks,FCN)[18]是从抽象的特征中恢复出每个像素所属的类别。与传统卷积神经网络不同,全卷积可以接受任意长度的输入,然后用反卷积层对最后一个卷积层进行上采样, 使它的大小与输入相同,从而对每个像素都产生一个预测,同时保留了原始输入空间信息。在特定层记Xij为在坐标(i,j)的数据向量,在下一层输出Yij的计算公式如下

Yij=fks({Xsi+δi,sj+δj} 0≤δi,δj

(10)

其中,k为卷积核尺寸,s是步长或下采样因素,fks决定了层的类型。当卷积核尺寸和步长遵从转换规则,这个函数被表述为如下

fks∘gk′s′=(f∘g)k′+(k-1)s′,ss′

(11)

使用全卷积的序列卷积网络可以产生和输入序列等长的输出序列,且每一个隐藏层可以通过Padding保持和输出层等长。这使序列卷积网络可以感受整个输入序列的信息,构建长期记忆。

2 实验与分析

2.1 实验环境

本文实验环境见表1。

表1 实验环境

2.2 实验数据

数据集一为CrowdFlower提供的名为“社交媒体中的灾难”数据集,收集者们查看了超过10 000条具有类似“着火”、“隔离”、“混乱”等搜索关键词的Twitter,然后标记这个Twitter是否和灾难事件有关(与之相反的是一些玩笑、电影点评或是一些非灾难性的事件)。该数据集包括4672条与灾难相关数据集,6186条与灾难无关数据集。

数据集二为Abdul Fatir 提供的Twitter情感分析数据集。该数据集将Twitter情感分为正向和负向两类,其中负向情感Twitter6892条、正向情感Twitter5699条。

数据集三来源于斯坦福大学提供的“Sentiment140”数据集,该数据集包含1 600 000条Twitter。这些推文被标注了标签(0=负面,2=中性,4=正面)。

在文本预处理过程中,分别对数据集进行编码解析处理、清除http:形式链接及@内容、清除www.形式链接、转化为小写、处理否定词、清除数字及特殊符号,然后将每个数据集的80%作为训练集,20%作为测试集,将其利用Word2Vec模型训练得到100维的词向量。

2.3 实验参数

实验参数的选取直接影响实验结果,表2、表3、表4分列出了SVM分类算法、CNN、序列卷积网络中的参数值。

SVM的参数比较了核函数linear、poly、sigmod,最大迭代次数默认无限制(-1),误差精度选取默认值,为了提高泛化能力,惩罚系数的大小对比了0.1和1,最终发现词向量100维线性核函数的惩罚系数为0.1时模型分类准确率最高。

表2 SVM参数

表3 CNN参数

表4 序列卷积参数

通过固定参数的方法,分别比较了滑动窗口大小3、4、5、6、7,滑动窗口数量40,80,120,dropout值0.3,0.5,0.6,L2正则项λ为3,5,7对实验结果的影响,经过比较,参数取表2中的值时CNN模型取得了较好的分类效果。

为了比较序列卷积神经网络与其它模型的分类效果,序列卷积的参数尽可能保持与CNN相同,并添加4个残差模块,空洞系数设为2的指数次幂。具体参数见表4。

2.4 实验结果及分析

由于词向量表示方法的不同直接影响序列卷积网络分类准确性,所以本文先对向量表示方法进行实验,以获取最优向量表示方法,然后再应用最优向量表示方法对数据进行向量表示,最后用序列卷积网络对向量表示后的数据进行分类研究。为验证本文应用的 Word2Vec词向量模型和序列卷积分类模型的具有更好的性能,分别将Word2Vec词向量与词袋、TF-IDF进行对比,将序列卷积网络模型与CNN模型、传统机器学习SVM模型进行对比实验。

首先,本文分别用词袋、TF-IDF及Word2Vec词向量模型对数据集一向量表示,均选用SVM模型作为分类模型,且SVM在3次实验中参数均为表2中的值。图4、图5 分别给出了词袋、TF-IDF及Word2Vec词向量模型对数据向量表示后用SVM分类后的单词重要性变化图和混淆矩阵,图4和图5由python的数据可视化库matplotlib绘制而成,其中图4是将SVM模型预测时使用的系数进行提取和排序得到的。

图4 单词重要性

图5 混淆矩阵

由图4单词重要性对比发现使用词袋词向量模型,分类器能正确地找出一些特征(单词earthquake,fire等),但很显然在一些地点的词上出现了过拟合(单词hiroshima),这些词出现的频率非常高,却只会对预测提供噪声。使用能解释词频的TF-IDF向量模型,被选出的单词看起来更相关,同样的,使用Word2Vec能找出更高度相关词语而且可以考虑上下文语义。此外,由混淆矩阵可以看出使用Word2Vec词向量模型的准确率略高于TF-IDF,并且由于Word2Vec具有结合上下文语义的能力,所以本文选用Word2Vec词向量模型。然后,利用Word2Vec词向量模型将数据集转化为对应的词向量,然后分别使用传统机器学习SVM、卷积神经网络CNN、序列卷积网络模型进行分类,其中各分类算法的参数见表2-表4。

本文针对3个数据集分别实验,并且3个数据集中实验参数保持完全相同,数据集一的损失趋势变化用python的数据可视化库matplotlib绘制成图6,对3个数据集分别实验后准确率见表5。

图6 loss损失变化

对比loss损失变化图发现,序列卷积神经网络的loss值下降到稳定值的速度比卷积神经网络下降到稳定值的速度快,并且最终loss值的稳定值相对较低,表明序列卷积模型取得较好收敛效果。

表5 不同分类模型实验结果对比

如表5所列,本文所提出的序列卷积网络应用在数据集一上准确率比传统用于分类的机器学习算法SVM模型[15]的分类准确率上提升了12.74%,比CNN模型[16]分类准确率提升5.89%。相似的,在数据集二和数据集三中,序列卷积神经网络准确率也高于其它模型。序列卷积网络结合一维全卷积与因果卷积两种结构,利用残差模块和扩张卷积来构建长期依赖关系,取得了较好的分类准确率。实验发现本文所提序列卷积神经网络模型有效提高了Twitter文本分类的准确率。

3 结束语

本文提出序列卷积神经网络分类模型,该模型将一维全卷积和因果卷积结合而转化为适合序列性数据的模型,利用残差模块和空洞卷积来构建长期依赖关系。将本文所提出的序列卷积与CNN模型、SVM模型进行对比实验,序列卷积模型分类准确率明显优于其它模型。此外本文将此模型应用于不同的数据集上进行了实验,实验结果表明序列卷积模型在不同Twitter数据集分类准确率上均优于对比的模型,有效提升了Twitter文本分类的准确率。然而本文并未研究序列卷积模型应用于其它类型文本数据上的效果,未来将研究序列卷积网络对其它数据分类准确率的影响。

猜你喜欢
残差卷积向量
基于双向GRU与残差拟合的车辆跟驰建模
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
基于残差学习的自适应无人机目标跟踪算法
卷积神经网络的分析与设计
基于递归残差网络的图像超分辨率重建
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
向量垂直在解析几何中的应用