基于分层式CNN的长文本情感分类模型
2022-04-21徐逸舟陆黎明
徐逸舟,林 晓,陆黎明
(上海师范大学 信息与机电工程学院,上海 200234)
0 引 言
电影评论的文本情感分类任务与文本分类[1]类似,本质上是将文本归类到某一预定义标签的特定类别。目前常用的方法可以分为3类:①基于词典和语义分析等方法[2]。这类方法主要通过人工制定语义规则,通常需要针对特定领域来建立相应情感词典,有很大的局限性。②使用传统机器学习的方法[3]。主要基于监督学习,利用朴素贝叶斯[4]、支持向量机[5]等算法。这些方法都可以被划分为浅层学习方法[6]。它们计算量虽小,但泛化能力较差。③使用深度学习。这类方法主要基于卷积神经网络和长短期记忆网络(long short-term memory,LSTM)等神经网络。
为了实现对电影影评情感倾向的准确分类,本文提出了一种基于分层式CNN的pos-ACNN-CNN长文本情感分类模型。常见的文本分类模型对于短文本已经取得较好的结果,但对于长文本,由于句子较长较多,且情感语义贡献度不同的原因,其分类的准确度并没有达到预期效果。本文提出的模型针对电影长评,兼顾上下文内容,提取出对分类贡献度大的特征,从而提高情感分类的准确性。
1 相关工作
近年来,随着深度学习的不断发展,许多原本应用在计算机视觉领域的神经网络模型开始在自然语言处理领域中崭露头角,并取得了不错的进展。文本分类技术是自然语言处理中最常用的技术之一,同时也是一个多学科交叉的研究方向,涉及到语言学、统计学、数据挖掘等多个领域的理论和方法。
2014,原本应用在计算机视觉领域的CNN模型被引入到文本分类任务中。Ko等[7]提出多层卷积神经网络,并将其运用在字符级别的识别和分类中。Vieira等[8]则在句子层使用卷积神经网络进行文本分类。Tang等[9]为了对句子之间的关联关系进行建模,提出层次化循环神经网络(recurrent neural network,RNN)模型。Zhou等[10]使用LSTM解决跨语言情感分析任务,解决了循环神经网络存在的梯度爆炸和梯度消失的问题。
注意力机制可以根据上下文信息找到真正对语义起作用的词语,对解决情感极性判别问题非常有效。Yin等[11]提出一种基于注意力机制的卷积神经网络,并将该网络模型运用在句子对的建模任务中,验证了注意力机制和CNN结合的可行性。Wang等[12]利用那个多层注意力机制和卷积神经网络结合的方式进行句子关系分类。总的来说,深度学习方法能够对特征信息进行自动提取,在自然语言处理的多个领域问题上,减少了传统方法繁琐复杂的特征工程步骤,具有很大的优势。
上述的算法模型在短文本的分类中总能取得较好的效果,当训练集和测试集中评论的词语不超过140字时,其分类效果显著。但当处理较长的文本时,准确度将会明显下降。这是因为长文本具有句子多、文本长的特点,因此需要能够更加精炼提取其关键信息,分析上下文情感关系,从而准确判断作者的情感极性。
2 基于分层式CNN的长文本情感分类模型
2.1 模型概述
针对电影评论的文本情感分类任务,本文在卷积神经网络的模型基础上,提出基于注意力机制和卷积神经网络结合的分层式长文本情感分类模型pos-ACNN-CNN。模型由pos Embedding层、ACNN层和CNN层组成。其中,pos Embedding层是带有位置信息的词嵌入层,ACNN层是由基于注意力机制的CNN模型构成,最后的CNN层则是由基于文本层的CNN模型构成。pos-ACNN-CNN模型如图1所示。
图1 基于分层式CNN的pos-ACNN-CNN长文本情感分类模型
电影评论通常包含强烈的情感倾向,且在表达上多有前后因果关系,因此构造句子对更能提取出关键性的信息。据此,将影评中前后两个句子组成一个句子对,针对每个句子首先通过Word2vec获得词向量表示,根据词语位置添加位置编码信息。使用ACNN模型提取句子对之间的特征信息,再将所有句子对的特征信息输入到CNN模型中,通过CNN模型提取整个文本的全局特征,最终得到输出分类结果。
2.2 pos Embedding
词向量的表示方法有多种,过去最常用的是词袋模型。然而词袋模型并没有考虑句子中词与词之间的上下文关系,仅仅考虑词本身的权重,而权重只与词语在文本中出现的频率有关。另一方面,词袋模型会出现数据稀疏和特征向量维度过高等问题,不易计算且计算量大。
本文采用Word2vec[13]获取文本词向量表示。Word2vec是Google的开源工具,它改进了神经语言模型,结合了人工神经网络和概率模型。Word2vec包含了两种训练模型,CBOW模型和Skip-gram。本文使用CBOW模型得到词向量,作为模型的输入。
本文以词为单位,对于长度为n的句子,其句向量可表示为词向量进行拼接后的结果
E1∶n=E1⊕E2⊕…⊕En
(1)
其中,⊕为拼接操作符。
由于本文基于卷积神经网络,保留句子序列信息的能力并不强。而序列信息代表着全局的结构,又尤为重要。因此为了充分利用句子本身的顺序性,本文在每个单词中增加了该单词在句子中的相对位置编码信息。有多种方法来构建位置编码信息函数,此处本文采用正弦和余弦函数[14]。该方法可以适用测试集中句子长度长于训练集实例的情况
PE(pos,2i)=sin(pos/100002i/d)
(2)
PE(pos,2i+1)=cos(pos/100002i/d)
(3)
POS=PE(pos,2i)⊕PE(pos,2i+1)
(4)
POS表示该词的位置编码信息向量。其中pos是该词在句子中的位置,d表示词向量的维度,i表示词向量中的第i个元素,⊕为拼接操作符。
编码信息与词嵌入向量矩阵的维度相同,可以直接叠加求和,再进行后面的计算。所以在本文的模型中,ACNN模型的输入层是词嵌入向量与位置编码向量之和。pos-Embedding层模型如图2所示。
图2 带位置信息的pos-Embedding层
2.3 ACNN模型
在pos-Embedding层之后,提出基于注意力机制的卷积神经网络ACNN模型,如图3所示。ACNN主要由输入层、宽卷积层、基于注意力机制的池化层和合并层组成。输入层接收的是pos-Embedding层的输出,即句子对中每个词语的词向量特征矩阵;宽卷积利用其本身特点对输入层的基本单位进行卷积操作提取特征;在池化层添加注意力机制提取不同词语之间的情感极性;最后通过合并层将两个句子的特性信息进行融合,得到该句子对的特征表示向量。
图3 ACNN模型框架
2.3.1 宽卷积
假设有大小为k的卷积核和长度为n的句子。Li∈d是该句子中第i个词的d维向量表示,L∈n×d代表输入句子,向量m∈k×d表示卷积操作使用的卷积核。对于句子中的第j个位置,可以根据卷积核大小得到同样大小的窗口向量矩阵。它由k个连续词向量组成
wj=[Lj,Lj+1,…,Lj+k-1]
(5)
卷积核m对每个位置的窗口向量(k-gram)进行卷积。一维卷积背后的思想是将卷积核m与句子L中的每个k-gram做矩阵的元素相乘运算,得到特征映射cj为
cj=f(mTwj+b)
(6)
其中,b是偏置项,f(x)是一个非线性变换函数,常用sigmoid、tanh、reLU等激活函数。本文使用reLU激活函数。
对于窄卷积,如图4所示,也就是常提到的卷积,j的范围从1到n-m。然而在进行这样的窄卷积时,使用卷积核对矩阵操作往往对处于边缘的数据无法操作。此处本文使用zero-padding的方法,对于输入值范围外的当j<1或者j>n-m都设为0。这样可以将卷积核应用在所有输入尺寸的矩阵上。最终可以获得一个更大的矩阵输出。而这种填充0的方法被称为宽卷积,如图5所示。
图4 窄卷积
图5 宽卷积
假设输入节点为L1到Ln,卷积核m的大小为k,经过窄卷积操作后只剩下(n-k+1)个节点,而处于边缘的(k-1)/2个节点没有相应的卷积操作,因此会失去关于这两个节点的相关信息;我们采用zero-padding法,首先在矩阵边缘添加(k-1)/2个节点,再进行卷积运算则得到(n+k-1)个节点,甚至比原矩阵更大。
经过宽卷积之后得到特征向量C为
C=(c1,c2,…,cn+k-1)
(7)
宽卷积相比窄卷积能确保卷积核中所有权重能达到整个句子,包括边缘的单词。故本文在输入层之后进行宽卷积操作,尽最大可能保留句子中的所有信息,以提高最后分类的准确性。
2.3.2 基于Attention的池化层
为了使模型在训练过程中区分重要信息,本文在池化层中添加注意力机制,使模型高度关注这些信息。
在卷积层部分,我们将两个连续的句子进行宽卷积操作从而得到的两个不同的输出向量,命名为CL和CR。利用这两个向量进行如下公式计算可以得到注意力权重向量矩阵A
Ai,j=MatchScore(CL[:,i],CR[:,j])
(8)
Aij代表FL的第i列向量和FR的第j列向量的距离度量。其定义方法为1/(1+|L-R|),|L-R|表示左右两个向量的距离度量,计算方法有多种,如欧几里得距离、余弦相似度、曼哈顿距离等等,此处使用欧几里得距离,效果较好。
获取注意力权重向量矩阵A之后,计算卷积向量权重,给每个卷积层输出一个权重值。左向量(7 col)每个单元对应的Attention权重aL,j是由权重向量矩阵A中的列向量求和的值作为权重值
aL,j=∑A[j,:]
(9)
右向量(9 col)中每个单元的权重值aR,j是权重向量矩阵A的行向量求和得到
aR,j=∑A[:,j]
(10)
在池化的时候,将卷积后输出的特征矩阵,基于Attention的权重值,相乘求和,提取出重要的特征信息,再连接成一个向量,得到池化层的输出。其中,C∈(L+w-1)×d表示卷积层输出,而整个句子池化后得到
(11)
其中,x有L和R两个选项,分别代表一个句子对的左句子和右句子。d是向量维度。ax,k是句子x对应的Attention权重值,Cx是句子x卷积后得到的句子向量。而Px是x句子池化后得到的句子特征。最终在合并层,将PL和PR进行拼接操作,得到句子对的特性信息向量P
P=PL⊕PR
(12)
2.4 CNN
经过2.3节,最终得到基于注意力机制的卷积神经网络的句子对的信息特征。对于某一待分类的文本,共有s个句子。前后两个句子组成给句子对,共s-1个句子对,经过ACNN层得到句子对的输出结果P,共s-1个特征向量P。整个文本的特征向量可以表示为
F=P1⊕P2⊕P3⊕…⊕Ps-1
(13)
其中,⊕表示拼接操作。
将得到的文本特征向量F输入到CNN模型中,整个CNN模型由以下4个部分组成。图6为CNN模型框架示意图。
图6 CNN框架
(1)输入层:ACNN模型的输出结果F是整个文本的特征向量,同时也是该CNN层的输入层。其中,F∈(s-1)×2×d。
(2)卷积层:卷积层使用的是2.3.1节提到的窄卷积,通过多个不同尺寸的卷积核对向量矩阵F进行信息提取。
(3)池化层:通过采用最大池化的方式,提取卷积层的最优特征。
(4)全连接层:通过softmax函数进行计算,输出样本文本在各个标签上的概率分布,得到最终的分类结果。
3 实验与结果分析
3.1 实验环境
本实验的实验环境参数见表1。
表1 实验环境参数
3.2 实验数据集
为了检验本文提出的模型性能,本文采用了来自国外长文本电影评论数据集:互联网电影资料库IMDB。这个数据集是情感分类中最常用的英文影评数据集,分类目标是将评论分为正类和负类。实验数据总共包括50 000篇电影评论,为测试模型在长文本中的效果,本文根据评论文本的长度将其划分为两个子数据集,其中少于140字的称之为短文本,长于140字的称之为长文本。可以对比模型在短文本和长文本上的效果。实验中将标注好的数据集划分为训练集、验证集和测试集,分别占总数据集规模的70%、20%和10%。表2为IMDB影评数据集样本示例。
表2 IMDB数据集样本示例
3.3 实验设计和参数设定
为了验证本文提出的基于分层式CNN的神经网络模型pos-ACNN-CNN在长文本情感分类上的有效性,对以下5种模型进行对比实验。
(1)CNN:使用了普通卷积神经网络的模型。
(2)CNN-CNN:使用了双层卷积神经网络模型。
(3)ACNN:基于注意力机制的卷积神经网络模型,在词嵌入部分不包含位置信息。
(4)pos-ACNN:基于注意力机制的卷积神经网络模型,在词嵌入部分包含位置信息。
(5)pos-ACNN-CNN:本文提出的实验模型。
在训练过程中,使用Adam优化模型,卷积层的激活函数使用ReLU函数。其它具体参数见表3。
表3 实验参数
3.4 评价指标
本文采用精确率(Precision,P)、召回率(Recall,R)和准确率(Accuracy)这3个常用指标作为评价标准。具体的计算方式如下所示
(14)
(15)
(16)
其中,TP是真实类别为正类且预测为正类的样本个数;FN是真实类别为正类且预测类别为负类的样本个数;FP将真实类别为负类且预测类别为正类的样本个数;TN是真实类别为负类且预测类别为负类的样本个数。
3.5 实验结果及分析
本文将5组实验在IMDB数据集上进行实验。表4给出了各个组实验进行文本情感分类的结果,包括准确率、精确度和召回率。
表4 不同类型的文本情感分类模型结果对比
从表4中可以看出,整体上基于深度学习的模型在IMDB数据集上都取得了不错的分类效果,其中本文提出的pos-ACNN-CNN模型的表现性能最优,在准确率、精确度和召回率3个衡量指标上都达到了最高。
对比CNN和ACNN模型可以看出,ACNN的性能远胜CNN。这是因为注意力机制对比分析了文本中每个词的重要程度,因此更好地把握了文本中的重点词汇给文本情感倾向带来的影响,从而提高情感分类的准确率。对比CNN和CNN-CNN模型可以看出,多层模型的性能更好,说明在面对数据量较大的情况下,复杂模型更具优势。多层模型可以更好地提取长文本中特征信息。对比ACNN、pos-ACNN和pos-ACNN-CNN这3个模型,可以看出pos-ACNN相较于ACNN,性能略有提升,这是因为pos-ACNN增加了位置编码信息,保留了词语的位置信息,因此其准确率更高。而pos-ACNN-CNN在pos-ACNN的基础上多增加了一层CNN,能够更好适用复杂数据集。
另一方面,对比所有模型在短文本和长文本方面的表现,显然单层模型在短文本上表现更好,但在长文本上表现不佳。而本文提出的基于分层式CNN模型pos-ACNN-CNN在长文本上的表现,在精确率和准确率上与在短文本上表现基本持平,而在召回率上高出0.0093,验证了pos-ACNN-CNN模型在长文本上的适用性。一方面是因为复杂的分层式模型更加适用于长文本的特征提取,另一方面则是注意力机制的运用和位置信息的结合使得提取的特征更加准确,更能够反映文本的情感倾向。
4 结束语
本文提出基于分层式CNN的pos-ACNN-CNN文本情感分类模型,融合了卷积神经网络的模型优势,并通过注意力机制抓住了文本的重要特征,同时在此嵌入层增加位置编码信息,从而提高了文本分类的精确性。为验证该模型的性能,将其在经典文本情感分类IMDB数据集上进行实验,并设计了多组对比实验。该模型在实验中获得了较优的分类效果,验证该模型可以更加精确地提取文本特征,更加适合长文本的情感分类工作。
在未来的工作中,将考虑分层注意力机制,将普通的文本分类拆分成从句子层的分类和从文本层进行的分类,同时结合LSTM等序列信息模型,以此来探索多种组合模型在更广泛的领域上的适用性。