1.2.背景技术
1.2.1.文本分类的需求
为了增加其效用和智能,要求在越来越广的范围内,调用诸如计算机之类的机器,来分类(或识别)对象。例如,计算机可以使用光学字符识别来分类手写或扫描数字和字母,使用模式识别来分类诸如面孔、指纹、战斗机之类的图像,或者使用语音识别来分类声音、语音等等。
同样,调用机器来分类文本信息对象,如计算机文本文件或文档。文本分类应用既不同又重要。例如,可以使用文本分类将文本信息对象组织为预定类或种类的层次。这样,查找(或导航到)与特定主题有关的文本信息对象的工作可以简化。可以使用文本分类将适当的文本信息对象路由到适当的人或位置。这样,信息服务可以将涉及各种主题(如商业、体育、股票、足球、特定公司、特定足球队)的文本信息对象,路由到具有不同兴趣的人。可以使用文本分类来过滤文本信息对象,从而人们可以免受不需要的文本内容(如不需要的未经请求的电子邮件,也称为垃圾邮件或“垃圾”)的骚扰。正如可以从上述几个示例中能够理解的那样,文本分类有许多令人激动的重要应用。
1.2.2.已知的文本分类方法
在本节中,将介绍几种已知的分类方法。此外,介绍这些分类方法的公认或可疑限制。首先,在1.2.2.1节中讨论基于规则的分类。然后,在1.2.2.2节中讨论同时使用学习部件和执行部件的分类***。
1.2.2.1.基于规则的分类
在某些实例中,必需根据某种公认逻辑,利用绝对可信度对文本内容进行分类。可以使用基于规则的***实现此类分类。基本上,基于规则的***使用以下形式的产生式规则:
IF条件,THEN事实。
条件可以包括文本信息是否包括某些单词或短语,是否具有某种语法或某些属性。例如,如果文本内容具有单词“收盘”、短语“nasdaq”和数字,则将其分类为“股票”文本。
不幸的是,在许多实例中,基于规则的***并不实用,特别是在测量或输入值(或特征或属性值)很大、组合条件或规则的逻辑很复杂、和/或可能的分类数目很大的实例中。由于文本信息可能具有许多特征和复杂的语义,所以除最简单的应用之外,基于规则的***的上述限制,使其不适合于对文本进行分类。
在前十年中,越来越多地使用其他类型的分类器。尽管这些分类器并不象基于规则的分类器一样使用静态预定逻辑,但它们已经在许多应用中比基于规则的分类器好。在1.2.2.2中介绍此类分类器,它们通常包括一个学习部件和一个执行部件。此类分类器包括神经网络,贝叶斯网络和支持向量机。尽管上述分类器是周知的,但为了方便读者,仍然简短介绍各种分类器。
1.2.2.2.具有学习和执行部件的分类器
正如在上节结束时提到的那样,在许多应用中,具有学习和执行部件的分类器比基于规则的分类器好。再次重申,这些分类器包括神经网络(在1.2.2.2.1节中介绍以方便读者),贝叶斯网络(在1.2.2.2.2节中介绍以方便读者)和支持向量机(在1.2.2.2.3节中介绍以方便读者)。
1.2.2.2.1.神经网络
基本上,神经网络是相同处理部件(也称为神经元)的多层、层次排列。各神经元可以有一个或多个输入,但只有一个输出。用一个系数对各神经元的输入进行加权。神经元的输出通常为其加权输入和偏差值之和的函数。此函数,也称为激活函数,通常为S形函数。即,激活函数可以为S形单调增加,并且当其输入分别接近正负无穷大时,渐进逼近固定值(即+1,0,-1)。S形函数以及各神经***的权重与偏差,确定神经元对输入信号的响应或“兴奋性”。
在神经元的层次排列中,可以将一层中各神经元的输出,分发到下一层中的一个或多个神经元,作为其输入。一个典型神经网络可以包括一个输入层和两个不同层;即一个输入层,一个中间神经元层和一个输出神经元层。请注意,输入层上的节点不是神经元。输入层上的节点仅有一个输入,并且基本上将未处理的输入提供到下一层的输入。例如,如果使用神经网络来识别20乘15象素阵列中数字字符,则输入层将有300个神经元(即每个输入象素一个),而输出阵列有10个神经元(即每10个数字一个)。
神经网络的使用一般涉及两个连续步骤。首先,初始化神经网络,并以具有已知输出值(或分类)的已知输入训练该网络。一旦训练了神经网络,就可以使用它来分类未知输入。通过将神经元的权重和偏差设置为通常根据高斯分布生成的随机值,来初始化神经网络。然后使用具有已知输出(或分类)的一连串输入,训练该神经网络。在将训练输入馈入到神经网络时,调整(如,根据众所周知的反向传播技术)神经***的权重和偏差值,从而各个训练模式的神经网络的输出逼近已知输出,或与已知输出匹配。基本上,使用权重空间中的梯度下降使输出误差达到最小。这样,使用连续训练输入的学习,朝权重和偏差的局部最优解收敛。即,调节权重和偏差使误差达到最小。
实际上,并不将该***训练为收敛到最佳解。否则,该***将会“过度训练”,从而使其太适应训练数据,并且可能不能很好地对与训练集有些不同的输入进行分类。因此,在其训练的不同时期,在一组验证数据上测试该***。当该***的性能在验证集上不再改进时,训练停止。
一旦训练完成,就可以使用该神经网络,根据训练期间确定的权重和偏差,对未知输入进行分类。如果该神经网络能够有把握地对未知输入进行分类,则输出层中某个神经元的输出,将远远高于其他神经元的输出。
为了确保权重和偏差项不发散,该算法使用小步长。此外,用于训练神经网络的反向传播(梯度下降)技术较慢。(例如,参见论文:作者Schütze等,“用于路由问题的分类器和文档表示的比较”,InternationalACMSIGIRConferenceonResearchandDevelopmentinInformationRetrieval,第5节(1995)(以下称为“Schütze论文”))。因此,收敛较慢。此外,事先不能轻易确定隐藏层中的神经元的数目。因此,通常执行许多耗费时间的实验,以确定隐藏神经元的最佳数目。
1.2.2.2.2.贝叶斯网络
在介绍了神经网络之后,现在简要介绍贝叶斯网络。通常,贝叶斯网络使用一些假设作为数据(如输入特征向量)和预言(如分类)之间的中间物。可以估计给定数据时各假设的概率(“P(假设|数据)”)。通过使用所有假设的后验概率来对各假设的特有预言进行加权,根据所有假设作出预报。可以将给定数据D时预言X的概率表示为:
其中Hi为第i个假设。给定数据D时使Hi的概率(P(Hi|D))取最大值的最可能假设Hi,称为最大后验假设(或“HMAP”),并且可以表示为:
P(X|D)≈P(X|HMAP)
通过使用贝叶斯规则,可以将给定数据D时假设Hi的概率表示为:
数据D的概率保持不变。因此,为了查找HMAP,分子必需取最大值。
分子的第一项表示给定假设i时观察到该数据的概率。第二项表示指派给定假设i的先验概率。
贝叶斯网络包括变量和在变量之间的有向边,从而定义一个有向无环图(即“DAG”)。各变量可以取有限个互斥状态中的任意状态。对于具有父变量B1,...,Bn的各变量A,有一个附属概率表(P(A|B1,...,Bn))。贝叶斯网络的结构可编码以下的假设:即给定其父变量时,各变量与其非后裔有条件地独立。
假设贝叶斯网络的结构是已知的,并且所有变量是可观察的,则只需学习条件概率表集合。直接使用学习示例集中的统计,可以估计上述表。如果结构是已知的,但某些变量是隐藏的,则学习类似于上面讨论的神经网络学习。
以下介绍简单贝叶斯网络的示例。变量“MML”可以表示“我的草坪的水分”,并具有状态“湿”和“干”。MML变量可以具有“下雨”和“我的洒水器处于工作状态”父变量,其中各父变量具有“是”和“否”状态。另一变量“MNL”可以表示“我的邻居的草坪的水分”,并具有状态“湿”和“干”。MNL变量可以共享“下雨”父变量。在此示例中,预言可以为我的草坪是“湿”还是“干”。此预言取决于假设(i)如果下雨,则我的草坪是湿的概率为x1,(ii)如果我的洒水器处于工作状态,则我的草坪是湿的概率为x2。下雨或我的洒水器处于工作状态的概率可取决于其他变量。例如,如果我的邻居的草坪是湿的,并且他们没有洒水器,则更可能下过雨。在下文中说明了与“湿草地”有关的贝叶斯网络的示例,作者Jensen,
贝叶斯网络引论,pp.22-25,Spinger-Verlag,纽约(1997)。
如上所述,正如神经网络一样,可以训练贝叶斯网络中的条件概率表。其优点在于,通过允许提供先验知识,可以缩短学习过程。然而,不幸的是,通常并不知道有关条件概率的先验概率,此时使用一致的先验概率。
1.2.2.2.3.支持向量机
支持向量机(即“SVM”)是另一种类型的可训练分类器。据报道,在诸如文本分类之类的某些应用中,SVM分类比朴素(naive)贝叶斯网络分类更准确。(例如,参见论文:作者Joachims,“利用支持向量机进行文本分类:利用许多有关特征进行学习”,
LS-8,报 告23,多特蒙德大学,计算机科学系(1997年11月))。另据报道,在诸如读取手写字符之类的某些应用中,它们比神经网络更准确。(例如,参见论文:作者LeCun等,“用于分类的学习算法:有关手写数字识别的比较”,
神经网络:统计方法观点,Oh等人(编著),pp.261-276,WorldScientific(1995))。然而,不幸的是,据报道,SVM的训练时间比朴素贝叶斯网络更长。在以下美国专利申请中公开了一种更有效地构造(或训练)SVM的新方法和装置,该美国专利的申请号为09/055,477,申请人为JohnPlatt,题目为“用于构造支持向量分类器的方法和装置”,申请日期为1998年4月6日,这里引用作为参考。
尽管熟练技术人员了解SVM,但为了方便读者,仍然介绍其理论和操作。
可以利用许多特征来表示要分类的对象。例如,如果利用两个特征表示要分类的对象,则可以用二维空间中的一个点表示它。同样,如果用n个特征,也称为特征向量,表示要分类的对象,则可以用n维空间中的一个点表示它。SVM的最简单形式定义n维空间中的一个平面(也称为超平面),该平面分割与“在某个类”中的对象有关的特征向量点以及与“不在该类”中的对象有关的特征向量点。通过定义多个超平面,可以定义多个类。由经过训练的SVM定义的超平面,使从该平面到“在该类”和“不在该类”中的最近点(也称为“支持向量”)的距离最大。查找使在支持向量和超平面之间之距离最大的超平面,从而由该超平面定义的SVM对输入噪声稳定。利用训练过程定义超平面(或超表面),其中在4.2.1.4.1节中讨论某些训练过程。
1.2.2.2.4.把具有学习和执行部件的分类器用于文本分类的挑战
如上所述,尽管基于规则的分类器仅在最简单的文本分类应用中可行,但是当使用具有学习和执行部件(也称为“学习机器”)的***进行文本分类时,存在一些重要挑战。下面将在1.2.2.2.4.1到1.2.2.2.4.3节中介绍某些比较重要的挑战。
1.2.2.2.4.1.特征向量的大小
在训练用于文本分类的学习机器时,使用学习示例集。各学习示例包括一个与文本信息对象有关的特征向量。在某些应用中,此特征向量的数量级为108。通过考虑单词是否在文档中出现作为特征,可以轻而易举地生成很多特征。如果将某本全集中的所有单词都作为可能特征,则可以有数百万个独特特征。例如,网页具有许多独特字符串,并且能够生成数百万个特征。如果考虑单词或词组的配对或更一般的组合,或者考虑单词的出现频率,则更大数目的特征也是可能的。可以利用所谓的“特征精简”或“特征选择”方法来精简特征向量中的特征数,从而生成具有原始特征向量之特征子集的精简特征向量。实际上,某些人认为,为了使文本分类器之学习机器切实可行,需要特征选择。
已知的特征选择技术包括DF-阈值处理(例如,参见论文:作者Yang和Peterson,“有关文本分类中特征选择的比较研究”,国际机器学***方根的相关系数(例如,参见论文:作者Ng等人,“用于文本分类的特征选择、感知器学习和可用性事例学习”
SIGIR’97会议录,pp.67-73(1997)),以及使用单值分解(即“SVD”)的潜在语义索引处理(即“LSI”),其中SVD为一种利用正交索引变量之低维线性组合(例如,参见Schütze等人论文)表示特征的技术。
然而,某些人认定应避免特征选择。例如,赞成使用SVM进行文本分类的Joachims论文,认定由于损失了信息,特征选择很可能损害性能。(例如,参见Joachims论文,第3页)。Joachims论文还认定,由于SVM能够在高维空间中很好地归纳,所以无需进行特征选择,从而使文本分类更容易。(例如,参见Joachims论文,第11页)。因此,尽管某些技术人员发现特征选择是有用的,但当使用SVM进行文本分类时,要在某些实例中避免特征选择。
1.2.2.2.4.2.过度适应
在训练学习机器时,根据一组特征向量中的训练实例进行训练。一般而言,学习机器的性能在某种程度上依赖于训练该机器所使用的训练实例的数目。即使有很多训练实例,属于某些种类的训练实例的数目也可能较少。
许多训练机器根据输入(如未知对象的特征向量),利用S形函数(即S形的单调函数)来确定输出(如确定对象是否在某个种类中)。不幸的是,当给定种类的可用训练数据很少时,不能明确定义S形函数的参数。因此,当给定种类的可用训练数据很少时,S形函数可能过度适应于以前的数据。此类过度适应不能保证学习机器的输出的可信度,所以应该避免。
1.2.2.2.4.3.分类速度
训练时间和响应(如分类)时间是学习机器的两个重要特性。例如,即使赞成使用学习机器(特别是SVM)对文本进行分类的人员,也承认SVM的训练时间比其他方法长。以下美国专利解决了此挑战,该美国专利的申请号为09/055,477,申请人为JohnPlatt,题目为“用于构造支持向量分类器的方法和装置”,申请日期为1998年4月6日并且转让给同一受让人(这里引用作为参考),此处不再详细介绍。
剩下的问题是响应(即分类)时间。本发明认为,在Joachims论文中讨论的SVM分类器,根据以下表达式对未知对象进行分类:
其中:O=分类输出;
nte=训练实例的数目;
αi=训练实例i的拉格朗日乘数;
xi=训练实例i的特征向量;
xj=未知对象j的特征向量;以及
yi=训练实例i的已知输出。
使用式(1)确定输出是比较慢的。很自然地,需要更快的分类器。
Schütze论文讨论了利用权重向量(β)的对数回归分类器,其中权重向量是利用数值优化的最大似然性和Newton-Raphson方法导出的。尽管人们认为,此分类器分类对象比Joachims论文中讨论的SVM分类器快,但人们坚信,所确定的权重向量(β)不能提供最佳分类结果。
2.发明内容
本发明可以执行两个基本功能中的至少一个功能,两个基本功能为:生成用于分类器的参数和对诸如文本信息对象之类的对象进行分类。
基本上,根据一组训练实例,生成分类器的参数。可以根据一组训练实例生成特征向量集。可以精简特征向量集的特征。要生成的参数可以包括一个定义的单调(如S形)函数和一个权重向量。可以通过SVM训练(或通过其他已知技术)确定权重向量。可以通过优化方法定义单调(如S形)函数。
文本分类器可以包括一个权重向量和一个定义的单调(如S形)函数。基本上,可以将本发明的文本分类器的输出表示为:
其中:Oc=种类c的分类输出;
wc=与种类c有关的权重向量参数;
x=基于未知文本信息对象的(精简)特征向量;以及
A和B为单调(如S形)函数的可调参数。
根据式(2)计算输出比根据式(1)计算输出快。
根据要分类的对象的形式,分类器可以(i)将文本信息对象转换为特征向量,以及(ii)将特征向量精简为具有较少元素的精简特征向量。
依据本发明的一个方面,提供一种用于通过利用文本信息对象的训练集来生成分类器之参数的方法,所述分类器确定一个文本信息对象是否属于一个种类,该方法包括以下步骤:
a)从该训练集的多个文本信息对象中抽取特征,以便为该训练集中的每个文本信息对象,生成一个具有多个特征的关联特征向量;
b)利用种类相关特征精简技术和种类不相关特征精简技术中的至少一种,精简各关联特征向量的特征数目,以便为该训练集的每个对象,生成一个关联的精简特征向量;
c)通过训练支持向量机,确定该分类器的权重向量;以及
d)确定该分类器使用的单调函数。
依据本发明的另一个方面,提供一种用于根据与文本信息对象的训练集有关的精简特征向量集来生成分类器之参数的方法,所述分类器确定一个文本信息对象是否属于一个种类,该方法包括以下步骤:
a)通过训练支持向量机,确定该分类器的权重向量;以及
b)确定该分类器使用的单调函数。
依据本发明的又一个方面,提供一种用于通过与多个文本信息对象的一个训练集有关的特征向量集来生成分类器之参数的方法,所述分类器确定一个文本信息对象是否属于一个种类,该方法包括以下步骤:
a)利用种类不相关特征精简技术和种类相关特征精简技术,精简每个特征向量的特征数目,以为每个特征向量,生成一个关联的精简特征向量;
b)通过训练支持向量机,确定该分类器的权重向量;以及
c)确定该分类器使用的单调函数。
依据本发明的又一个方面,提供一种用于通过利用文本信息对象的训练集来提供分类器之参数的装置,所述分类器确定一个文本信息对象是否属于一个种类,该装置包括:
a)一种特征抽取器,用于从多个文本信息对象中抽取多个特征,以便生成一个与每个训练集对象相关的、具有多个特征的关联特征向量;
b)一个特征精简装置,用于接收来自所述特征抽取器的各关联特征向量并精简每个关联特征向量的特征数目,以生成至少一个精简特征向量,每个所述精简特征向量对应于每个关联特征向量;
c)一个支持向量机训练装置,用于至少部分根据所述精简特征向量来确定该分类器的权重向量;以及
d)一个函数生成器,用于至少部分根据所述精简特征向量来确定该分类器使用的单调函数。
依据本发明的又一个方面,提供一种用于通过利用与文本信息对象的训练集有关的精简特征向量集来生成分类器之参数的装置,所述分类器确定一个文本信息对象是否属于一个种类,该装置包括:
a)一种支持向量机训练装置,用于利用至少一个精简特征向量来确定该分类器的权重向量;以及
b)一个函数生成器,用于利用至少一个精简特征向量来确定该分类器使用的单调函数。
依据本发明的又一个方面,提供一种用于根据与文本信息对象的训练集相关联的特征向量集而生成分类器之参数的装置,所述分类器确定一个文本信息对象是否属于一个种类,该装置包括:
a)一个特征精简装置,用于接收各特征向量并精简每个特征向量的特征数目,以为该训练集的每个文本信息对象,生成一个关联的精简特征向量;
b)一个支持向量机训练装置,用于接收所述各关联的精简特征向量并确定该分类器的权重向量;以及
c)一个函数生成器,用于至少部分根据所述关联的精简特征向量来确定该分类器使用的单调函数。
依据本发明的又一个方面,提供一种用于把文本信息对象分类成属于某个种类还是不属于某个种类的方法,该方法包括以下步骤:
a)从文本信息对象中抽取特征,以便生成与该文本信息对象关联的特征向量;
b)利用种类不相关特征精简技术和种类相关特征精简技术中的至少一种技术,精简该特征向量的特征,以便生成一个精简特征向量;以及
c)将精简特征向量和权重向量应用于由下式定义的分类函数:
依据本发明的又一个方面,提供一种用于把与文本信息对象关联的精简特征向量分类成属于某个种类还是不属于某个种类的方法,该方法包括以下步骤:
a)接受权重向量参数;
b)接受按下式定义的分类函数;
其中
为所述精简特征向量,而
为所述权重向量,以及
c)将精简特征向量和接受的权重向量参数应用于接受的分类函数。
依据本发明的又一个方面,提供一种用于把与文本信息对象关联的特征向量分类成属于某个种类还是不属于某个种类的方法,该方法包括以下步骤:
a)利用种类不相关特征精简技术和种类相关特征精简技术中的至少一种技术,精简特征向量的特征,以便生成一个精简特征向量;以及
b)将精简特征向量和权重向量应用于由下式定义的分类函数:
依据本发明的又一个方面,提供一种用于把文本信息对象分类成属于某个种类还是不属于某个种类的装置,该装置包括:
a)一个特征抽取器,用于从文本信息对象中抽取特征,以便生成与该文本信息对象关联的特征向量;
b)一个特征精简装置,用于利用种类不相关特征精简技术和种类相关特征精简技术中的至少一种技术,精简该特征向量的特征,以便生成一个精简特征向量;以及
c)一个分类器,用于将精简特征向量和权重向量应用于由下式定义的分类函数:
依据本发明的又一个方面,提供一种用于把与文本信息对象关联的精简特征向量分类成属于某个种类还是不属于某个种类的装置,该装置包括:
a)一个第一输入端,用于接受权重向量参数;
b)一个第二输入端,用于接受一个分类函数;以及
c)一个分类器,用于将精简特征向量和接受的权重向量参数应用于接受的分类函数,该函数定义为:
其中
为所述精简特征向量,而
为所述权重向量。
依据本发明的又一个方面,提供一种用于把与文本信息对象关联的特征向量分类成属于某个种类还是不属于某个种类的装置,该装置包括:
a)一个特征精简装置,用于利用种类不相关特征精简技术和种类相关特征精简技术中的至少一种技术,精简特征向量的特征,以便生成一个精简特征向量;以及
b)一个分类器,用于将精简特征向量和权重向量应用于下式定义的分类函数:
4.具体实施方式
本发明涉及诸如文本分类器之类的独创分类器,以及构造此类(文本)分类器。提供以下说明以使熟练技术人员能够使用本发明,并在特定应用以及其需求的范围内提供说明。对熟练技术人员而言,对所公开实施方式的各种更改是显而易见的,并且可以将下面阐述的一般原则应用于其他实施方式和应用中。因此,本发明并不是用来限制所示实施方式的。
关于说明中使用的记号,利用“帽子”箭头或利用黑体字来表示向量。
下面在4.1节中说明本发明可以执行的功能。然后,在4.2节中说明典型方法以及用于执行该方法的结构。
4.1.功能
本发明可以执行两个基本功能中的至少一个功能。下面在4.1.1节中说明第一个基本功能,即生成分类器的参数。在4.1.2节中说明第二个基本功能,即对文本进行分类。
4.1.1.生成分类器的参数
基本上,根据一组训练实例生成分类器的参数。本发明可以根据一组训练实例生成特征向量集。本发明也可以精简特征向量集中的特征数目。要生成的参数可以包括一个定义的单调(如S形)函数和一个权重向量。可以通过SVM训练确定权重向量。可以通过优化方法定义单调(如S形)函数。优化方法可以使用一个特殊目标函数,以避免过度适应。
4.1.2分类文本
本发明可以分类文本。一个文本分类器可以包括一个权重向量和一个定义的单调(如S形)函数。基本上,可以将文本分类器的输出表示为:
其中:Oc=种类c的分类输出;
wc=与种类c有关的权重向量参数;
x=基于未知文本信息对象的(精简)特征向量;以及
A和B为单调(如S形)函数的可调参数。
再次重申,根据式(2)计算输出比根据式(1)计算输出快。
根据要分类的对象的形式,分类器可以(i)将文本信息对象转换为特征向量,以及(ii)将特征向量精简为具有较少元素的精简特征向量。
4.2典型结构/方法
在4.2.1中说明用于生成分类器之参数的典型过程和方法。下面在4.2.2中说明用于分类文本的典型过程和方法。最后,在4.2.3中说明用于实现所述过程和方法的典型装置(或体系结构)。
4.2.1用于生成分类器之参数的过程/方法
图1表示本发明可用来生成文本分类器之参数的过程和数据。假设提供一组训练数据115(如,文本信息对象和种类标记),则特征抽取过程(或更一般地,特征抽取程序)110生成与训练集的各文本信息对象相对应的特征向量。可以将该特征向量存储在存储位置125。在4.2.1.1中说明典型特征抽取过程。
图3A表示训练对象的典型数据结构300,该结构包括特征向量310和种类向量320。特征向量310包括与各特征(即属性)相对应的字段312,其中各特征是根据文本信息对象导出的。在此实例中,特征向量310中有“n”个特征。特征向量310的特征(即属性)字段312,包括根据文本信息对象导出的相应值。例如,如果假设文本对象可包括2,500,000词表中的单词,则特征向量310可包括2,500,000个字段,每个字段对应于词汇表中的一个单词。字段中存储的值可以对应于词汇表中的特定单词在该文本信息对象中的出现次数。
由于文本信息对象的特征向量中的大部分值为零,所以可以使用稀疏向量技术,从而利用两个较小的数组而不是一个大数组来表示该特征向量。第一数组索引具有非零值的特征。第二数组包含由第一数组索引的特征值。例如,参照图3B,如果特征向量只有第一、第50、第57、第101和第220特征具有非零值,则可以使用稀疏数据结构310′代替图3A中的特征向量310。稀疏数据结构310′包括第一数组350和第二数组360,数组350包含非零特征的下标(即1,50,57,101和220),数组360包含索引特征的值。图3C表示另一种稀疏数据结构310″,该结构具有与非零特征相对应另一种索引字段和值字段。
种类向量320包含与“m”个不同种类相对应的字段322。种类向量320的字段322可以包含一个二进制值,此值表示该文本信息对象是否属于某个特定种类。一个文本信息对象可以属于不止一个种类。
可以将与训练集中的各文本信息对象相对应的的数据结构300,存储在存储区域125中。特征精简过程(或更一般地,特征精简设施)120,或者从存储区域125或者从特征抽取过程110,接收数据结构300,然后将特征向量310的特征数目从“n”精简到“z”,其中“z”小于“n”,并且可以比“n”小三个数量级。参照图4A,由特征精简过程120生成一种新的数据结构400。数据结构400包含一个种类向量320,后者对应于数据结构300的种类向量。数据结构400还包含一个精简特征向量410,后者具有字段412,字段412对应于由特征精简过程120确定的、训练集中的文本信息对象的所有特征(或属性)中比较重要的特征。特征精简过程120还生成一个精简特征集,后者定义被认为是比较重要的特征向量的“n”个字段412中的“z”个字段。下面在4.2.1.2节中说明典型的特征精简过程120。
尽管以一个较大特征向量数组的形式,说明各文本信息对象,但实际上,如上所述,可以使用稀疏数组技术,从而利用两个较小数组而不是一个大数组来表示各文本信息对象。例如,参照图4B,如果认为第一和第57特征不重要,则产生稀疏数据结构410′。稀疏数据结构410′包括第一数组450和第二数组460,数组450包含所选的非零特征的下标(即50,101和220),数组460包含由第一数组450索引的特征的值。图4C表示另一种稀疏数据结构410″,后者具有与所选非零特征相对应的另一种索引字段和值字段。
可以使用可选的(用虚线表示)二进制化过程150,将训练集中各对象的精简特征向量410的各字段412的各值,转换为二进制值。在各字段412的情况下,通过将所有值应用于一个预定(或导出)的阈值,进行这种二进制值转换。因此,各字段412可以与不同阈值关联。自然地,也可以将单个阈值应用于所有字段412。图5A为可用来表示包含二进制值的所得到的精简特征向量510的数据结构。向量510与图4A中的数据结构400的向量410具有相同数目的字段“z”。然而,在此情况中,各字段512均包含一个二进制值(如,利用一位表示)而不是一个更一般的值。数据结构500的种类向量320与数据结构300和400的种类向量相同。下面在4.2.1.3节中说明典型的二进制化过程。
参照图5B,如果所选的非零特征101和220超过其阈值,而所选的非零特征50未超过其阈值,则稀疏数据结构510′包括第一数组550和第二数组560,数组550包含超过其阈值的所选非零特征的下标(即101和220),数组560包含索引的特征的值。如图5C所示,由于超过其阈值的二进制化的、所选非零特征的值全部为“1”,所以可以使用仅包括索引数组550的另一种稀疏数据结构510″。
自然地,可以使用其他量化器提供q进制(其中q>2)量化,以代替二进制量化。
可以将精简特征向量(或二进制化的精简特征向量)存储于存储部件135中。
一个通用文本分类器可包括用于“m”中不同种类之各种类的分类器。我们记得,要为“m”个分类器的各分类器,确定具有可调参数A和B的权重向量参数和单调(如S形)函数。因此,“m”过程140(可以包括一个支持向量机训练设施和一个函数生成器),或者从存储部件135或者从特征精简过程120(或二进制化过程150),接收精简特征向量(或二进制化的精简特征向量)。尽管图1描述了“m”个并行过程140,但是,可以使用单一过程140来处理“m”个连续种类(或能够运行m/p次的p个过程)。无论如何,均为“m”个种类中的各种类,生成一个权重向量参数和一个单调(如S形)函数。下面在4.2.1.4节中说明用于生成文本分类器之参数的典型过程。
4.2.1.1.特征抽取
回忆图1,特征抽取过程110根据一组训练文本信息对象,生成特征向量集(以数据结构300进行存储)。
图6为典型特征抽取过程110′的流程图。在步骤610中,初始化用作文本信息对象之下标的COUNT值,其方法是将其设置为1。接着,如步骤620所示,接收由COUNT值索引的文本信息对象。如步骤630所示,将FEATURE COUNT值初始化为1,并且将由FEATURE COUNT值索引的VALUE值初始化为0。接着,如步骤640所示,确定在由COUNT值索引的文本信息对象中由FEATURE COUNT值索引的VALUE值。例如,如果第5特征为单词“体育”,并且单词“体育”在第一文本信息对象中出现了三次,则OBJECT(1)的VALUE(5)为三。如步骤650和660所示,确定给定对象的各个特征值。如步骤670和680所示,一旦确定了某个对象的所有特征值,就确定下一个对象的所有特征值。在确定了所有对象的所有特征值之后,过程110′经由返回节点690终止。
再次重申,步骤640确定一个文本信息对象的一个特征值。此确定过程的实现方式如下。可以使用文本分析器,将各文本信息对象语法分析为组成记号。记号为任意文本成分,如单词、字母、内部标点符号等等,这种成分是利用空白(白色)间隔或前导(后继)标点符号,从其他此类成分中分离出来的。同时,利用文本分析模块来抽取合成短语以及时间和日期的规范表示。也可以适当定义并抽取特定的领域特征。各特征可以定义一个单词、短语或字母分组。因此,特征向量与各文本信息对象关联。
在步骤640中,如果使用具有索引数组和值数组(例如,参见图3B)或具有其他索引字段和值字段数组(例如,参见图3C)的稀疏数据结构,且如果VALUE(FEATURE COUNT)不为零,则(i)将索引数组的下一元素(即下一索引字段)设置为FEATURE COUNT,并且(ii)将值数组的下一元素(即下一值字段)设置为VALUE(FEATURE COUNT)。
4.2.1.2.特征精简(高级)
如上所述,与文本信息对象有关的特征向量,可能包含数百万个特征元素。为了使训练文本分类器的过程更可行,可以将特征向量精简到较少元素。图7为可以在本发明中使用的典型特征精简过程120′(“特征精简”也称为“特征选择”)的高级流程图。首先,图步骤710所示,本发明可以使用种类无关的特征精简步骤(如ZIPF或频率)(尽管是周知的,但为了方便读者,仍在4.2.1.2.1节中说明)。接着,如步骤720所示,执行种类相关特征精简技术(在4.2.1.2.2节中说明其中一些技术)。然后,过程120′经由返回节点730终止。
4.2.1.2.1.种类无关的特征精简
通过应用集合范围的频率统计,可以精简许多训练实例文本信息对象的特征向量矩阵。技术人员熟知的Zipf定律,涉及文本中不同单词的分布,并且它主要指出,单词的秩(r)和频率(f)的乘积为一常数(C),即(r*f=C),就如同频率f与出现次数(N)的乘积一样(f*N=C)。即,许多单词在集合中仅出现一次;该数目一半的单词出现两次;该数目三分之一的单词出现三次,等等。假设仅出现少数几次的单词对分类新项目没有什么帮助,因此忽略它们。在频谱的另一端,经常出现的单词也不可能很好地区分种类,因此有时忽略它们。通过应用Zipf频率阈值,生成各文本信息对象训练实例的精简特征向量结果。由Yang-Pedersen论文提出的文档频率阈值处理与Zipf选择类似。然而,在Yang-Pedersen论文中讨论的方法使用不同的选择准则,只保留最常见的条目。
4.2.1.2.2.种类相关的特征精简
在根据诸如Zipf定律之类的种类无关特征精简技术,精简了训练实例的文本信息对象的特征向量后,可以利用种类相关的特征精简技术进一步精简它们。此类种类相关的特征精简可以使用周知技术,如在4.2.1.2.2.1节中说明的交互信息技术,或在4.2.1.2.2.2节中说明的信息增益技术。也可以使用其他已知的种类相关的特征精简技术代替,如x2、相关系数和SVD(均为周知技术,此处不在论述)。可以根据专利技术,如在4.2.1.2.2.3节中说明的贝叶斯评分技术,实现种类相关的特征精简。
4.2.1.2.2.1.交互信息
交互信息为特征与分类(在此实例中为文本种类)之关联程度的度量。体现出高交互信息度量的特征是分类的优秀鉴别器,因此选择它们。在典型实施方式中,特征为单词,而分类为种类。在此情况中,对于给定特征(fi)(如单词)在给定种类ci中的交互信息“MI”,可以表示为:
其中P(f+c+)为文档具有特征f并属于种类c的概率;
P(f-c+)为文档不具有特征f但属于种类c的概率;
P(f+c-)为文档具有特征f但不属于种类c的概率;以及
P(f-c-)为文档不具有特征f并且不属于种类c的概率;
图9表示特征“f”950和种类“c”960的双向可能性表900。各文本信息对象体现出以下四种特性种的一种特性:(i)具有特征“f”950并属于种类“c”960(f+c+910);(ii)具有特征“f”950但不属于种类“c”960(f+c-920);(iii)不具有特征“f”950但属于种类“c”960(f-c+930);或(iv)不具有特征“f”950并且不属于种类“c”960(f-c-940)。如果A为体现特性f+c+910的文本信息对象的数目,B为体现特性f+c-920的文本信息对象的数目,C为体现特性fc+930的文本信息对象的数目,D为体现特性f-c-940的文本信息对象的数目,并且N为文本信息对象的总数,则可以将交互信息(MI)表示为:
可以将特征(如单词)精简为交互信息最高的那些特征(单词)。
若给定训练全集,则可以计算各特有条目的交互信息。可以从特征向量中删除那些交互信息值低于某预定阈值的条目。作为选择,如果需要将特征数精简为预定数目“x”,则保留具有最高交互信息值的x个特征,而不考虑其他特征。
4.2.1.2.2.2.信息增益
信息增益是一种条目选择准则,它通过了解某个条目是否在文档中出现,测量为种类预言获得的信息的比特数。对于二进制分类任务(即在种类(c+)中对不在种类(c-)中)和二进制特征值(即特征出现(f+)对特征未出现(f-))的情况,特征(f)的信息增益(G(f))被定义为:
其中:P(c+)为文档属于种类c的概率;
P(c-)为文档不属于种类c的概率;
P(f+)为文档包含特征f的概率;
P(f-)为文档不包含特征f的概率;
P(f+ci)为文档具有特征f并属于种类ci的概率—对于二进制分类i具有值+和-;
P(f-ci)为文档不具有特征f但属于种类ci的概率—对于二进制分类i具有值+和-;
通过在m个可能种类上求和,可以将上述测量推广到m进制分类。
若给定训练全集,则可以计算各特有特征的信息增益。可以从特征向量中删除那些信息增益值低于某预定阈值的特征。作为选择,如果需要将特征数精简为预定数目“x”,则保留具有最高信息增益值的x个特征,而不考虑其他特征。
4.2.1.2.2.3.贝叶斯评分
可以根据贝叶斯评分(BS)精简特征向量。以下专利申请说明了贝叶斯评分的确定,该专利申请号为08/240,019,题目为“用于改善贝叶斯网络的方法”(这里引用作为参考)。可以将第i个特征f的贝叶斯评分(BS)定义为:
BSfi=lgΓ(A+1)+lgΓ(B+1)+lgΓ(C+1)+lgΓ(D+1)
-lgΓ(A+B+2)-lgΓ(C+D+2)-lgΓ(A+C+2)-lgΓ(B+D+2) (6)
+lgΓ(N+4)
其中Γ(n)=nΓ(n-1),对所有n>0;
Γ(1)=1;
Γ(n+1)=n!,对n=0,1,2,…;
A为体现特性f+c+910的文本信息对象的数目,B为体现特性f+c-920的文本信息对象的数目,C为体现特性f-c+930的文本信息对象的数目,D为体现特性f-c-940的文本信息对象的数目,并且N为文本信息对象的总数
如果需要将特征数精简为预定数目“x”,则保留具有最高贝叶斯评分的x个特征,而不考虑其他特征。也可以使用贝叶斯评分阈值来精简特征数。
4.2.1.3.二进制化精简的特征向量
可以将在精简特征向量中保存的值应用于某个阈值,或应用于特征对应的阈值,以便二进制化精简特征向量的值。作为选择,可以将特征向量中的值直接应用于分类器,或正如神经网络技术熟知的那样,通过量化,以q进制(其中q>2)码的形式进行编码。
4.2.1.4.分类参数生成
可以将上述步骤(即特征抽取、特征精简和二进制化),看作是预处理步骤,以便更容易地确定诸如SVM文本分类器之类的文本分类器的参数。基本上,文本分类器将根据下式,分类具有精简特征向量x的文本信息对象:
其中f(z)为z的单调(如S形)函数;以及w为权重向量。
因此,该分类器具有一个权重向量参数,和一个具有可调参数的单调函数。在4.2.1.4.1节中说明权重向量参数的确定,在4.2.1.4.2节中说明单调函数的参数的确定。因此,参照图8表示的用于生成分类引擎之参数的典型过程140′的流程图,如图所示,在步骤810中确定权重向量w,在步骤820中确定单调函数(以及其可调参数)。过程140′经由返回节点830终止。
4.2.1.4.1.权重向量确定
各种类的分类器均具有一个权重向量参数。对于各种类,可以利用训练支持向量机的方法,生成权重向量参数。如上所述,并且正如技术人员熟知的那样,可以利用具有已知分类的已知对象,来训练支持向量机(即“SVM”),以定义一个超平面或一个超表面,超平面分割n维特征向量空间中属于该种类和不属于该种类的所有点。可以定义一对可调参数w(一个“权重向量”)和b(一个“阈值”),使具有已知分类y的所有训练数据x,满足以下约束:
其中:i=1,...,训练实例数;
xi为第i个输入向量;
w为权重向量参数;
b为阈值参数;以及
yi为与第i个训练实例有关的已知分类,如果该实例“在该分类中”,则为+1,如果该实例“不在该分类中”,则为-1。
可以将式(7)和(8)的不等式条件组合为以下不等式条件,其方法是,式的两端乘以y和+1或-1,然后从两端中减去1:
式(7)的等式部分的点满足超平面xi·w+b=1,该超平面具有法线w,并且到原点的垂直距离为(1-b)/||w||,其中||w||是向量w的欧几里得范数。同样,式(8)的等式部分的点满足超平面xi·w+b=-1,该超平面到原点的垂直距离为(-1-b)/||w||。因此,容限为两距离之和,即2/||w||。通过最小化||w||2,根据式(9)的约束,可以确定提供最大容限的超平面。
因此,训练SVM是一个约束优化(即最小化)问题。即,根据一个或多个约束,最小化函数(也称为“目标函数”)。尽管熟练技术人员熟悉用于解决约束优化问题的方法(例如,参见课本,作者Fletcher,
实用优化方法,第二版,PP.195-224,JohnWiley&Sons(1987)),但为了方便读者,将介绍有关方法。
满足所有约束的点称为“可行点”,并且位于“可行区域”内。利用没有可行下降方向的可行点,解决约束优化(如最小化)问题。因此,用于解决约束最小化问题的方法通常为迭代方法,它可使值序列收敛到局部最小值。
熟练技术人员承认,拉格朗日乘数提供了一种将等式约束优化问题转换为非约束极值问题的方法。可以利用拉格朗日乘数(α),来查找服从约束g(x)的函数f(x)的极值,从而0=f(x)+αg(x),其中为梯度函数。因此,如果f(w)=||w||2并且g(w)=yi(xi·w+b)-1,则拉格朗日函数为:
其中“nte”为训练实例的数目。
正如从数学规划文献中了解的那样,“对偶性”的概念允许提供数学规划问题的另一种便于计算的公式表示。最小化这个服从“α”必需为非负的约束条件的等式(10),称为“最初”(即原始)问题。“对偶”(即变换)问题最大化等式(10),等式(10)服从以下约束,即LP的梯度相对于w和b为零,并且“α”必需为非负。此变换被认为是“Wolfe对偶”。可以将对偶约束表示为:
将等式(11)和(12)的条件代入等式(10)中,产生以下拉格朗日函数:
通过最大化拉格朗日对偶问题LD,确定对偶二次规划问题的解。
因此,通过求解对偶拉格朗日二次规划问题,可以训练支持向量机。对于训练集中的每个实例i,都存在一个拉格朗日乘数αi。αi大于零的点为“支持向量”。这些支持向量是训练集的关键元素,这是由于它们距离判定边界最近,因此,从判定边界定义其容限。
不幸的是,等式(13)的二次规划问题,仅表示具有以下约束的优化问题,即以比式(7)和(8)的问题更易处理的形式表示其约束。可以使用诸如约束共轭梯度上升、投影方法、Bunch-Kaufman分解、以及内点方法之类的数值方法,来解决二次问题。说这些数值方法很重要就足够了,特别是当训练集中的实例i很多时。参照等式(13),求解二次问题涉及一个“nte”乘“nte”的矩阵(其中“nte”是训练集中的实例数)。
也可以利用块处理(chunking)算法解决二次规划问题。开发SVM的VladimirVapnik引入了称为“块处理”的迭代训练方法。熟练技术人员理解训练SVM的“块处理”方法,但为了方便读者,此处将予以介绍。在各步骤中,解决由上一步中之非零拉格朗日乘数的联合组成的子问题,以及违反Kuhn-Tucher条件的许多最差训练实例。重复上述步骤,直至所有实例满足Kuhn-Tucher条件。这样,各步中的矩阵的数量级为非零拉格朗日乘数的数目的平方,是在此矩阵上操作而不是在其大小为训练实例数之平方的矩阵上操作。由于矩阵较小,所以该算法较快。尽管块处理使得训练SVM易于处理,但是对某些应用而言,它仍然太慢。例如,在某些应用中,非零拉格朗日乘数的数目仍能增长到数千个。还要利用数值二次规划技术来解决二次问题,并且各迭代很消耗时间。
据报道,在下述论文中引入了更好的SVM训练算法,该论文的作者为E.Osuna等人,题目为“用于支持向量机的改进训练算法”,IEEENNSP′97会议录(1997年9月)(以下称为“Osuna方法”)。Osuna方法存储一个固定大小的矩阵,而不是一个随着非零拉格朗日乘数的数目增长的矩阵。在各步中,优化固定数目的拉格朗日乘数。利用每个新步骤,考虑删除一个旧拉格朗日乘数,并添加一个其输出违反Kuhn-Tucher条件的新实例。Osuna论文证明了二次问题将随着各步骤而减少,从而Osuna方法可收敛到某个解。然而,Osuna方法的不利点在于,在各步中仍然需要一个数值解。尽管它收敛到某个解,但Osuna方法使用整个数值二次规划问题的目的只不过是“修改”违反Kuhn-Tucher条件一个拉格朗日乘数。
确定权重向量的一种更快方法是,使用以下美国专利中公开的方法,该美国专利的申请号为09/055,477,申请人为JohnPlatt,题目为“用于构造支持向量机分类器的方法和装置”,申请日期为1998年4月6日,这里引用作为参考。在Platt方法的第一公开方法(也称为“QP1”)中,将阈值b设置为零。首先,初始化与训练集的各实例相对应的拉格朗日乘数。例如,通过将所有拉格朗日乘数设置为零,初始化它们。
对于训练实例集中的各训练实例,确定该解是否为该实例的最优解。通过确定是否违反Kuhn-Tucher条件,检查各实例的最优性。如果该解不是最佳的(如,违反Kuhn-Tucher条件),则确定第n个训练实例的新的拉格朗日乘数。更确切地说,可以根据下式,确定第n个训练实例的新的拉格朗日乘数:
在等式(14)的表达式中,可以将Kuhn-Tucher(KT)误差表示为:
1-Onyn (15)
在等式(14)的表达式中,分母为核心函数,在线性支持向量机的情况中,该函数为第n个训练实例的特征向量x的点积。
然后,将新的拉格朗日乘数限制(或裁剪(clipped))为:
从而满足不等式约束。
一旦完成训练实例集的扫描,就确定该扫描过程中的任意拉格朗日乘数是否已改变。假如这样的话,则其他实例现在可能违反Kuhn-Tucher条件。更确切地说,在调整拉格朗日乘数时,SVM的分割超平面(或超表面)也改变。因此,执行该数据的另一次扫描。如果未改变拉格朗日乘数,则所有实例均实现Kuhn-Tucher条件,且QP1过程终止。
初始扫描可处理训练集的所有实例。假设改变了拉格朗日乘数,则下一次扫描仅处理训练集的无边界实例。随后的扫描也仅处理无边界的拉格朗日乘数,直至拉格朗日乘数不再改变。然后,下一次扫描处理整个训练集。如果未改变拉格朗日乘数,则处理结束。另一方面,如果改变了拉格朗日乘数,则处理按上述方式继续。自然地,各扫描可以交替处理所有训练实例。
在线性SVM的情况下,可以以权重向量方式而不是内核之加权和的方式,存储所有SVM状态。在该情况下,当改变拉格朗日乘数时,直接更新权重向量。即:
可以使用间隔算法,检查Kuhn-Tucher条件:即,如果该条件近似满足某个公差,则满足该条件。可以将该公差设置为1e-3。该公差对识别机器而言是足够准确的,并且将阻止花费大量计算资源来生成拉格朗日乘数中不需要的精度。
当输入点由稀疏二进制向量(如,要分类的对象有比较少的可能特征)组成时,通过使用点积的稀疏求值,可以引人注目地加速所示实施方式。即,权重和输入点之间的点积为,与非零输入维数相对应的权重元素之和。这可以表示为:
对于训练用于文本分类的线性SVM而言,上述优化是有用的,这是由于可以利用稀疏特征向量(如,具有特征向量的所有单词中的较少单词的文本对象),来表示大部分的文本对象。
可以以其长度为训练集之大小的向量方式,存储α向量,该α向量包含所有训练实例的拉格朗日乘数的值。即:
其中“nte”为训练实例的数目。
如上所述,由于大部分拉格朗日乘数将为零,所以能够以其长度为非零拉格朗日乘数数目的两个向量,存储α向量,其中一个存储非零拉格朗日乘数的标识(下标),另一个存储非零拉格朗日乘数的值。
在Platt方法的第二种公开方法(也称为“QP2”)中,二次规划过程服从一个线性等式约束(即,阈值b不一定等于零)。
首先,初始化与训练集之各实例相对应的拉格朗日乘数。我们记得,由于大部分拉格朗日乘数为零,所以通过将所有的拉格朗日乘数设置为零,初始化它们。对于训练实例集中的各训练实例,确定是否违反Kuhn-Tucher条件。如果违反了Kuhn-Tucher条件,则从训练集中选择另一个实例(如下所述),从而创建了一对需要联合优化的拉格朗日乘数。然后试图确定新的拉格朗日乘数,以便联合优化该实例。确定该实例是否是最优的。如果它们不是最优的,则从训练集中选择另一个特征向量,以便创建另一对拉格朗日乘数。
两个拉格朗日乘数的联合优化的第一步是,确定一个变量的边界。不是限制第一个乘数,就是限制第二个乘数。此处,选择第二个乘数。令L为第二个拉格朗日乘数的下界,H为第二个拉格朗日乘数的上界。令y1为第一个实例的理想输出,令y2为第二个实例的理想输出。令α1为第一个拉格朗日乘数的当前值,令α2为第二个拉格朗日乘数的当前值。如果y1与y2相同,则计算以下边界:
H=min(C,α1+α2)L=max(0,α1+α2-C) (20)
如果y1与y2符号相反,则按下式计算边界:
H=min(C,C-α1+α2)L=max(0,α2-α1) (21)
如果值L与值H相同,则不能改进,并且确定训练实例不是最优的。
按照以下公式计算α2的新的优化值:
如果第二个拉格朗日乘数的新值小于L,则将其设置为L。相反,如果第二个拉格朗日乘数的新值大于H,则将其设置为H。如果第二个拉格朗日乘数的新的裁剪(或限制)值与老值相同,则不能进行优化,从而确定训练实例不是最优的。否则,根据第二个拉格朗日乘数的裁剪(或限制)值,导出第一个拉格朗日乘数的新值:
如果支持向量机是线性的,则更新权重和阈值,以反映新的拉格朗日乘数,从而可以检测违反Kuhn-Tucher条件的其他(实例)。
可以根据以下启发,选择第二个拉格朗日乘数对。理想的第二个拉格朗日乘数在联合优化上的改变最大。在优化上改变的简易近似值为,第二个拉格朗日乘数中改变的分子的绝对值。
|y1y2KT ERROR1-KT ERROR2|=|(O1-y1)-(O2-y2)|(24)
如果第一个拉格朗日乘数的实际误差(O1-y1)为正,则实际误差(O2-y2)为大负数的第二个拉格朗日乘数,是联合优化的合适候选。如果第一个实际误差为负,则实际误差为大正数的第二个拉格朗日乘数,是优化的合适候选。因此,QP2过程找出以下无边界的拉格朗日乘数(α≠0或C),即其实际误差与第一个拉格朗日乘数的实际误差最对立的拉格朗日乘数。
存在某些退化情况,其中不同实例具有相同的输入特征向量。这可能阻止联合优化改进。应过滤掉这些冗余实例。作为选择,可以使用层次启发来查找第二实例,以便在联合优化步骤中获得正向改进。如果上述第一启发失败,则QP2过程将选择一个无边界的拉格朗日乘数,作为要联合优化的另一个拉格朗日乘数对。如果所有无边界拉格朗日乘数的上述启发均失败,则可以选择任何其他拉格朗日乘数,作为另一个拉格朗日乘数对。
在完成训练实例集的扫描之后,如果在扫描整个数据集时,一个或多个拉格朗日乘数改变,则优化无边界的拉格朗日乘数。另一方面,如果在扫描过程中,拉格朗日乘数未改变,则所有实例均符合Kuhn-Tucher条件,并且终止QP2过程。
正如可以理解的那样,QP2过程首先扫描训练集的所有训练实例。假设改变了某个拉格朗日乘数,则下次扫描仅处理训练集的无边界训练实例。随后的扫描也仅处理无边界的拉格朗日乘数,直至拉格朗日乘数不再改变。接着,下次扫描处理整个训练实例集。如果拉格朗日乘数不再改变,则处理结束。另一方面,如果某个拉格朗日乘数改变,则处理按上述方式继续。自然地,在另一种方法中,可以在每次扫描中处理训练集的所有训练实例。
可以或用其大小为训练实例数目的一个数组(也称为“全数组”),或用表示较大稀疏数组的两个数组,存储拉格朗日乘数。
当联合优化拉格朗日乘数对时使用的实际误差为,SVM的理想输出减去SVM的实际输出(yi-Oi)。可以高速缓冲存储具有无边界(即,非零或非C)拉格朗日乘数的实例的实际误差。高速缓冲存储实际误差,能够智能地选择第二个实例。
对于线性SVM而言,能够以一个权重向量的方式,而不是以一组输入点之线性叠加的方式,存储线性SVM。如果输入向量为稀疏的,则可以以众所周知的稀疏方式,更新权重向量。
因此,通过训练SVM,例如根据上述方法(如,块处理、Osuna和Platt)之一,可以确定给定种类C的权重向量w。
4.2.1.4.2.单调函数参数确定
如上所述,文本分类器使用单调(如S形)函数,对文本信息对象进行分类。可以用以下形式来表示S形函数:
可以使用常数A和B(也称为“可调参数”),调整S形函数的特性,从而:
以下说明用于求解单调函数之常数A和B的技术。
4.2.1.4.2.1.优化(最大似然性)
通过在文本信息对象的训练集上使用最大似然性,可以确定常数A和B。为了使S形函数适合于训练数据,计算由概率分布f(假设训练实例相互独立)生成训练目标y的似然性的对数。利用下式描述对数似然性:
其中yi为已知结果(+1或-1);以及nte为训练实例数。
然后,通过使对数似然性在可能的S形参数上取得最大值,导出最佳S形参数。
4.2.1.4.2.1.1.已知优化方法
可以根据诸如梯度下降、Levenberg-Marquardt、Newton-Raphson、共轭梯度以及可变量度方法之类的已知非约束优化技术,最大化式(28)。
4.2.1.4.2.1.2.连续性的拉普拉斯规则
在一种实施方式中,可以利用目标值ti代替式(28)中的值yi,可以将ti表示为:
其中N+是该类中的训练集的文本信息对象数;以及
N-是不在该类中的训练集的文本信息对象数。
通过使用目标值ti而不是yi,致使生成的S形函数不会比用于确定该函数的数据更精确。亦即,S形函数不会“过度适应”以前的数据,特别是具有较少训练数据的种类中的数据。这样,确定了一个S形函数,该函数在所有概率均为等概率的先验概率的情况下,匹配未知数据。尽管在文本分类器的范围内,介绍了使用式(30)中的目标函数ti,但它同样适用于其他分类器。自然地,也可以使用依赖于属于该类和不属于该类的训练实例数的其他目标函数,代替式(29)中定义的目标函数。
在使S形函数适合于训练数据的一种实施方式中,可以将目标值(tti)表示为:
此种形式的目标函数将连续性的拉普拉斯规则的结果,限制为与实际目标y的距离不超过0.01。经验证明此值是理想的。
4.2.2.文本分类器的典型结构
图2为可由根据本发明的文本分类器使用的过程图。如图2所示,将需要分类的文本信息对象205,应用于特征抽取过程(或更一般地,特征抽取程序)210。正如在下文4.2.2.1节中说明的那样,此特征抽取过程210,可以与在4.2.1.1节中说明的特征抽取过程110相同。接着,在下文4.2.2.2节中说明的特征精简过程(或更一般地,特征精简设施)220,使用在4.2.1.2节中说明的特征精简过程120生成的精简特征集,精简与文本信息对象205有关的特征向量的大小。这样,生成与文本信息对象205有关的精简特征向量。如图2所示,然后将二进制化过程230应用于精简特征向量。
将特征精简过程220生成的精简特征向量(或二进制化过程230生成的二进制化的精简特征向量),应用于一个或多个分类器250。这些分类器可以使用4.2.2.4节中说明的分类器250。由4.2.1.4节中说明的分类引擎参数生成过程140,确定各分类器250的权重参数w,以及可参数化的单调函数的参数。最后,输出其文本信息对象205属于特殊分类的概率。
4.2.2.1.特征抽取
特征抽取过程210,与参照图1和图6、在4.2.1.1中说明的特征抽取过程110类似。
4.2.2.2.特征精简
现在说明典型的特征精简过程220。我们记得,在上文中说明特征精简过程120,可精简(如,根据种类无关和种类相关技术)与训练实例集115中的文本信息对象相对应的特征向量。此过程120也生成一个精简特征集,后者可以是与文本分类有关的或对文本分类比较重要的特征的索引。例如,如果原始特征向量包括100个元素,则精简特征集可以包含特征向量的第2、第5、第20、第21和第89个元素的索引。因此,将100个元素的特征向量精简为五个元素的精简特征向量。通常,特征向量和精简特征向量中的元素数,远远大于此示例中使用的元素数。
典型的特征精简过程220,使用有关特征或重要特征的索引,将特征值映射到精简特征向量的连续下标。按照上文中的简单示例,将第2元素的值放在精简特征向量的第一元素位置,将第5元素的值放在精简特征向量的第二元素位置,将第20元素的值放在精简特征向量的第三元素位置,将第21元素的值放在精简特征向量的第四元素位置,将第89元素的值放在精简特征向量的第五元素位置。正如4.2.1节中说明的那样,实际上,并不使用单一特征向量数组来表示文本信息对象,而是使用熟练技术人员熟知的稀疏技术,利用较小的特征索引和值数组来表示它。
请注意,可以将精简特征集提供到特征抽取过程210。在此情况下,特征抽取过程仅抽取属于精简特征集的那些特征。这样,在抽取特征时进行特征精简。
4.2.2.3.二进制化
可选的二进制化过程230,与参照图1、在4.2.1.3节中说明的二进制化过程150类似。
4.2.2.4.分类
可以按下述方式实现分类过程250。可以将文本信息对象205(由精简特征向量x表示)属于种类i的概率表示为:
此文本分类器具有许多优点。首先,可以在各个种类上比较不同种类的分类器输出的概率。其次,如果使用4.2.1.4.2.1.2节中说明的目标技术确定单调函数及其可调参数,则当特定种类的可用训练数据量较小时,该函数也不会过度适应。
4.2.3.典型体系结构
图11A以及以下说明,提供可以实现本发明的至少某些方面的典型装置的概要描述。将在能够由个人计算机执行的、计算机可执行指令(如程序模块)的通用范围内,说明本发明。然而,也可以利用其他装置,实现本发明的方法。程序模块包括执行任务的或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。此外,熟练技术人员可以理解,利用其他配置也能实现本发明的至少某些方法,其他配置包括手持设备、多处理器***、基于微处理器或可编程的用户电子设备、网络计算机、小型计算机、机顶盒、大型计算机等等。也可以在由通过通信网络连接的远程处理设备执行任务的分布式计算环境中,实现本发明的至少某些方面。在分布式计算环境中,程序模块可以位于本地和/或远程存储设备中。
参照图11A,用于实现本发明的至少某些方面的典型装置1100,包括一台用常规个人计算机1120表示的通用设备。个人计算机1120可以包括,一个处理部件1121,一个***存储器1122,以及一条***总线1123,后者将包括***存储器在内的各种***组件,连接到处理部件1121。***总线1123可以为任意类型的总线结构,包括存储器总线或存储器控制器,外设总线,和使用各种总线体系结构中之任意结构的局域总线。***存储器包括只读存储器(ROM)1124和/或随机存取存储器(RAM)1125。可以将基本输入/输出***1126(BIOS)存储在ROM1124中,BIOS包含启动时帮助个人计算机1120内的部件传送信息的基本例程。个人计算机1120还可以包括:硬盘设备1127,用于从硬盘读取或向硬盘写入(未示出);磁盘驱动器1128,用于从(如,抽取式)磁盘1129读取或向磁盘写入;以及光盘驱动器1130,用于从诸如光盘或其他(磁)光介质之类的抽取式(磁)光盘1131读取或向该光盘写入。可以借助***总线1123,分别通过硬盘驱动接口1132、磁盘驱动接口1133和(磁)光驱动接口1134,连接硬盘驱动器1127、磁盘驱动器1128和(磁)光盘驱动器1130。上述驱动器以及其相关存储介质,提供用于个人计算机1120的机器可读指令、数据结构、程序模块以及其他数据的非易失存储。尽管此处说明的典型环境使用硬盘、抽取式磁盘1129以及抽取式光盘1131,但熟练技术人员可以理解,可以使用其他类型的存储介质,如磁盘、快闪存储卡、数字视盘、伯努里盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等等,代替上述存储设备,或作为其补充。
在硬盘1123、磁盘1129、(磁)光盘1131、ROM1124或RAM1125上,可以存储许多程序模块,如操作***1135、一个或多个应用程序1136、其他程序模块1137、和/或程序数据。用户可以通过诸如键盘1140和指点设备1142之类的输入设备,向个人计算机1120输入命令和信息。也可以包括其他输入设备(未示出),如麦克风、操纵杆、游戏垫、卫星天线、扫描仪等。通常通过连接到***总线的串行接口1146,将各种各样的输入设备连接到处理部件1121。然而,也可以通过其他接口,如并行端口、游戏端口或通用串行总线(USB),来连接输入设备。经由视频适配器1148之类的接口,将监视器1147或其他类型的显示设备,连接到***总线1123。除监视器之外,个人计算机1120还可以包括其他***输出设备(未示出),如扬声器和打印机。
个人计算机1120可以在连网环境下运行,连网环境定义到达一台或多台远程计算机(如远程计算机1149)的逻辑连接。远程计算机1149可以为另一台个人计算机、一台服务器、一台网络PC、一台对等设备、或其他公共网络节点,并且可以包括参照个人计算机1120说明的大部分部件或所有部件,尽管图11A仅示出了存储设备1150。图11A所示的逻辑连接包括局域网(LAN)1151、广域网(WAN)1152、内联网和因特网。
当在LAN中使用时,可以通过网络接口适配器(或“NIC”)1153,将个人计算机1120连接到LAN1151。当在WAN(如因特网)中使用时,个人计算机1120可以包括一台调制解调器1154,或用于在广域网1152上建立通信的其他装置。可经由串行接口1146,将调制解调器1154连接到***总线1123,其中调制解调器可以为内部调制解调器,也可以为外部调制解调器。在连网环境中,可以在远程存储设备中,存储参照个人计算机1120说明的至少一部分程序模块。所示网络连接为示范性的,可以使用在计算机之间建立通信链路的其他装置。
图11B为一台更普通的机器1100,该机器实现一个或多个上述过程。机器1100主要包括一个处理器1102,一个输入/输出接口部件1104,一个存储设备1106,和一个***总线或网络1108,部件1108用于方便相连部件之间的数据和控制通信。处理器1102可以执行机器可执行的指令,以便实现本发明的一个或多个方面。经由输入接口部件1104,可以将至少一部分机器可执行的指令存储(临时或永久)到存储设备(1106)上,和/或从外部信源接收至少一部分机器可执行的指令。
4.2.4.结论
公开了一种用于对文本进行分类以及构造文本分类器的方法和装置。这些方法和装置的优点在于:(i)在保持对分类比较重要的特征的同时,精简表示文本信息对象的特征向量的大小;(ii)避免生成一种过度适应于较少的训练数据量分类器;(iii)训练较快;和/或(iv)分类较快。