双通道的BCBLA情感分类模型

2023-05-12 12:07万俊杰任丽佳单鸿涛孟金旭贾仁祥
小型微型计算机系统 2023年5期
关键词:卷积向量分类

万俊杰,任丽佳,单鸿涛,孟金旭,贾仁祥

(上海工程技术大学 电子电气工程学院,上海 201620)

1 引 言

在当今互联网快速发展时期,各种社交媒体应运而生,目前已经广泛普及,这些网络平台会产生大量的带有情感特征的评论文本数据,比如酒店平台会有酒店好坏的评论,电影平台会有关于电影好坏的评论,美食平台会有食物好吃与不好吃的评论等等,能够掌握并处理这些情感数据对于企业了解消费者、提高产品质量以及竞争力提供了新的机会[1].

情感分析指从具有情感色彩的文本中挖掘出其中表达的情感态度.根据不同的情感粒度划分,情感分析可以划分为粗粒度的句子级和文档级情感分析以及细粒度的方面级情感分析,本文针对的粗粒度级的情感分析,如针对中国科学院谭松波博士提供的较大规模的句子级的中文酒店评论进行情感分析,该数据对酒店设施、环境、价格、服务等方面进行了评价,包含正面评价和负面评价,如句子“房间早餐都还不错和价格成正比也比较安静大概就这样吧”是对酒店服务以及价格进行了正面评价,句子“环境和各方面的设施都很老旧房间小次所小得离谱服务态度也一般实在连3星级都算不上”则是对酒店设施、环境、服务等进行了负面评价.

常见的情感分析方法可分为3类,基于情感词典的情感分析方法,基于传统机器学习的情感分析方法和基于深度学习的情感分析方法.基于情感词典的情感分析方法需要构建情感词典,如对中文情感分析需要构建的中文情感词典,该方法严重依赖于情感词典的构建,人工成本高.基于机器学习的情感分析方法不需要严重依赖于情感词典库,基于机器学习的情感分析方法可以通过对机器学习模型训练一定的情感分类数据,然后保存其模型参数,对其他情感分类样本进行预测,如Xue等人[2]采用LDA(潜在的狄利克雷分布)方法对Twitter用户发布的COVID-19数据进行训练和测试,从而对用户的情绪进行分析,但是该方法对应的情感分析模型泛化能力差,采用的多为one-hot[3],tf-idf[4]等方法生成的词向量,导致对文本内容进行情感分析通常不能很好的利用上下文信息.近年来,因为深度学习模型泛化能力强,同时能够很好的学习到上下文信息,从而可以对情感文本进行有效的分析,所以基于深度学习的情感分析方法被逐渐用于对情感文本进行分析.2014年,Kim[5]将CNN(Convolutional Neural Networks)应用于文本分类任务,取得了不错的效果,之后就有王煜涵等[6]将CNN模型应用到情感分类中,在twitter数据集上获得了很好的效果.Santos等[7]提出了一种利用两个卷积层提取特征来解决情感分析的CharSCNN.卷积神经网络CNN可以提取文本的局部关键特征,但是不能提取全局特征,长短期记忆网络LSTM(Long Short Term networks)[8]可以提取长序列文本的全局特征,在情感分类任务上取得了不错的效果,如Jelodar等[9]使用LSTM递归神经网络对COVID-19评论进行情感分类,从而表明利用公众意见和合适的计算技术来理解新冠肺炎相关问题并指导相关决策的重要性.注意力机制是一种可以关注重点特征的网络模型,彭祝亮等[10]在BiLSTM的基础上,利用多个方面注意力模块同时对不同方面进行独立训练,让注意力机制来重点提取影响情感分类的特征,实现了不错的情感分类效果.陈亚茹等[11]在BiGRU网络的基础上融合了自注意力机制,在3个微博情感语料库上实现了比较好的效果.上面的情感分类方法采用的深度学习模型使用的预训练词向量基本上都是Word2vec[12]、glove[13]等静态词向量,词向量是固定的,单词无论在哪个上下文中始终映射的都是相同的向量,不能处理一词多义问题,而ELMO[14]、GPT[15]和BERT[16]等预训练模型产生的词向量都是动态的,在不同的上下文单词映射得到的词向量是不同的,ELMO采用的是一个前向和后向的双向LSTM语言模型构成,特征能力提取不够强,训练速度慢,不能并行化处理,GPT和BERT使用的都是transformer网络架构[17],GPT是从左到右的模型,而BERT则是多层双向transformer,同时考虑了左侧和右侧token的上下文信息,它会根据输入字的周围的不同上下文映射得到不同的词向量,能够更好的学习到不同词的语义.

综上所述,根据上面模型存在的缺陷,以及基于深度学习的情感分析方法中基于BERT多通道模型融合的情感分析方法研究比较少,本文利用BERT模型与其他模型的优势,提出了一种基于BERT双通道的情感分类模型,该模型融合了CNN网络,增强了提取文本局部特征的能力,同时融合了BiLSTM-Attention模型,增强了对长序列文本处理和关键情感特征提取的能力.

2 BCBLA模型

如图1所示,本文BCBLA模型是一个基于BERT的双通道情感分类模型,通道1是由BERT和CNN模型组成,通道2是由BERT和BiLSTM-Attention模型组成.

图1 BCBLA模型Fig.1 BCBLA model

2.1 BERT

BERT模型与GPT模型一样都采用了transformer架构,transformer架构的编码层如图2右半部分所示.GPT是从左到右的模型,而BERT则是多层双向transformer,模型架构如图2左半部分所示.BERT本质上是一个语言生成模型,同时考虑了左侧和右侧token的上下文信息,解决了GPT单向约束不足问题,同时提出了两个新的预训练任务:“遮蔽语言模型”(MASKED LM,MLM)和“下一句预测”(Next Sentence Prediction,NSP).MLM指BERT以15%的概率会随机对一个句子中的字进行遮盖,如对句子“济南最好的酒店服务也不错”的“酒”、“服”等字被遮盖,然后以80%的概率用[MASK]去替换掉被遮盖的词,如“济南最好的酒店服务也不错”→“济南最好的[MASK]店服务也不错”,接着10%的概率随机用一个词去替换掉它,如“济南最好的酒店服务也不错”→“济南最好的好店服务也不错”,最后10%的概率保持不变,如“济南最好的酒店服务也不错”→“济南最好的酒店服务也不错”.NSP就是拿属于上文的句子和不属于上文的句子进行预测,判断它们是否属于上下文,这种属于上文的句子和不属于上文的句子的概率各占50%.

图2 BERT模型Fig.2 BERT model

BERT模型采用的transformer架构使用了多头注意力机制,能够并行的计算句子中的每个单词,克服了LSTM只能对文本串行处理而不能并行处理的缺陷,同时transformer机制里面的注意力机制还可以很好的模拟出一个词对另一个词影响的大小.transformer编码模块的核心单元是Self-Attention模块,Self-Attention模块对一个句子进行编码时会考虑到句子中的所有其他单词,并决定如何对当前单词进行编码,计算公式表示如下:

(1)

图3 多头注意力机制计算过程示意图Fig.3 Schematic diagram of the calculation process of the multi-head attention mechanism

Z=Concat(head0,head1,…,headh)Wo

(2)

本文采用的是已训练好的BERTBASE模型,该模型由12个编码块,每一个编码块中的多头自注意力运算子模块由12个头部,词向量的嵌入维度为768.

在输入层,BERT模型输入的是k个字组成的token输入序列,表示为x1:k=x1,x2,…xi,…,xk,其中xi(1≤i≤k)指的是第i个单词,在输入的token序列中的开始位置加上[CLS]标记,结束位置加上[SEP]标记,其中,[SEP]标志着一个句子的结束,[CLS]代表了BERT模型中的全局特征信息.如图2中的左下角所示,句子“济南最好的酒店服务也不错”被WordPiece分词后形成了若干个字,分别是“济”,“南”,“最”,“好”,“的”,“酒”,“店”,“服”,“务”,“也”,“不”,“错”,BERT模型中输入的每个字对应的向量都有3部分的向量相加组成,分别是Token Embeddings,Segment Embeddings,Position Embeddings,这3个向量分别包含了每个字对应的token值,某个字所在的句子信息和位置信息.为了保证输入到BERT模型的向量便于进行运算,本文对BERT模型中输入句子token序列的长度设置为128,对于超出设置最大序列长度值的序列,保存前面的序列,长度序列不足的部分用来填充.输入层的计算公式如下:

E=Concat(EToken,ESegment,EPosition)=
EToken+ESegment+EPosition

(3)

输入的token序列在BERT编码的运算表示如下:

hi=Trm(hi-1)

(4)

Trm是一个transformer转换块,hi,hi-1分别表示当前层和上一层的输出结果.

2.2 CNN

卷积神经网络CNN可以有效的捕捉文本局部关键特征信息,在BERT模型基础上,增加CNN模型,可以在BERT模型输出的全局特征信息基础上增加了局部特征的获取,从而可以获得更多的特征信息.CNN模型主要有卷积层、池化层组成,如图4所示.经过BERT模型最后一个隐藏层输出的向量H={h1,h2,…,hn}输入到卷积神经网络CNN里面,首先对输入的特征信息进行如下的处理:

hi:n=h1⊕h2⊕…⊕hn

(5)

其中,⊕表示对CNN输入的向量进行连接的连接符号,hi:n表示对h1,h2,…,hn的拼接.将拼接后的数据输入到卷积层进行卷积操作,卷积层的过滤器为w∈Rp×k,过滤器宽度设置的词向量维度为k,高度设置为p,即每次对句子中p个相邻词之间进行卷积操作来提取文本的n-gram特征.假设输入层经过滤器截取词向量hi:i+p-1后得到的特征为ci,一个特征的提取表示如下:

ci=f(w·hi:i+p-1+b)

(6)

其中,b∈R表示偏置项,f为非线性激活函数.卷积核在输入层的词向量矩阵上滑动,生成的特征映射为:

c=[c1,c2,…,cn-p+1]

(7)

之后,对c∈Rn-p+1进行最大池化操作,使提取的特征向量里面最大的特征代替整个特征向量.如图4最右侧的局部放大图所示,假设对方框内的4,5,8,7进行最大池化操作,那么最大池化操作后获得的值就是8,池化操作的公式表示如下:

(8)

图4 CNN模型计算过程示意图Fig.4 Schematic diagram of CNN model calculation process

(9)

2.3 BiLSTM

LSTM是循环神经网络RNN变体的一种,LSTM中增加了cell,通过门控状态控制传输状态实现了记忆功能,解决了RNN因文本序列过长,造成了梯度消失和梯度爆炸的问题.如图5所示,LSTM网络单元由输入门(InputGate)、遗忘门(ForgetGate)及输出门(OutputGate)组成.

图5 LSTM内部单元示意图Fig.5 Schematic diagram of LSTM internal unit

遗忘门决定从上一时刻的细胞状态中丢弃哪些信息,以当前时刻输入xt和上一时刻的隐藏层输出ht-1作为输入,公式表示如下:

ft=σ(Wf[ht-1,xt]+bf)

(10)

其中,σ代表sigmoid函数,输出值为1时表示“完全保留”,0表示“完全舍弃”.Wf为权重系数,bf为偏置量.

输入门决定有多少输入信息需要保留以及将需要保留的信息更新到当前神经网络单元中,计算公式表示如下:

it=σ(Wi[ht-1,xt]+bi)

(11)

(12)

(13)

输出门控制当前神经网络单元中输出哪些信息到下一个神经单元.这里采用sigmoid函数确定哪些信息输出,然后用tanh函数处理当前单元状态并与输出门ot相乘得到当前时刻隐藏层状态:

ot=σ(Wo[ht-1,xt]+bo)

(14)

ht=ot×tanh(Ct)

(15)

BiLSTM使用双向LSTM架构来捕获文本长序列的特征信息,结构简单且对远距离依赖的信息学习效果好,可以解决BERT模型不能处理超过512长度序列文本的缺陷,同时在BERT模型的基础上可以保留更多长文本序列的特征信息.BERT模型最后隐藏层状态H={h1,h2,…,hn}输入到BiLSTM网络架构中的运算表示如下:

(16)

(17)

(18)

2.4 Attention

注意力机制是在众多信息中提取与目标相关的信息,BiLSTM层输出的向量特征是多种多样的,每个向量对分类的结果影响程度是不一样的,本文加入注意力机制,目的就是将影响分类结果的向量信息重点输出,给影响分类结果的向量信息分配更大的权重,使其在输出的向量中占据绝对优势,对BiLSTM层输出的向量做注意力机制运算,公式表示如下:

ut=tanh(wtlt+bt)

(19)

(20)

(21)

lt表示BiLSTM在t时刻输出的特征向量,bt表示偏置,wt表示lt的权重矩阵,ut表示为lt通过tanh神经网络计算得到的隐层表示,αt表示通过softmax函数得到的权重,记录了一个向量对分类结果影响的大小值,F表示经过加权运算后的特征向量,这个特征向量重点包含了对分类结果影响高的特征信息.

2.5 输出层

BERT模型隐藏层输出的词向量信息经过CNN和BiLSTM-Attention两个通道后,各自保留了更多的特征信息,这些特征信息扩展了BERT模型输出的特征信息,增加了局部特征信息、长距离特征信息以及对分类结果影响大的特征信息,将这些输出的特征信息拼接起来,然后输入到全连接层,最后通过softmax函数进行分类操作输出类别信息,公式表示如下:

O=U⊕F

(22)

P(yi|O)=softmax(WoO)

(23)

其中,yi表示分类输出结果,i=1,2,…,k,k表示分类类别,Wo为权重矩阵.

3 实验设计

3.1 实验数据集

本文采用的情感分类数据集采用了中文和英文两种数据集,中文数据集采用的是国内中国科学院谭松波博士提供的较大规模的中文酒店评论(Tan Songbo Hotel Review)语料公开数据集.该数据集可以为中文情感分析提供一定的平台,共计6000条数据,情感极性正负评论各3000条,本文对其进行了jieba分词、去除一些停用词等预处理,预处理后部分样本如表1所示,预处理后的数据平均长度约为125.英文数据集采用的是来自2015年Yelp Dataset Challenge数据集,该数据集中的正负不同极性分别包含280,000个训练样本和19,000个测试样本,平均长度约为109,英文数据集的部分样例也见表1所示.

表1 部分数据集样本Table 1 Partial data set samples

3.2 实验环境与参数设置

本文实验是在pytorch1.4.0深度学习框架上完成的,操作系统采用的是64位的Ubuntu20.04系统,GPU是24G 显存的INVDA Quadro RTX 6000.本文中采用的CNN、BiLSTM等对比模型对中文使用搜狗新闻的Word+Character预训练词向量,英文使用谷歌的word2vec预训练词向量模型,维度均为300d.本文BCBLA模型及含有BERT词向量嵌入层构成的对比模型中文采用的预训练模型是bert-base-chinese,英文采用的是bert-base-uncased,本文BCBLA模型实验参数的设置如表2所示.

表2 BCBLA模型实验参数Table 2 BCBLA model experimental parameters

3.3 评价指标

本文采用准确率(Accuracy)、精准率(Precision)、召回率(Recall)和F1值来评价模型,这些指标可以公平的评价模型的性能,它们的定义分别如下所示:

(24)

(25)

(26)

(27)

其中,TP表示在正类情感样本里预测也为正类的样本数量,FP表示在负类情感样本里预测为正类的样本数量,FN表示在正类情感样本里预测为负类的样本数量,TN表示在负类情感样本里预测也为负类的样本数量.

3.4 实验结果与分析

为了验证本文BCBLA模型的有效性,本文进行了如下对比实验:1)与当前流行的文本情感分类模型进行对比;2)单通道与多通道情感分类模型进行比较;3)不同预训练模型下的模型对比.

不同对比模型如下所示:

1)CNN[5]:卷积神经网络模型,有2、3、4这3个不同大小的卷积核组成,可以捕获局部关键特征信息.

2)BiLSTM[18]:双向LSTM,同时捕捉前后文依赖关系的特征.

3)BiLSTM-Attention:在BiLSTM模型的基础上加入注意力机制,以此来捕获影响情感分类结果的关键特征.

4)RCNN[19]:结合了RNN和CNN两种模型,将BiLSTM获得的隐层输出和词向量拼接结果进行最大池化操作,从而获取情感分类的关键特征信息.

5)DPCNN[20]:深层金字塔卷积网络,采用多个固定位置的卷积核分层提取文本中所有邻接词的语义特征.

6)LDA+Self-Attention[21]:使用LDA获得每个评论的扩展信息,采用word2vec模型对扩展信息和原评论文本进行词向量训练,最后用Self-Attention进行动态权重分配并进行分类.

7)BERT[16]:动态预训练词向量模型,采用多层双向Transformer架构捕获文本上下文特征信息,隐藏层[CLS]获取全局分类特征信息.

8)BERT+CNN:在BERT模型的基础上,增加CNN网络进一步提取局部关键特征信息.

9)BERT+BiLSTM-Attention(BBLA):在BERT模型的基础上,增加BiLSTM-Attention模型进一步获取长序列和情感分类关键特征信息.

10)Word2vec+CBLA:Word2vec-CNN模型和Word2vec-

BiLSTM-Attention模型组成的双通道情感分类模型.

11)BCBLA:本文模型.

不同模型训练过程中准确率accuracy值如图6、图7所示.

图6 Tan Songbo Hotel Review数据集上训练的accuracy值变化图Fig.6 Variation diagram of accuracy values trained on Tan Songbo Hotel Review dataset

图7 Yelp数据集上训练的accuracy值变化图Fig.7 Variation diagram of accuracy values trained on Yelp dataset

3.4.1 与当前流行的文本情感分类模型进行对比

首先,本文与如下当前流行的一些情感分类模型对比,比较模型主要有CNN、BiLSTM、BiLSTM-Attention、RCNN、DPCNN、LDA+Self-Attention等,其中LDA+Self-Attention模型的实验结果直接来自文献[21].本文BCBLA模型与这些模型的测试结果如表3所示.从图6和图7中可以看出,本文BCBLA模型与上面这些对比模型相比,训练过程中的准确率accuracy值收敛速度更快,收敛之后变化浮动小,受数据集数据数量大小等因素的影响,在数据量小的中文Tan Songbo Hotel Review数据集,CNN、BiLSTM等模型训练的accuracy值收敛之后变化浮动仍旧比较大,在数据量大的英文Yelp数据集,训练的accuracy值收敛之后变化浮动比相对比较小,本文BCBLA模型在两种数据集训练的accuracy值变化浮动都比较小,收敛值更大.同样对比表3的测试结果中可以看出,本文BCBLA模型在4个评价指标上均优于CNN、BiLSTM、BiLSTM-Attention、RCNN、DPCNN、LDA+Self-Attention模型,在中文Tan Songbo Hotel Review数据集上优于对比模型中表现最好的LDA+Self-Attention模型,在准确率A、召回率R和F1值分别高出3.59%、2.34%和3.16%,英文Yelp数据集则比对比模型中表现最好的BiLSTM-Attention模型分别高出2.74%、2.73%、2.74%和2.74%.综上,可以看出与当前流行的情感分类模型相比,本文BCBLA模型在情感分类上性能更强.

3.4.2 不同通道对情感分类结果的影响

表3 不同情感分类模型的测试结果Table 3 Test results of different sentiment classification model

本文在双通道情感分类模型基础上,同时也研究了简单的BERT和基于BERT的单通道情感分类模型,即对BERT、BERT+CNN(通道1)和BERT+BiLSTM-Attention(BBLA)(通道2)模型上进行实验,然后与本文双通道情感分类模型做对比,测试结果如表4所示,从图6和图7的训练图可知,本文双通道BCBLA模型比单通道BBLA和BERT-CNN模型以及BERT模型在训练的accuracy值收敛值更大,收敛之后变化浮动更小.从表4的测试结果可知,单通道的BERT+CNN模型和单通道的BBLA模型的4个评价指标值都比BERT模型高,其中单通道的BERT+CNN模型在中文Tan Songbo Hotel Review数据集和英文Yelp数据集上F1值比BERT模型分别高出0.64%、0.18%,这说明在BERT模型获取融合文本语境的词向量表征后,通过CNN模型进行卷积、最大池化操作提取局部情感分类特征,可以在一定程度上提高模型的情感分类效果.单通道的BBLA模型在中文Tan Songbo Hotel Review数据集和英文Yelp数据集上F1值比BERT模型分别高出0.44%、0.13%,这说明在BERT模型获取融合文本语境的词向量表征后,通过BiLSTM获得长序列文本全局情感分类特征,然后采用Attention模型从获得的特征中提取出重点情感分类特征,可以在一定程度上提升模型的情感分类效果.另外从表4也可以看出,双通道BCBLA模型比单通道模型BBLA和BERT+CNN模型以及BERT模型在4个指标的测试值都高,其中双通道BCBLA模型在中文Tan Songbo Hotel Review数据集和英文Yelp数据集上F1值比单通道模型BBLA分别高出0.56%、0.56%,比单通道BERT+CNN模型分别高出0.36%、0.51%,比BERT模型分别高出1.00%、0.69%,这说明在BERT模型获取融合文本语境的词向量表征后,同时采用CNN模型进行卷积、最大池化操作提取局部特征和BiLSTM-Attention模型获得长序列全局文本重点特征,然后将所得特征融合后进行情感分类,在一定程度上分类效果要好于单通道的BERT+CNN模型、单通道的BBLA模型和BERT模型.

3.4.3 不同预训练模型对分类结果的影响

本文采用了BERT动态预训练模型作为本文模型的词向量嵌入层,通过该模型得到的词向量是动态的,每个词向量都与上下文中的其他词向量有着动态的紧密的联系,不同的词产生的词向量可以很好的根据周围环境发生改变,而Word2Vec等模型产生词向量却是固定不变的,并不能解决一词多义问题.将本文BCBLA模型的BERT词向量嵌入层去掉,使用Word2Vec词向量嵌入层替换,进行了研究,测试的实验结果如表5所示,表格中的CBLA代表由CNN和BiLSTM-Attention两个通道组成的模型,Word2Vec+CBLA表示CBLA双通道模型的词向量嵌入层是Word2Vec模型,从图6和图7的训练图中可以看出,本文采用BERT模型作为词向量嵌入层的BCBLA模型与采用Word2Vec作为词向量嵌入层的Word2vec+CBLA模型相比,在训练的accuracy值收敛速度快,收敛之后变化浮动小,从表5的测试结果中可看出,BCBLA模型比Word2vec+CBLA模型在中文TanSongbo Hotel Review和英文Yelp数据集准确率A、精准率P、召回率R和F1值测试结果明显高出不少,在中文Tan Songbo Hotel Review数据集上4个指标值分别高出3.83%、3.85%、3.83%和3.84%,英文Yelp数据集则分别高出2.51%、2.50%、2.51%和2.51%.综上,可以看出采用BERT动态词向量的BCBLA模型比采用Word2Vec静态词向量的Word2Vec+CBLA模型情感分类效果好,说明动态词向量模型比静态词向量模型训练得到的词向量具有更丰富的词向量特征信息.

表4 不同通道模型的测试结果Table 4 Test results of different channel models

表5 不同预训练模型下的测试结果Table 5 Test results under different pre-training models

4 结 论

针对过往的情感分类模型采取的多为传统的深度学习模型,即使采用多通道模型融合的情感分类模型使用的预训练模型也多为静态预训练模型,本文提出了一种基于BERT的动态预训练模型作为词向量嵌入层的双通道的情感文本分类模型BCBLA,设计了与当前流行的情感分类模型对比、减少通道后的模型对比和更换预训练模型后的对比等3种实验对比方式,在中文谭松波酒店评论数据集上和英文Yelp Dataset Challenge 数据集进行了训练和测试,最终证明了本文提出的双通道情感分类模型的有效性.在后续的工作,还可以在BERT预训练词向量模型的基础上引入更多的通道,或者更换其他更好的预训练词向量模型,或者更换通道模型中的模块等方法进行研究对比.

猜你喜欢
卷积向量分类
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
分类算一算
聚焦“向量与三角”创新题
从滤波器理解卷积
分类讨论求坐标
数据分析中的分类讨论
基于傅里叶域卷积表示的目标跟踪算法
教你一招:数的分类
向量垂直在解析几何中的应用