基于多模型的混合架构情感分析
2020-11-30苗小爱冷雪亮邵婉露
苗小爱 冷雪亮 邵婉露
摘 要: 情感分析是自然语言处理(NLP)中十分重要的环节,随着网络发展人们在网络生活中留下的大量情感评论信息。已有的研究大量使用循环神经网络(RNN)和卷积神经网络(CNN)做情感分析。近期注意力机制在NLP领域被广泛使用,并取得突破性进展。为了改善传统模型,充分利用网络评论数据,结合长短时记忆网络(biLSTM),CNN,并使用Transformer机制构建新模型。新模型中,biLSTM编码双上上下文信息,然后CNN部分模拟Text-CNN使用三个不同大小的窗口进行卷积获取句子间的双向信息,最后使用没有前馈操作的Transformer编码器代替传统Max-pooling操作避免信息损失。该模型简称为Multi-Model Stack Neural Network(MMSNN)。与传统biLSTM基线模型和Text-CNN模型在IMDE数据集上进行对比,MMSNN在准确率和损失上均获得最好的效果。
关键词: 自然语言处理;情感分析;transformer;Text-CNN;BiGRU
中图分类号: TP183 文献标识码: A DOI:10.3969/j.issn.1003-6970.2020.09.036
本文著录格式:苗小爱,冷雪亮,邵婉露. 基于多模型的混合架构情感分析[J]. 软件,2020,41(09):133136
【Abstract】: Sentiment analysis is a very important part of natural language processing (NLP). With the Internet, people send a lot of sentiment comment information in online life. Existing researches make extensive use of recurrent neural networks (RNN) and convolutional neural networks (CNN) for sensory analysis. The attention mechanism has been widely used in the NLP field recently, and has achieved breakthrough development. In order to improve the traditional model, make full use of network comment data, combined with long and short time memory network (biLSTM), CNN, and use the Transformer mechanism to build a new model. In the new model, biLSTM encodes double-up context information, then CNN partially simulates Text-CNN to convolve with three windows of different sizes to obtain bidirectional information between sentences, and finally uses a Transformer encoder without feedforward operation instead of traditional Max-pooling Operation to avoid loss of information. The model is referred to as Multi-model Stack Neural Network (MMSNN) for short. Compared with the traditional biLSTM baseline model and Text-CNN model on the IMDE data set, MMSNN achieves the best results in both accuracy and loss.
【Key words】: Natural language processing; Sentiment analysis; Transformer; Text-CNN; BiGRU
0 引言
隨着社交软件的多样化,网络上的情感数据规模迅速增加,这些文本在各种研究科开发中广泛使用,因此情感分析任务在自然语言处理中的一个重要方向。现有基本模型的问题是:(1)使用RNN模型容易出现梯度爆炸或梯度消失问题。(2)虽然在序列问题上CNN模型(Kim等人[1])能取得很好的效果,但是由于池化操作容易造成信息损失。(3)最近的Transformer机制[2]在NLP领域大放光彩,但是由于结构过于复杂难以训练,给普通研究者带来困难。
因此,为了结解决上述问题,提出MMSNN模型并在IMDE数据集上取得优异的结果。MMSNN模型使用CNN模型zhang[3]等人提出的多通道Text-CNN,这种CNN可以使用不同的窗口获得不同长度的文本卷积信息,从而提取到更全面的文本信息进行计算,然后使用改自Transformer的编码器代替池化操作。这里删除编码器的前馈层只使用Attention机制。
模型构建及贡献如下:
(1)将位置信息和使用Word2Vec获得文本信息相加获得嵌入矩阵。
(2)使用biLSTM获取双向上下文信息,计算词义和词间关联。
(3)使用3个不同窗口大小的卷积计算句子间的信息以及句子间的联系。
(4)修改并使用Transformer的编码器分别捕获三个卷积操作后的编码信息。
(5)将信息传输到全连接层进行线性映射计算文本情感类别。
为了测试模型的普适性将模型在一个在情感分析任务上十分常用的电影评论数据集IMDB进行训练。这是一个二分类电影评论数据集,通过在这个数据集上的实验结果,与之前一些经典模型进行对比,发现MMsNN模型在情感分析方面更有优势,效果更好。
1 相关工作
自然语言处理领域近些年来迎来很多研究者的研究,并且取得了突破性的进展。在使用RNN模型的研究,長短期记忆网络(LSTM[4])和门控循环单元(GRU),以及在此基础上改进的双向RNN模型BiLSTM和BiGRU,在各类NLP任务中都有十分广泛的应用。后来有研究者使用一维CNN来做文本分类,但是效果一般,CNN[5]在文本处理时对序列文本的处理效果较好。Kim提出采用一个静态通道和一个动态通道的双通道CNN,更好的计算语言内容并且在当时获得很好的效果,紧随其后,Zhang等人提出的多通道不同窗口的文本分类算法,在kim的基础上进行了各种实验和优化实现了更好的效果。
Attention模型开始被Bahdanau等人[6]用到了机器翻译领域进行文本自动对齐,这大大提高了长文本的翻译准确率。Vaswani等人提出了基于Mult-Head- Attention的Transformer模型,开始在机器翻译中取得最好的结果后来广泛应用到其他NLP任务中。最近以Transformer为基础改进的模型出现很多,由Dai等人[7]提出了Transformer-XL模型,后来Radford等人[8]提出的GPT2和Devlin等人[9]提出的BERT模型取得了十分优秀的效果。然后在BERT的基础上进行改进又获得一系列优秀的模型,如XLNET[10]等。MMSNN模型使用改进Transformer的编码器模仿替代池化这一工作,并取得很好的效果。最近的工作[11]、[12]和[13]都利用了深度学习做文本处理。
2 模型设计
MMSNN的嵌入层是将内容嵌入和位置嵌入信息将其做元素加操作。将BiLSTM放到嵌入层之后作为编码器来收集双向上下文词义信息,然后使用Text- CNN的三个通道进行卷积,将卷积后的结果放入改进自Transformer编码器的结构捕获关键信息。将以上结果连接放入到全连接层,最后全连接层计算的矩阵信息传入到线性层使用Sigmoid函数得出分类结果。
2.1 BiLSTM
LSTM模型是由t时刻输入,单元状态,候选单元状态,隐藏状态,遗忘门,记忆门,输出门组成。单向LSTM的计算过程为,通过对单元状态中信息遗忘然后记忆新的信息传递对后续时刻计算有用的信息,丢弃无用信息。通过上个时刻的隐藏状态和当前输入计算出来的遗忘门,记忆门,输出门来控制当前时间步的隐藏层状态,以此获得长期依赖。其计算过程如下:
BiLSTM就是通过将上述过程中两个方向捕获的信息连接起来,将一段文本两个方向的信息结合起来编码出其中潜在表达的信息。表示如下:
2.2 修改的Transformer编码器结构
Transformer结构在各项NLP任务上均得到应用,仅使用Transformer编码器或者Transformer解码器的网络模型都取得最好的成绩。因此参考胶囊网络的初衷将修改后的Transformer编码器作为替换Max-pooling的结构从而加强网络效果。MMsNN中只使用了Transformer的编码器。Transformer的编码结构是由6个相同的隐藏层构成,每一层包含两个子层,第一个子层是多头注意力层(Multi-Head Attention)第二个子层是一个简单的全连接层。其中每个子层都进行了残差连接和归一化操作。我们的改进是减少编码器层数,去掉掩蔽和前馈层,不再作为预训练使用,而是用来计算双向句子信息。
Transformer使用了Scaled Dot-product Attention操作,它的输入由维度为d的Query(Q)和Key(K)以及Value(V)组成,计算Key与Query的点积,并应用softmax函数获得值的权重。其公式表示如下:
最后Transformer的multi-head attention则是通过h个不同的线性变换对Q,K,V进行投影,最后将不同的Attention结果拼接起来。其公式化表示如下:
2.3 Text-CNN
Zhang等人提出的多通道CNN改自Kim提出的双通道CNN算法中,证明采取微调策略(Non-Static)的效果比固定词向量(static)的效果要好。MMSNN模型使用的的是经过微调策略的3通道CNN算法。经过3个不同大小窗口进行卷积收集的信息更加全面.
最终使用的Text-CNN是将Max-pooling替换为Transformer的编码器结构,另一个处理是将不同窗口的卷积结果处理为能够表现卷积结果最优的相同尺寸的结果,然后传入修改自Transformer的编码器。
2.4 嵌入层
同现在大多数工作一样,在内容嵌入之外还加入了位置嵌入,因为一种语言中的情感表达往往跟句子在不同位置所使用的情感词汇有关。MMSNN模型使用的嵌入方法是在Transformer中提出的位置嵌入的算法,嵌入位置分奇偶,偶数位置嵌入是采用正弦计算,奇数位置嵌入采用的是预先计算。其具体算法如下:
pos表示位置,i是第几个位置。位置编码的每个维度对应于正弦曲线。我们选择此函数是因为我们假设它会允许模型轻松学习相对位置,因为对于任何固定的偏移量k,都可以表示为的线性函数。
2.5 最终模型
MMSNN模型综合上述三个模块,将上述三个模型作为我们所设计模型的子层。首先是位置嵌入和内容嵌入的加和作为嵌入层,然后使用Text-CNN的三个不同窗口的卷积计算句子间联系,接着使用修改后Transformer编码器捕获重要信息。最后将获得信息输入到线性层做文本分类并使用交叉熵函数做损失函数然后使用Adma进行优化。我们的模型如下:
(1)数据集位置嵌入加上内容嵌入的和作为嵌入层向量,这里使用按元素加的方法。
(2)使用BiLSTM来编码文本词义信息,同时biLSTM结构来获取双向文本的相关性。
(3)使用多通道不同窗口大小的CNN获得BiLSTM编码的上下文信息,经过计算得到更为全面的情感序列信息。
(4)使用修改自Transformer的编码器替换卷积层之后的池化操作,将卷积结果进行解码,在训练中捕获文本的重点信息。
(5)将捕获的信息传递到一个线性层使用Sigmod函数计算出得分和结果预测进行分类。然后经损失计算和优化操作计算网络权重。
3 实验结果
3.1 数据集
IMDB数据集:原始数据集包括训练集,测试集,和没有标签的数据。训练集25000条,正负各12500条。测试集25000条,正负各12500条。本文将测试集进一步划分为验证集和测试集。
3.2 对比试验
对比试验有两个,一个是基本的基于BILSTM和全连接层的的文本处理方法,第二个是Text-CNN,一个三个不同窗口的卷积神经网络。对比实验的描述如下:
BiLSTM:作为基准实验,只是用了biLSTM和全连接层做文本分类,用来测试biLSTM做RNN结构的对比的分类效果。
Text-CNN:使用三通道的一维卷积神经网络上,利用3个不同大小的的卷积窗口进行卷积操作,然后将三部分结果进行最大池化进行连接做文本分类。
3.3 实验设置
MMSNN使用了两层结构,第一层是一个BiLSTM层每个单向是100个神经元,连接成一个200维的双向上下文信息。第二层有两个子层,第一个子层是CNN,有三个通道,每个通道有各自的窗口,大小分别是2、3、4,过滤器大小为200。第二个子层是修改后的Transformer编码器,和基本的Transformer编码器结构一样有8个head,然后Transformer中进行了Dropout为0.1的正则化运算,最后是一个规范化层。我们实验的批次大小为128,嵌入层的维度大小为200,进行12轮训练。经过上述操作可以得出表示这个文本情感的重要信息,先将这个结果使用大小为0.5的dropout正则化,然后将这信息放入到一個线性层,使用了L2正则化,加上上述两层交叉熵损失来计算我们的模型损失。
3.4 实验结果分析
将MMSNN的模型和对比模型进行对比,可以看到如下所示的结果(如图2所示),相比基线模型BiLSTM+Full_connection和Text-CNN而言MMSNN模型有明显的优势,所以从结果来看MMSNN使用的带有修改的Transformer编码器的模型效果能够取得更好的效果。MMSNN的评价标准是分类的准确路和分类损失,实验结果图2所示。
分析上述实验结果图,BiLSTM和MMSNN模型的实验的训练准确率的增长幅度极为相似,训练损失的下降也极为相似。但是总的效果来说都是优于Text-CNN的。在进行测试的时候,可以看出来MMSNN模型的实验也和BiLSTM极为相似但是波动相对较为稳定,MMSNN模型的实验效果在第三轮达到最好评估效果约为86%,BiLSTM是85.5%而Text-CNN相对较差在第九轮获得为83.3%,同时验证损失MMSNN模型最低也是在第三轮获得为0.34,BiLSTM是0.35(第三轮),Text-CNN的损失是0.38(第九轮)。所以总的效果来说是MMSNN模型的实验取得更好的准确率和更小的损失。
4 结论与展望
通过这三个实验的对比可以发现循环神经网络结构在情感分析任务上相对卷积神经网络有明显的优势,这是由于CNN结构中的池化操作存在信息损失的缺陷。但是在结合BiLSTM、Text-CNN和改自Transformer编码器的结构能够取得最好的结果,由此也能证明Attention的优势。在单台计算机的运算条件下,MMSNN模型可以计算出来相当不错的效果。以后的研究方向会倾向于以下几点:1. 希望能够解决池化层导致信息损失带来的损害,将最近使用的胶囊模型和路由算法来代替卷积和池化操作,而不单是使用Transformer部分结构来代替2. 对模型进行优化,希望可以在单台计算机有限的时间内进行更大规模的模型运算。3. 根据最新研究趋势设计一个能够将修改的Transformer结构预训练使用从而尽可能取得更好效果的模型。
参考文献
[1]Kim Y, Convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1408.5882, 2014.
[2]Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[C]. Advances in neural information processing systems, pp. 5998-6008, 2017
[3]Zhang Y, Wallace B. A sensitivity analysis of (and practitioners' guide to) convolutional neural networks for sentence classification[J]. arXiv preprint arXiv:1510.03820, 2015.
[4]张玉环, 钱江. 基于两种 LSTM 结构的文本情感分析[J]. 软件, 2018, 39(1): 116-120.
[5]张晓明, 尹鸿峰. 基于卷积神经网络和语义信息的场景分类[J]. 软件, 2018, 39(01): 29-34
[6]Bahdanau D, Cho K, Bengio Y. Neural machine translation by jointly learning to align and translate[J]. arXiv preprint arXiv:1409.0473, 2014.
[7]Dai Z, Yang Z, Yang Y, et al. Transformer-xl: Attentive language models beyond a fixed-length context[J]. arXiv preprint arXiv:1901.02860, 2019.
[8]Radford A, Wu J, Child R, et al. Language models are unsupervised multitask learners[J]. OpenAI Blog, 2019, 1(8): 9.
[9]Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[J]. arXiv preprint arXiv:1810.04805, 2018.
[10]Yang Z, Dai Z, Yang Y, et al. Xlnet: Generalized autoregressive pretraining for language understanding[C]//Advances in neural information processing systems. 2019: 5754-5764.
[11]張玲玉, 尹鸿峰. 基于 OAN 的知识图谱查询研究[J]. 软件, 2018, 39(01): 54-59.
[12]吴亚熙, 岑峰. 基于卷积神经网络的多层级目标检测方法[J]. 软件, 2018, 39(4): 164-169.
[13]李平舟, 赵朗程. 基于BP神经网络的国家稳定性研究[J]. 软件, 2018, 39(6): 142-146.