APP下载

基于BERT与BiLSTM的中文短文本情感分析

2020-12-18刘文秀李艳梅付顺兵

关键词:集上向量文本

刘文秀,李艳梅,罗 建,李 薇,付顺兵

(西华师范大学 计算机学院,四川 南充 637009)

0 引言

文本情感分析是指让计算机对人类所表达的带有主观意识的语言文本进行情感分类.近年来,网民们将自己的看法和观点发表在社交媒体中的现象越来越普遍,对这些社交网络文本进行情感分析,可以帮助相关人员了解和掌握网民的情感走向,从而可以做出更正确的决定.比如,可以通过顾客对某种商品或者服务的评价,分析得到该产品的优点和缺点,从而帮助产品所有者做出更加正确的决定.

随着深度学习近年来在文本情感分析上的广泛应用,文本情感分析得到了很大的发展空间[1].由于目前主流的文本情感分类模型都是基于词向量的,且这些模型很难解决一词多义的问题.本文通过学习BERT模型[2],即基于双向 Transformer 的编码器表示,在BERT预训练模型基础上构建自己的模型,提出了BERT-BiLSTM(BBL)模型的文本情感分析方法.在实验所用的数据集上,利用NLP的综合评价指标accuracy、F1、Recall和Precision证明了BBL模型相比于传统深度学习模型效果要好.

1 相关研究

在传统文本情感分析方法中,使用较多的方法有两种.第一种是基于情感词典的方法[3],它是利用一系列规则和情感词典来进行分类的.该方法首先将情感词典中的词语和待分析文本中的词语进行匹配,然后通过计算获得句子的情感值,最后把得到的情感值作为句子情感倾向分类的判断依据.虽然这种方法的正确率比较高,但是构建情感词典的成本较大,而且基于情感词典的方法没有考虑文本中词语之间的联系,缺少词义信息.第二种是基于机器学习的方法[4],它利用标记好的数据与标签,这些数据和标签都是人工标记的,然后再利用机器学习的方法对文本进行情感分析,常用的机器学习方法有朴素贝叶斯NB(Naive Bayes)、决策树、支持向量机SVM(Support Vector Machine)等.该方法效果的好坏主要依赖于人工标注的数据的数量和质量,所以受人的主观意识影响较大,且要耗费大量人工.为了弥补以上两种方法的不足,后来提出了深度学习.

近年来,深度学习在自然语言处理领域的使用越来越多[5].1990年神经网络专家Jeffrey L Elman在Jordan network模型的基础上,结合BP算法提出了循环神经网络模型(recurrent neural networks,RNN)[6].虽然该模型可以利用前馈连接和它内部的反馈连接有效处理时间序列数据,但存在梯度消失和梯度爆炸问题.1997年Hochreiter提出长短时记忆网络模型(Long Short Term Memory Network,LSTM)[7],该模型通过设计使用门控单元和记忆机制缓解了早期RNN的问题.但是LSTM只能获得与当前词相关的前文信息,无法获得相关下文信息.2016年Xiao等人在LSTM的基础上提出双向长短期记忆网络模型(Bidirectional Long Short-term Memory,BiLSTM)[8].该模型通过设计使用前后两个方向的LSTM,分别获得了当前词与上文和下文的关系.所以本文将BiLSTM作为模型的一部分.

为了让计算机认识人们所理解的自然语言并对其进行操作,需要把人的语言转换成计算机的语言,即文本向量化.One-hot[9]向量不仅让计算机能读懂文本,还解决了分类器处理离散数据困难的问题,在一定程度上也起到了扩充特征的作用[10],但是One-hot向量不适合处理具有顺序信息的文本,因为它没有考虑词与词之间的顺序,认为词与词之间是相互独立的,所以得到的特征是非常稀疏的.后来随着许多词向量化表示方法的提出,比如LDA主题模型(Latent Dirichlet Allocation),LDA、CBOW模型(Continuous Bag-of-Words,CBOW)、 Skip-gram神经语言模型以及Word2vec[11],这些方法解决了部分词与词之间的联系问题,为神经网络等深度学习模型处理自然语言奠定了基础.但是这些方法都没有解决一词多义的问题,而且这些文本表示方法存在的另一个问题是需要对文本进行分词处理.但是中文语句非常复杂,且句子的语义灵活性较高,对句子进行词语划分的难度较大,因此基于分词的向量化方法存在一定的局限性.

基于上述存在的问题,2018年谷歌公司提出了BERT语言预训练模型,该模型不但解决了一词多义的问题,其中的文本向量化也是基于字符的.本文在BERT的中文和多语言预训练模型下结合BiLSTM模型提出了BERT-BiLSTM(BBL)模型,在两个中文数据集上进行文本情感分析实验.

2 相关模型

2.1 双向长短时记忆网络

虽然LSTM解决了RNN中长距离依赖的问题,但是在待分析文本中,当前词的信息不仅与上文有关,还与下文有关.所以,本文利用BiLSTM取代LSTM,从而弥补下文信息.BiLSTM 是由一个正向和一个反向的LSTM叠加而成的.BiLSTM的网络模型如图1所示.

图1 BiLSTM网络模型

(1)

(2)

(3)

2.2 BERT预训练语言模型

在历史的发展中,语言模型经历了专家语法规则模型,统计语言模型,神经网络语言模型[13].针对传统语言模型无法解决一词多义的问题,本文采用了BERT预训练语言模型,其结构图如图2所示.其中E1,…,En表示模型的输入向量,中间是多层双向Transformer特征抽取器,T1,…,Tn表示模型的输出向量.和传统的循环神经网络RNN和LSTM相比,双向的Transformer特征抽取器可以获取更多的上下文信息,也可以提取更多的文本特征.

图2 BERT预训练语言模型

相比于传统循环神经网络,BERT可以获取更多上下文信息,也可提取更多特征信息.因为它采用了随机遮挡办法,实现了真正的双向编码.首先BERT在待预测文本中随机遮挡15%的文本,然后在被遮挡的文本中80%被masked token标记代替,10%被随机词代替,10%保持被遮挡不变.

其中,BERT中每个符号的输入由Token Embeddings、Segment Embeddings和 Position Embeddings(位置向量)三部分组成,如图3所示.Token Embeddings表示词向量,其中的ECLS标识了每一个句子的开始信息,ESEP标识了两个句子的分割信息.Segment Embeddings表示段向量,其中EA和EB分别表示两个句子的段向量,当需要对下一个句子进行预测时,就会把两个句子进行拼接.Position Embedding表示位置向量,它是用来标识词向量位置信息的.最后把三个向量叠加构成模型的输入部分.

图3 BERT预训练模型词向量构成

BERT预训练语言模型使用的特征抽取器是Transformer[14].如图4所示,Transformer是由多个重叠的单元组成,每个单元由两部分组成,第一部分是自注意力机制(self-Attention),第二部分是前馈神经网络(Feed Forward Network).单元内部的子层之间设计了残差连接,如图中虚线所示,该连接可以保证把上一层的信息完整地传到下一层.当输入部分进入Transformer特征抽取器时,在第一个子层中首先经过自注意力层,然后进行残差处理和层标准化;在第二个子层中把从自注意力层得到的输出传递到前馈神经网络当中,然后同样进行残差处理和层归一化.

Transformer特征抽取器中最重要的结构是自注意力机制模块,其结构图如图5所示.在自注意力机制中,每个输入也对应三个向量,分别是查询向量(Q),键向量(K)和值向量(V),其中Q和K的维度必须相同,V的维度可同也可不同.接下来要计算每一个输入的输出,步骤如下:

Step1:首先通过向量Q和向量K做点积得每个词或字的重要程度得分s.

s=Q□K

(4)

(5)

因为单一的自注意力机制不能获取更多的子空间信息,所以BERT预训练模型中使用了多头注意力机制(Multihead-attention),用于获取句子级别的语义信息.该机制是由多个自注意力机制构成的,其计算方式就是把多个自注意力机制并行地进行计算,然后把多组输出乘以随机初始化的矩阵W,最后做一次线性变换就可以得到输出.计算公式如下:

Multihead=concat(head1,head2,…,headn)W

(6)

(7)

3 相关实验

3.1 实验环境配置

实验采用工具包是Anaconda,使用的编程语言是Python3.6.使用的框架是Keras,该框架里面封装好了Keras版的BERT,用户可以通过官方发布的预训练权重对BERT进行调用.实验使用的处理器是CPU.

3.2 实验数据集

本文实验所用数据集是由谭松波博士整理的酒店评论数据集[15].该数据集由四个不同大小的子数据集构成,分别为:ChnSentiCorp-Htl-ba-2000、ChnSentiCorp-Htl-ba-4000、ChnSentiCorp-Htl-ba-6000、ChnSentiCorp-Htl-ba-10000.为了简化表示,简写为CSC-1、CSC-2、CSC-3、CSC-4.本文实验采用的数据集为CSC-3和CSC-4,其数据集概况如表1所示.

表1 数据集概况

3.3 实验评价指标

本文采用的实验结果评价指标是F1值、准确度(Accuracy)、精确度(Precision)和召回率(Recall).这些指标都是通过TP、TN、FP和FN计算得到的.其中TP表示预测值为真,实际值也为真;FP表示预测值为真,实际值为假;FN表示预测值为假,实际值为真;TN表示预测值为假,实际值也为假.具体计算公式如下:

(8)

(9)

(10)

(11)

除此之外,实验还采用了AUC(Area Under roc Cure)值对实验结果进行评估,其中AUC值越大,说明模型分类效果越好.

3.4 参数设置

本文采用的参数主要有:BERT base网络结构,其中网络层数为12,隐藏层维度为768,注意力的多头个数为12,总参数大小为110 M.由于谭松波酒店评论数据集中文本较短,所以句子的最大长度取值为200,每批次大小为64,迭代的次数为80,采用的优化器是Adam[16],设置的学习率是Le-5.BiLSTM的层数为1,隐层节点数为128.

3.5 实验结果分析

本文通过进行6组实验,分别在测试集上计算得到F1值、Recall值、Precision值、AUC值和Val-acc值,两个数据集的对比结果如表2和表3所示.

表2 CSC-3数据集实验结果

表3 CSC-4数据集实验结果

根据表3列出的实验结果可知,BBL模型在CSC-3数据集上的运行结果要优于其它模型.其中,BiLSTM模型的实验结果值高于LSTM模型的实验结果值,所以实验证明BiLSTM模型在学习文本上下文特征上的能力比LSTM模型更强,从而利于本文模型提取更多上下文信息.从实验的综合指标F1值和Val-acc来看,BERT-LSTM模型比前四个模型的实验结果都好,证明了BERT预训练模型训练好的字符向量比词向量能获取更多文本特征,更利于本文模型提取文本信息.所以我们结合BERT和BiLSTM模型构成了BBL模型,实验结果证明,BBL模型的各个实验结果值确实优于其他模型.

图6和图7分别展示了各个模型在CSC-3测试集上的F1值和Val-acc值变化.其中实验迭代次数为80.根据图6和图7可以看出,BBL模型的F1值曲线和Val-acc值始终在其他模型的曲线上方,证明了该模型在进行文本情感分类方面的能力较强.

为了更有力地证明BBL模型的优势,实验还在CSC-4数据集上进行测试,其中迭代次数也为80.实验结果表明,和在CSC-3数据集上的结果相比,使用较大的数据集能使BBL模型获得更好的分类效果.因为更多的数据可以让模型在训练过程中获取更多文本特征,提升分类效果.总体上,BBL模型在CSC-4数据集上的F1值、Recall值、Precision值和Val-acc比本文其他模型都有提升.

图8和图9展示了本文各个模型在迭代次数为80时的F1值和Val-acc的变化.根据图8可以看出,BBL模型在迭代次数为50以后,F1值就始终高于其他模型了.而在图9中,BBL模型的值始终高于其他模型.

4 结语

本文提出的BBL模型利用BERT中强大的Transformer机制,在字符级别上对文本进行分析,与传统LSTM、BiLSTM、TextCNN和BERT-LSTM模型相比,该模型的实验结果更好.但是本文只对二分类的文本进行文本情感分析,没有考虑多分类的文本,所以接下来的工作是进行多分类的文本情感分析,得到文本更丰富的语义信息.

猜你喜欢

集上向量文本
文本联读学概括 细致观察促写作
向量的分解
GCD封闭集上的幂矩阵行列式间的整除性
聚焦“向量与三角”创新题
基于互信息的多级特征选择算法
作为“文本链”的元电影
基于doc2vec和TF-IDF的相似文本识别
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
师如明灯,清凉温润