APP下载

基于AT_CNN与Attention-BiGRU融合网络的电网故障报修信息的自动分类研究

2021-05-14曹渝昆

计算机应用与软件 2021年5期
关键词:池化卷积电网

曹渝昆 赵 田

(上海电力大学计算机科学与技术学院 上海 200093)

0 引 言

电力工业作为国家重大的能源支撑体系,随着经济发展和社会生活对电能需求的不断增长,电网的规模在不断扩大,用户数量也在不断增多。这一现状使电力系统工况变得更加复杂,电网用户的故障报修数据量也随之增加。传统上,电网故障报修工单主要依靠人工进行手动分类。这种处理方式不仅效率低下,而且极易出错,尤其是在面对海量数据时,更显得力不从心。因此如何科学地对电网故障报修信息进行自动化分类,并采取一定策略进行优化在当前就显得极为迫切和重要。现阶段,基于电网故障报修工单信息的文本分类技术的研究少之又少。鉴于此,本文充分利用现有的电网故障报修数据资源信息,分析居民用户的报修故障类型并进行电力系统故障类型建模,从而实现故障报修文本的自动分类,帮助电网部门更加合理地配置各种应急维修资源,缩短故障维修时间,进一步提高故障抢修效率和服务质量。

文本分类作为自然语言处理的一项重要任务,在情感分析[1]、观点挖掘[2]、词性标注[3]、垃圾邮件过滤[4]等多个领域均具有广泛应用。文本分类的本质是从文本中抽取出能够体现文本特点的关键特征,然后找出特征到类别之间的映射关系。传统的文本分类技术一般基于向量空间模型。

首先利用TF-IDF、互信息、信息增益等方法构建特征工程,然后将提取的关键词特征送入词袋,最后使用K近邻、朴素贝叶斯、支持向量机等分类器进行分类。文献[5]提出一种基于Hubness与类加权的k最近邻文本分类方法。文献[6]提出一种基于情感倾向和SVM混合极的短文本分类模型。文献[7]提出一种基于KNN和TF-IDF的改进文本分类方法。这类方法虽然比较简单直观,但忽略了文本中词出现的先后顺序信息。每个特征词之间相互独立,缺乏语义关联度。这些传统方法难以对词序及上下文依赖信息进行有效编码,并且普遍具有维度灾难、特征稀疏等问题。

近年来,深度神经网络在计算机视觉[8]和语音识别[9]等多个领域上都表现出卓越的性能。得益于神经语言模型[10-12]的提出,深度神经网络在NLP领域取得突破性进展。并且在许多工作中,卷积神经网络CNN和循环神经网络RNN已被证实在文本分类方面具有强大的特征提取能力。文献[13]使用双向长短时记忆循环神经网络模型进行文本情感分析。文献[14]提出基于余弦相似度的LSTM网络用于解决文本分类问题。文献[15]提出了一种可变卷积的文本分类方法。文献[16]提出一种基于CNN与词语邻近特征的情感分类模型。

CNN模型在文本建模和分类时,易忽略长距离依存关系中的句法结构和语义信息。RNN模型会发生梯度爆炸且易忽略局部特征信息。关于二者结合的模型结构相继被提出。文献[17]提出一种多层网络H-RNN-CNN,用于处理中文文本情感分类任务。文献[18]提出一种超深卷积神经网络VDCNN与长短期记忆网络LSTM相结合的混合模型。文献[19]基于CNN和BiLSTM网络的融合模型进行文本情感分析。文献[20]提出一种基于卷积RNN的文本建模混合框架。以上方法虽然在一定程度上可提高分类准确率,但未能从根本上解决CNN和RNN网络在文本分类上的缺陷问题。

考虑到电网故障报修文本信息内容简短、特征稀疏的问题,本文提出一种改进的CNN算法,采用Attention池化和Top k池化结合的方法来替代CNN的传统池化方法。该方法既可以凸显出重要的卷积特征,又可以更充分地提取上下文的句法结构和语义信息。其次,在Bi-GRU中引入注意力机制的思想。注意力机制的加入能够使Bi-GRU在计算历史节点时根据其重要程度赋予不同的权重,使模型在保留文本特征的最有效信息的基础上,最大限度解决信息冗余的问题,从而优化文本特征向量。本文方法可以利用Attention-BiGRU与改进的AT_CNN的融合网络从文本时序和空间两个层次上提取电网报修文本特征,该方法对于优化电网报修文本特征表示、提升故障分类的精度有很大帮助。

1 改进的AT_CNN网络

1.1 网络结构

CNN通过卷积层和池化层对文本进行卷积和池化操作,从文本中提取抽象特征以及相关的语义信息,能够很好地解决文本的处理与分类问题。本文提出改进的AT_CNN网络,采用Attention池化和Top k池化结合的方式替代CNN传统的池化层,可以更好地提取文本上下文特征。本文方法的具体网络结构如图1所示。

图1 改进AT_CNN网络

1.2 卷积层

卷积层使用窗口大小为h的卷积核Wf∈Rh×k进行卷积操作,其中k表示词向量的维度大小。通过卷积操作得到一个新的特征ci:

ci=f(Wf⊗xi:i+h-1+b)

(1)

式中:xi:i+h-1∈Rh×k表示高为h,宽为1的矩阵,xi为句子中第i个单词的k维词向量;b∈R是偏差项。符号⊗指的是点积;f表示非线性激活函数ReLU。

对长度为n的句子进行卷积,随着窗口的滑动,作用在卷积核窗口中的单词[x1:h,x2:h+1,…,xn-h+1:n]上,产生一个特征映射:

c=[c1,c2,…,cn-h+1]

(2)

总之,卷积层的作用是提取输入文本的特征,通过卷积核进行卷积以获得所需的卷积特征向量。

1.3 基于Attention池化和Top k池化相结合的池化层

传统的池化方法一般包括最大池化[21]和平均池化[22]两种。然而,最大池化在操作时会将池化域内非最大激活值全部舍弃,从而容易导致严重的信息损失[23]。同样地,平均池化取池化域内的所有激活值进行平均,高的正的激活值可能与低的负的激活值相互抵消,容易导致判别性信息的损失。因此,本文使用Attention池化和Top k池化对CNN的池化层进行了改进,可有效缓解传统在的信息丢失问题。

首先,本文采用Attention机制来对CNN的池化策略进行改进。采用Attention机制进行池化的目的在于消除输入数据对于输出数据的不合理影响力,从而强调关键信息对于分类结果的作用。与平均池化方法相比,基于Attention的池化方法可以保留局部特征的强度信息。利用Attention池化对卷积操作得到的特征表示重新加权,通过计算不同特征的影响力权重来衡量特征的重要程度。注意力池化的计算公式如式(3)-式(6)所示。第一阶段利用式(3)中的非线性激活函数tanh计算得到C的隐藏单元Ut,其中C为卷积操作得到的卷积特征向量。第二阶段使用Softmax的计算方式对第一阶段的隐藏单元Ut进行数值转换得到at,其中at表示在t时刻下的输出数据对于最终状态的注意力概率。一方面可以进行归一化,将原始计算值整理成所有元素权重之和为1的概率分布;另一方面也可以通过Softmax的内在机制更加突出重要元素的权重。第三阶段对权重系数加权求和即可得到Attention池化的数值,如式(5)所示。最后利用全连接层得到式(6)中的特征向量pa。

Ut=tanh(UwC+bw)

(3)

(4)

(5)

pa=[pa1,pa2,…,pan]

(6)

其次,在此基础上再进行Top k池化。Top k池化即选取每一个注意力池化层输出的前k个最大值作为最终的输出特征。与最大池化方法相比,基于Top k的池化策略可以保留更多重要的局部卷积特征信息。本文将k值的大小设定为2。Top k池化得到的最终特征表示用U表示,计算公式如式(7)和式(8)所示。

pti=top_k(pa)

(7)

U=[pt1,pt2,…,ptn]

(8)

2 基于融合网络的文本分类方法

2.1 数据预处理

本节将介绍本文所设计的用于电网报修文本分类的特征融合模型的具体流程。该设计是模块化的,通过反向传播获得梯度进行优化。

实验数据集为某省份电力公司接收到的用户来电反馈的电网故障报修文本信息,该数据集中共有44 186条数据,其中65%的数据集用作训练集,其余的作测试集。故障类型主要有七类,表1中分别列举了各个类别的示例。

表1 故障报修类别示例

同时,为了验证本文模型的有效性,我们还在标准数据集上进行了实验,实验所用数据集为搜狗实验室整理的新闻数据集(Sogou CS),该数据集收集了搜狐新闻2012年6月至7月期间国内外在体育、财经、科技、社会等18个频道的新闻数据。数据大小约2 GB,由于该数据集过于庞大,本实验只选取了其中6个类别进行实验。每个类别各取5 000条,其中80%作训练集,20%作测试集。

分别对两个数据集进行分词,停用词过滤以及词向量训练。输入为N个可变长度的句子及其相应的标签P,标签由one-hot方式表示。利用Word2vec模型中的skip-gram算法将输入文本中的每个词语wi转化为对应的词向量v(wi),用矩阵S表示由词wi组成的句子映射。v(wi)∈Rk代表矩阵S中第i个k维词向量。

2.2 基于注意力机制的双向GRU网络

2.2.1 BiGRU网络

zt=σ(Wz·[ht-1,xt])

(9)

(10)

rt=σ(Wi·[ht-1,xt])

(11)

(12)

本文采用双向GRU网络,该网络可从前、后两个方向全面捕捉文本语义特征,能够在一定程度上消除传统GRU中输入信息的顺序对于最终状态的额外影响力。

BiGRU网络将其上下文相关信息结合起来可以获得隐藏层的输出,如式(13)-式(15)所示,其中ht为双向GRU得到的向量化表示。

(13)

(14)

(15)

2.2.2注意力机制

注意力机制一般附着在Encoder-Decoder框架之下,Encoder是对输入句子〈x1,x2,…,xn〉进行编码。同样Decoder经过一定的变换后输出数据〈y1,y2,…,yn〉。对于第i个时间步的输出值由当前值的上下文特征Ci和之前已经生成的历史信息〈y1,y2,…,yi-1〉共同决定。

yi=F(Ci,y1,y2,…,yi-1)

(16)

(17)

式中:hj表示编码器在第j个时间步的隐藏状态;n示输入句子的长度;aij表示在j时刻,对输出yi的注意力分配概率,使用Softmax方法计算。其计算公式如下:

(18)

(19)

式中:eij表示在第j个时间步,对第i个输出的影响力评价分数;si-1表示解码器前一个时间步的隐藏状态;Va、Wa、Ua为权重矩阵。

2.2.3 Attention-BiGRU网络

融合注意力机制后的Bi-GRU模型能够通过计算中间状态与最终状态之间的相关关系得到关于注意力的概率分布。网络结构如图2所示。其目的在于对每一时刻下的状态加以不同的权重,能够在保留有效信息的基础上,最大限度解决信息冗余的问题,通过优化文本特征向量进一步提升文本分类的精度。

图2 基于注意力机制的BiGRU网络

本文为了表示出故电网障报修文本中不同特征的重要性,使用注意力机制改进BiGRU网络。计算公式如下:

Ut=tanh(Uwht+bw)

(20)

(21)

(22)

式中:Ut为ht的隐藏单元;Uw为上下文向量;at为注意力向量;S为经过注意力机制的输出向量。Uw随机初始化并在训练过程中不断学习。

2.3 基于电网故障报修文本的特征融合模型

本文的融合模型由改进的卷积神经网络AT_CNN和基于注意力机制的双向GRU网络两部分组成。模型结构如图3所示,输入为训练好的词向量矩阵,其中行表示句子的长度,列表示词向量的维度。首先,AT_CNN网络通过卷积层,进行卷积操作,提取句子的局部特征。然后进行池化操作,以提取文本中的关键特征,得到特征向量。本文主要利用Attention池化对卷积操作得到的特征表示重新加权,通过计算不同特征的影响力权重来衡量特征的重要程度。进一步地,利用Top k池化对Attention池化提取的特征进行处理,选取每一个注意力池化层输出的前k个最大值作为最终的输出特征。

图3 融合模型结构

第二部分是基于注意力机制的双向GRU网络, 同样地,输入为训练好的词向量矩阵。该网络可从前、后两个方向全面提取文本特征,并结合前、后两个方向的相关信息作为隐藏层的输出。利用双向GRU可以提取文本中句子的全局特征。在此基础上,融合了注意力机制的Bi-GRU模型能够通过计算注意力权重突出保留文本中的重要信息。

本文使用TensorFlow框架中的concat()方法对以上两个网络提取的文本特征进行融合,代码如下:

self.output=tf.layers.dense(tf.concat([self.cnn_logits,self.bgru_logits],axis=1),self.config.num_classes)

利用self.output保存融合特征,并输入到全连接层中。另外本文采用shuffle操作打乱词序和随机drop的方法防止模型过拟合。最后输入到Softmax 分类器输出分类结果。

Y=Softmax(WcS1+b)

(23)

式中:Wc和b为待训练的参数;S1表示由Attention-BiGRU网络输出的文本特征。

另外,本文采用交叉熵作为损失函数,定义如下:

(24)

3 实 验

3.1 参数设置

本文使用Word2vec预训练词向量,每个词向量的维度大小设置为100维。句子最大长度设置为600,大于该值时,对句子进行截断操作;小于该值时,对句子进行补零操作。初始化学习率为5e-4。在模型训练阶段,使用Adam优化算法更新规则。AT_CNN网络中卷积核数量为256,卷积核尺寸大小为5,隐藏层节点数为128。Attention-BiGRU网络中Bi-GRU的隐藏层节点数为256,Attention 层的维度为100。模型训练批量大小设置为32。

3.2 评价指标

现有的评价文本分类方法主要是通过模型对文本标签预测正确情况来判断。本文采用准确率(P)作为模型的衡量指标。

(25)

式中:TP表示被正确地划分为正例的个数;FP表示被错误地划分为正例的个数。

3.3 实验结果分析

3.3.1 AT_CNN的对比实验

为了验证本文模型的有效性,分别在标准数据集上对传统的CNN网络、基于Attention池化的CNN网络、本文提出的改进的AT_CNN网络进行了比较,分类结果如图4和图5所示。

图4 各模型准确率对比

图5 各模型损失率对比

从图4中可以看出,改进CNN网络的文本分类准确率均高于CNN和CNN-attention。同样地,在图5中,改进的AT_CNN网络大大降低了文本分类的损失率。迭代次数为1 000次时,损失率比CNN降低了约0.47;迭代次数为2 000次时,损失率比CNN降低了约0.13。

实验结果不仅验证了通过改进池化层来提高分类效果这一想法的正确性,而且证明利用Attention池化和Top k池化两种池化方式结合的方法可有效降低损失,提高模型分类准确率。

3.3.2基于AT_CNN与Attention-BiGRU融合网络的对比实验

本文将提出的融合模型与其他算法进行对比,结果如表2所示。可以看出,本文模型分类在标准数据集上的分类准确率优于单CNN、单 BiGRU模型。此外本文还与传统机器学习模型SVM及其他深度学习模型进行了比较,结果表明本文模型在分类准确率上均优于其他对比模型,显著地提升了文本分类的准确率。

表2 模型准确率对比(Sogou CS)

3.3.3基于AT_CNN与Attention-BiGRU融合网络的电网用户故障报修类型分类

利用本文提出的模型对电网故障报修工单信息进行建模,分类结果如表3所示。可以看出,本文模型在电网用户故障报修数据上的分类准确率大大提高,可达到95.71%。

表3 模型准确率对比(电网故障报修数据)

此外,通过设置不同的迭代次数记录了BiGRU、CNN、CNN-BiGRU和本文模型在电网故障报修数据上的分类准确率变化情况,如图6所示。结果表明各模型的分类准确率随着迭代次数的增加而增加,并且在不同的迭代次数下,本文融合模型的分类准确率均高于其他三种模型。该实验证明本文模型在解决电网故障报修文本数据的特征提取与特征建模方面相较其他模型具有更强的学习能力,在文本分类方面展示出的性能更加优良。

图6 不同迭代次数对分类结果的影响

4 结 语

基于电网大数据的背景,为实现电网故障报修数据的自动分类,本文提出一种基于AT_CNN与Attention-BiGRU融合网络的文本分类方法。利用该方法可解决传统模型提取特征不足的缺陷,从文本时序和空间两个层次上提取特征,进一步优化文本特征表示,提升文本分类的精度。基于本文模型,分别在标准数据集和电网故障报修工单数据集上进行实验,结果证明本文对电网部门更加合理地配置维修资源,缩短故障维修时间,进一步提升故障抢修效率具有很大的借鉴意义。

猜你喜欢

池化卷积电网
基于高斯函数的池化算法
基于全卷积神经网络的猪背膘厚快速准确测定
卷积神经网络中的自适应加权池化
数字化电网技术在电网规划设计中的应用
穿越电网
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
用于手写汉字识别的文本分割方法