APP下载

基于BERT模型的航天科技开源情报分类

2021-04-09孔凡芃刘旭红刘秀磊

关键词:类别开源情报

孔凡芃,刘旭红,刘秀磊,李 晗

(1.北京信息科技大学 网络文化与数字传播北京市重点实验室,北京 100192;2.北京信息科技大学 数据与科学情报分析实验室,北京 100192;3.北京大学 北大方正集团有限公司数字出版技术国家重点实验室,北京 100101)

0 引言

近年来航天事业迅猛发展,开源情报[1]的价值与日俱增,互联网上航天科技开源情报的爆炸式增长为情报的快速分类带来严峻挑战,提升相关情报的分类准确率对于提高航天领域科研人员的工作效率具有重大意义。

航天科技开源情报的分类本质上属于文本分类问题。目前文本分类技术已经较为成熟,常见的主流方法有以卷积神经网络(CNN)[2]与循环神经网络(RNN)[3]为基础的深度学习模型,如文献[2]中提出的TextCNN模型,利用多个不同大小的卷积核提取句子中的关键信息,从而能够更好地捕捉局部相关性。文献[4]提出的R-CNN算法,首次将深度学习应用于目标检测中,将目标检测的验证指标mAP提升了30%,并大大减少了计算量。但上述模型在训练过程需要大量语料,且耗费较多时间与硬件资源。后续出现了基于迁移学习的模型,如Word2Vec[5]、GloVe[6]、FastText[7]等。上述模型可以对少量语料进行预训练,生成词向量后用于下游NLP任务,缓解了由于部分领域语料过少而导致训练效果较差的问题。Transformer[8]等语言模型架构的提出,及相关方法如GPT[9]、BERT[10]、ULMFiT[11]的使用,使得迁移学习在下游NLP任务如文本分类中取得突破性进展。

在航天领域文本分类研究中,张亚超[12]提出基于注意力机制的TextRCNN-A文本分类算法,不仅可以捕捉上下文内容信息,还可以更好地消除单词歧义。徐建忠等[13]结合贝叶斯算法与Web技术研发了一套服务器—客户端模式的航天文本分类系统。郭颂[14]提出了基于支持向量机的航天领域文本分类算法,并设计了航天领域内不同类别信息的多分类流程框架。上述模型均在一定程度上提升了航天科技开源情报分类任务的准确率。

由于航天科技开源情报中存在大量专有名词且相关文本内容较长,本文结合这些特点,提出了一种基于BERT模型的航天科技开源情报分类算法。该算法通过BERT提取航天科技开源情报的关键特征,并将获取到的关键特征输入到Softmax分类器中进行分类。通过与其他算法的分类效果进行对比,结果表明本文所提算法在航天科技开源情报分类上的准确率最高。

1 分类算法

本文提出的基于BERT的航天科技开源情报分类算法主要由文本预处理、特征提取与分类两部分构成。

1.1 文本预处理

借鉴文献[15]中文本预处理的方法,对航天科技开源情报数据中的无效信息进行清理,主要包括去除指定的无用符号、去除停用词、去除非文本数据及去除无意义文本。去除指定的无用符号是指使用替换文本中指定的字符,从而去除文本中大量重复的符号;去除停用词指的是去除文本中存在的大量“是”、“的”等对文本意思表达无效的词,从而使模型可以更好地拟合实际的语义特征,增加模型的泛化能力。由于航天科技开源情报原始数据中附带有大量HTML标签、URL地址等非文本数据,所以需要清除这些对分类无效的内容。此外,文本中存在的广告、版权信息等内容也不该作为特征被模型所学习,所以也需要去除掉。

1.2 特征提取与分类

由于航天科技开源情报句子较长的特点制约了相关情报分类的效果,而BERT内含的双向Transformer机制可以有效地兼顾上下文语义信息,有利于全面提取航天科技开源情报的特征,所以本文提出基于BERT的航天科技开源情报分类算法进行相关文本的分类。

BERT模型以双向Transformer机制为基础,在处理一个词时,能够考虑到词的上下文信息,以获得上下文语义,其模型架构如图1所示。

图1 模型架构

图1中,Ei为第i个字对应的输入;Trm表示Transformer机制。由于Transformer机制是一次性读取输入的整个文本序列,而不是从左到右或从右到左地按顺序读取,这一特性使得模型能够基于字词的两侧学习,相当于双向的功能;Ti为输出的隐藏层向量,该向量可用于下游分类任务。

1.2.1 算法输入层

算法的初始输入是预处理后的航天科技开源情报文本。首先在文本中每个句子的头部加上开始标志“[CLS]”,在句子的尾部加上结束标志“[SEP]”,将进行特殊化处理后的句子输入模型中进行向量化表示以用于分类,文本的向量化在BERT模型的输入层实现。在输入文本进行向量化表示前,设置的最大句子长度尝试了64、128、256等不同的维度。模型具体输入由Token Embeddings、Segment Embeddings、Position Embeddings三部分组成,如图2所示。

图2 模型的输入表示

例如,输入的航天科技开源情报内容为“[CLS]进行电子攻击[SEP]”,首先通过字典映射得到句子中每个字的数学表达token_id[101,150,454,1268,835,2879,2713,……],然后通过查询字向量表将“进行电子攻击”中每个字转换为向量表示Token Embeddings,最后与Segment Embeddings、Position Embeddings进行线性相加从而构成双向Transformer机制的输入。

1.2.2 Transformer层

BERT利用Transformer的Encoder部分来接收文本作为模型输入,结构如图3所示。

图3 Transformer Encoder层

本文中的Transformer Encoder机制通过使用Multi-head Self-attention机制来帮助神经网络捕捉到航天科技开源情报更丰富的特征和信息。Multi-head Self-attention机制以Attention机制为基础,重复多次线性变换与点积计算的过程来实现Multi-head,这样做可以让模型在不同的表示子空间里学习到相关信息。以“进行电子攻击”为例进行Attention的可视化来验证Multi-head关注上下文信息的能力,如图4、5所示。

图4 One head可视化结果

图5 Two head可视化结果

图4、5中不同颜色块代表不同Attention头的结果,颜色越深,Attention值越大,线条颜色表示不同字之间注意的强度。从图4 One head可视化结果可以看出“电”这个字只能学习到和“电”的依赖关系,而图5 Two head的结果中“电”可以同时学到“电”、“子”的依赖关系,验证了Multi-head可以从不同的表示子空间里学习相关信息。

针对航天科技开源情报文本内容较长且存在较多专有名词的特点,使用Multi-head Self-attention机制能够更好地关注专有名词及上下文语义信息,从而提升航天科技开源情报的分类效果。

经过双向Transformer机制处理后提取出的特征向量还需输送到分类器中进行分类。本文使用Softmax分类器来进行航天科技开源情报特征的分类。

1.2.3 Softmax分类层

Softmax分类器是为解决多分类问题而提出的模型,属于广义线性模型。假设BERT最终输出的文本向量X={x1,x2,…,xn},按照本文航天科技开源情报具有5个类别的情况,则类别Y={A,B,C,D,E}。将文本向量X输入至Softmax分类器中,经过Softmax函数进行归一化计算,得到每个文本向量X对应到每个类别的概率P={PA,PB,PC,PD,PE},比较每个类别概率的大小,选择其中概率最大的类别作为X文本最终的分类。

1.3 算法训练流程

结合航天科技开源情报特点调整模型参数并进行模型训练,主要步骤如下:

步骤一:加载预训练模型。即下载的“BERT-Base,Chinese”模型。

步骤二:处理训练数据。在文本中每个句子的开头加上“[CLS]”符号,在每个句子结尾加上“[SEP]” 符号。

步骤三:构造Transformer输入。对于每个字所对应的Token Embeddings、Segment Embeddings和Position Embeddings线性相加。

步骤四:训练模型。设定好模型训练中的学习率、最大文本长度等超参数,在预训练模型的基础上,将BERT输出的特征向量输送至Softmax层中得出分类结果,后续依据原始标签以及输出的结果进行反向传播,调整模型内部参数,使模型能够更加全面准确地提取航天科技开源情报文本特征。

模型训练过程伪代码如图6所示。

2 实验

2.1 实验数据

本文实验数据来源于国防科技网站中存在的公开科工资讯,相关网站由国家某重点实验研究所提供,总数据量为16 617条,主要分为兵器工业、船舶工业、电子工业、航空工业以及航天工业5大类。各类别数据分布情况如表1所示。

通过随机采样的方式,将每个类别的航天科技开源情报数据按照8∶1∶1的比例进行训练集、验证集与测试集的划分,样本中包括类别号与带有类别标签的文本内容两部分。

本文首先使用训练集进行模型的训练,然后在验证集上进行模型的评估,并不断调整模型参数,直到模型找到最佳参数,最后利用测试集进行模型的测试,测试样本上的误差作为泛化误差的近似,从而得到泛化能力较强的模型。

2.2 实验参数

本文所用BERT预训练语言模型的网络结构共有12层,隐藏层有768个神经单元,采用12头模式,共有110 M参数。由于BERT预训练模型对中文文本中存在的共有特点进行学习,不具针对性,因此为得到针对航天科技开源情报特点的模型,本文在预训练模型基础上进行微调,使用航天科技开源情报进行模型训练,以更好学习相关文本信息。本文微调时设置模型参数随机失活率为0.1、模型Epoch为3、学习率为5e-5。

2.3 实验结果

在预训练模型的基础上,设置每个batch大小为16,每条文本最大长度为256个字符,模型训练过程中的损失与准确率如图7、图8所示。

在此参数下,模型最后在测试集上的准确率为91.35%,各个类别预测结果的详细数据如表2所示。

由表2可知,航空工业类别的F1值最高,兵器工业类别的F1值最低。考虑到航空工业数据量是兵器工业的7倍多,推测数据量的多少在一定程度上影响了模型拟合的效果。因此依据数据量存在的不均衡性特点,在上述模型基础上,本文进一步探究均衡与非均衡数据量对模型的分类影响,同时将模型的最大文本长度设置为64、128、256个字符进行对比,评价指标主要采用F1值,结果如表3所示。

由表3可以看出,多数类别在非均衡数据集情况下的F1值优于均衡数据集情况,其中航空工业与航天工业类别在非均衡情况下的F1值均高于均衡情况,而兵器工业类别在非均衡情况下的F1值却大部分低于均衡情况,结合航空工业、航天工业类别数据量与兵器工业数据量的差值进行考虑,推测数据量对模型分类效果具有一定影响,该结论与上述表2结论相一致。另外,从表3还可以看出随着最大文本长度的增加,模型分类的F1值随之增高。

不同文本长度下,模型在均衡与非均衡数据集上的分类准确率如图9所示。

从图9可以看出,随最大文本长度的增大,均衡与非均衡数据集情况下的模型分类准确率均随之增高,但增长幅度随之减小。总体来看,模型在非均衡情况下的预测结果优于均衡情况。

为验证文本算法的有效性,在非均衡数据集基础上,使用航天科技开源情报数据微调模型,本文简称FT_BERT模型,并将该模型与目前部分主流语言模型在航天科技开源情报文本分类任务中的表现做了对比。在实验过程中为各模型设置了相同的基本超参数:随机失活率为0.5,Epoch为 20,学习率为 e-3,最大文本长度为256。各模型在测试集上的准确率如表4所示。

从表4可以看出,相较于其他模型,FT_BERT模型在测试集上的准确率最高。另外,TextRCNN模型在航天科技开源情报领域的文本分类任务中表现也较好,其分类准确率超过了90%。同时本文对比了在测试集上各模型在不同类别下的F1值,其结果如表5所示。

表5 测试集上各模型在不同类别的F1值

从表5可以看出,与其他模型相比,FT_BERT模型在5个类别上的F1值均为最高,说明其分类效果最好。虽然TextRCNN在测试集上的准确率较高,但在“电子工业”类别的表现却不如TextRNN模型,这一定程度上表明TextRCNN模型在“电子工业”类别的分类中,模型中的CNN部分弱化了RNN部分的特征提取能力。

3 结束语

本文在航天科技开源情报分类任务中,利用相关开源情报的特点进行BERT模型的训练并利用训练后的模型进行特征提取,随后采用Softmax分类器进行特征分类。基于实验所用数据存在的不均衡性,设计数据量均衡与非均衡情况下的对比实验,结果表明数据量不均衡时模型的表现结果优于均衡情况。通过将本文所提模型与其他常见主流语言模型在航天科技开源情报文本分类任务中的表现进行对比,证明了本文所提模型在相关分类任务中的有效性。

另外,本文实验所用数据集中存在一些图片信息,但本文尚未针对相关图片进行研究,同时由于硬件限制,本文考虑的文本长度在256个字符以内,下一步研究考虑在该算法的基础上融入图片信息用来丰富句子特征表示,同时考虑更长的文本长度,以提高相关文本分类效果。

猜你喜欢

类别开源情报
情报
情报
情报
校园武术“学、练、赛”一体化实践探索
传播开源精神 共迎美好未来
一起去图书馆吧
五毛钱能买多少头牛
2019开源杰出贡献奖
简析基于概率预测的网络数学模型建构
交接情报