方强强,朱全银,张柯文,冯万利,李 翔,王文川,胥心心,王胜标
(淮阴工学院 计算机与软件工程学院,江苏 淮安 223003)
关键字: 化工装备分类;卷积神经网络;Attention注意力机制;数据挖掘
化工装备是化工产业的基础,一切化工生产都离不开化工装备的使用,而同一化工装备在不同化工使用场景中由于使用功能不同,被分为不同类型,这就对化工装备的功能性分类提出了需求。计算机在化工装备分类中的应用主要是对化工装备名称组成的文本进行分类,得到化工装备名称分类结果。
近年来随着微博、Twitter的兴起,越来越多的研究者将目光转向短文本的研究。如Bollegala等[1]提出预测短文本分类中特征缺失问题;刘震等[2]提出中文短文本聚合模型研究;高云龙[3]提出一种基于改进卷积神经网络的短文本分类,增强了短文本语义联系;Hua等[4]提出了通过收集和分析语义知识来理解短文本。由于化工装备名称较短,因此适用于短文本研究,而对化工装备名称文本进行分类有利于化工装备的出售、购买及维修,对化工装备的流通具有积极意义。
相对于机器学习,深度学习更加适合应用于数据量大的实验,并且深度学习算法能够自学习,即自己从数据中学习特征,自学习的能力降低了发现特征的成本节省了资源消耗。卷积神经网络[5](Convolutional Neural Network,CNN)作为应用最广泛的深度学习算法具有以下优点:(1)共享卷积核,对高维数据处理无压力;(2)无需手动选取特征,训练完数据就可以迅速得到特征矩阵,分类效果好。基于此,CNN算法在计算机文本处理中受到了广大研究者的青睐,相应的改进算法有:卢泓宇等[6]提出了一种增强特征选择模型;Shi等[7]提出了基于广义大裕度所示的DCNNs算法;Wang等[8]提出了一种用于点云学习的动态图卷积神经网络;Chen等[9]提出了深度流形学习与卷积神经网络相结合的动作识别系统。
化工装备名称文本虽然能够进行文本分类,但是由于化工装备名称长度较短,不同名称之间语义联系较弱,特别是在实际应用中,同一化工装备根据使用场景的不同,往往被分为不同类型,这就造成化工装备文本分类准确率不高的问题。本文通过Attention注意力机制,改变相同化工装备在不同使用场景下的权重,增强化工装备之间的语义联系,再结合卷积神经网络提取化工装备语义特征实现准确分类。
卷积神经网络是一种前馈神经网络,通常包含输入层、卷积层、池化层、全连接层、输出层,是由卷积运算来代替传统矩阵乘法运算的神经网络,输入层可以将数据作为输入及提取数据特征;卷积层对输入层提取的数据特征进行卷积操作,进一步提取数据特征,卷积公式为:
(1)
其中x(t)和h(t)是卷积的变量,p是积分变量,t是使函数h(-p)位移的量;池化层对卷积层提取的特征进行压缩,一方面可以降低网络计算的复杂度,将不同长度的句子输入和不同大小的卷积核池化得到一个相同维度的输出,另一方面也可以对特征做进一步提取;全连接层是将得到的特征映射到样本空间中,以减少特征位置对分类的影响,并对池化层输入进行分类;输出层对最终分类结果进行输出。CNN具体结构如图1所示:
图1 卷积神经网络结构图
Attention模型最初应用于图像识别,模仿人看图时,目光的焦点在不同的物体上移动。当神经网络对图像或语言进行识别时,每次集中于部分特征上,识别更加准确。权重是衡量特征重要性的最直观方法,Attention模型的结果就是在每次识别时,计算每个特征的权值,然后对特征进行加权求和,权值越大,该特征对当前识别的贡献就大。
在2014年Google mind团队[10],在RNN模型上使用了Attention机制来进行图像分类,取得了很好的效果。接着Attention机制被广泛应用在基于卷积神经网络CNN和循环神经网络(Recurrent neural network,RNN)等神经网络模型的各种自然语言处理任务中,并取得了不少突破性进展。Chen等[11]结合Attention机制和RNN算法解决了基于视觉的无序多标签分类;Han等[12]通过分层注意力机制结合CNN算法对多个视图进行3D全局特征学习。这些基于Attention机制的深度学习算法的提出说明了注意力机制与CNN算法结合的有效性。
Attention机制的本质可以表示为一个查询(Query)到一系列键值对(键Key-值Value)的映射。计算Attention时主要分为两个过程:第一个过程根据Query和Key计算权重系数,并通过softmax函数对计算得到的权重系数进行归一化处理,其中,Key=Value;第二个过程是根据权重和相应的键值Value进行加权求和得到最终的Attention特征。Attention计算过程如图2所示:
图2 Attention计算过程
Query和某个Keyi的相关性计算公式为:
Sim(Query,Keyi)=Query·Keyi
(2)
归一化后相关性αi为:
(3)
Attention值公式为:
(4)
ATT-CNN算法是在CNN算法的基础上,加入Attention注意力机制,进一步提取化工装备名称之间的特征。即在CNN算法输入层与卷积层之间加入Attention层,将输入层的特征(feature map)与Attention 层提取得到的特征(attention feature map)一起作为输入送入卷积层与卷积核进行卷积运算,在经过池化层、全连接层与输出层得到最终的分类模型。输入层和Attention层进入卷积层模型如图3所示:
图3 输入层和Attention层进入卷积层模型
公式为:
Aij=match-score(F0,n[:,i],F1,n[:,j])
(5)
F0,m=W0·AT
(6)
F1,m=W1·A
(7)
其中,A为Attention矩阵,AT为矩阵A的转置矩阵,W0为F0,m权重,W1为F1,m权重,F0,m、F1,m为特征矩阵,F0,n、F1,n为Attention特征矩阵;ATT-CNN具体结构如图4所示:
图4 ATT-CNN结构图
从模型的训练过程与测试过程对本文算法进行描述。模型训练过程包括对原始数据集的预处理,得到训练集数据矩阵。Attention层、卷积层、池化层及全连接层对训练集数据矩阵进行特征提取,并对提取得到的特征做训练。最后输出层输出得到的化工装备分类模型。具体ATT-CNN模型训练过程如算法1:
算法1 ATT-CNN模型训练过程
输入:训练集中的化工装备名称文本数据
输出:训练好的ATT-CNN模型
Step1:预处理训练集样本,将样本通过Word2vec[13]算法转化为数据矩阵形式;
Step2:确定ATT-CNN网络模型的结构、迭代次数以及训练参数;
Step3: Attention层对训练集数据矩阵进行特征提取,得到特征Attention feature map,并和原来的feature map一起作为输入层输入;
Step4:将步骤3得到的两种特征输入卷积层、池化层、全连接层与输出层得到分类模型。
测试过程即验证训练后模型性能,测试过程的输入是预处理后的待分类测试集,输出是测试集分类后的分类结果及准确率、召回率和F1值。测试流程如算法2所示:
算法2 ATT-CNN模型测试过程
输入:预处理后待分类测试集
输出:测试集分类结果及分类准确率
Step1:预处理测试集样本,将样本通过Word2vec算法转化为数据矩阵形式;
Step2:选择算法1训练好的分类模型;
Step3:输入预处理后的测试集矩阵;
Step4:输出测试集分类结果以及分类准确率、召回率和F1值。
图5 文本数据转化为数值型数据
卷积神经网络可以根据需求搭建不同层数的卷积层、池化层等,以及设置不同的网络参数,本文全部采用单层设置构建神经网络,具体参数如表1所示:
表1 参数设置
通过采用机器学习与深度学习中常用分类算法以及本文算法对同一数据集做分类实验,并使用准确率、召回率和F1值作为评判算法分类效果优劣的评价标准。具体实验步骤及流程如下:
Step1:对化工装备文本数据集进行预处理,得到预处理后的数据集并转化为数值型数据;
Step3:将训练矩阵分别通过不同分类算法训练出分类模型;
Step4:将测试矩阵输入Step3中训练得到的分类模型,得到分类结果;
Step5:输出各分类算法预测分类结果。
图6 各算法实验流程
3.3.1与传统机器学习分类方法相比较
通过使用机器学习中k最近邻算法(k-Nearest Neighbor, kNN)、朴素贝叶斯算法(Naive Bayes, NB)、随机森林算法(Random Forest, RF)、逻辑回归算法(Logistics Regression, LR)4种算法对化工装备名称文本进行分类实验。目的是将ATT-CNN方法与传统机器学习分类方法进行比较。各方法分类结果如表2所示:
表2 机器学习算法分类结果(%)
由表2可知机器学习方法不能够准确地对化工装备名称文本进行分类,分类准确率最高的逻辑回归算法仅为85.2%,不具有实际使用价值,与机器学习算法相比,ATT-CNN方法具有更高的分类准确率。
3.3.2与CNN算法相比较
采用原始的CNN算法与本文提出的改进的ATT-CNN算法对化工装备名称文本数据集进行分类实验,结果表明,CNN算法虽然也可以对化工装备名称文本做出分类,但本文提出的ATT-CNN算法化工装备名称文本的分类准确率更高,分类结果更准确(见表3)。
表3 CNN算法和ATT-CNN算法分类结果 (%)
本文提出的ATT-CNN算法对化工装备名称文本的分类准确率高于其他传统机器学习分类算法和原始卷积神经网络算法。将传统的CNN算法加入Attention注意力机制后,化工装备的分类准确率为96.42%、召回率为96.31%、F1值为95.70%。
为了提高化工装备分类的准确率,本文提出了一种基于ATT-CNN的化工装备分类算法,通过将卷积神经网络中加入Attention注意力机制,提高了化工装备名称之间的语义联系,解决了同一化工装备在不同化工场景中被分为不同类型的问题。实验结果表明,本文算法的准确率、召回率和F1值均比传统机器学习算法以及原始CNN算法更准确,可以有效提高化工装备分类准确率。