APP下载

基于深度集成朴素贝叶斯模型的文本分类

2020-09-18周稻祥岳俊宏肖福龙

关键词:集上贝叶斯分类器

吴 皋,李 明,周稻祥,岳俊宏,肖福龙

(1. 太原理工大学 a. 数学学院,b. 大数据学院,山西 太原 030024; 2. 山西财经大学 统计学院,山西 太原 030006)

日益发达的网络在给人们的生活带来便利的同时,也造成了许多困扰,比如,网络上不文明言语严重影响青少年的身心健康,大量垃圾信息不仅打扰了人们的工作和生活,而且还可能造成财产损失和人身安全等严重问题,因此设计高效的文本分类算法来识别垃圾信息具有重要的意义。

在文本分类任务中,朴素贝叶斯(NB)算法因其简单、高效的特点而备受青睐,但该算法仍存在缺陷。这些缺陷表现如下:1)该算法需要各特征之间满足相互独立性假设,但在实际应用中特征之间通常是不独立的,且独立性越差,分类效果就越差;2)该算法属于浅层学习算法,应用于复杂数据时不能很好地挖掘数据信息。为了克服特征独立性假设的问题,学者们提出了许多解决方案,主要可分为如下3类:1)对NB算法进行结构拓展;2)将NB算法与各种模型融合;3)对数据进行处理,如属性加权、实例加权等。

在结构拓展上,Friedman等[1]提出了树增强型朴素贝叶斯(TAN)算法,该算法以条件互信息来度量一部分特征之间的相关性,并将条件互信息作为边的权重,然后构建特征结点完全无向图。在不产生环路的规则下,按照权重由大到小选择边,通过构造出最大权重跨度树来改进NB算法。TAN算法具有良好的稳健性,表现均优于NB算法。此后,一些学者在不同领域比较了NB算法与TAN算法的性能,如刘闯[2]将NB算法与TAN算法应用于人体行为图像识别中,结果显示TAN算法比NB算法具有更好的分类能力,但是运行时间也更长。赵中全等[3]基于Web日志数据集,比较了TAN、NB、决策树(ID3)、误差逆传播(BP)神经网络等算法的分类效果,结果显示,TAN算法的精确度和召回率均高于其他几种算法的。

在模型融合上,为了满足NB算法对数据独立性的要求,秦锋等[4]将独立分量分析(ICA)算法与NB算法融合得到ICA-NB模型。该模型首先利用ICA方法处理原始数据,即将原始数据线性投影到独立的特征空间得到具有独立性的新数据,然后将其输入到NB算法进行分类,实验结果表明,该融合模型改善了NB算法的分类效果。为了能够把原始相关的数据变换为正交的数据,李楚进等[5]将主成分分析(PCA)算法和NB算法融合得到PCA-NB模型。该模型首先通过PCA算法对原始数据进行变换得到不相关的新数据,在一定程度上消除了特征之间的依赖性,然后用NB算法对新数据进行训练和测试,选取加利福尼亚大学欧文分校提出的机器学习数据库(UCI)中的3个数据集进行实验验证,结果表明,该融合模型优化了NB算法的分类效果。

在数据处理方式上,为了解决数据集中大量冗余属性带来计算复杂度高的问题,王辉等[6]通过粗糙集技术获得最优的属性集,然后以最大化数据集的对数条件似然函数估计为标准,对条件属性设定最优权值,提出了一种新的加权NB算法,分类效率高于NB算法。为了克服NB算法在大样本数据中分类效果不好的问题,王行甫等[7]使用余弦相似度刻画训练集与验证集的相似度,按照余弦相似度由大到小选择一个最优的训练集,并将余弦相似度作为训练集的权重,以此训练NB算法,结果表明,经过实例选择并加权处理后提升了NB算法的分类效率。

虽然上述文献能够很好地解决NB算法对数据独立性的要求,并改善了分类效果,但是仍然存在如下的不足:1)未考虑到NB仍属于浅层学习算法,在复杂数据中未必能很好地挖掘数据信息;2)通常仅对单一NB算法进行改进,如高斯朴素贝叶斯(GNB)、多项式朴素贝叶斯(MNB)、伯努利朴素贝叶斯(BNB)等算法,并没有利用NB算法种类的多样性。

对于浅层学习的不足,已有很多学者进行了深入研究,例如,Bengio[8]认为在样本较少的情况下浅层学习算法不能很好地表达复杂函数,且在复杂的分类问题中泛化能力较差。此外,已有很多浅层学习算法的深层学习结构成功应用的例子,例如早在1969年,Papert和Minsky在著作《感知机》中指出,单层感知机并不能解决线性不可分的“异或门”问题,只有深层结构的多层感知机才能解决。类似的成功例子还有由受限玻尔兹曼机(RBM)[9]到深度信念网络(DBN)[10]、卷积神经网络(CNN)到深度卷积神经网络(DCNN)[11]、随机森林(RF)到深度森林gcForest[12]等算法。

不同NB算法的区别在于各自先验条件概率分布的不同,其中GNB算法、BNB算法和MNB算法分别用于处理具有高斯分布、伯努利分布和多项式分布的数据,因此集成这3种NB算法于一体将有利于适应复杂多样的数据。另外,在集成学习中要求“好而不同”[13],其中的“不同”就要求基分类器需要满足多样性的要求。

综上所述,在NB算法的几类改进方案中仍然没有改变其属于浅层学习算法这个局限,并且未利用好其种类多样性的优势,因此,从深层学习的角度[9-13]研究NB算法仍有一定的价值,gcForest算法[12]的提出也为相关研究提供了重要启示。本文中基于gcForest算法的集成思想,以满足集成学习中基分类器的多样性为目的,将MNB、BNB、GNB算法作为基分类器,提出深度集成朴素贝叶斯(deep ensemble naive Bayes,DENB)模型。

1 NB算法及类型

1.1 NB算法

假设分类任务的输入特征集合为{x(1),x(2), …,x(n)},n为特征维度;输出类别为C={c1,c2, …,cK},K为类别总数。Y为取值于集合C中元素的随机变量,y为随机变量Y的取值,则NB算法公式[14]为

P{Y=ck|x(1),x(2), …,x(n)}=

(1)

式中:P{·}为概率;ck∈C,k=1, 2, …,K。

考虑到P{x(1),x(2), …,x(n)}对于所有类别都相同,因此式(1)简化为

P{Y=ck|x(1),x(2), …,x(n)}∝

(2)

式(2)可转化为NB算法的学习模型,即

(3)

(4)

(5)

式中:I为指示函数;N为样本数;ail为第i个特征x(i)在集合{ai1,ai2, …,aiSi}中的第l个值,i=1, 2, …,n,l=1, 2, …,Si,Si为特征x(i)取值集合的大小。

式(4)、(5)中概率估计值的分子可能会出现0,对后验概率计算产生影响。可以采用贝叶斯估计解决该问题,即式(4)、(5)分别修改为

(6)

Pλ{x(i)=ail|Y=ck}=

(7)

式中λ>0。特别地,当λ=1时,贝叶斯估计为拉普拉斯平滑。

1.2 NB类型

根据P{x(i)=ail|y}的分布,把NB算法分为GNB、MNB、BNB这3种常见的分类算法。

1.2.1 GNB算法

GNB算法适用于特征值服从高斯分布,一般用在连续型数据集中,其条件概率计算公式为

P{x(i)=ail|Y=ck}=

(8)

1.2.2 MNB算法

MNB算法多用于特征值服从多项式分布的数据,其条件概率计算公式[15]为

(9)

式中:Mck表示类别ck中所有特征出现的计数总和;Mcki表示训练集中特征x(i)在类别ck中出现的次数。

1.2.3 BNB算法

BNB算法适合于特征值服从伯努利分布的数据,∀x(i)∈{x(1),x(2), …,x(n)},i=1,2,…,n,以x(i)=ail=1表示第i个特征出现在第l个样本中,x(i)=ail=0表示第i个特征未出现在第l个样本中,由伯努利分布,得其条件概率计算公式为

P{x(i)=ail|Y=ck}=

[P{x(i)|ck}]x(i)[1-P{x(i)|ck}]1-x(i),

(10)

由于x(i)取值只有0、1这2种情况,因此Si=2,式(10)可以写为

(11)

(12)

式中:Nck为类别取ck时的样本数;Nck0、Nck1分别为类别取ck时x(i)取值为0、1的样本数。

2 DENB模型

2.1 gcForest算法与其他集成思想

gcForest算法主要由2个部分组成:第1部分是多粒度扫描(multi-grained)。该部分作为原始特征的处理,首先通过滑动窗口对原始特征进行扫描后生成训练样本,这个过程类似于卷积神经网络中的卷积操作;然后训练完全随机森林和随机森林,最后把2种RF生成的类向量聚合为新的特征。有学者指出:多粒度扫描在序列或者具有空间关联的数据上效果较好;但是对于空间上无关联的数据(如文本数据)可能会丢失重要信息[16],因此本文中并未采用多粒度扫描操作。第2部分为级联森林(cascade forest),是一种新的集成思想。受到表征学习的启发,按照神经网络的结构,每层以完全随机森林、随机森林为基分类器进行集成,将多层连接得到级联森林。与神经网络对比,gcForest算法主要有以下3个优点:1)避免了需要大量训练集的问题,减少了给大量样本贴标签的任务,而且实验表明其在小样本数据集上也具有较好的效果;2)其中的网络层数是根据验证集自动确定的,不需要人为指定,从而避免了主观因素造成计算资源浪费的问题;3)超参数少,且对于超参数的设置稳健性好,模型简单。

其他集成思想主要以套袋(Bagging)算法[17]、提升(Boosting)算法[18]等为主要代表。Bagging算法的重点在于有放回地随机抽取训练集,因此在每个训练集中可能存在重复样本,进而将每个训练集训练出来的弱分类器组合得到最终的强分类器。Boosting算法中没有抽样的步骤,而是直接使用原始训练集训练所有的弱分类器,并通过加权方式重点关注那些错分的样本,最终的强分类器由这些弱分类器根据各自分类能力加权组合而成。基于这些集成思想,学者们提出了许多经典的集成学习算法,如传统的RF、自适应提升树Adaboost、极端梯度提升树XGBoost[19]和轻度梯度提升器LightGBM[20]等。Chen等[19]基于提升树的原理提出了端到端的树提升系统XGBoost,该模型较传统的提升树更加高效。lightGBM算法有效解决了XGBoost在特征维度大时效率较低的问题,并在很多领域得到了广泛应用。

相比于浅层的Bagging算法、Boosting算法等集成思想,gcForest算法属于深度集成,具备更强的表征学习能力。此外,gcForest算法的提出相当于为深度学习打开了另一扇门,也为传统机器学习走进深度学习领域提供了一个很好的契机。

2.2 DENB模型

DENB模型的结构见图1。假设对于二分类任务,图中圆圈代表NB算法预测为第1类的概率值,正方形代表NB算法预测为第2类的概率值。

GNB—高斯朴素贝叶斯算法;MNB—多项式朴素贝叶斯算法;BNB—伯努利朴素贝叶斯算法;○—NB算法预测为第1类的概率值;□—NB算法预测为第2类的概率值;L—DENB模型的网络层数。

从总体结构来看,DENB模型类似于神经网络,是由多层集成NB算法组成的。第1层的输入为原始特征数据,从第2层至最后一层中,每层的输入均来自前一层基分类器预测概率与原始特征数据聚合后的数据。在最后一层中,对3个基分类器的输出取均值后取最大值,从而得到分类类别。

从每层来看,每层可以看作以NB算法为基分类器的集成。为了增加基分类器的多样性,采用了GNB、MNB、BNB这3种基本的NB算法,其中每个NB算法将产生一个类别概率取值分布。假设对于二分类问题,且每种类型的NB算法只用1个,则每层将产生3个类别概率取值分布(即共有3×2=6个概率值,相当于生成了6个新的特征)。

为了叙述方便,假设分类任务为二分类,基分类器为3种类型的NB算法,且每种NB算法的个数为1。事实上,在不同的分类任务中可以灵活设置每种NB算法的个数,也可以设置NB算法的种类,例如,可以只用2个MNB算法和3个GNB算法作为每层的基分类器。另外,在分类过程中,网络每增加一层都会在验证集上验证精度是否提升,如果精度没有提升或提升不明显,则终止增加层,因此该模型的层数可以自动确定,深度神经网络的层数则需要人为指定。由于GNB算法里并无拉普拉斯平滑系数,因此DENB模型仅选取NB算法的种类数、算法的个数、BNB算法与MNB算法的拉普拉斯平滑系数作为该网络的重要超参数,而不需要将模型层数和GNB算法的拉普拉斯平滑系数作为其参数。

3 实验与结果分析

3.1 实验数据

实验使用UCI上的CNAE-9、Sports和Kaggle网站上的Spam作为3个文本分类数据集。其中CNAE-9数据集由巴西9类公司的1 080个业务描述文档组成,每类公司有120个样本;Sports数据集由亚马逊标记为主观或客观的1 000篇体育文章组成,标记为客观的文章为635篇,占比63.5%;Spam垃圾邮件数据集由5 559封邮件组成,其中垃圾邮件的数量为747,占比13.44%。

为了验证模型适用的广泛性,利用文本分类中常见的特征提取方式,对3个数据集进行不同的特征提取。对CNAE-9采取词出现与否的特征提取方式,统计了857个词的出现情况,其中出现记为1,不出现记为0。对Sports数据集采取词性出现频数的特征提取方式,统计了文章中并列连词、数字、从属介词、比较形容词等58个词性的频数。对Spam数据集采取词出现频数的特征提取方式,统计了前200个高频词的频数。

3.2 评价指标

选取精确率P、召回率R、精确率与召回率的调和平均数F1作为评价指标,各指标的计算公式为

(13)

(14)

(15)

式中NTP、NFP、NFN分别为真正例、伪正例、伪反例[21]的数量。

3.3 结果分析

为了验证本文中所提出的算法的有效性,将DENB模型与单一的NB算法和一些经典的集成算法进行比较,如基分类器(GNB、MNB、BNB)、改进的算法(TAN、ICA-NB、PCA-NB)和集成算法(RF、Adaboost、XGBoost、LightGBM)。这些算法均采用默认参数,其中ICA-NB、PCA-NB模型中使用GNB算法。实验中随机划分训练集和测试集,且训练集占80%。为了使结果更可信,实验重复5次,各指标取5次实验结果的平均值。

记L为DENB模型的网络层数;N1、N2、N3分别为GNB、BNB和MNB算法的个数;a1、a2分别为MNB、BNB算法的拉普拉斯平滑系数。DENB模型在数据集CNAE-9、Sports、Spam数据集上的参数如表1所示,其中网络层数是自动确定的。

表1 深度集成朴素贝叶斯(DENB)模型在各数据集上的参数

表2所示为采用DENB、基分类器算法、改进的算法和集成算法在CNAE-9、Sports和Spam数据集上得到的实验结果。从表中可以看出,DENB模型的P、R、F1指标数值均大于基分类器GNB、BNB、MNB的,表明浅层的NB算法经过深度集成后能够明显提高其分类能力。

表2 各数据集上不同算法的分类结果 %

此外,在文本分类中大部分的研究主要基于MNB算法或者BNB算法,很少使用GNB算法,原因是GNB算法适用于连续型正态分布数据。本文中的实验也表明,3种基分类器中分类能力最强的为MNB算法和BNB算法,但是,在Sports数据集上,采用GNB算法的DENB模型有助于提升整个模型预测精度,这说明在某些情况下,GNB算法和MNB算法或BNB算法组合起来用于文本分类会得到更好的效果。

与典型的改进算法(TAN、ICA-NB、PCA-NB)比较,DENB模型在CNAE-9和Sports数据集上的分类效果是最好,在Spam数据集上比ICA-NB算法和PCA-NB算法分类效果好,与 TAN算法的分类效果相差不多,表明DENB模型具有更高的精度,并对不同的数据集有更好的稳定性,特别是对复杂数据也有很好的挖掘能力。

与典型的集成算法RF、Adaboost、XGBoost、LightGBM比较,DENB模型的P、R及F1指标均较好,具体表现如下:1)与4种传统集成算法相比,DENB模型中的基分类器更加灵活多样。传统集成算法的基分类器仅采用了决策树算法,而DENB模型采用了3种NB算法;2)在文本分类任务中,NB算法较决策树算法更有优势;3)DENB模型采用深度森林中的集成思想,更有利于挖掘数据中深层次的信息。

综上所述,DENB模型在3个文本分类数据集上较其他模型具有较好的分类效果,证明该模型在文本分类任务中具有较好的适用性。另外,从不同角度对3个数据集提取特征并都取得较好的结果,表明DENB模型能够适用于不同的特征提取方式,具有较好的稳健性。

3.4 运行时间

为了验证DENB模型的性能,测试各类算法的运行总时间。表3所示为不同算法在3种数据集上的运行总时间,该运行时间为5次实验的平均值。由于GNB算法、MNB算法、BNB算法的运行时间很接近,因此表中仅列出MNB算法的运行时间。

从表3中可以看出,DENB模型的运行效率较高,如在CNAE-9数据集上总用时为1.19 s,网络层数自动确定为4,也就是说平均每层用时约为0.3 s,接近MNB算法的0.26 s,而且网络的每层含有1个BNB算法、2个MNB算法,相当于每层含有3个基分类器,这也说明了每层的基分类器是并行执行的,从而整体上提高了算法的运算性能。与其他集成算法相比,如近年来比较受欢迎的XGBoost算法,DENB算法的运行时间也占了绝对优势。

表3 不同算法在3种数据集上的运行时间 s

从表3中还可以看出,TAN算法的运行时间远长于其他算法的,原因是本文中采用的文本分类数据集的特征维度较大,造成TAN算法的复杂度很高;因此,虽然TAN算法在Spam数据集上的分类精度最高,但考虑到其运行时间,该算法的运行效率低于DENB模型的。

与传统的NB算法及RF算法相比,DENB模型整体运行时间确实延长了,原因是DENB模型借鉴了深度学习的思想,构建了更深层次的网络,与所有深度学习一样,增加运行时间也是情理之中的。

4 结语

本文中基于gcForest算法的集成思想,以3种常见的NB算法为基分类器,提出了DENB模型。在公司类型分类、体育文章分类、垃圾邮件分类实验中的结果表明,DENB模型在召回率、精确率及F1值等指标与传统NB算法、典型改进算法和典型集成算法相比,都获得了较好的分类结果。下一步将考虑把一些加权技巧、特征筛选等融入模型,以进一步提高算法分类效果。

猜你喜欢

集上贝叶斯分类器
GCD封闭集上的幂矩阵行列式间的整除性
基于贝叶斯解释回应被告人讲述的故事
基于动态贝叶斯估计的疲劳驾驶识别研究
R语言在统计学教学中的运用
基于差异性测度的遥感自适应分类器选择
基于实例的强分类器快速集成方法
基于互信息的贝叶斯网络结构学习
师如明灯,清凉温润
基于层次化分类器的遥感图像飞机目标检测
一种基于置换的组合分类器剪枝方法