文本特征选择的评估算法
TF-IDF
单词权重最为有效的实现方法就是TF-IDF它是由Salton在1988年提出的。其中TF称为词频,用于计算该词描述文档内容的能力。IDF称为反文档频率,用于计算该词区分文档的能力。TFIDF的指导思想建立在这样一条基本假设之上:在一个文本中出现很多次的单词,在另一个同类文本中出现次数也会很多,反之亦然。所以如果特征空间坐标系取TF词频作为测度,就可以体现同类文本的特点。另外还要考虑单词区别不同类别的能力,TFIDF法认为一个单词出现的文本频率越小,它区别不同类别的能力就越大,所以引入了逆文本频度IDF的概念:以TF和IDF的乘积作为特征空间坐标系的取值测度。TF-IDF法是以特征词在文档d中出现的次数与包含该特征词的文档数之比作为该词的权重,即其中,Wi表示第i个特征词的权重,TFi(t,d)表示词t在文档d中的出现频率,N表示总的文档数,DF(t)表示包含t的文档数。用TF-IDF算法来计算特征词的权重值是表示当一个词在这篇文档中出现的频率越高,同时在其他文档中出现的次数越少,则表明该词对于表示这篇文档的区分能力越强,所以其权重值就应该越大。将所有词的权值排序,根据需要可以有两种选择方式:
- 选择权值最大的某一固定数n个关键词
- 选择权值大于某一阈值的关键词
达观数据的实践经验是,计算机选择的关键词数量在10∽15个,人工选择的关键词数量在4∽6个比较合适,通常具有最好的覆盖度和专指度。TFIDF算法是建立在这样一个假设之上的:对区别文档最有意义的词语应该是那些在文档中出现频率高,而在整个文档集合的其他文档中出现频率少的词语,所以如果特征空间坐标系取TF词频作为测度,就可以体现同类文本的特点。另外考虑到单词区别不同类别的能力,TFIDF法认为一个单词出现的文本频数越小,它区别不同类别文本的能力就越大。因此引入了逆文本频度IDF的概念,以TF和IDF的乘积作为特征空间坐标系的取值测度,并用它完成对权值TF的调整,调整权值的目的在于突出重要单词,抑制次要单词。但是在本质上IDF是一种试图抑制噪音的加权,并且单纯地认为文本频数小的单词就越重要,文本频数大的单词就越无用,显然这并不是完全正确的。IDF的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以TF*IDF法的精度并不是很高。此外,在TFIDF算法中并没有体现出单词的位置信息,对于Web文档而言,权重的计算方法应该体现出HTML的结构特征。特征词在不同的标记符中对文章内容的反映程度不同,其权重的计算方法也应不同。因此应该对于处于网页不同位置的特征词分别赋予不同的系数,然后乘以特征词的词频,以提高文本表示的效果。
词频法
词频是一个词在文档中出现的次数。通过词频进行特征选择就是将词频小于某一阈值的词删除,从而降低特征空间的维数。这个方法是基于这样一个假设,即出现频率小的词对过滤的影响也较小。但是在信息检索的研究中认为,有时频率小的词含有更多的信息。因此,在特征选择的过程中不宜简单地根据词频大幅度删词。
文档频次法
文档频数(DocumentFrequency,DF)是最为简单的一种特征选择算法,它指的是在整个数据集中有多少个文本包含这个单词。在训练文本集中对每个特征计一算它的文档频次,并且根据预先设定的阑值去除那些文档频次特别低和特别高的特征。文档频次通过在训练文档数量中计算线性近似复杂度来衡量巨大的文档集,计算复杂度较低,能够适用于任何语料,因此是特征降维的常用方法。在训练文本集中对每个特征计算它的文档频数,若该项的DF值小于某个阈值则将其删除,若其DF值大于某个阈值也将其去掉。因为他们分别代表了“没有代表性”和“没有区分度”两种极端的情况。DF特征选取使稀有词要么不含有用信息,要么太少而不足以对分类产生影响,要么是噪音,所以可删去。DF的优点在于计算量小,速度快,它的时间复杂度和文本数量成线性关系,所以非常适合于超大规模文本数据集的特征选择。不仅如此,文档频数还非常地高效,在有监督的特征选择应用中当删除90%单词的时候其性能与信息增益和X2统计的性能还不相上下。但如果某一稀有词条主要出现在某类训练集中,却能很好地反映类别的特征,而因低于某个设定的阈值而滤除掉,包含着重要的判断信息被舍弃,这样就会对分类精度有一定的影响。
互信息方法
互信息(MutualInformation)衡量的是某个词和类别之间的统计独立关系,某个词t和某个类别Ci传统的互信息定义如下:互信息是计算语言学模型分析的常用方法,它度量两个对象之间的相互性。在过滤问题中用于度量特征对于主题的区分度。
互信息的定义与交叉嫡近似。互信息本来是信息论中的一个概念,用于表示信息之间的关系,是两个随机变量统计相关性的测度,使用互信息理论进行特征抽取是基于如下假设:在某个特定类别出现频率高,但在其他类别出现频率比较低的词条与该类的互信息比较大。通常用互信息作为特征词和类别之问的测度,如果特征词属于该类的话,它们的互信息量最大。由于该方法不需要对特征词和类别之间关系的性质作任何假设,因此非常适合于文本分类的特征和类别的配准工作。特征项和类别的互信息体现了特征项与类别的相关程度,是一种广泛用于建立词关联统计模型的标准。
互信息与期望交叉熵的不同在于没有考虑特征出现的频率,这样导致互信息评估函数不选择高频的有用词而有可能选择稀有词作为文本的最佳特征。因为对于每一主题来讲,特征t的互信息越大,说明它与该主题的共现概率越大,因此,以互信息作为提取特征的评价时应选互信息最大的若干个特征。互信息计算的时间复杂度类似于信息增益,互信息的平均值就是信息增益。互信息的不足之处在于得分非常受词条边缘概率的影响。达观的实验数据显示,互信息分类效果通常比较差,其次是文档频率、CC统计,CHI统计分类效果最好。
对互信息而言,提高分类精度的方法有:1)可以增加特征空间的维数,以提取足够多的特征信息,这样就会带来了时间和空间上的额外开销;2)根据互信息函数的定义,认为这些低频词携带着较为强烈的类别信息,从而对它们有不同程度的倚重。当训练语料库没有达到一定规模的时候,特征空间中必然会存在大量的出现文档频率很低(比如低于3次)的词条,他们较低的文档频率导致了他们必然只属于少数类别。但是从抽取出来的特征词观察发现,大多数为生僻词,很少一部分确实带有较强的类别信息,多数词携带少量的类别信息,甚至是噪音词。
期望交叉熵(ExpectedCrossEntropy)
交叉嫡与信息量的定义近似,其公式为:交叉嫡,也称KL距离。它反映了文本主题类的概率分布和在出现了某特定词汇的条件下文本主题类的概率分布之间的距离,词汇w的交叉嫡越大,对文本主题类分布的影响也越大。它与信息增益唯一的不同之处在于没有考虑单词未发生的情况,只计算出现在文本中的特征项。如果特征项和类别强相关,P(Ci|w)就大,若P(Ci)又很小的话,则说明该特征对分类的影响大。交叉熵反映了文本类别的概率分布和在出现了某个特定词的条件下文本类别的概率分布之间的距离,特征词t的交叉熵越大,对文本类别分布的影响也越大。熵的特征选择效果都要优于信息增益。
二次信息熵(QEMI)
将二次熵函数应用于互信息评估方法中,取代互信息中的Shannon熵,就形成了基于二次熵的互信息评估函数。基于二次熵的互信息克服了互信息的随机性,是一个确定的量,因此可以作为信息的整体测度,另外它还比互信息最大化的计算复杂度要小,所以可以比较高效地用在基于分类的特征选取上。
信息增益方法(InformationGain)
信息增益方法是机器学习的常用方法,在过滤问题中用于度量已知一个特征是否出现于某主题相关文本中对于该主题预测有多少信息。通过计算信息增益可以得到那些在正例样本中出现频率高而在反例样本中出现频率低的特征,以及那些在反例样本中出现频率高而在正例样本中出现频率低的特征。信息增益G(w)的训算公式如下:其中P(w)是词w出现的概率,P(Ci)是取第i个目录时的概率,P(Ci|w)是假定w出现时取第i个目录的概率。
信息增益是一种基于熵的评估方法,涉及较多的数学理论和复杂的熵理论公式,定义为某特征项为整个分类所能提供的信息量,不考虑任何特征的熵与考虑该特征后的熵的差值。他根据训练数据,计算出各个特征项的信息增益,删除信息增益很小的项,其余的按照信息增益从大到小排序。信息增益是信息论中的一个重要概念,它表示了某一个特征项的存在与否对类别预测的影响,定义为考虑某一特征项在文本中出现前后的信息熵之差。某个特征项的信息增益值越大,贡献越大,对分类也越重要。信息增益方法的不足之处在于它考虑了特征未发生的情况。特别是在类分布和特征值分布高度不平衡的情况下,绝大多数类都是负类,绝大多数特征都不出现。此时的函数值由不出现的特征决定,因此,信息增益的效果就会大大降低。信息增益表现出的分类性能偏低。因为信息增益考虑了文本特征未发生的情况,虽然特征不出现的情况肿可能对文本类别具有贡献,但这种贡献往往小于考虑这种情况时对特征分值带来的干扰。
统计量方法
X2统计量用于度量特征W和主题类C之间的独立性。而表示除W以外的其他特征,C表示除C以外的其他主题类,那么特征W和主题类C的关系有以下四种情况:用A、B、C、D表示这四种情况的文档频次,总的文档数N=A+B+C+D,扩统计量的计算公式如下:当特征W和主题类C之间完全独立的时候,X2统计量为0。X2统计量和互信息的差别在于它是归一化的统计量,但是它对低频特征的区分效果也不好。X2统计得分的计算有二次复杂度,相似于互信息和信息增益。在X2统计和互信息之间主要的不同在于X2是规格化评价,因而X2评估分值对在同类中的词是可比的,但是X2统计对于低频词来说是不可靠的。
利用X2统计方法来进行特征抽取是基于如下假设:在指定类别文本中出现频率高的词条与在其他类别文本中出现频率比较高的词条,对判定文档是否属于该类别都是很有帮助的.采用X2估计特征选择算法的准确率在实验中最高,其分类效果受训练集影响较小,比较稳定。而且在对文教类和政治类存在类别交叉现象的文本进行分类时,采用X2估计的分类系统表现出了优于其它方法的分类性能。X2估计的可靠性较好,便于对程序的控制,无需因训练集的改变而人为的调节特征阀值的大小。
文本证据权(TheWeightofEvidenceforText)
文本证据权衡量类的概率和给定特征时类的条件概率之间的差别。
优势率(OddsRatio)
优势率只适用于二元分类的情况,其特点是只关心文本特征对于目标类的分值。Pos表示目标类,neg表示非目标类。
遗传算法(GeneticAlgorithm,GA):
遗传算法(GeneticAlgorithm,GA)是一种通用型的优化搜索方法,它利用结构化的随机信息交换技术组合群体中各个结构中最好的生存因素,复制出最佳代码串,并使之一代一代地进化,最终获得满意的优化结果。
文本实际上可以看作是由众多的特征词条构成的多维空间,而特征向量的选择就是多维空间中的寻优过程,因此在文本特征提取研究中可以使用高效寻优算法。在将文本特征提取问题转化为文本空间的寻优过程中,首先对Web文本空间进行遗传编码,以文本向量构成染色体,通过选择、交叉、变异等遗传操作,不断搜索问题域空间,使其不断得到进化,逐步得到Web文本的最优特征向量。基于协同演化的遗传算法不是使用固定的环境来评价个体,而是使用其他的个体来评价特定个体。基于协同演化的遗传算法不仅能反映其母体的特征,还能反映其他同类文本的共性,这样可以有效地解决同一主题众多文本的集体特征向量的提取问题,获得反映整个文本集合某些特征的最佳个体。
主成分分析法(PrincipalComponentAnalysis,PCA)
PCA是非常常用的一种通用特征降维方法,也同样大规模用于文本特征抽取中,基于其处理方式的不同又分为数据方法和矩阵方法。
矩阵方法中,所有的数据通过计算方差一协方差结构在矩阵中表示出来,矩阵的实现目标是确定协方差矩阵的特征向量,它们和原始数据的主要成分相对应。在主成分方法中,由于矩阵方法的复杂度在n很大的情况以二次方增长,因此人们又开发了主要使用Hebbian学习规则的PCA神经网络方法。主成分分析法是特征选取常用的方法之一,它能够揭示更多有关变量-丰要方向的信息。但它的问题在于矩阵方法中要使用奇异值分解对角化矩阵求解方差一协方差。
模拟退火算法(SimulatingAnneal,SA)
特征选取可以看成是一个组合优化问题,因而可以使用解决优化问题的方法来解决特征选取的问题。模拟退火算法(SimulatingAnneal,SA)就是其中一种方法。模拟退火算法是一个很好的解决优化问题的方法,将这个方法运用到特征选取中,理论上能够找到全局最优解,但在初始温度的选取和邻域的选取t要恰当,必须要找到一个比较折中的办法,综合考虑解的性能和算法的速度。
N-Gram算法
它的基本思想是将文本内容按字节流进行大小为N的滑动窗口操作,形成长度为N的字节片段序列。每个字节片段称为gram,对全部gram的出现频度进行统计,并按照事先设定的阈值进行过滤,形成关键gram列表,即为该文本的特征向量空间,每一种gram则为特征向量维度。
由于N-Gram算法可以避免中文分词的障碍,所以对中文分类有较高的实用性。中文文本处理大多采用双字节进行分解,称之为bi-gram。但是bi-gram切分方法在处理20%左右的中文多字词时,往往产生语义和语序方面的偏差。而对于专业研究领域,多字词常常是文本的核心特征,处理错误会导致较大的负面影响。基于N-Gram改进的文本特征提取算法,在进行bi-gram切分时,不仅统计gram的出现频度,而且还统计某个gram与其前邻gram的情况,并将其记录在gram关联矩阵中。对于那些连续出现频率大于事先设定阈值的,就将其合并成为多字特征词。这样通过统计与合并双字特征词,自动产生多字特征词,可以较好地弥补N-Gram算法在处理多字词方面的缺陷。
评估函数对比分析
上述罗列的几种文档特征评估函数的特点如何呢?信息增益的定义过于复杂,因此应用较多的是交叉嫡和互信息。其中互信息的效果要好于交叉嫡,这是因为互信息是对不同的主题类分别抽取特征词,而交叉嫡跟特征在全部主题类内的分布有关,是对全部主题类来抽取特征词。这些方法,在英文特征提取方面都有各自的优势,但用于中文文本,并没有很高的效率。主要有2个方面的原因:
特征提取的计算量太大,特征提取效率太低,而特征提取的效率直接影响到整个文本分类系统的效率;
经过特征提取后生成的特征向量维数太高,而且不能直接计算出特征向量中各个特征词的权重。
目前使用评估函数进行特征选取越来越普遍,特征选取算法通过构造一个评估函数的方法,选取预定数目的最佳特征作为特征子集的结果。在几种评估方法中,每一种方法都有一个选词标准,遵从这个标准,从文本集的所有词汇中选取出有某个限定范围的特征词集。因为评估函数的构造不是特别复杂,适用范围又很广泛,所以越来越多的人们喜欢使用构造评估函数来进行特征的选取,这些评估函数在Web文本挖掘中被广泛使用,特征选择精度普遍达到70%~80%,但也各自存在缺点和不足。例如,“信息增益”考虑了单词未发生的情况,对判断文本类别贡献不大,而且引入不必要的干扰,特别是在处理类分布和特征值分布高度不平衡的数据时选择精度下降。“期望交叉熵”与“信息增益”的唯一不同就是没有考虑单词未发生的情况,因此不论处理哪种数据集,它的特征选择精度都优于“信息增益”。与“期望交叉熵”相比,“互信息”没有考虑单词发生的频度,这是一个很大的缺点,造成“互信息”评估函数经常倾向于选择稀有单词。“文本证据权”是一种构造比较新颖的评估函数,它衡量一般类的概率和给定特征类的条件概率之间的差别,这样在文本处理中,就不需要计算W的所有可能值,而仅考虑W在文本中出现的情况。“优势率”不像前面所述的其他评估函数将所有类同等对待,它只关心目标类值,所以特别适用于二元分类器,可以尽可能多地识别正类,而不关心识别出负类。从考虑文本类间相关性的角度,可以把常用的评估函数分为两类,即类间不相关的和类间相关的。
“文档频数”(DF)是典型的类间不相关评估函数,DF的排序标准是依据特征词在文档中出现篇数的百分比,或称为篇章覆盖率。这种类型的评估函数,为了提高区分度,要尽量寻找篇章覆盖率较高的特征词,但又要避免选择在各类文本中都多次出现的无意义高频词,因此类间不相关评估函数对停用词表的要求很高。但是很难建立适用于多个类的停用词表,停用词不能选择太多,也不能选择太少,否则都将会影响特征词的选择。同时,类间不相关评估函数还存在一个明显的缺点,就是对于特征词有交叉的类别或特征相近的类别,选择的特征词会出现很多相似或相同的词条,造成在特定类别间的区分度下降。类间相关的评估函数,例如期望交叉熵、互信息、文本证据权等,综合考虑了词条在已定义的所有类别中的出现情况,可以通过调整特征词的权重,选择出区分度更好的特征,在一定程度上提高了相近类别的区分度。但是,该区分度的提高仅体现在已定义的类别间,而对于尚未定义的域外类别,类间相关评估函数的选择效果也不理想。因此,在评估函数选择问题上,提高对域外类别文本的区分度是十分重要的研究课题。
传统的特征选择方法大多采用以上各评估函数进行特征权重的计算,由于这些评估函数是基于统计学的,其中一个主要缺陷就是需要用一个很庞大的训练集才能获得几乎所有的对分类起关键作用的特征.这需要消耗大量的时间和空间资源,况且构建这样一个庞大的训练集也是一项十分艰巨的工作。然而在现实应用中,考虑到工作效率,不会也没有足够的资源去构建一个庞大的训练集,这样的结果就是:被选中的甚至是权重比较高的特征,可能对分类没有什么用处,反而会干涉到正确的分类;而真正有用的特征却因为出现的频率低而获得较低的权重,甚至在降低特征空间维数的时候被删除掉了。基于评估函数的特征提取方法是建立在特征独立的假设基础上,但在实际中这个假设是很难成立的,因此需要考虑特征相关条件下的文本特征提取方法。
4.词向量的应用
特征选择也可以通过用映射或变换的方法把原始特征变换为较少的新特征。上面提到的特征选择模块,在实际情况会碰到这样的问题:无论是采用文档频率、信息增益法、互信息法等得降维方法,都会损失了部分的文档信息。以文档频率为例,在特征选择过程中由于某些关键的词语低于了人为设定的阈值,所以会被直接忽视掉,而很多情况这部分词汇能包含较多的信息,对于分类的重要性比较大。怎么能够进一步理解这部分的信息,是急需要解决的问题。一个想法是找到这些使用频率比较低的词语相似的高频词,譬如在讨论“月亮”的古诗词中,包含了很多低频的同义词,如“玉兔”,“婵娟”等,如果我们能把这些低频的词语合并到一个维度,无疑是能够增强分类系统对文档的理解深度的。词向量这一概念能够有效地表示词语之间的相似性,适用于这种方法。
先介绍一下词向量的定义。一种最简单的词向量是one-hotrepresentation,就是用一个很长的向量来表示一个词,向量的长度是词典D的大小N,向量的分量只有一个为1,其他全为0,1的位置对应该词在词典中的索引。这种词向量表示有一些缺点:容易受维数灾难的困扰。另一种词向量是DistributedRepresentation,它最早是Hinton于1986年提出来的,可以克服one-hotrepresentation的上述缺点。其基本想法是:通过训练将某种语言中的每个词映射成一个固定长度的短向量。所有这些向量构成一个词向量空间,每个向量是该空间中的一个点,在这个空间上引入距离,就可以根据词之间的距离来判断它们之间的(词法、语义上的)相似性了。如何获取DistributedRepresentation的词向量呢?有很多不同的模型可以用来估计词向量,包括有名的LSA、LDA和神经网络算法。Word2Vec就是使用度比较广的一个神经网络算法实现的词向量计算工具。
现在介绍词向量在分类系统上的具体实践。Word2Vec能够将词映射成一个固定长度的短向量,所以生成了文档集合词语的向量表示。由于向量的距离代表了词语之间的相似性,我们可以通过聚类的方法(譬如K-Means)把相似的词语合并到一个维度,重新计算该维度的特征向量权值。相比于原来的方法,使用词向量能在一定程度保留了文档的信息。此外,Word2Vec作为无监督学习方法的一个实现,能够允许它从无标注的文本进行训练,能进一步提升系统的性能。
另外,基于向量空间模型的文本分类方法是没有考虑到词的顺序的。基于卷积神经网络(CNN)来做文本分类,可以利用到词的顺序包含的信息。CNN模型把原始文本作为输入,不需要太多的人工特征。下图是CNN模型的一个实现,共分四层,第一层是词向量层,doc中的每个词,都将其映射到词向量空间,假设词向量为k维,则n个词映射后,相当于生成一张n*k维的图像;第二层是卷积层,多个滤波器作用于词向量层,不同滤波器生成不同的featuremap;第三层是pooling层,取每个featuremap的最大值,这样操作可以处理变长文档,因为第三层输出只依赖于滤波器的个数;第四层是一个全连接的softmax层,输出是每个类目的概率。除此之外,输入层可以有两个channel,其中一个channel采用预先利用word2vec训练好的词向量,另一个channel的词向量可以通过backpropagation在训练过程中调整。
Comments