APP下载

基于特征融合的中文新闻文本情感分类方法研究

2023-02-07冯宇航邵剑飞张小为邵建龙

现代电子技术 2023年3期
关键词:特征向量卷积向量

冯宇航,邵剑飞,张小为,邵建龙

(昆明理工大学 信息工程与自动化学院,云南 昆明 650500)

0 引言

2017年,谷歌发布了Transformer模型[1],并且模型表现登顶各大阅读理解赛事的榜单,该模型的核心思想是自注意力机制,引入这种机制后模型可以关注输入序列的不同位置从而计算序列的表达能力。基于Transformer的编码器部分,文献[2]提出一种(Bidirectional Encoder Representation from Transformers,BERT)预训练的深度学习自然语言框架,BERT的传统流程包括两个阶段:预训练和微调。预训练使用两个自监督任务:掩蔽语言建模(MLM,预测随机掩蔽的输入标记)和下一句预测(NSP,预测两个输入句子是否彼此相邻)。在下游任务的微调中,常常在最终编码器层的顶端增加一个或多个全连接层。该模型在各种自然语言处理任务上的表现都为最佳[3],其主要通过将文本分词后转化为词向量输入到各类分类器后进行分类。

为验证传统词向量方法的有效性,本文提出一种基于门控单元特征融合的方法,并与词向量的方法进行分类精度对比。首先将BERT与其他模型在同一个数据集下分别进行单独训练,然后将各个模型提取到的文本特征向量进行特征融合,最后对比几个模型的训练结果。

1 基于BERT模型新闻情感分类原理

BERT模型的主体思想为:先通过BERT将文本序列转化为embedding[4]、字向量以及位置向量,再把这些向量进行求和后获取文本的特征信息,最后通过BERT本身自注意力机制的加权后再经过Softmax层[5]完成新闻文本情感分类。

BERT的输入即为文本数据中每个字的原始词向量,它的输出包含两部分:一个是字符级的级别,将新闻文本转换为向量表示;另一个是句子级别的概念,用一个向量作为当前语句的向量表示,代表了整个语句的意思。当采用句子级别的向量输出方法时,需要在将要输入到预训练模型的文本的开头加上[CLS],在句子与句子中间以[SEP]进行分割,具体步骤如图1所示。

图1 基于BERT的情感分析结构图

步骤1:输入两个新闻文本1以及新闻文本2,然后对两个句子进行分词操作,再经过mask替换处理,最后输出为图中的Tok1~TokN和Tok1′~TokM′。

步骤2:拼接两个Tok序列,再在这个序列中补上“CLS”以及“SEP”两个特殊编码,“SEP”拼接的位置,“CLS”放在序列的最前面。

步骤3:执行词编码操作,将词转换为词向量。

步骤4:执行段编码操作,主要是让BERT识别词属于新闻文本1还是新闻文本2。

步骤5:执行位置编码操作,目的是为了让BERT识别词在句子中的位置。

步骤6:将步骤3~步骤5的编码结果相加,得到图中的E序列。

步骤7:将得到的序列经过编码器进行向量计算得到T序列。

步骤8:输出的结果为分类标签(1代表积极,0代表消极)。

图1中的C(对应输入的[CLS])值代表整个句子,T[SEP](对应输入的[SEP])代表第二个句子,T序列分别代表对应的输入词。[CLS]对应输出C的期望值是NSP无监督预训练任务的期望值,表示A句和B句是否是上下文关系。NSP无监督预训练任务主要是为了让C的期望值和NSP的期望值尽可能相同。而Masked-LM任务则是让被替换的词相应位置的输出尽可能等于原来的词。两个任务中真实输出与期望值的差联合计算损失值,然后再反向传播来更新模型中的各个参数。

2 DPCNN模型架构及原理

DPCNN(Deep Pyramid Convolutional Neural Networks for Text Categorization)是文献[6]提出的一种深度卷积神经网络,可以称之为深度金字塔卷积神经网络。DPCNN设计的目的是提高准确率,并且在提高准确率的前提下,尽可能地提升计算效率。由于TextCNN[7]不能通过卷积获得文本的长距离依赖关系,而DPCNN通过不断加深网络,能够提取长间距的文本依赖关联。实验证明,在不增加太多运算成本的情况下,通过提升网络的深度就可以使模型的准确率提高。

2.1 DPCNN模型结构

DPCNN主要的组成结构(见图2)包括:

图2 DPCNN结构流程图

1)Region embedding层(文本区域嵌入层)对某个文本域进行卷积,然后获取这个文本域的特征图作为嵌入向量。该层的主要功能是进行区域嵌入,同时也是多尺度卷积滤波器的卷积结果。

2)两个卷积计算模块,每个卷积计算模块由两个固定卷积核为3的conv卷积运算函数组成,两个卷积计算模块构建的层可以通过pre-activation[8]直接连接。

3)Repeat结构与上一层相似,只不过在conv之前、pre-activation之后增加了最大池化层[9]。

2.2 DPCNN模型特点

1)减少采样的设计。每层设计步长为2的卷积层,保持filter数目不变(默认250),像一个金字塔的形状。而下采样时增加特征图的数量除了徒增工作量之外,对于提升准确度并没有极大的帮助。DPCNN中通过将每层的计算量减半,保持filter(特征映射)的数目不变,可以省去大量维度匹配的计算时间,而且准确率不会受影响。

2)残差连接的设计[10]。该结构仿照了resnet[8]的shortcut设计思路,原来的设计思路是将原有的卷积计算Wx+b进行非线性激活σ(Wx+b),修改为先将x进行非线性激活计算再做卷积计算,这样可以带来更好的效果;此外filter数目不变,可以省略维度匹配的时间。通过这种设计可以让网络扩展为深层网络进行参数的训练。

3)Region embedding层。该结构接在embedding层后 面,DPCNN的embedding层 是one-hot的 形 式。在region=k的范围内,对单词进行线性映射(Wx+bWx+b),实质上相当于CNN+one-hot[11]的实现。

4)Block结构:在所有卷积块后面都使用大小为3的特征图实现stride为2的最大池化。这样能够获得邻近3个文字区段的相互特征表示,而且stride为2的池化功能将各个文字的中间表示直接降低了一半,从而使所有卷积层的运算复杂性直接降低一半。此外,池化功能可以让卷积操作的正确覆盖面积加倍。

3 ERNIE模型架构及原理

3.1 ERNIE模型结构

ERNIE(Enhanced Representation through Knowledge Integration)是由百度提供的语义表达模型[12],该模型是基于BERT进行改进的,ERNIE通过对海量数据分析中的词、实体数据分析及实体数据分析关联构建语义表达网络,并学习每个词之间不同的语义表达。相对于BERT掌握局部语句共现的语义表达,ERNIE更能直接通过文本的语义知识进行增强建模,ERNIE主要的改变是针对BERT中Masked-LM任务做了一些调整,通过对语义知识进行建模,增强了语义模型的表示能力,如图3所示。

图3 BERT与ERNIE的对比图

ERNIE的结构:ERNIE在结构(如图4所示)上基本就是Transformer的encoder部分,虽然两者的encoder部分在架构上完全一样,但是不共用权重。

图4 ERNIE结构图

具体的区别如下:

Transformer:6个encoder层,512个隐藏单元,8个注意力头。

ERNIE Base:12个encoder层,768个隐藏单元,12个注意力头。

ERNIE Large:24个encoder层,1 024个隐藏单元,16个注意力头。

从输入上来看,首先输入为一种特别的CLS,CLS代表分类任务类似于Transformer中的普通的encoder。首先,ERINE将一序列的单词传输到encoder中并且每层采用自注意力机制,之后再传输到Feed-forword neural network层中,最后再把结果传输到下一次encoder。

3.2 ERNIE模型特点

1)在预测被mask的词时,由于加入了外部知识,因此能够使得模型可以得到更加可靠的与被mask词有关联的语言表示。

2)模型在练习时是一种隐性的学习过程,而并非通过将加入的外部知识作为embedding添加到模型架构中。

3)输入文本的实体类别和实体关系能够让模型学习到更好的语言表达。

4 特征融合方法

本文特征融合[13]的方式根据融合前的不同词向量的数据类型,拟采用拼接与门控单元(Gated Recurrent Neural Network,GRU[14])两种融合方法,然而拼接的方法往往会导致向量维度过高,增加网络计算压力且容易出现过拟合的情况,而门控制单元的方法可以保留原有的文本特征向量维度,也就是融合后不会改变BERT的文本特征向量维度,在不增加计算成本的情况下可以保留文本的信息,因此采用门控单元的特征融合方法。

由于每个模型输出的文本特征向量维度不同,故需要将除BERT之外的模型输出的文本特征向量维度转化为与BERT维度相同的文本特征向量,也就是将需要与BERT特征融合的模型做投影的操作,如公式(1)所示:

式中:HQ表示需要融合的文本特征向量;表示转化后的特征向量;W p表示遗忘门权重;bp表示遗忘门的偏置。遗忘门的主要作用是决定需要遗忘的信息(0表示完全遗忘,1表示完全保留)。

投影操作后引入输入门机制来决定信息的保留或去除程度,如公式(2)所示:

式中:gWt表示信息的保留程度,数值范围为0~1的向量;σ()表示sigmoid激活函数;W i与W c表示输入门权重;bg表示输入门偏置;HBERT表示BERT的文本特征向量。

特征融合如公式(3)所示:

式中Hcombine表示融合后的文本特征向量。将经过融合后所获得的文本特征向量再输入到全连接层后,使用Softmax分类器进行分类。

5 实验设计

通过文献中(BERT-CNN,BERT-RNN,BERT)实验可知,BERT-CNN在新闻文本分类任务中的表现最佳,而本文主要是面向新闻文本的情感分析,因此引用文献[15]中的BERT-CNN设置4个对比实验(BERT-CNN,BERT-DPCNN,BERT-ERNIE,BERT)。

5.1 实验模型设计

此BERT的网络结构主要由三个部分组成:输入层、输出层以及encoder(编码器)。

输入层:主要是对输入的新闻文本进行词替换、词与词之间添加位置向量以及分词。其中,词替换指有80%的几率把随机采样的词替换为“mask”或者是原词,而使用其他的几率则分别是10%。由于后续根据数据集的不同需要进行微调来提高模型的性能,而微调的过程中不含有“mask”标记,因此不需要将所有词进行mask标记。

encoder(编码器):主要是由“Multi-Head Attention”“Feed-forward”和“Add&Normalization”三部分组成,再由输出层对编码器的输出进行映射。

1)基于BERT的新闻情感分析模型如图5所示。

图5 BERT情感分析模型流程图

2)基于BERT-CNN的新闻情感分析模型如图6所示。

图6 BERT-CNN情感分析模型流程图

输入层:该层主要作用是将文本内容分词后输入到embedding层。输入的内容包括新闻标题及其对应分类标签。首先按照8∶1∶1的比例将新闻文本数据集分为训练集、验证集以及测试集,而后把输入部分拆解为新闻标题和新闻标题对应的标签,最后把分解好的数据集输入到字符嵌入层。

BERT层:基于BERT进行字符表示。

CNN层:通过BERT将新闻文本标题数据集做字符嵌入处理后为m*3 072的词向量矩阵(m表示新闻标题的长度)。新闻标题特征图的矩阵向量在注入了CNN模型之后,首先从卷积层中执行卷积计算,得到新闻标题文本特征图;而后通过最大池化层来提取文本特征图的关键性信息;再把提取到的特征信息取最大特征值后进行拼接、组合成单个特征图;最后再输入到Softmax层进行新闻文本分类。

特征融合层:将两个输出的特征词向量进行特征融合。

3)基于BERT-DPCNN的新闻情感分析模型如图7所示。

图7 BERT-DPCNN情感分析模型流程图

BERT-DPCNN的网络结构主要由五个部分组成:输入层、Softmax层、特征融合层、全连接层以及DPCNN。

DPCNN层:由文本区域嵌入层、卷积块和Repeat结构组成。

4)基于BERT-ERNIE的新闻情感分析模型如图8所示。

图8 BERT-ERNIE情感分析模型流程图

ERNIE层:由encoder层、隐藏单元和注意力头组成。

5.2 实验数据集

考虑到新闻种类繁杂,本文主要采用财经新闻这一类别作为数据集,使用的是github开源的财经新闻情感分类数据集,数据来源于雪球网,平均字符长度为10~25,均为UTF-8纯文本格式。该数据集一共有17 149条新闻标题,每个新闻标题带有1和0标注,1代表积极情绪,0代表消极情绪。其中,标注为1的正向新闻报道有12 514条,标注为0的负向新闻报道有4 635条。为方便计算,随机抽取其中10 000条数据结果,其中,8 000条用作训练集,1 000条用作检验集,剩余的1 000条用作测试集。新闻部分数据如表1所示。

表1 新闻部分数据展示

5.3 实验环境设置

实验环境:采用计算机处理器为AMD-R5-3600六核十二线程,显卡为NVIDIA-GTX-1060(显存6 GB),基于Python 3.8的编程环境,深度学习框架使用的是Pytorch 1.9.0+cu102GPU版本,运行内存16 GB,由于显存容量限制,batch_size设置为16,Epoch设置为3。编程软件使用的是Pycharm社区版。

本文实验面向新闻文本情感(2分类:积极和消极)标签设置为2,CNN卷积核窗口大小一共有三种(2,3,4),DPCNN卷 积 核 窗 口 大 小 一 共 有 三 种(2,5,4)。batch_size设置为100(卷积核数过多会使模型参数增加,硬件压力大,且会出现过拟合的情况),学习率通过前期设置(0.000 01~0.000 1)得出0.000 05时模型准确率最佳,故学习率设置为0.000 05。实验参数设置如表2所示。

表2 各个模型实验参数设置

6 实验结果与分析

6.1 评价指标

本文采用的评价指标为:精准率、召回率和F1分数三个评价体系进行模型评估。为避免各个模型出现过拟合问题,采用提前停止(一旦训练效果停止改善,自动终止训练进程)技术。

式中:Precision为精准率;TP表示实际上是正样本模型判定为正样本的个数;FP表示实际上是负样本但模型判定为正样本的个数;Recall表示召回率;FN表示实际上是负样本模型判定为负样本的个数。

6.2 实验结果

1)四个模型情感标签的精准率对比如表3所示。

表3 各模型的精准率

从表3可知,在消极情绪的新闻文本任务中BERTERNIE的精准率比BERT-CNN高0.09%,而在积极情绪的新闻文本任务中BERT-CNN的精准率比BERTERNIE高1.1%,总体平均BERT-CNN的精准率比BERTERNIE高0.505%。

2)四个模型情感标签的召回率对比如表4所示。

表4 各模型的召回率

从表4可知,无论是消极情绪还是积极情绪的文本任务,BERT-CNN的表现都为最佳,总体平均BERTCNN的召回率比BERT-ERNIE高0.635%。

3)四个模型情感标签的F1-Score对比如表5所示。

表5 各模型的F1-Score

由表5可以看出,在消极情绪的新闻文本任务BERT-ERNIE的F1-Score为 最 高,比BERT-CNN高0.62%,而在积极情绪的新闻文本任务中BERT-CNN的F1-Score比BERT-ERNIE高0.21%,总 体 平 均BERTERNIE的F1-Score比BERT-CNN高0.205%。

4)四个模型在测试集(10 000条数据)的正确率以及损失对比如表6所示。

表6 各模型的正确率以及损失

由表6可以看出,通过10 000条数据测试结果发现,无论是正确率还是损失率,BERT-CNN的表现都为最佳,正确率比BERT-ERNIE高0.46%。

5)三个模型训练时间对比如表7所示。

表7 各模型的训练时间 s

6.3 结果分析

从6.2节可知,在新闻文本情绪分类任务中BERTCNN的表现最佳,尤其是在与原BERT对比后不难发现接入CNN模型后的优越性,这得益于CNN强大的语义特征提取能力,但是在不同情绪标签的分类任务上的表现与接入ERNIE后不相上下。

综上所述,实验结果证明:基于特征融合的BERTCNN模型在新闻文本情感分类任务中测试精度为92.45%,比原本的BERT模型约高出了2.07%,且训练时间比BERT-DPCNN以及BERT-ERNIE更短;另一方面,门控单元特征融合的方法(正确率提升2.07%)相较于词向量的方法(正确率提升0.31%)提升更高。

7 结语

本文的实验一方面证明了基于门控单元的特征融合方法的有效性,另一方面证明了BERT-CNN强大的语义捕捉能力,但是准确率并没有新闻文本分类任务的高,很大一部分原因是因为情感分析任务含有大量晦涩情感的词语,相比标签类别的分类任务识别率较低。

本文使用的是由百度实验室开源的ERNIE 1.0版本的预训练模型,截至目前,该实验室发布了3.0的版本(未开源),也公布了该模型在各大数据集的性能表现情况。未来研究者采用ERNIE 3.0的性能表现可能更佳。值得注意的是相比BERT,ERNIE 3.0的参数更多,对于一般使用者而言,一方面,设备和环境条件可能不支持,另一方面,模型训练时间过长。因此除了将模型做轻量化处理,在考虑模型的训练时间和设备支持情况下,BERT模型的表现更优。

猜你喜欢

特征向量卷积向量
二年制职教本科线性代数课程的几何化教学设计——以特征值和特征向量为例
向量的分解
克罗内克积的特征向量
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
从滤波器理解卷积
一类特殊矩阵特征向量的求法
基于傅里叶域卷积表示的目标跟踪算法
EXCEL表格计算判断矩阵近似特征向量在AHP法检验上的应用
向量垂直在解析几何中的应用