APP下载

基于BERT-BILSTM-CRF模型的电力行业事故文本智能分析*

2023-02-24斐,文中,吴

中国安全生产科学技术 2023年1期
关键词:解码器标签向量

刘 斐,文 中,吴 艺

(三峡大学电气与新能源学院,湖北 宜昌 442003)

0 引言

保障电力安全有助于社会稳定运行,但由于电力系统规模庞大,所处环境复杂,电力行业安全事故频发[1]。根据国家能源局2012—2022年事故通报,月均安全事故6 起[2],其中多起为同类型事故,因事故发生后缺乏相关经验而导致处理不当,造成较大经济损失。准确识别事故类型,妥善处理事故后果,并从类似事故中汲取经验,可有效减少事故处理时间,一定程度上降低经济损失[3-4]。因此,对电力事故报告的文本智能分析至关重要。

相关事故单位对于发生的安全事故,会有较为详细的总结分析,报告文本构成大量非结构化事故报告,对后期同类型事故的预防和处理具有较强的借鉴意义。目前,电力事故处理方式主要依靠现场人员经验,容易导致事故处理效率降低,且不能及时发现仍然存在的安全隐患。利用人工智能技术可以快速挖掘有效信息[5],得到同类型事故的处理方案和预防措施[6]。目前,相关领域内对电力事故报告的文本智能分析已有一些研究:文献[7]应用Apriori算法挖掘电力事故诱因间的深度关联规则,根据事故不同突出点,建立电力行业事故诱因分析体系,在短文本事故报告领域取得不错效果,但对于长文本的分析效果并不明显;文献[8]通过Word2vec训练事故文本的词向量,以热力图记录泛化权重,对相似性文本构建事理图谱,从而达到对相似电力事故的走向预测,取得一定效果,但Word2vec训练文本无法解决文本中存在的一词多义问题,致使其准确率较低;受限于电力事故存在的长文本、联系紧密和语义复杂特点,考虑对文本构建序列标注,利用深度学习对文本处理,从而实现文本分类,该类方法目前在文本识别领域取得较好效果;文献[9]为解决序列标注中大量词类的分类问题,结合机器学习和深度学习模型进行标签识别,构建TB-LSTM-CRF双向长、短期记忆句子级别标签,提高序列标注准确率,但效率有所降低。

本文在相关领域内部分学者研究基础上,引入BERT预训练模型,其与过去使用的CBOW 方法不同[10],在向量基础上添加语言掩码模型,避免数据过拟合[11],但在文本语义联系上,单独BERT模型处理效果并不理想[12-13],通过阅读国内外相关的文本分析发现,使用混合模型进行特征提取,可获得更好的综合效果[14-16]。鉴于电力行业事故特点,尝试建立BERT-BILSTMCRF混合模型,引入双重注意力机制,解决预训练中因随机Mask 字符之间可能存在关联的问题,通过构建的《电力事故文本分析》词典,在词和字符级上进行特征抽取,解决一词多义问题,进一步提高文本识别效率和准确率,实现对文本标签的预测。最后,与现行的其他4种深度学习模型进行比较分析,结果表明:本文提出的混合模型明显优于4 种现行模型,具有较强鲁棒性;该方法可为电力行业事故报告文本分析提供新思路。

1 模型简介

本文BERT模型采用双向Transformer编码器,可以高效学习字符级、词级和句子级间的词义特征。同时,由于电力事故文本具备上下联系紧密的特点,在分析句子特征时,通过特定词汇,如断路器、变压器等,实现对整个文本序列进行并行分析,首先输入文本序列E={E1,E2,…,En},然后将词向量Tr经过双向Transformer编码器进行特征提取后,生成具有特定信息的字符级向量T=(T1,T2,…,Tn),其预训练结构如图1所示。

图1 BERT预训练结构示意Fig.1 Schematic diagram of Bert pre-training structure

Transformer通过预设的注意力机制收集经过分词后词语的相关情境信息,对相似情景向量进行编码,在遇到文本语句中其他相关词语时,该模型能够通过自主学习,对于相似文本进行同样处理,从而减少重复学习时间,提升处理效率。为使本文模型高质量识别序列特征,研究构建2 个预训练任务,其具体实施步骤如图2所示。

图2 带掩码语言模型工作流程Fig.2 Workflow of masked language model

第1 步,采用masked language model训练其识别缺欠文字能力:随机隐藏文本中部分文字,通过训练模型判断隐藏部分,使其达到可识别字级特征能力,并提升识别精确度。具体做法为:输入1 个序列文本,80%概率用Mask 代替,10%概率被随机隐藏,10%概率保持原序列输入;第2 步,使用NSP任务训练模型捕捉事故报告文本中互相联系的特征,将序列进行切分,然后与实体进行匹配,将正确匹配的实体标记,即可将序列中最长实体切分出来,从而使其达到具备双向最大匹配能力。每1 个序列文本,均由序列A+序列B组成,若序列B为序列A连接部分,则标注IsNext,否则标注“NoNext”,用[cls]表示标识序列开始,[sep]表示标识序列A、B间分割。

在上文预训练任务中,随机隐藏部分可能存在与其他内容相关联情况,会导致字级之间关键语义丢失,为减少出现该类问题概率,提出1 种基于Transformer的解码器。在解码器间加入卷积门控单元,并增加1 个多头注意力子层(mask multi-head self-attention),加大对编码器输出的关键信息筛选,增强模型信息识别灵敏度。文本经过编码器和门控单元处理后,作为解码器的输入,将2 部分融合,双重解码器框架如图3所示,最后利用残差将所有子层连接起来。

图3 双重解码器框架Fig.3 Dual decoder fr amework

通过上文处理,将输入序列生成字级特征t和词典级特征d,然后将2 种特征t和d 进行向量拼接,得到w,w=t⊕d,而后w作为训练好的输出,输入到BILSTM层进行特征提取。由于BILSTM在处理中不会考虑标签相关性,词向量处理准确度较差,容易出现误差,而CRF可以弥补该类误差产生,其基本算法为:训练学习过程中,将所有出现的实际值标记为y,其发生的概率如式(1)所示:

式中:矩阵p 为BILSTM的输出;T表示输入的原始文本;X表示文本序列;y表示实际值;y′代表理想的标记值;Yx表示所有可能出现的BIO标记集合。

标记序列函数如式(2)所示:

由式(2)得到最佳标记序列,根据式(3)所示,得到输出概率分数最高的1 组序列。

经过3 层处理,得到最优标签标记,使该模型具有较强的鲁棒性。引入BERT预训练模型后,完整框架图如图4所示,hi表示输入到CRF层的序列向量,“B”表示文本名称的开端,“I”表示文本名称的内部,“O”表示非文本实体部分。该模型采用transformer encoder作为参数层,共有112 个网络层数,768 个隐藏层,其中包括12 个注意力头数,文本最大长度为512,共计1.1 亿个模型参数。

图4 模型框架Fig.4 Model framewor k

2 语料集构建及处理步骤

为保证文本准确性,采用Python 在国家能源局、中国电力网、北极星电力网等权威网站,获取2011—2021年间电力行业通报的事故报告文本,构建文本数据集。并根据收集的数据集按以下步骤处理:

1)构建专业电力词典。通过收集电力行业专有名词,如“电缆”、“短路”、“雷击跳闸”等,形成电力词典。

2)文本分词。使用中科院开发的NLPIR分词系统,对特有名词进行分词。

3)文本清洗。由于文本中存在大量语气词,需要对事故的文本进行清洗、去噪,去除与文本无关但对训练有干扰的无用数据,提高模型识别能力。

4)BERT生成关键信息词向量。通过BERT预训练产生的词向量作为BILSTM-CRF的输入。

5)BILSTM-CRF进行B-I-O处理。文本经过处理后,将文本中事故类别输出,构建电力事故标签,具体事故标签分类见图5所示,并对模型进行算法优化。

图5 数据集事故原因分布Fig.5 Accident causes distribution in data set

6)事故标签识别。将收集的数据集输入到模型中,并对整个模型标签识别效果进行检测。

7)模型评价。模型采用通用命名实体识别的4 个评价指标,分别是精确率P,召回率R,F1值(查准率)和平均加权F1average值,从而验证模型识别的准确率。

3 案例分析

3.1 实验设置

本文研究实验环境基于Intel(R) Core(TM)i5-11400H,CPU 3.8GHz处理器,16 GB内存,GPU NVIDIA 3050Ti,Windows 11 操作系统。使用Python3.6 编程语言,参数设置为迭代次数50,批处理参数32,单个句子最长不超过150 个单词,dropout为0.2,BILSTM 隐藏层为768。4 类指标及其可能出现的结果见表1所示。

表1 指标标签Table 1 Indicator labels

实际中存在标签预测误差情况,如在案列[17]:“2021年6月18日,青海华电诺木洪风力发电有限公司运维人员在检查海西州都兰县诺木洪风电场SVG装置模块异常告警过程中,1 名作业人员违章作业,擅自卸下SVG功率柜隔板螺栓,在设备未停电情况下进行作业,导致发生触电,经抢救无效死亡”。在该类案中,按照事故原因标签归属于“触电”,但在预测结果中,会将该类归为“工人误操”,即属于误差标签,导致预测不准确,需要重新召回分类。

实验评价标准具体计算如式(4)~(7)所示:

式(4)~(7)中:Tc表示真实值;Fc表示真实值中出现的误差值;Fi表示误差值中存在的真实值;Si表示事故标签类型为i的样本数量,个;n 为标签总数,个;n表示事故标签类别,类(本文研究中共分为8 类,所以取值为8);D表示所有事故数据容量,条。

F1最高值为1,表示评价最好,最低值为0;加权值F1average与具体标签和数据集容量紧密相关,仅在数据集出现差值较大时,需计算加权值,样本容量D共1 000条,根据式(4)~(6)得到BERT-BILSTM-CRF模型实验结果矩阵统计表,如表2所示。

表2 模型混淆矩阵统计Table 2 Statistical table of model confusion matrix

由表2数据,再根据式(6)计算可知,电缆故障和雷击跳闸标签预测最好,F1值达到1;杆塔倒塌标签识别率较低,F1值为0.93,这是因为杆塔倒塌除非人为因素外,有部分是由违规操作所导致;另外,所有标签的F1值均在0.9 以上,且在“雷击跳闸”标签中,召回率和精确度均达到最高,这是因为雷击跳闸作为电力词典专有名词,其固有的特性所导致,同时也验证本文模型准确率较高。

3.2 模型对比

本文研究是在BERT层构建2 个预训练任务,并在解码器上引入双重注意力机制,为进一步验证本文研究模型在电力行业实体标签识别性能,与目前主流的文本识别技术进行对比分析。保持本文实验环境不变,与CNN-BILSTM-CRF、BERT、BERT-CNN、BILSTMCRF 4 种模型(记作模型A,B,C,D)作为对照组,按照上文数据集处理步骤7)模型评价方法进行评估。评价效果统计如表3~6 所示。

由表3~6 可以看出,本文提出的模型综合效果高于其他对照组,在标签识别方面有较强优越性;同时注意到单独使用BERT模型(模型B)时,F1值明显低于另外4 组模型,模型B识别时间均低于其他模型,这与BERT模型对语句顺序依赖低,在同样环境中,处理关联点之间关系速度更快是吻合的,而单一模型难以兼顾效率与质量2 个方面均达到较高值,进一步说明模型在融合了BERT模型,且引入双重注意力机制后,可以提高文本识别效率和精度。此外,虽然CNN-BILSTM-CRF模型识别效果较好,但是其原理是通过抽取文本局部特征,再通过预训练从而得到字向量后,作为BILSTM 输入。其相对运行时间更长,对于本文中的数据集表现并不明显,但对于更大容量集的数据集而言,处理效率会大大降低。综上所述,BERT-BILSTM-CRF模型在事故标签识别效果中综合性能较好,与本文对照组4 种模型中表现最好的一组(模型A)相比,识别精确率、召回率和F1值分别提高了0.02,0.03,0.02,且耗时最短。

表3 模型精确度对比Table 3 Model accuracy comparison

表4 模型召回率对比Table 4 Model recall rate comparison

表5 模型F1 值对比Table 5 model F1 value compar ison

表6 模型耗时对比Table 6 Model time comparison

4 结论

1)本文模型在引入BERT后,先构建2 个预训练任务,再基于Transformer解码器引入双重注意力机制,一方面保证识别准确率,另一方面提高运行效率。使得文本分析更加智能化,为电力行业事故命名标签体系识别提供1 种新思路。

2)与相关领域内常使用单一的BERT模型相比,本文模型将F1值提高了0.1,相较于本文列举4 种其他现行深度学习模型,准确率、召回率和F1值均为最大,且耗时最短,表明提出的混合模型性能在文本识别和分类方面具有更好的效果。

猜你喜欢

解码器标签向量
向量的分解
科学解码器(一)
聚焦“向量与三角”创新题
科学解码器(二)
科学解码器(三)
线圣AudioQuest 发布第三代Dragonfly Cobalt蓝蜻蜓解码器
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
标签化伤害了谁
向量垂直在解析几何中的应用