基于XLNet的中文文本情感分析
2023-01-07李东金阴良魁程宝娜
李东金,单 锐,*,阴良魁,王 芳,程宝娜
(1.燕山大学 理学院,河北 秦皇岛 066004;2.中国科学院 科技创新发展中心,北京 100190)
0 引言
随着网民数量的增加,越来越多的评论信息不断涌现。网民不仅可以在政府网站、微博等公众平台浏览每天发生的各类事件,还可以发表自己对这些事件的看法和态度。因此在这些平台中的存储了大量带有一定的情感倾向的文本。对这些文本进行深层次的提取,可以及时获取网民在这些评论文本中所表达的对各种热门事件和各种产品的看法和情感倾向,不仅可以使政府及时获取网络舆论情况,还可以使商家精准获得客户的需求。因此,随着自然语言处理技术的发展,可以从海量的评论文本中提取出评论者的情感倾向。
情感分析是通过一些特定的方法对评论的情感倾向进行判断,并根据判断的结果对文本进行分类,主要分为三个类别,基于情感词典的方法、基于机器学习的方法和基于深度学习的方法[1]。
基于情感词典的方法准确率主要和情感词典规模有关,因此模型往往只能针对某一领域有较好的结果,而对其他领域的情感分析较差,从而导致模型实时性不强[2]。基于机器学习的方法是构造分类器进行情感分析,Pang等[3]在对影评进行情感分析时,首次使用机器学习算法对文本情感进行分类,并在模型中结合了N-grams 模型和词性。相比于情感词典,机器学习方法相对情感词典方法有了一定的进步,但人为因素会对特征的选择产生一定的影响,且对于不同领域无法使用同一特征; 数据集的质量决定了分类器的效果,高质量的标注数据仍然需要人工大量构造[4]。而深度学习网络是通过模拟人的神经系统搭建的,所以其特征表示能力和分类能力更强于情感词典和机器学习[5]。基于深度学习的方法,都是将文本信息转换成序列化向量,通过神经网络对特征向量进行深层次的提取,并运用各种机制优化模型,从而得到了更高的准确率。Mikolov等[6]提出的 Word2vec,将每个词由k个维度的实值向量表示,使得Word2vec被广泛应用于情感分析领域。文献[7]通过Word2vec得到词向量,利用卷积神经网络(Convolutional Neural Network,CNN)对文本的局部特征进行提取,双向长短时记忆网络(Bi-directional Long Short-Term Memory, BiLSTM)则对文本的上下文特征进行提取,在一定程度上提高了文本情感分类的准确性。但是通过 Word2vec 得到的词向量无法解决相同词语在不同句子中可能具有不同的含意的问题。文献[8]提出了基于注意力机制的词表示方法,该方法利用《同义词词林扩展板》计算字词间的语义贡献度,并在数据集上验证了模型的有效率。文献[9]通过Word2vec获得初始词向量,并通过TF-IDF对文本情感影响程度不同的词汇赋予不同的权重值,以突出影响程度较大的词对文本的影响,从而取得了较高的准确率。
近年来,随着自然语言处理技术的发展,为了解决静态词向量模型的缺陷,研究者经过大量的研究提出了动态词向量表达。以此产生的模型有ELMo[10]、OpenAI GPT[11]、BERT[12]、XLNet[13]。由于静态词向量模型不能解决多义问题,文献[14]利用ELMo生成融合词语所在句子的上下文信息的词向量,并将其输入到改进的Transformer中,使模型提取到了更加丰富、全面的语义信息,从而获得了更高的准确率。文献[15]将ELMo和Glove获得的词向量进行堆叠嵌入,采用了CNN和双向门控循环单元 (Bi-directional Gated Recurrent Unit, BiGRU)的双通道神经网络模型,并通过仿真实验验证了模型的准确率。虽然ELMo由BiLSTM组成,这种方式在一定程度上同时利用了上下文信息,但只是对节点左右信息进行了拼接,其两边的信息并没有交集,因此ELMo并没有获得真正的上下文信息[16]。GPT预训练词向量模型为了获得长距离文本信息首次利用了Transformer网络。它虽然对ELMo进行了改进,但是GPT仍然是一种单向的语言模型,因此,仍然不可能为序列编码提供上下文信息。而BERT模型同样采用 Transformer 编码,BERT是在训练过程中对部分词语进行屏蔽来实现双向预测的。文献[17]以BERT模型为基础,引入了BiLSTM层和CRF层,使得模型可以通过上下文来判断情感倾向不明确的文本。虽然BERT在文本情感分析领域取得了不错成果,但也仍存在一定的缺陷,如预训练过程中的数据与微调的数据不匹配。XLNet模型的提出在一定程度上解决了BERT 模型存在的问题。XLNet模型和BERT模型的主要区别是:XLNet方法允许在双向上下文中训练模型,而无需像BERT方法那样屏蔽一部分预测词。文献[18]提出了基于XLNet和胶囊网络的模型,该模型采用带有动态路由算法的胶囊网络来提取文本的局部和空间层次关系,并产生局部特征表示,数据集测试表明,其性能优于BERT。文献[19]在XLNet的基础上增加了LSTM层和注意力机制,通过XLNet获取动态词向量,LSTM则用于提取上下文特征,最后再通过注意力机制,赋予特征不同的权重,该模型经过测试获得了较高的准确率。可以看出,XLNet预训练模型比其他词向量模型包含了更多的文本上下文语义信息,因此通过XLNet获得的动态词向量可以进一步提高模型的性能。
综上所述,本文提出了基于XLNet的文本情感分析模型。首先通过XLNet获得了包含文本上下文相关信息的词向量,在一定程度上改善一词多义问题;其次利用CNN和BiGRU提取文本的局部和全局特征;再通过注意力机制,对影响大的特征赋予较大权重,对影响较小的特征赋予较小权重;最后,通过softmax分类器判断情感极性。
本文的主要工作如下:
1) 首先,对于文本向量化,本文采用预训练语言模型XLNet,以获得包含更多文本上下文语义信息的动态词向量,从而最大程度解决一词多义问题。
2) 其次,通过CNN和BiGRU对获得的词向量进行特征提取,获得了文本的局部和全局特征,使得模型能更好地理解文本的语义。
3) 最后利用注意力机制,对影响大的特征赋予较大权重,对影响较小的特征赋予较小权重,更加突出关键信息对文本的影响,降低噪声特征的干扰,从而进一步提高模型的准确率。
1 基于XLNet的文本情感分析模型
基于XLNet的文本情感分析模型主要由四部分组成,包括XLNet、CNN、BiGRU和注意力机制。本文模型如图1所示。
图1 XLNet-CNN-BiGRU-Att模型架构图Fig.1 Framework of XLNet-CNN-BiGRU-Att model
1.1 XLNet层
XLNet模型不仅具有 BERT模型的优点还对BERT模型的缺陷进行了改进,为了实现双向预测XLNet使用了三种机制:排列语言模型、双流自注意机制、循环机制[20]。
1.1.1 排列语言模型
现有的预训练模型可以分为自回归模型(autoregressive,AR)和自编码模型(autoencoding,AE)。AR模型可以根据上文情况预测下一个可能的单词,也可以通过下文预测上一个可能出现的单词,因此AR模型只考虑单向的文本信息,ELMo就是一个经典的自回归语言模型。而AE模型则通过对原句子进行破坏,并通过该模型来对原句子进行重构,将对受损部分重新预测,但在调优过程中实际数据中并不存在预训练时AE模型中使用的人工替换词,这将导致预训练和调优之间的差异。因此XLNet模型通过引入随机排序的思想,充分发挥了AR模型和AE模型的优点,又避免了他们的缺点。该思想获得序列的所有不同的排列,以获得不同的语序结构,通过学习不同排序的序列特征信息实现其双向预测的目标,同时不会改变原始词顺序。
但是对于一个长度为T的序列,其因式分解后的顺序有T!个,因此研究者对XLNet采取部分预测的方法进行优化。因此最终使得式(1)达到最优:
(1)
其中,T为该序列的所有不同顺序的集合,Z为集合T中的一种排列顺序,xzt表示顺序Z中第t个位置上的值,XZ 1.1.2 双流自注意机制 双流自注意机制的作用就是希望在预测xi时不仅要看到xi的位置信息还要获得其他词的位置和内容信息。双流自注意机制包括Query流和Content流。图2和图3是Query流和Content流的计算流程。其中Query流用g表示,Content流用h表示。 图2 Query流Fig.2 Query stream 图3 Content 流Fig.3 Content stream 根据Query流的工作原理,当预测某个词时,Q向量只包含该位置的位置信息,K和V则包含其他位置的内容信息,而对于Content 流,其与传统的transformer一样,同时编码了上下文和目标自身。 XLNet则是将Query 流和Content 流相结合,如图4所示。第一层将hi(0)和gi(0)分别初始化为e(xi)和W,然后使用Content掩码和Query掩码依次计算每一层的输出。 图4 双流自注意机制下的模型计算原理Fig.4 Principles of model computation under a two-stream self-attentive mechanism 1.1.3Transformer-XL 因为Transformer要求输入序列长度固定,这就使得长度小于所要求的固定长度时,需要对其进行填补,但长度大于固定长度则需要对序列进行分割处理,导致训练时失去部分信息。为了解决这样的问题,XLNet使用了 Transformer-XL 中循环机制和相对位置编码机制[21]。循环机制会在当前文本的计算中引入上一段文本输出的信息,使模型能够看到更多的上下文信息。由于引入了上一段文本的输出信息,可能使得位置编码相同但片段不同从而对当前片段的影响程度不同,所以引入了相对位置编码机制,该机制是将词语之间的相对位置应用于编码中。 综上所述,XLNet克服了自回归语言模型只考虑单项传递,没有充分利用上下文来提取更深层的信息,因此XLNet可以训练出更加完整的融合上下文信息的词向量。 本文模型应用卷积神经网络是为了对文本的局部特征进行提取,但由于本文设置BiGRU后连接全连接层和softmax分类器,故本文CNN主体由两部分构成:输入层、卷积层。 1) 输入层 本文采用XLNet对文本信息进行向量化,将输入的词向量用H∈Rk×n进行表示,其中k是句子的词向量个数,n代表词向量的维度。 2) 卷积层 卷积层使用固定尺寸的卷积核对输入的文本向量进行卷积运算,得到文本的局部特征信息[22]。卷积运算通常使用h×n维的过滤器,其中h和n分别表示卷积核尺寸和选取的词向量维度。 Cho等[23]在2014年提出了GRU网络模型,在GRU模型中只存在两个门:更新门和重置门。结构如图5所示。 图5 GRU结构Fig.5 GRU structure 图5中zt和rt分别表示GRU模型中的更新门和重置门。其计算公式为 rt=σWrxt+Urht-1 (2) zt=σWzxt+Uzht-1 (3) (4) (5) 由于单向GRU网络在时刻t只能捕捉t时刻之前的历史信息,所以只通过单向GRU是无法获得文本上下文信息的。为了实现这一目的本文采用双向门控循环单元。BiGRU网络模型的具体结构如图6所示。 图6 BiGRU神经网络模型Fig.6 BiGRU neural network model 文本向量分别以正向和反向的顺序通过前向GRU和后向GRU,因此通过BiGRU每一时刻得到的文本特征信息都包括上文与下文之间的相关性。计算公式为 (6) (7) (8) 注意力机制通过对文本向量分配不同的权重,更加突出文本中更重要的信息,并减少次要信息的干扰,提高分类的准确率[24]。因为对于每个句子,不同的词对句子的影响程度不同,因此,本文引入了一种注意力机制。注意力机制本质上就是Query到一系列键值对(Key-Value)上的映射函数,其计算流程如图7所示。 图7 注意力机制计算流程Fig.7 Attention mechanism calculation process 本文模型的参数如表1所示。 表1 XLNet-CNN-BiGRU-Att模型参数设置Tab.1 Parameter settings of XLNet-CNN-BiGRU-Att model 本文采用谭松波酒店评论数据集,包含6 000条语料,按照积极和消极分为两类,积极语料包括3 000条,消极语料包括3 000条。本实验将随机抽取70%的数据集作为训练集,另外的30%作为测试集。其中积极评价用标签1表示,消极评价用标签0表示。 本文模型以keras架构实现,通过Anaconda平台采用Python语言进行验证,操作系统为Windows 10家庭版,CPU为Intel Core i5-11260H @ 2.60 GHz,硬盘为1 TB,内存为32 GB。 本文模型性能将由精准率P、召回率R和F1值3个指标进行评估,其计算公式为 (9) (10) (11) 式中:nTP为把标签为1的文本判断成标签为1的文本的数量;nFP是把标签为0的文本错判成标签为1的文本的数量;nFN是把标签为1的文本错判成标签为0的文本的数量。 本文设置了多组实验进行对比,其中包括单一模型和联合模型的比较、静态词向量模型和动态词向量模型的比较。其中前五个模型均用XLNet预训练语言模型获得词向量,而最后的模型采用Word2vec模型获得词向量。 1) XLNet:单一的XLNet模型。 2) CNN:单一的CNN模型。 3) BiGRU:单一的BiGRU模型。 4) CNN-BiGRU:在XLNet的基础上先添加CNN模型,在CNN后加入BiGRU模型,最后接softmax分类器。 5) W2V-CNN-BiGRU-Att:首先通过Word2vec获得词向量,依次连接CNN模型、BiGRU模型和注意力机制。 经过测试集测试,本文模型与其他5种模型的结果对比如表2所示。 表2 模型对比结果Tab.2 Comparison results of models 从表2中6组模型的3个指标对比结果可以看出,本文模型的分类效果更好。首先第2和5组模型对比可以得出CNN和BiGRU均对文本情感分析产生了正向影响。其次第3、4、5组模型对比体现出了 CNN-BiGRU联合模型的优点,CNN-BiGRU联合模型可以同时获得文本的局部和全局信息,其中第3组单CNN模型只考虑了文本局部信息对情感分析的影响,忽略了全局信息的影响,而第4组模型只考虑了全局信息的影响,忽略了局部信息的影响,因此第3组和第4组模型准确率、召回率和F1值均低于第5组模型。再次第5组模型和本文模型相比,体现出了在联合模型之后连接注意力机制可以有效提升模型的准确率,因为注意力机制会对贡献度不同的特征赋予不同的权重,会更加突出重要特征的影响,使得模型具有更高的准确率。最后由于XLNet预训练语言模型可以获得真正的融合上下文语义的词向量,即相同的词语在不同语义下会得到不同的词向量,而Word2vec对不同语义下的同一词语赋予的词向量是完全相同的,因此最后一组模型的精确率、召回率和F1值均低于本文模型。综上所述,本文模型具有良好的性能和泛化能力。 本文在XLNet预训练语言模型的基础上加入了卷积神经网络、双向门控循环网络和注意力机制,不仅解决了传统词向量模型的一词多义问题,而且同时提取了文本的全局与局部信息,此外注意力机制还加强了重要特征对文本分类的影响,有效地提高了模型的准确率。通过对比实验,本文模型各种评估指标均有一定的提升。由于本文只将文本分为积极和消极两类,因此文本情感细粒度是下一步研究的重点。1.2 卷积神经网络
1.3 BiGRU层
1.4 注意力机制
2 实验及分析
2.1 实验条件
2.2 评估指标
2.3 对比实验设置
2.4 实验结果分析
3 结论