中国人民公安大学学报(自然科学版)
2021年第1期No.12021Journal of People's Public Security University of China(Science and Technology)总第107期Sum107基于改进BERT模型的时政微博评论情感分类
赵柳杨,杜彦辉,王腾飞
(中国人民公安大学信息网络安全学院,北京100038)
摘要微博的流行使公众能够更加容易也更加积极地参与到社会话题的讨论中去,识别公众对事件的情感倾向已经成为一个有价值的话题。目前已有的情感分类方法往往是选择一种分类模型(比如SVM)或者结合几种分类模型,然后将数据直接进行分类,没有考虑根据数据的不同领域来调整分类模型。基于预训练的BERT网络,可以使用无标签的时政微博语料改进BERT模型,然后再进行情感二分类任务,其优势在于进行分类任务之前先进行无监督学习,使BERT模型学习到时政微博评论的语料特征,从而提高后续的分类任务效果。在约8万条时政微博评论的数据集上的实验结果表明该方法比直接采用BERT模型具有更高的准确率。
关键词时政微博;情感分析;BERT模型;自然语言处理
中图分类号D035.39文献标志码A
Sentiment Classification of Current Affairs Weibo Comments
Based on Improved BERT Model
ZHAO Liuyang,DU Yanhui,WANG Tengfei
(School of Information Network Security,People's Public Security University of China,Beijing100038,China)
Abstract:The popularity of Weibo has made it easier and more active for the public to participate in the discussion of social topics,and it has become a valuable topic to identify the public's emotional tendency towards events.The existing sentiment classification methods often choose a classification Models(such as SVM)or combine several classification models,and then classify the data directly,without considering the adjustment of the classification model according to different fields of the data.Based on the pre-trained BERT network,the BERT model cab be improved using the unlabeled current affairs Weibo corpus,and then carries out the sentiment binary classification task.The advantage is that unsupervised learning is performed before the classification task,so that the BERT model can learn the current affairs Weibo comments Corpus features,thereby improving the effectiveness of subsequent classification tasks.The experimental results on a dataset of about80,
000current affairs Weibo comments show that this method has a higher accuracy rate than directly adopting the BERT model.
Key words:political microblog;sentiment analysis;BERT model;natural language processing
0引言
社交媒体平台的兴起,如博客、论坛、微博等将互联网带入了web2.0时代。以前用户只是单向的接收由专业人士(报社、公司、门户网站等)生产的信息,如今借助微博等社交媒体平台,每一个用户都可以几乎
收稿日期2020-10-12
基金项目国家自然科学基金(61602489)。
作者简介赵柳杨(1996—),男,江苏淮安人,在读硕士研究生。研究方向为网络安全与执法、自然语言处理。
通信作者杜彦辉(1969—),男,博士,教授。E-mail:duyanhui@ppsuc.edu
・63・
零成本地成为内容的生产者,以实时、同步的方式分享自己的内容,由此带来的是互联网上信息的空前丰富。这些信息中携带着用户自由发表的评价、观点、看法、情感、立场等等,对这些蕴含在海量信息中的有价值的部分进行挖掘成了许多科学家探索的方向。
本文致力于对时政微博这一特定的领域的信息做情感分类。在线社交媒体对事件的发生和扩散可以起到重要的作用,网络舆论成为了影响社会有序发展以及和谐稳定的一个重要因素。因此对时政这一特定领域的微博进行情感分析能够让决策者尽早掌握有关社会大事的舆论动向,对作出正确的决策具有重要的参考价值。
情感分析是自然语言处理领域的一个基础任务,根据所处理的文本的颗粒度,情感分析可以分为3个级别:篇章级、句子级、属性级,篇章级和句子级比较好理解,属性级关注的是文本的观点以及观点评价对象。本文对微博评论做情感分析是一个句子级别的任务。其分类算法主要有两大类,分别是传统机器学习和深度学习。深度学习也分为两个阶段,BERT出现之前和BERT出现之后。
在深度学习还没有在自然语言处理任务普及的阶段,研究者们主要是使用机器学习算法,改进的角度也很单一,主要是利用情感字典,也就是使用了各种单词的情感极性,如“高兴”这个词是正面的、积极的。Bo Pang等人[1]使用3种机器学习算法(朴素贝叶斯算法、最大熵分类、支持向量机)进行了情感分类,是较早使用机器学习方法来进行情感分类的研究。吴威[2]使用文本挖掘技术以及基于朴
素贝叶斯分类器的EM算法对网页文本进行情感分类,也取得了不错的分类效果。Prem Melville等人[3]将单纯的使用先验知识即情感极性的方法和单纯的将情感分类视为文本分类的方法结合起来,提出了一个统一的框架,既使用了词汇的背景信息又使用训练数据的方法,并且显示出了比单独使用背景知识或者训练数据更好的效果。Shoushan Li等人[4]使用无监督学习的方法将文本自动化划分为个人观点和非个人观点,然后将分类好的两个集合用于监督学习中的分类,由此提出一种联合训练的算法将未标记的数据纳入半监督的情感分类中。Akshi Kumar等人[5]以推特上的文 本为对象,提出一种基于语料库和基于字典的混合方法来预测文本的情感倾向。以上几位学者对情感分类的研究都是使用了机器学习的算法,总体而言准确率不高。
-64-
随着深度学习的发展,自然语言处理任务开始引入神经网络模型,使用最广泛的有两种:循环神经网络、卷积神经网络。Ilya Sutskever博士⑷提出了一种新的方法,克服了RNN训练很困难的问题,其结合了受限玻尔兹曼机和循环神经网络,这使得在大型语料上训练RNN成为可能。卷积神经网络原本是计算机视觉领域的技术,Nal Kalchbrenner等人[7]率先将卷积神经网络用于语言的建模,可以捕捉更长的上下文。网络使用动态k-max池化,可以处理长度可变的输入语句,并为语句生成特征图,同时基于生成的特征图完成了多类别的情感分类任务。随着以神经网络为基础的Word2vec技术的发展,一些学者使用Word2vec来研究文本的分类。张谦等人[8]在Word2vec的基础上引入了TFIDF对词向量
进行加权,以区分文本中词汇的重要程度,实现加权的Word2vec分类模型。
2018年谷歌提出了BERT模型[9],自然语言处理开启了新的时代。BERT成为了自然语言处理任务的通用解决方案。基于BERT模型来完成情感分析任务成了一个不错的选择。这种方式又被称为基于BERT的微调,BERT相当于为各种自然语言处理任务搭建了一个基础框架。尽管BERT模型针对许多的任务的表现已经十分出,但是对BERT模型的改进依然是许多学者探索的方向。史振杰等人[10]提出一种基于BERT和CNN(卷积神经网络)相结合的网络模型并在京东手机评论数据上实现了良好的性能。与前者将BERT网络再衔接一层CNN网络不同,孙驰等人[11]没有改变网络的结构,而是提出一种构造辅助句子的方法,把情感分类的任务转化为句子对分类任务(例如问答任务,自然语言推理任务),这相当于在使用BERT模型之前先把数据按照特定算法预处理。作者通过实验验证了这种方法的有效性。为了考虑文本和图片一起出现的情况,于剑飞等人[12]提出一种多模式的BERT体系结构,把文本和图片分别输入到模型中去,再把文本输入的结果和图片输入的结果合并作为模型的输出。在机器学习方法中有学者把情感词典和机器学习结合,在深度学习方法上也有学者做了这样的尝试,张仰森等人[13]提出一种基于双重注意力模型的情感分析方法,先构建一个包含情感词、程度副词、否定词、表情符号、网络用语的情感符号库,将BERT中的注意力机制和情感符号库相结合提高了情感分类的性能。
在以上的BERT改进的研究中,学者们从网络结
构、数据预处理、图文并现、加入情感词典等角度对基础的BERT模型进行了改进。本文提出一种新的改进的方法,在最终的分类任务执行之前对BERT在特定领域进一步无监督学习。谷歌在训练BERT时使用的是来自和bookcorpus的语料,BERT模型是固定的,而分类任务的数据则是可以来自各种领域,各有特点。电商评论和电影评论显然是不同风格的语料,因此对BERT在特定领域进行无监督的学习是有必要的。之前的研究在使用BERT模型时并没有针对特定领域任务进行调整,所有的的文本分类任务依赖的模型都是相同的,模型参数的优化完全依赖于谷歌发布的更新,针对此问题,本文将BERT模型进一步使用时政微博评论进行无监督学习,为了更好地学习时政微博语料的特征,在无监督学习中,屏蔽词预测任务与原始BERT模型的方法是一致的,但是下一句预测的任务则调整为微博-评论预测任务,以适应微博的语料特点。把这两个任务的损失函数之和作为总损失函数,然后进行训练,通过这种方式来优化模型的参数,用优化后的模型来处理具体的分类任务。
1BERT模型
bert[9]是一种预训练语言表示的方法,并且这种预训是无监督的训练,这意味着BERT可以使用纯文本的语料库进行训练,这是BERT的优势所在,因为在互联网上可以获得多种语言大量的纯文本语料。BERT的目标就是利用大规模的无标注的语料训练从而获得包含语义信息的向量表示,实现了从文本到向量的转换,再把它使用到特定的自然语言处理任务中去做微调最终完成具体的任务。
BERT的全称是Bidirectional Encoder Representation from Transformers,Transformer是BERT的核心模块。Transformer是一种通过编码器和解码器将一个序列转换为另一个序列的体系结构(Seq2Seq),与其他的序列模型不同的是它不含有任何递归网络只含有注意力机制。以翻译模型为例,其输入是某种语言的字符序列,输出是另一种语言的字符序列,这是一种典型的Seq2Seq模型,注意力机制可以表示输出的字符与输入的字符之间的相关强度,比如“我饿了”被翻译成“I am hungry冶,其中“饿”就和“hungry”相关性高,虽然“饿”的英文是“hungry”,但是机器并不能够理解。注意力机制就是要让神经网络把“注意力”放在一部分输入上,区分输入的不同部分对输出的影响。
BERT预训练中的只使用了Transformer中的编码器部分,因而关注的是输入文本中不同部分之间的关联强度,又被称为self-attention(自我注意力),因为一个字或者词在文本中的意思通常与它的上下文相关,为了计算这种相关性,为编码器的每个输入字创建了3个向量q,k,V o q向量和各个k向量的相似度通过softmax函数计算的结果作为权重,然后加权融合目标字和上下文的v向量,如图1所示。其结果也是一个向量,实际计算的时候是多组q、k、v并行计算,通过矩阵计算来实现,矩阵计算公式如下:
Z=softmax(Q伊K)x V
k
(1)
为了增强多样性,使用多组不同的q,k,v,把最终的结果进行线性组合,得到一个与原始字向量长度相同的增强语义向量。紧接着再依次进行残差连接,做均值为0方差为1的标准化,进行两次线性变换,如图2所示。
|Sum]
h.h.
j
微博关闭评论一
o
o
o
o
_
Transformer编码器
图1注意力机制计算模型
向量表ZK
图2Transformer编码器示意图
标
准
化
层
输
-65
-
有了 Transformer 编码器,再把多个编码器一■层
一层堆叠起来,形成BERT 模型的整体结构,如图3
所示。输入的文本信息最终被以向量的形式输出。
一 o o
o o _输
I -MOOOOI -MOOOOI
-MOOOOI ->100001
解解
码■-'码器器
BERT 向量表ZK
图3 BERT 结构示意图
BERT 的结构如上文所述,其训练方式有两种:(1) Masked LM :随机抹掉输入中的一个或几
个词,然后根据剩余的词预测被抹掉的词,类似于完
形填空,在被抹去的词汇中80%情况使用一个特殊
符号[MASK ]替换,10%情况使用任意词替换,10%
情况保持原词不变。
(2) Next Sentence Prediction :给定一篇文章中
的两句话,判断第二句话在本文中是否紧跟在第一
句话之后。
BERT 模型使用这两种方式联合训练,通过反
向传播的机制不断调整BERT 网络中的大量的参
数,使损失函数最小。在训练完成语言模型的基础 上,针对分类任务的话,再加上一层 softmax 网络,然
后就可以在新的已标记的语料上训练得到一个分类
模型。通过这种方式,可以基于BERT 模型完成各 种具体的自然语言处理任务。
2基于改进BERT 的情感分类方法
本文基于BERT 模型,使用时政微博领域的语 料对模型进一步无监督学习,然后再进行时政微博
评论的分类任务。模型结构如图4所示。2. 1 无监督训练层
无监督训练层的目的是使用时政微博语料进一 步训练BERT 模型。在这一层,原始BERT 网络中 的参数会通过无监督学习更新。
原始BERT 有两种训练方式,分别是屏蔽词预
测(Masked LM )和下一句预测(Next Sentence Pre diction) ,这对于微博评论是行不通的。BERT 在预
训练时使用的是成段的长篇文章,一篇文章有好多
句子,因此天然形成了下一句预测的任务,而对于微 博评论来说,每条评论都是独立且简短的,不存
在第
二条评论是第一条评论的下一句的情况,因此很难
语义向量获取层
无监督训练层BERT
图4模型结构
I I
适用下一句预测任务。为了解决这个问题,本文设
计出微博一评论预测任务,给定微博内容和微博评
论,预测评论是否为这条微博的评论,评论一般都是
针对微博内容的,可以选择成对的微博内容和微博 评论作为训练语料,虽然它们不是上下句的关系,但
它们之间有逻辑联系,可以用于训练。屏蔽词预测 的任务比较容易解决,把微博内容和评论当作单纯
的语料,根据BERT 的屏蔽词生成规则处理文本构
造任务。这样就构造好了时政微博评论的无监督学
习任务。
2. 1. 1 数据预处理
为了满足数据输入的格式,需要对原始数据进
行一些处理,把所有的文本内容(包括微博内容和
评论内容)放到一个text 文件中,每条微博内容占一 行,将该微博对应的评论放在它的下一行。这样的
两行构成一个单元。每两个单元之间空一行,方便
输入时识别成对的微博和评论。随机屏蔽一些词,
用MASK 标志代替。这两项工作均使用Python 编
程语言完成。
2. 1.2损失函数计算
无监督训练采用的是两种方式的联合训练,它
们都有各自的损失函数。总的损失函数是二者
之和。
对于屏蔽词预测任务,假设被屏蔽的所有词的
集合为M ,集合的大小也就是单词数量为V ,预测屏
蔽词相当于是在集合大小V 上的一个多分类问题。
因为预测的结果是这V 个单词中的一个。假设第i 个样本的预测结果向量是A . = ( a.,a 2,-,a v ),其中
・66・
各个分量分别表示这个词是集合M中的某个词的概率,该样本实际对应词的概率记为P,,概率最大的分量值Max(A,)代表的词是BERT网络对这个样本的的预测结果,可能正确也可能错误,在正确的情况下P,=Max(A,)。样本总数为",根据交叉熵损失函数的定义
L1=;移_log(P,)(2)对于微博———评论预测任务,每一对微博和评论的预测结果只有成对或者不成对,也就是一个二分类任务。假设第j个样本的标签是Y-(其值为1或者0,1代表成对,0代表不成对),BERT网络对这个样本的预测为1的概率为号,样本总数为他,根据交叉熵函数的定义
L2=N移-Y-log(P j)-(1-YJlog(1_P j)
2j
(3)
总的损失函数为二者之和即
L=;移-log(P‘)+N移-
Y-log(P j)-(1-Y-)log(1-P j)(4)然后设置一定的学习率,通过梯度下降算法以及神经网络的反向传播机制使损失函数最终收敛至最小值,无监督训练就完成了。此时的BERT网络中的参数都相比开始时得到了更新,这就是经过无监督训练改进后的BERT。
2.2语义向量获取层
语义向量的获取是指把文本输入到改进的BERT模型中,然后获得他的输出向量。但是文本数据并不能直接被应用,首先要把输入的连续文本分割成一个个的字,字不能直接输入,BERT模型输入的是向量,因此需要把这些字转换成一个初始的向量以便用于输入,通过在神经网络中的不断的迭代最终可以得到每个字的语义向量表示。初始向量一般可以随机生成,只是这样在神经网络中的收敛速度会很慢,导致训练时间过长。这里使用基于词汇表的方法,对于汉语来说就是一种字表,每一个汉字都对应着一个唯一的编号,将这个编号作为这个汉字的表示。这只是构成输入向量的一部分,为了区别字在上下文的位置,使用一种位置编码来表示序列顺序。同时BERT为了能够适应其他的任务,比如问答任务,还设置了文本所在部分的编码(segment embeddings),在问答任务中就是为了区别问题和答案。但在本文的情感分类中输入只有一个部分,就是评论文本,所以它们的部分编码都是一致的。把基于词汇表的输入和位置编码以及部分编码三者合成就是最终的输入向量。
输入向量经过改进后的BERT网络就可以得到输出向量,这就是要获取的语义向量。有了语义向量就可以对它进行分类了。
2.3情感分类层
情感分类层结构简单,本文要进行的情感分类是一个二分类任务,情感被分为正向和负向,因此把语义获取层获得的语义向量通过一个具有两个输出神经元的全连接层(也就是输出是一个二维向量),之后
再通过softmax激活函数来预测结果的概率分布,输出二维向量的两个分量被转化为概率值,分别表示样本是正向和负向的概率。根据交叉熵损失函数的定义
L=1移-y,lo g(P J-(1-y,)lo g(1-P J(5)其中y,表示第i个评论样本的标签,正向为1,负向为0。P,表示第i个样本被预测为正的概率。N是训练样本总数。
在对整个训练集的学习中,通过梯度下降和神经网络的反向传播机制不断更新这一层中的参数,最终得到一个时政微博评论情感分类器。
3实验与分析
3.1数据集
根据上一节阐述的方法,实验将会用到微博内容和微博评论的数据。微博内容会对应于多条微博评论,用于无监督的训练,除此之外还有单独的评论数据用于分类任务。实验的数据来自网络爬虫。总体信息如表1。
表1数据集统计信息
数据介绍
无监督训练语料
分类任务
共计2387条微博以及对应的60477条评论
共计83883条评论,正向有42130条,
负向有41753条
本文聚焦的是时政微博评论的情感分类,因此上述的数据主要来自于人民日报、央视新闻、新华社、环球时报等主流媒体微博的内容和评论。下面给出一些数据的的样本。如表2。
-67-
发布评论