王渤茹,范 菁,张王策,李晨光,倪 旻
(1.云南民族大学 电气信息工程学院, 云南 昆明 650500;2.云南民族大学 云南省高校信息与通信安全灾备重点实验室, 云南 昆明 650500)
文本分类是自然语言处理领域中一个经典问题[1].随着机器学习的发展,形成了基于人工特征的分类模型,该模型中特征选择是关键的一个步骤[2].面对海量的短文本信息,获得有价值的信息,进行准确的分类是自然语言处理领域的一个热点.
新闻标题相对于一般的短文本特征更少,在新闻标题的超短文本分类中最关键的问题是对文本特征的提取.由于新闻标题属于超短文本的特殊性,单独采用常规的机器学习特征选择算法提取特征效果并不好[3].采用LDA主题模型对新闻标题进行特征扩展也没有得到很好的效果.2013年提出word2vec方法可以对词语进行稠密向量表示,在向量空间中找到距离最相近的词,并且距离最相近的词表示的语义是相近的[4],用距离最近的一个词对新闻标题进行扩展.Fp-growth算法也能有效挖掘需要的信息.
传统的机器学习算法有着共同的局限性:维度灾难、过拟合,在有限的样本上性能好,对复杂函数的有限表达导致其在大规模分类问题的泛化能力被制约[5-6].深度神经网络克服传统机器学习中的一些缺陷,通过多层神经网络训练使得模型具备良好的特征学习能力[7].
因为新闻标题特征过少和高维稀疏,通过一些方式对标题特征进行扩展[8].本次选用3种方式对新闻标题扩展,1种方式通过word2vec训练词向量寻找与新闻标题词语在空间上最接近的特征词进行标题扩展,第2种种方式通过Fp-growth算法挖掘外部语料库的频繁项集.调用关联规则挖掘算法,进行频繁词项的关联分析.第3种是通过字向量和词向量两种不同的向量表示形式.
word2vec模型的建立是为在训练后得到神经网络中隐藏的参数矩阵,而不是处理新的预测任务[9].训练得到的隐藏层参数是word2vec去学习的词向量[10].采用这种方式训练出的词向量,使得相似上下文的词语在词向量空间也非常接近[11].word2vec模型可以将文本中的每个词语映射成一个稠密的,固定长度的向量.这些词构成一个词向量空间,可以使用余弦距离或者欧式距离,根据词之间的距离判断词语语义上的相近程度[12].
word2vec主要有CBOW和Skip-Gram两种模型[13-14].这2种模型十分相似,CBOW模型可以通过输入周围n-1个词来预测词本身,而Skip-Gram模型可以根据词本身来预测周围的词.本次使用word2vec模型中的CBOW模型训练生成词向量和字向量.使用外部语料库wiki语料库,对语料库进行预处理,接着用CBOW的方法训练词向量.
预训练的词嵌入向量,除了将它们输入到神经网络之外,还有一个重要用途,就是利用向量之间的相似度函数Similarity(w1,w2)计算2个词语之间的相似度.训练出的词向量可以查看词汇空间上距离最近的词,距离上相近的词在语义上也相似[15].定义两个词语的语义相似度为2个词向量的余弦相似性,计算公式如下所示:
(1)
其中vw1·vw2表示2个向量的内积,‖vw1‖表示向量vw1模的长度.‖vw2‖表示向量vw2模的长度.
在训练标题集数量很大的情况下,可以得到的词向量质量越高,利用词向量计算词语的空间相近词质量越高.基于word2vec模型对短文本进行词嵌入扩展可以解决其稀疏性[16].预训练出词向量后,找出与标题词汇距离最相近的词作为新闻标题扩展词汇.虽然扩展词汇描述了与标题不同的事件,但是所扩展的词汇与原标题属于同一个类别,因此对于标题分类仍可以辅助判断.
Fp-growth算法使用一种压缩的数据结构FP-Tree,该算法通过给定的源数据进行2次扫描,将数据信息存储在树结构中[17].Fp-growth算法挖掘语料库的频繁项集不需要创建候选集,且只需要遍历两次数据集.第1次扫描是统计词语的支持度,词语按照支持度降序排列,第2次扫描是构建FP树,挖掘频繁项集[18].当挖掘完包含某个词语的频繁项集时,FP树就不会遍历这个元素项,它所占用的内存空间会立马释放[19].
1.2.1 对新闻标题进行频繁词项特征扩展
此次对NLPCC2017的新闻标题进行分类,其中有18类新闻标题,所以本次爬取了18类新闻网站的文章,挖掘出每类新闻网站中的频繁词项,再通过置信度从频繁词项中计算出与每个词语相关性最高的一些词语,对新闻标题进行扩充.由关联性高的词语加入到新闻标题中,可以缓解新闻标题的特征稀疏性.采用FP-growth算法挖掘频繁词项集的具体步骤如下:
步骤1 分别爬取18类新闻网站的文章,定义集合A={d1,d2,…,dn}为某类新闻文章的数据集,对爬取的新闻语料进行预处理,包括分词、去掉停用词,过滤冗余信息.
步骤2 第1次遍历每类新闻语料,统计每类新闻语料中特征词出现的次数.创建头指针表,移除头指针表中小于指定支持度的词语.
步骤3 第2次遍历每类新闻语料时,初始化FP树为空集[20].将特征词按出现的次数从高往低重新进行过滤和排序.更新FP树,更新头指针列表.按顺序创建频繁项条件FP树,根据频繁项前缀路径计算频繁项集,加入到频繁项集合.
1.2.2 基于置信度的特征扩展
所提取到的频繁词语集中,求出每个词语与频繁词项中其他相关词语的置信度,基于置信度的新闻标题特征词扩展的步骤如下:
1) 从获取的频繁词语集中,选出对标题分类贡献最大的前k个特征为原始特征,由获取频繁词项集的置信度,计算出新闻标题中1个词语出现时与它相关的置信度较大的几个词.置信度的计算方法为当频繁词语A出现的情况下,频繁词语B会以一定的概率出现,B出现的概率成为A->B的置信度,记为confidence(A->B).计算公式如以下所示:
confidence(A->B)=p(B|A)=sup(A∪B)/sup(A)
.
(2)
2) 遍历关联规则集合,对于每个规则,随着置信度阈值的增加,频繁项集的数目越来越少.基于置信度扩展的新闻标题算法描述如表1所示.
表1 基于置信度扩展的新闻标题算法描述
卷积神经网络不同于传统的机器学习方法,它从大量的新闻标题中自主学习复杂,高维,非线性的特征[21].卷积神经网络在自然语言中取得了很好的表现这是由于其具有捕获空间,时间结构的局部相关性特征能力[22].
结合卷积神经网络设计一款基于字向量和词向量混合的双路卷积神经网络.由于新闻标题特征过少,长度一般在20个字以内[23].通过将扩展后的词向量和字向量分别输入到卷积神经网络中进行特征的提取,增大对特征的表达效果,提高对新闻标题的分类效果,其中字嵌入向量包含的信息是每个字都可以独立的作为一个词的假设下成立的.
典型的卷积神经网络由输入和输出以及多个隐藏层构成,隐藏层通常由卷积层、池化层和全连接层组成[24].卷积层和池化层配合组成卷积组,逐层学习新闻标题局部到全局的特征[25].卷积层是卷积神经网络的核心,具有权值共享和局部连接的特征[26].卷积公式为s(t)=(X·W).其中X为扩展后标题词向量的输入和字向量的输入,W为卷积核,操作符(·)表示卷积,二维卷积如下公式所示:
(3)
得到的结果作为激活函数的输入,经过激活函数处理后为ci,j=f(s(i,j)+b),b为偏置项,激活函数f常为sigmoid非线性激活函数或tanh非线性激活函数,relu非线性激活函数,因为sigmoid、tanh函数存在计算代价大,梯度消失等缺点,本次卷积神经网络选择relu非线性激活函数.
新闻标题经过双路卷积后,通过最大池化函数组合所有的局部特征ci,j产生最大值.对于n个卷积核,生成n个特征向量,选用几种不同大小的卷积核,生成不同类型的特征向量.全连接层处于卷积神经网络的最后[27].通过多层的卷积层与池化层处理后,将原始数据映射到隐含的特征空间[28].将不同卷积核得到的不同类型特征向量连接起来,再将字向量和词向量2种不同表达方式得到的特征向量拼接起来.
此次结合字向量与词向量设计实现了双路卷积神经网络的新闻标题分类模型,从两种不同的向量表示中分别抽取文本特征,极大地丰富了新闻标题的特征信息.字向量和词向量混合的双路卷积神经网络模型如图1所示.
第1层为输入层,把扩展后的新闻标题分别划分成不同字和不同词语输入到双路CNN模型中,输入新闻标题均为数字化处理后的字和词.第2层为embedding层,embedding将数字化后得到每个数转换为预先训练好的字向量和词向量,将数字化的输入形式变为向量的输入形式.第3层为双路卷积神经网络的卷积层,向量经过卷积核后非线性映射,主要负责提取句子层的特征.第4层池化层,提取卷积层中的最大的几个特征.第5层特征拼接,将字向量和词向量提取的特征进行拼接.第6层分类器,分类器根据新闻标题提取的特征,将新闻标题分类结果输出.
例如,学校可以以班级为单位建立QQ群,由群管理员邀请学生家长加入,使家校互动活动变得更加高效。尤其是在社会节奏极快的当下,学生家长要忙于自己的本职工作,因此便少有时间能够同教师和校方就子女的教育问题及在校表现等进行沟通。而当QQ群建立之后,家长便可以通过这一线上沟通工具同教师、校方就子女的学习问题以及在校表现进行线上沟通,这样便缩短了家庭教育同学校教育之间的距离。
传统的基于深度学习的文本分类方法在提取完特征后会常采用softmax损失函数作为代价函数实现文本分类,本次提出采用双路神经网络提取特征与决策森林的方法结合实现新闻标题分类.
决策森林是决策树的组合形式[29].使用决策森林的方法对新闻标题进行分类,需要从输入的词向量和字向量结合的双路卷积神经网络提取到文本特征,随后采用决策森林分类.在传统的决策树中,分裂节点是二值的,即它决定了经过这个节点以后是向左走还是右走,并且结果一旦确定不能更改,这导致网络有可能在当前节点上是最优的,但是最后的分类效果并不是最优的.本次使用深度学习和决策森林结合的分类模型,在神经网络的训练过程中,使用梯度下降法对决策森林的分裂参数进行调整.采用概率决策森林的模型[30],其中dn为决策节点,π为叶子节点最终的预测函数.即每个节点的分裂代表1个分裂概率,采用sigmoid函数作为分裂节点对应的概率值.
sigmoid函数把输入到树形结构的值压缩在(0,1)开区间中.使用概率来划分左右子树,当左子树为激活函数的概率值,右子树就为剩余的概率值.数据集中的新闻标题经过特征提取后可表示为向量Wk,决策树每个节点的分裂函数如下公式:
(4)
其中f(x;θ)的公式为如下所示,theta表示树形结构的分裂参数.
f(x;θ)=θΤx
.
(5)
根据树形结构的深度,l↙n表示l属于节点n的左子树情况为真,l↘n表示l属于节点n的右子树的情况为真,N表示总共的节点数.树的每个节点的路由决策见图2所示.样本x到达某叶子节点的概率如下公式所示:
(6)
(7)
卷积神经网络中每个节点单元的输出作为分离节点决策函数(d1,d2,d3,...,dn)的输入参数,决策采用sigmoid函数.知道决策函数后,可以计算其路径函数,每棵树的根节点,其路径赋予的值是1,然后乘以该节点的决策函数值d,得到左节点的路径函数为(1*d),右边子节点的路径函数值为1*(1-d),以此类推,可以计算出每棵决策树的路径函数.
最终的损失函数定义为L(θ,π;x,y)=-log(PT[y|x,θ,π]),利用反向传播法,更新节点的分裂参数theta和叶子节点的分布参数π的值.
实验数据是公开数据集NLPCC2017新闻标题数据集,包括entertainment、food、travel、world、history、tech、military、story、essay、sports、game、discovery、finance、car、fashion、society、regimen、baby 18个新闻标题类,其中history、military、baby、world、tech、game、society、sports、travel、car、food、entertainment、finance、fashion类分别有10 000个训练样本,discovery、story、regimen、essay类别分别有4 000个训练样本,总共有156 000个训练样本.验证集和测试集样标题总共有36 000个,此次选择18 000个作为验证集新闻标题,18 000个作为测试集新闻标题.
仅用单一词向量表示新闻标题,采用卷积神经网络对扩展后的新闻标题进行分类,训练集和验证集准确率随迭代次数变化如下图3所示,验证集的准确率达76.6%.标题扩展后的单一词向量在卷积神经网络中对新闻标题进行分类,训练集损失值随迭代次数变化如下图4所示.从图中可以看出当迭代次数为5 100左右的时候,损失速度逐渐变缓直至最后收敛.
用字词向量表示新闻标题,采用双路卷积神经网络对扩展后的新闻标题分类,训练集和验证集准确率随迭代次数变化如下图5所示,验证集的准确率达79.8%.标题扩展后的字词混合向量在双路卷积神经网络中分类,训练集损失值随迭代次数变化如下图6所示.从图中可以看出当迭代次数为4 600左右的时候,损失速度逐渐变缓直至最后收敛.对扩展后的新闻标题进行字词混合两种向量表示的双路卷积神经网络与一种词向量表示的卷积神经网络方法进行对比,结果表明使用字词混合的双路卷积神经网络比单一词向量表示的神经网络验证集准确率提高约3%.
用字词向量表示新闻标题,采用深度神经决策森林方法对扩展后的新闻标题分类,训练集和验证集准确率随迭代次数变化如下图7所示,标题扩展后在深度神经决策森林模型上验证集的准确率达到82.2%.标题扩展后的字词混合向量使用深度神经决策森林方法分类,训练集损失值随迭代次数变化如下图8所示.从图中可以看出当迭代次数为2 600左右的时候,损失速度逐渐变缓直至最后收敛.
评判标准除准确率外,还有精确率、召回率、f1-score值以及混淆矩阵.用以上深度学习方法预测测试集新闻标题分类,预测结果的对比情况如表2所示.
表2 预测结果对比 %
从测试集结果看,使用字词混合的双路卷积神经网络比单一词向量的卷积神经网络在准确率、精确率、召回率以及F1-score上高,表明使用字词混合的双路卷积神经网络可以增加新闻标题的句子特征.使用深度神经决策森林方法比其他两种方法取得的准确率、精确率、召回率、F1-score高,表明使用概率决策森林方法比深度学习中softmax分类函数在新闻标题分类问题上表现出更好的分类优势.
首先针对新闻标题特征较少的问题,使用3种方法扩展;其次双路卷积神经网络可以自主提取新闻标题的特征,在分类算法方面,决策森林表现出分类优势,将2种方法结合提出深度神经决策森林算法.从新闻标题分类的实验结果看,此次提出的方法优于仅使用卷积神经网络方法和双路卷积神经网络方法.
由于故事类和历史类,故事类和社会类,养生类和食物类,娱乐类和时尚类,它们之间划分的界限不是很清晰,在新闻标题分类的过程中容易混淆;其次标题类别数较多、有些标题没有明显特征,还有受歧义词等影响,造成一些标题分类判断错误.本次使用的深度神经决策森林方法为之后的深度神经网络与机器学习方法相结合实现端到端融合的文本分类提供一些思路.
针对新闻标题分类存在的问题,将来打算在以下几个方面进行研究:
1) 中文分词,中文分词对未登录的词识别和歧义词切分较为棘手,有待改善算法来解决.
2) 未来引入更大的语料库,对词向量进行更理想的表示.
3) 短文本的特征扩展进行进一步研究.
4) 深度神经网络中参数的调节问题.在训练过程中参数调节是至关重要的,参数确定的越好,最后的训练模型越好,准确率越高.
5) 大量文本处理需要很久的时间,海量数据分类效率比较低,未来可以使用分布式平台使算法的时间效率提高.
6) 深度学习中的一些方法与机器学习中决策森林方法实现端到端融合的模型可以进一步的研究.