分类指基于一定规则、在特定的类目下将文本进行归类,并对其属性类别进行标注。在自动分类中,往往基于事先定义的训练集(training set)获取上述规则。早期文本自动分类通常基于文本的词项特征,也就是根据内容开展分类。后来各类新特征不断被应用于文本分类中,例如引用关系、出版社、作者、语言等,这些新特征也在相关领域的实践过程中体现出其应用价值。
二值分类、多类分类是文本自动分类的类型,二值分类通常考量待分类文本为相关或不相关两类,往往被应用于信息检索、信息过滤(filtering)等。而多类分类,即text categorization或者topic classification,相较于二值分类,该分类通常需要考量更多的类别属性。
当前,文本分类中比较常见的方法涵盖决策树、Rocchio 、贝叶斯网络、K近邻法(KNN) 、支持向量机(SVM) 、朴素贝叶斯(naive Bayes)等。
但是对于上述常见的文本分类方法,往往都涵盖下列文本分类流程,如图5-1所示。
图5-1 分类一般流程
文本表示往往基于预处理、特征表示等板块实现。
数据挖掘的初始步骤便是数据的预处理,其关键目标便是使文本向量化、词条化。面向各类文本的特征,数据的预处理所涉及的内容亦具有差异性,例如在HTML处理中,需要采用标识进行题目或文本等的提取。
预处理操作主要涉及词形归并(lemmatization)、同义词归并、词干还原(stemming)、去除停用词等。Silva C 指出在数据预处理的过程中,相较于其他预处理过程,去除停用词对于分类具有更大的影响。
文本表示模型。将自然语言处理转变为计算机可识别的结构化数据,是在自然语言处理领域里的难题,目前最普遍的模型是学者Salton 的向量空间模型。向量空间模型主要是将文本基于词语切分,统计每个文本中词语出现的频次,将特征词作为向量的维度,从而将文本表示成词向量的模式,KNN、Rocchio等方法均是以空间向量模型为基础设计的。其缺点在于,在处理文本的过程中,过多的特征项导致空间向量矩阵异常稀疏,尤其表现在短文本的处理上,这对计算机的计算和存储功能提出了很大要求。
概率模型。概率模型是一种基于贝叶斯理论、以文本中各个特征词出现的概率表示文本的文本表示模型。在概率模型中,文本被表示成文本中各词向量出现概率的乘积,在一般情况下,概率模型参数能够基于对文本集开展线性扫描来获取,从而建立基于概率模型的文本表示。
特征选取。特征选取方法通常分为特征选择和特征抽取两种选取方式,其中特征选择方式将在贝叶斯分类中具体介绍,其原理一般是基于某种指标选取特征词集的子集,从而产生新的特征词集;特征抽取(feature extraction)则是通过某种算法将特征词通过组合、转换等技术产生新的特征词集,其本质是将特征词集映射到低维空间中去,低维空间中的特征词集与原特征词集往往不同。
(一)基于决策树的文本分类
(1)决策树算法的基础
决策树模型(Decision Tree)的提出最早可以追溯到1960年 ,其核心目的是从给定数据中归纳得到一组分类规则,用于对未知数据进行分类。决策树模型结构如图5-2所示,G代表根结点,是模型的开始部分;J代表决策结点,是根据样本特征对样本进行判断,使它划分为不同分枝的作用部位,决策结点越处于决策树的上层,该结点所用的样本特征重要性越高;Y代表叶结点,每个叶结点表示一个分类结果。未知样本进入决策树后,在每个非叶结点进行一次判断,根据样本的特征属性,该结点给出应该进入的分枝,最后样本进入最终的叶结点,即对该样本的分类结束。使用决策树模型进行文本分类的原理为:通过抽取合适的文本特征作为决策结点,文档能按照决策结点分开为各个类别。常见的文本特征包括关键词词频、是否包含关键词、文档长度等。
图5-2 决策树结构
决策树分类模型的优势包括:①原理直观,易被操作人员理解;②生成的分类规则体现了各个特征的重要性,有利于知识发现;③算法计算量小,性能稳定。但决策树分类模型的性能取决于各个决策结点是否能够有效地根据数据特征对数据进行划分,因此非常依赖于对数据特征的表示和构建。
(2)决策树分类模型
决策树的算法包括建树和剪枝两部分:建树过程即生成各层合适的决策结点;剪枝过程是在建树结束后剪去不可靠的分枝,这些分枝可能是根据训练数据中的异常信息生成的,会影响对未知数据的判断,造成精度下降或是速度减慢,因此有必要删除。
①建树
建树过程的核心问题是如何为决策结点选择合适的特征。J.R.Quinlan于1979提出的ID3(Iterative Dichotomizer 3)算法 是决策树算法的典型代表,其核心贡献是使用了信息增益作为决策结点选定特征的依据。信息增益表示信息熵(Information Entropy)减少的程度,而信息熵则是衡量数据集合纯度的有效指标,由公式5-1获得:
其中IE(S)代表当前集合S的信息熵,y代表集合中样本类别的总数,F(C i )代表集合中类别为C i 的样本数量。信息熵越低,说明目前集合不确定性越小,分枝效果越好。ID3算法通过在每个非叶结点使用剩下的所有特征尝试对数据集合S进行分枝,划分成m个子集后,评估信息熵总体减小程度,即信息增益,通过公式5-2计算:
其中Gain A 表示使用特征A作为分枝特征带来的信息增益,S表示原始集合S的样本数量,S i 表示子集S i 的样本数量,IE S i 表示该子集的信息熵,最后ID3算法选择信息增益最大的特征作为该结点应该使用的特征。ID3算法原理简单,但是对能分出越多类别的特征存在偏好问题,例如某特征能将各个样本独自分成一类,这样的特征对于分类效果来说没有意义,但由于其各个类别信息熵最小,信息增益最大,因此ID3算法会优先选择该特征。
针对ID3算法的缺陷,J.R.Quinlan于1993年又提出了C4.5算法。 使用信息增益率代替信息增益作为选择标准。信息增益率通过公式5-3和公式5-4计算:
特征A的信息增益率表示为其信息增益大小除以IV(A),当使用特征A进行分枝时,分出的类别数越大,IV(A)越大,因此可以在一定程度上抵消信息增益缺陷带来的影响。C4.5算法首先找出信息增益高于平均水平的特征,接着选取其中信息增益率最高的特征作为结点所用的特征。
②剪枝
对决策树进行剪枝可以剪去分类效果不良的决策结点,提高分类精度,同时提高运行速度,剪枝算法包括预剪枝和后剪枝。
预剪枝算法的思想:在建树的过程中同时准备未知数据对决策树分类效果进行测试,每当形成一个决策结点,分别计算不根据该结点进行分枝的模型精度和分枝后的模型精度,若分枝后的模型精度低于或等于不使用该结点的精度,那么便取消该决策结点的划分并标记其为叶结点,将该结点数量最多的样本所属类别作为叶结点类别。预剪枝可以使得建树过程中模型一直朝着提升精度的方向前进,但会导致建树速度减慢。
后剪枝算法的思想:建树结束后再对每个决策结点进行修剪。同样准备未知数据,接着自底向上考察每一个决策结点,在每个决策结点处首先计算当前模型精度,接着计算删去该结点,并将其作为叶结点后模型精度,若删去操作能使得模型分类精度提升,则删去该结点并标记为叶结点。
相较于预剪枝,后剪枝在模型形成后进行修剪,往往需要更多的时间,但能带来一棵对未知数据泛化性能更好的决策树。
(二)基于朴素贝叶斯的文本分类
(1)朴素贝叶斯的基础
1960年Maron和Kuhns 提出了朴素贝叶斯分类方法,其根据位置独立性、条件独立性两类假设,即假设特征词项之间相互独立,不存在依赖关系,并且文本概率的计算不受其在文本中出现的位置影响。
朴素贝叶斯模型的树形构造如图5-3所示。在文本分类中,X 1 、X 2 、X 3 、X 4 分别代表属性特征变量,其中C为类别属性变量。根据独立性假设,不同属性特征变量之间相互独立并且对类C的判定都具有一定影响。在实际情况中,由于文本中特征词之间确实存在依赖关系,而且特征词出现的顺序的确影响语义的表达,因此这两个假设在实际文本中不成立。但是相较于其他分类方法,即使条件独立性假设和顺序独立性假设影响了贝叶斯分类算法在语义信息处理上的表现效果,贝叶斯概率分类在实际应用中还是具有相对较好的效果。
朴素贝叶斯分类模型的优势包括:基于贝叶斯定理的贝叶斯分类模型逻辑较为简单,计算难度较小;算法复杂度较小,在实际应用中时间开销和空间开销较少;模型鲁棒性较高,对于不同类型的分类数据算法性能差别不大,算法性能稳定。
图5-3 朴素贝叶斯独立性假设
(2)朴素贝叶斯分类模型
多项式朴素贝叶斯模型(multinomial naive Bayes)、多元伯努利模型(multivariate Bernoulli model)是建立朴素贝叶斯分类模型的两种常见方法,其中多元伯努利模型也称为二值独立模型。
①多项式朴素贝叶斯模型
多项式朴素贝叶斯模型是一种基于概率的学习方法,文本d属于类别c的概率,可以通过公式5-5获得:
其中,<t 1 ,t 2 ,t 3 ,…,t nd >表示文本d中的特征词项,nd表示文档d中所有特征词项的数量。P(c)表示文本d属于类别c的先验概率,在文本集中,要想找到文本d的最有可能的类别,就要在预先知道文本d属于每个类别c的先验概率后,找到文本d具有的最大后验概率(maximum aposteriori,MAP)估计值的类别,即公式5-6。
使用 的最大似然估计计算文本d的先验概率,其中 表示c类文本具体数量,N是训练集合中的文本数量。
为了去掉零概率的特征词项,该公式将条件概率估计值做了平滑处理操作,是经过拉普拉斯平滑或加以平滑后条件概率估计值,表示t在c类中出现的相对频率。其中,B是词汇表中所有词的数目,V是所有c类词集合,T ct 是t在训练集合c类文本中出现的频率。
②多元伯努利模型
学者Robenson和Jones1在1976年提出多元伯努利模型。在多元伯努利模型中,通过布尔变量值表示相应的特征词项在文档中是否出现,若出现相应位置填1,否则填0。多元伯努利模型忽视了文本中词频产生的差异,在模型中高频、低频特征词的权重相同,所以对于长文本的特征分类并不合适,但是对于短文本数据来说,由于只考虑特征词是否出现,相对于多项式朴素贝叶斯模型减少了很多计算。
定义F={t 1 ,…,t m }为文本的特征词序列,伯努利通过二值向量x=<x 1 ,…,x m >表示文本d,其中x m 为1表示特征词t m 在文本d中出现。p(t|c)表示在类别c中包含t的文本占类别c中所有文本的比率,类别归属概率可表示为公式5-8:
由于多元伯努利模型忽略了特征词频率在文本分类中的影响,在通常情况下,多元伯努利模型的分类性能相较于多项式朴素贝叶斯分类较弱,多元伯努利模型更适用于分类文本长度较短的情况,而多项式朴素贝叶斯分类能够适应不同的文本长度,多项式朴素贝叶斯分类的鲁棒性更好,但时间开销更大,且多元伯努利模型在文本长度不确定时表现较差。
(三)基于K近邻的文本分类
(1)K近邻算法基础
K近邻(K-Nearest Neighbors,KNN)算法作为向量空间模型(VSM)最好的分类算法之一,由Cover和Hart 于1967年提出,其基本思想是,在VSM表示下,分别计算待分类样本与训练样本的相似性,找出与待分类样本最相似的K个近邻,根据这K个近邻的类别确定待分类样本归属。一般来说,KNN算法在定类决策上只依据最邻近的一个或者几个样本的类别来决定待分样本所属的类别,是最简单的机器学习算法之一。
(2)K近邻算法描述
①基本要素
对于一个确定的训练集,只要确定了距离度量、K值和分类决策规则,就能对任何一个新的实例,确定它的分类。
距离度量:距离度量是描述特征空间中两个实例的距离,也是这两个实例的相似程度。常见的相似度度量方法有闵可夫斯基距离(公式5-9)、曼哈顿距离(公式5-10)、欧式距离(公式5-11)、切比雪夫距离(公式5-12)与余弦距离(公式5-13)。
K值选择:
方法一:记样本数据集的容量为n,K值的选取一般来源于经验,即选取一个较小的大于1的奇数,一般在(1, )。n较小时,K取(1,10)中的奇数;n较大时,K取(1, )中的奇数。
方法二:通过交叉验证(将样本数据按照一定比例,拆分出训练用的数据和验证用的数据,比如6∶4拆分出部分训练数据和验证数据),从选取一个较小的K值开始,不断增加K值,然后计算验证集合的方差,最终找到一个比较合适的K值。如图5-4所示,在这个图中确定的KNN分类的K值为10,具体解释为,当增大K的时候,一般错误率会先降低,因为周围有更多的样本可以借鉴,分类效果会变好。但和K均值聚类算法不一样,当K值更大的时候,错误率会更高。这也很好理解,比如说一共就35个样本,当K增大到30的时候,KNN基本上就没意义了。
选择较小的K值,就相当于用较小的领域中的训练实例进行预测,训练误差会减小,只有与输入实例较近或相似的训练实例才会对预测结果起作用,与此同时带来的问题是泛化误差会增大。换句话说,K值的减小就意味着整体模型变得复杂,容易发生过拟合。
图5-4 KNN分类算法中K值确定
选择较大的K值,就相当于用较大领域中的训练实例进行预测,其优点是可以减少泛化误差,但缺点是训练误差会增大。这时候,与输入实例较远(不相似的)训练实例也会对预测起作用,使预测发生错误。换句话说,K值的增大就意味着整体的模型变得简单,容易发生欠拟合。
决策函数确定:决策函数的选择用于分类的多票表决法。其使用方式如下:
记输入训练集为T=x 1 ,y 1 ,…,x i ,y i ,…,x n ,y n ,其中x i =[x i 1 ,x i 2 ,…]∈R m 为m维向量,y i ∈ t 1 ,t 2 ,…为第i个向量的标签。在分类任务中可使用投票法,即选择这K个实例中出现最多的标记类别作为预测结果,根据多票表决法,确定测试实例的标签为:
缺点:当样本分布不均且K值选择不合理时,可能会出现分类错误。可以使用加权多票表决法,这个时候,每一个邻居都要乘上一个权重,因为距离越远,权重越小,所以不妨让权重系数等于距离的倒数。
其中,dist为计算两个向量距离的函数, 为未知类别的数据点。
(四)基于支持向量机的文本分类
(1)支持向量机的基础
Corinna Cortes和Vapnik领导的研究小组于1995年正式提出支持向量机技术(Support Vector Machine,SVM) ,其基本原理是将样本数据集通过变换得到高维特征空间,并在特征空间对样本数据集进行分类。
支持向量机最早是为了解决二分类问题而提出的,它的目的是寻找一个最优超平面,使得该平面在分类结果准确率较高的情况下,同时将超平面不同侧面样本间的间隔尽量拉大。支持向量机有着较好的泛化能力和自主学习能力 ,可以在统计样本数据集较少的情况下,获得很好的统计规律。
图5-5 最优分类面示意图
图5-5中,margin(间隔)代表分类平面间的最大分类间隔,处于分类线两侧的数据点为待分类的样本,H为分类超平面。H 1 、H 2 是在所有的类里面距离H最近的超平面,二者之间的距离叫作分类间距,最优超平面就是能将两类正确分开时最大间隔的超平面。
在文本分类任务中,与其他算法相比,支持向量机具有如下主要优势 :①文本数据向量维度很高,对于高维问题,支持向量机具有其他机器学习方法不可比拟的优势。②文本向量特征相关性大,支持向量机对于特征相关性不敏感。③文本向量存在高维稀疏问题,一些算法不同时适用于稠密特征矢量与稀疏特征矢量的情况,但支持向量机对此不敏感。④文本分类样本收集困难、内容变化迅速,支持向量机能够找出包含分类信息的支持向量,是强有力的增量学习和主动学习工具。
(2)支持向量机算法模型
SVM算法可以简单描述如下:
设有两类线性可分样本集 x 1 ,y 1 ,x 2 ,y 2 ,…,x i ,y i ,其中x i ∈R d ,y i ∈ {-1,+1}是类别标号,i=1,2,…,n。
对于线性可分问题,分类超平面的定义如下:
其中w和b是分类超平面的参数,w为法向量,b为偏移。在线性可分情况下,采用下式进行统一表示:
其中,分类间隔为2/|w|,在满足(5-17)式的基础上使得|w| 2 /2最小,这样的超平面就是最优分类超平面,在线性可分的情况下,SVM通常被描述成一个以(5-17)式为约束条件的优化问题,求函数的最小值:
最终可以得出最优分类函数:
对于线性不可分的问题,可以引入松弛变量δ i ,将问题转化成求(5-13)的最小值问题:
约束条件则为:
其中C为惩罚因子。
(一)基于人工神经网络的文本分类
(1)人工神经网络的基础
人工神经网络(Artificial Neural Networks,ANN),也被称作连接模型(Connectionist Model),是对人脑或自然神经网络中若干基本特性的抽象及模拟。人工神经网络模型最早可以追溯到1943年美国的心理学家McCulloch和数学家Pitts提出的神经元的MP模型。
人工神经网络是由人工建立的、以有向图为拓扑结构的动态系统。Hecht-Nielsen给人工神经网络做出如下定义:人工神经网络是一种并行、分布处理的结构,它由处理单元及被称为连接的单向信号通道互连而成。这些处理单元具有局部内存,并可以完成局部操作。每个处理单元都有一个单一的输出连接,这种输出可以根据需要被分支成希望个数的许多并行连接,且这些并行连接都输出相同的信号,即相应处理单元的信号,信号大小不因分支的多少而变化。处理单元的输出信号可以是任何需要的数学模型,每个处理单元中进行的操作必须完全是局部的。
人工神经网络由众多可调连接权值的神经元连接而成,它的参数学习基于误差反向传播(Back-Propagation,BP)算法,具有很强的非线性映射能力。利用神经网络处理文本分类,无须花费大量的时间在特征提取与选择上,将词的分布式表示作为特征输入网络中,神经网络可以自动抽取出对文本分类有价值的信息,通常这些信息是经过卷积、点乘、非线性函数、矩阵相乘等操作得到,且所得信息高度编码不易被解读。
(2)人工神经网络文本分类算法描述
对应于某个文本类别的神经网络模型由输入层、隐藏层和输出层组成。图5-6中,I 1 ,I 2 ,…,I n 是神经网络输入层的神经元。不同类别神经网络的输入层允许选择不同的n值。X i (i=1,2,…,n)为一篇中文文本对神经网络的输入值。H 1 ,H 2 ,…,H n 构成一个神经网络的隐藏层,记隐藏层神经元的个数为h。h值的确定可根据下面两个经验公式计算:
其中,h 1 和h 2 为隐藏层神经元的个数,m为输出神经元的个数,n为输入神经元的个数,a为1—10的常数。
图5-6 人工神经网络模型
输入层与隐藏层间采取非全连接方式,隐藏层第一个神经元连接到输入层的前两个神经元I 1 和I 2 ,隐藏层其余神经元全连接到输入层I 3 —I n 的n-2个输入层神经元,隐藏层与输出层之间采取全连接方式。
(二)基于卷积神经网络的文本分类
(1)卷积神经网络的基础
卷积神经网络(Convolutional Neural Network,CNN)是目前常用的深度学习模型,是深度学习的代表算法之一,在手写字符识别、目标识别、图像分类等领域有着成熟的应用。
卷积神经网络的起源可追溯到生物学家Hubel和Wiesel在1962年对猫视觉皮层的研究。 他们发现,视觉信息的传达与大脑中多个层次的感受野(Receptive Field)有关。Fukushima受此启发,在1980年提出了神经认知机(Neocogniron) ,其采用简单细胞层(S-layer,S层)和复杂细胞层(C-layer,C层)交替组成。之后,LeCun基于Fukushima的研究工作并融合BP(Back-Propagation)算法,提出了LeNet-5 ,LeNet-5是经典的CNN结构,它几乎定义了卷积神经网络的基本结构,后续有许多研究基于此进行改进。
(2)卷积神经网络文本分类算法描述
卷积神经网络最初在图像领域取得巨大成功。一般来说,卷积神经网络更适于做空间任务(如图像),但卷积神经网络在一些文本处理任务上也能有出色的表现。用卷积网络做文本分类最著名的模型就是TextCNN ,其结构如图5-7所示。
图5-7 TextCNN模型架构
在输入层,采用词嵌入来完成文本表示。由图5-7可知,输入层是句子中词语对应的词向量自上而下排列组成的矩阵,含有n个词的句子、每个词的向量维度为k,则会组成一个n*k的矩阵。在这个模型中,输入层的词向量可以是静态的(stat ic),也可以是动态的(non-static)。静态就是直接使用word2vec训练好的词向量,动态则需要词向量随着模型训练而变化。该模型中的一个通道会利用反向传播(Back Propagation,BP)算法进行训练并更新词向量,这个反向误差传播导致词向量值发生变化的过程称为微调(fine tune)。
在卷积层,输入层输入的n*k矩阵词向量通过卷积操作将得到若干个特征面,卷积核的宽度与词向量的维度k保持一致,卷积窗口的大小为h i *k,h i 表示卷积核窗口中包含的词数。通过这样一个大型的卷积窗口,将得到若干个列数为1的特征面。
在池化层,采用最大池化(Max Pooling)来选取卷积结果计算后的最强特征。通过池化层可以解决可变长度的句子输入问题,输出每个特征映射向量中的最大值。
在输出层,池化层输出的数据按深度方向拼接成一个向量输入全连接层,并利用softmax分类器计算输出最终结果。
(三)基于循环神经网络的文本分类
(1)循环神经网络的基础
循环神经网络(Recurrent Neural Network,RNN)是一类处理序列数据的神经网络。1982年John Hopfield建立了一种包含递归计算和外部记忆的神经网络——霍普菲尔德网络 ,这是RNN的雏形。1986年,Michael I.Jordan提出Jordan神经网络 ,该网络采用了循环计算以及反向传播(Back-Propagation,BP)的算法进行训练。1990年,Jeffrey L.Elman基于Jordan神经网络提出了Elman神经网络 ,即最简单的包含单个自连接节点的RNN模型。
RNN模型示意如图5-8所示。网络中的循环结构将隐含层的输出作为自身的输入进行循环计算,从而在每轮计算时都能保留之前状态的信息。隐含层中包含了多次计算流程,且每次计算之间存在先后顺序,故RNN擅长处理包含时序信息在内的序列数据。
图5-8 RNN模型示意图
在文本分类中,可以将待分类的单个文档看作一个序列,输入RNN进行分类训练。基于RNN的文本分类步骤如下:
①文档预处理
RNN的隐含层数需要固定,而文档长度是动态变化的,因此需要对文档进行预处理,在尽量保全信息的情况下精简文档,且使所有的文档长度不超过隐含层数。常见的方法:对文档进行分词处理、去除停用词、截断较长文档、按句分解文档等。
②文本的表示
文档处理结束后,为了在神经网络中进行计算,我们需要将文本表示为数值形式。考虑到神经网络强大的计算能力,使用高维向量表示文本能更好地保留文本自身包含的信息,常见的文本表示方法有one-hot编码、Word2vec、WordNet等。近年来新出现的基于预训练的BERT方法也能将文本向量化,且这些向量已经包含了较好的语义信息。可以尝试使用字向量、词向量和句向量等不同粒度的文本表示方法,选择当前语料环境下效果最好的方法作为最终方法。
③模型的训练
RNN模型的每个隐含层都有输出,因此一轮计算过后,可以得到和输入序列等长的一个输出序列。可以考虑对输出序列做向量均值、拼接等操作,得到一个最终结果;也可以取最后一个输出值作为最终结果。模型将最终结果映射到预先定义好的类别上,与真实值做比较,根据比较结果调整参数后进行下一轮训练。在训练数据充足、训练轮数合适的情况下,便能得到一个当前语料环境下精确度较高的文本分类模型。
由于循环计算,RNN存在将变量不断放大或缩小的特点。对长序列进行学习时,容易出现梯度消失和梯度爆炸现象。为了解决该问题,出现了包含门控机制的长短期记忆网络(Long Short-Term Memory Networks,LSTM) 。LSTM使用门控机制模拟遗忘与记忆功能,能在计算过程中实现对变量的筛选效果,解决了变量的单调变化问题。基于LSTM的文本分类与RNN类似,替换上述模型中的网络即可。
(2)循环神经网络模型
图5-8中的循环结构可以展开成为序列形状,该序列的长度与隐含层的层数以及输入的长度相对应。图5-9是RNN展开循环结构的示意图。序列中的每个输入对应一个隐含层,并将当前隐含层的输出作为下一个隐含层的输入。RNN网络的计算过程可以用如下公式描述:
其中,f表示神经元之间的非线性激活函数。u、w表示计算过程中的权重矩阵,需要RNN在训练过程中对其进行不断优化,以产生适应于当前数据的权重。b、b'为偏差值,同样需要在训练过程中去不断调节。H表示隐含层状态,X表示输入序列,Y表示最终输出。t表示时间步,标识了输入层与隐含层的节点位置。Softmax为归一化指数函数,用于输出归一化,建立对应的分类器。图5-9展示的网络结构只产生一个最终输出Y,可以将其用于文本分类任务。该网络结构还可以在每个隐含层都产生一个输出,因此RNN还可以用于词性标注、命名实体识别、分词等序列标注任务。
图5-9 RNN网络结构
(四)基于图卷积网络的文本分类
(1)图卷积网络的基础
图卷积神经网络(Graph Convolutional Network,GCN)是由Kipf等人 提出的一种基于图结构数据的半监督学习模型,用于处理图结构数据。GCN的核心思想是利用边的信息对节点信息进行聚合,从而生成新的节点表示,以提取拓扑图的空间特征。直接在图上进行操作,对图结构数据进行节点分类、边预测和图分类等。
随着GCN逐渐应用于语义角色标注、关系分类等自然语言处理任务,学者也开始探究其在文本分类领域的优势。Text GCN 是基于GCN应用于文本分类领域的模型,无需使用预先训练的词嵌入活外部知识,基于单词共线与文档单词关系为语料库构建单个图文本,采用GCN对图文本进行建模,训练能够有效捕捉高阶领域信息的文本GCN,将文本分类问题转化为节点分类问题,用小比例的标注文档获得高文本分类性能,并学习可解释的单词和文档节点嵌入。此外,结合文本分类任务场景,基于GCN的模型变体被提出。SGCN(Similarity-GCN)是基于词语间关联相似度的特殊文本图结构,用以进行文本特征表示,由文档中的词语构成图中节点,基于文档中词语之间的余弦相似度构成图点之间的连线,提升文本分类模型的效果。
(2)图卷积网络模型
GCN的输入层由输入特征矩阵和图的邻接矩阵组成,邻接矩阵表示参考节点之间的关系。隐藏层可以通过传播规则聚合当前层的节点信息,并将特征传输到下一层。考虑一个图G=(V,E),其中V(|V|=n)和E分别是节点和边的集合。假设每个节点都与自身相连,即对于任何v都是(v,v)∈E。设X ∈R n×m 是包含所有n个节点及其特征的矩阵,其中m是维数的特征向量,每行x v ∈R m 是v的特征向量。引入G的邻接矩阵A及其度矩阵D,其中D ii =∑ j A ij 。由于自循环,A的对角线元素被设置为1。GCN只能通过一层卷积来获取近邻的信息,当多个GCN图层堆叠在一起时,有关较大邻域的信息将被整合。对于一层GCN,新的k维结点要素矩阵L (1) ∈R n×k 计算如公式(5-26)所示,通过堆叠多个GCN层来整合高阶邻域信息的计算如公式(5-27)所示:
其中 是归一化的对称邻接矩阵; 是一个权重矩阵,ρ为激活函数,j表示层数, =X。
网状数据挖掘 表示从网状数据源中搜寻可用知识或者模式的过程,常用于分析相互关联的个体间的数据关联性及共同表现,通过网状数据机构,可以在明晰一个节点属性的情况下,基于科学方法对关联数据的属性进行合理推断。本方法适用于节点自身属性较少、连接信息丰富的网络中。基于链接信息的相似度度量分类和协同分类是基于网络分类的两种方法。
(一)基于链接信息的相似度度量
链接信息的相似度度量方法就是将链接信息转化为特征向量表达,通过对点与点的相似性计算进行分类。在基于网络的分类算法中,主要的概念为邻居节点的相似度或邻近度,并被常常使用。
(1)基于链接分析的方法
最早运用的度量方法便是基于链接分析,往往运用耦合、共被引等相关概念度量文本相似度。基础的思想为:如若a与b两篇文本一直为同样一篇文献引用,且共同引用他们的文献很多,可以认为a、b两文献是相似的。最早文献a和b的相似度sim <a,b>采用共同引用的文献篇数来衡量,其后的改进方法包括杰卡德系数:
其中,e(a)为a点的邻居节点集合,e(b)为b点的邻居节点集合。学者Adamic和Adar 引入了权重计算该相似度,认为邻居节点少的节点应该有更高的权重。Amsler 将共引和共被引结合,增加了有价值的信息量。然而,很多文献在内容上相近但是由于缺少共同的引用文献,其文献的引用相似度为0,体现了该方法的局限性。
(2)基于邻近度的方法
在该方法中,在节点图中的两节点的最短路径被用来测量两篇文章的相似度。基于邻近度的方法使得一些非直接引用的链接信息也被考虑进去,但是该种方法需要较高的时间复杂度。Chen和Safro 提出一种代数性距离以计算节点对的联系强度,代数性距离越小则两者联系越强。2002年,Jeh和Widom 提出了SimRank,算法考虑了两节点之间的所有路径,也可以认为是所有的共引的集合,但是其时间复杂度达到了O(n 4 )。该方法在后续的研究中得到许多关注,许多研究将其作为改进方法的基本比较,然而高时间复杂度对其应用于大数据集造成了极大限制。而在Fouss等人 的研究当中则提出了三种指标,基本思想是两节点有越多的短路径相连,则两者更加相似。Power-SimRank 和Adaptive-SimRank 则利用了幂律分布来进行相似度计算,并且在之前进行了适当的部分向量的迭代计算。
(二)网状数据协同分类
协同分类是利用节点自身的属性以及节点之间的相互关系来提高分类的准确性,其最重要的思想是同质性思想。在一个网络中,协同分类常使用三种信息:待分类节点自身的属性、待分类节点的已标注邻居节点的属性和类别、未标注的邻居节点及其属性。
网状数据协同分类问题研究主要集中于几个方面:构建分类模型,例如Chak-rabarti 最早使用超链接构建网状数据分类器,联合其本身的文本特征和邻居节点类别构建朴素贝叶斯分类器,而Getoor等 在2001年的研究中则利用了逻辑回归模型,对节点的邻居节点类别分布进行模型构建;协同推理,即当一个节点属性可能受邻居节点影响时,我们应如何以邻居节点推断节点类别;赋予未知类别的部分邻居节点初始信息。对于这三个问题的回答,就可得到协同分类的一般模型:在协同分类中最重要的部分是协同推理,协同推理是指使用网络节点的邻居节点属性推测节点自身属性。相比较之前的链接相似度表达,协同推理更多时候使用于网络中标注属性较少的情况,可以利用相互关系推衍整个网络的属性和结构。