多分类器的在线调整方法、装置、存储介质及电子设备与流程

文档序号:14555570阅读:181来源:国知局
多分类器的在线调整方法、装置、存储介质及电子设备与流程

本发明涉及数据处理技术领域,尤其涉及一种多分类器的在线调整方法、装置、存储介质及电子设备。



背景技术:

在机器学习领域,分类方法是一种通过向相应分类算法中输入已有被标记好类别的数据训练数据的分类模型,进而利用训练所得的分类模型预测新数据类别的方法。其中,分类模型的训练方式包括离线训练和在线训练两种。

目前,对应于在线训练的在线分类方法包括在线梯度下降(ogd,onlinegradientdescent)和随机梯度下降(sgd,stochasticgradientdescent)等,然而,这些在线方法存在很难产生稀疏解的缺点,进而在预测新数据的类别过程中会存在内存占用和时间复杂度较高的问题,鉴于此,本领域提出了针对随机梯度下降的ftrl(followtheregularizedleaderproximal),以解决随机梯度下降方法存在的问题。但是在实际应用中,基于该方法(即ftrl)的多分类模型易存在较大的性能波动,进而易导致多分类模型可能会存在分类不准确的问题。



技术实现要素:

有鉴于此,本发明的目的在于提供一种多分类器的在线调整方法及装置,以至少降低上述多分类问题中分类模型的性能波动。

为此,本发明公开如下技术方案:

一种多分类器的在线调整方法,包括:

利用预先构建的多分类器对当前待处理的在线数据进行分类,得到所述在线数据的多分类结果;

根据所述在线数据的多分类结果,确定所述在线数据所属的类别;

在所述在线数据符合预设缓存条件时,将所述在线数据缓存入预定缓存单元中与所述在线数据所属的类别对应的缓存子单元;

在所述预定缓存单元中的各缓存子单元所缓存数据的数量符合预设数量条件时,利用各个缓存子单元中缓存的数据,对所述多分类器进行调整;所述预设数量条件包括:所述各缓存子单元中任两个缓存子单元所缓存数据的数量差值不超过第一预定阈值。

优选的,所述利用预先构建的多分类器对当前待处理的在线数据进行分类之前,所述方法还包括:

获得预先标记有类别信息的多条离线数据,并获得所述离线数据对应的数据特征集;

若所述数据特征集中的特征数量未达到第二预定阈值,则利用所述预先标记有类别信息的多条离线数据,构建多分类器;

若所述数据特征集中的特征数量达到所述第二预定阈值,则将所述数据特征集划分为多个特征子集,并利用所述预先标记有类别信息的多条离线数据,构建多个子多分类器,各个所述子多分类器构成多分类器;其中,所述多个子多分类器中的子多分类器与所述多个特征子集中的特征子集一一对应。

优选的,在数据特征集中的特征数量未达到第二预定阈值时,构建的所述多分类器包括多个二分类器,其中,所述多分类器包括的二分类器与所述多分类器提供的多个类别中的类别一一对应;

在数据特征集中的特征数量达到第二预定阈值时,构建的所述子多分类器包括多个二分类器,其中,所述子多分类器包括的二分类器与所述子多分类器提供的多个类别中的类别一一对应。

优选的,所述利用预先构建的多分类器对当前待处理的在线数据进行分类,得到多分类结果,包括:

将在线数据分别输入多分类器包括的多个子多分类器中,以分别利用所述多个子多分类器对在线数据进行分类,得到各个子多分类器的多分类结果;

根据各个子多分类器的多分类结果,获得所述在线数据的多分类结果。

优选的,所述利用预先构建的多分类器对当前待处理的在线数据进行分类,得到多分类结果,包括:

利用多分类器中每个子多分类器包括的多个二分类器分别对所述在线数据进行分类,得到每个子多分类器对应的一套二分类结果;

根据多个子多分类器对应的多套二分类结果,获得所述在线数据的多分类结果。

优选的,所述在所述预定缓存单元中的各缓存子单元所缓存数据的数量符合预设数量条件时,利用各个缓存子单元中缓存的数据,对所述多分类器进行调整,包括:

在所述预定缓存单元中的各缓存子单元所缓存的数据量均达到第一预定数量时,利用各个缓存子单元中缓存的数据,对所述多分类器进行调整。

优选的,所述在线数据的多分类结果至少包括所述在线数据所属的类别以及属于所述类别的置信度;

则所述在所述在线数据符合预设缓存条件时,将所述在线数据缓存入预定缓存单元中与所述在线数据所属的类别对应的缓存子单元,包括:

在所述缓存子单元中所缓存的数据量未达到所述第一预定数量时,或者,

在所述缓存子单元中所缓存的数据量达到所述第一预定数量,且所述缓存子单元缓存的数据中存在至少一条数据的置信度低于所述在线数据的置信度时,将所述在线数据缓存入所述缓存子单元。

优选的,所述方法在构建多分类器或多个子多分类器之后,还包括:

利用所述多分类器或者所述各个子多分类器,对各条所述离线数据进行分类,得到各离线数据的多分类结果;其中,离线数据的多分类结果至少包括所述离线数据所属的类别,以及属于所述类别的置信度;

根据各离线数据的多分类结果,从所述离线数据中抽取出每个分类类别中按置信度递减顺序确定出的前预定数目的离线数据,得到预先抽样集合。

优选的,所述方法还包括:

在所述预定缓存单元中的各缓存子单元所缓存的数据量未全部达到第一预定数量时,判断向所述多分类器输入的在线数据的数量是否达到第二预定数量;

若达到,则针对缓存量未达到第一预定数量的每个缓存子单元,从所述预先抽样集合中抽取符合所述缓存子单元的数据类别的相应数量离线数据,并将抽取的所述相应数量离线数据添加至所述缓存子单元中,以使得每个缓存子单元的缓存量达到所述第一预定数量;并利用各个缓存子单元中缓存的相应类别的第一预定数量的数据,对所述多分类器进行调整;

若未达到,则利用所述多分类器对下一条在线数据进行多分类处理。

一种多分类器的在线调整装置,包括:

分类模块,用于利用预先构建的多分类器对当前待处理的在线数据进行分类,得到所述在线数据的多分类结果;

确定模块,用于根据所述在线数据的多分类结果,确定所述在线数据所属的类别;

缓存模块,用于在所述在线数据符合预设缓存条件时,将所述在线数据缓存入预定缓存单元中与所述在线数据所属的类别对应的缓存子单元;

分类器调整模块,用于在所述预定缓存单元中的各缓存子单元所缓存数据的数量符合预设数量条件时,利用各个缓存子单元中缓存的数据,对所述多分类器进行调整;所述预设数量条件包括:所述各缓存子单元中任两个缓存子单元所缓存数据的数量差值不超过第一预定阈值。

优选的,所述装置还包括:

预处理模块,用于:

获得预先标记有类别信息的多条离线数据,并获得所述离线数据对应的数据特征集;

若所述数据特征集中的特征数量未达到第二预定阈值,则利用所述预先标记有类别信息的多条离线数据,构建多分类器;

若所述数据特征集中的特征数量达到所述第二预定阈值,则将所述数据特征集划分为多个特征子集,并利用所述预先标记有类别信息的多条离线数据,构建多个子多分类器,各个所述子多分类器构成多分类器;其中,所述多个子多分类器中的子多分类器与所述多个特征子集中的特征子集一一对应。

优选的,所述预处理模块在数据特征集中的特征数量未达到第二预定阈值时,构建的所述多分类器包括多个二分类器,其中,所述多分类器包括的二分类器与所述多分类器提供的多个类别中的类别一一对应;

所述预处理模块在数据特征集中的特征数量达到第二预定阈值时,构建的所述子多分类器包括多个二分类器,其中,所述子多分类器包括的二分类器与所述子多分类器提供的多个类别中的类别一一对应。

优选的,所述分类模块,具体用于:

将在线数据分别输入多分类器包括的多个子多分类器中,以分别利用所述多个子多分类器对在线数据进行分类,得到各个子多分类器的多分类结果;

根据各个子多分类器的多分类结果,获得所述在线数据的多分类结果。

优选的,所述分类模块,具体用于:

利用每个子多分类器包括的多个二分类器分别对所述在线数据进行分类,得到每个子多分类器对应的一套二分类结果;根据多个子多分类器对应的多套二分类结果,获得所述在线数据的多分类结果。

优选的,所述调整模块,具体用于:

在所述预定缓存单元中的各缓存子单元所缓存的数据量均达到第一预定数量时,利用各个缓存子单元中缓存的数据,对所述多分类器进行调整。

优选的,所述在线数据的多分类结果至少包括所述在线数据所属的类别以及属于所述类别的置信度;

则所述缓存模块,具体用于:

在所述缓存子单元中所缓存的数据量未达到所述第一预定数量时,或者,

在所述缓存子单元中所缓存的数据量达到所述第一预定数量,且所述缓存子单元缓存的数据中存在至少一条数据的置信度低于所述在线数据的置信度时,将所述在线数据缓存入预定缓存单元中与所述在线数据所属的类别对应的缓存子单元。

优选的,所述预处理模块还用于:

利用所述多分类器或者所述各个子多分类器,对各条所述离线数据进行分类,得到各离线数据的多分类结果;其中,离线数据的多分类结果至少包括所述离线数据所属的类别,以及属于所述类别的置信度;

根据各离线数据的多分类结果,从所述离线数据中抽取出每个分类类别中按置信度递减顺序确定出的前预定数目的离线数据,得到预先抽样集合。

优选的,所述装置还包括:

缓存调整模块,用于:

在所述预定缓存单元中的各缓存子单元所缓存的数据量未全部达到第一预定数量时,判断向所述多分类器输入的在线数据的数量是否达到第二预定数量;

若达到,则针对缓存量未达到第一预定数量的每个缓存子单元,从所述预先抽样集合中抽取符合所述缓存子单元的数据类别的相应数量离线数据,并将抽取的所述相应数量离线数据添加至所述缓存子单元中,以使得每个缓存子单元的缓存量达到所述第一预定数量,并使得利用各个缓存子单元中缓存的相应类别的第一预定数量的数据,对所述多分类器进行调整;

若未达到,则触发利用所述多分类器对下一条在线数据进行多分类处理。

一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行如上所述的多分类器的在线调整方法。

一种电子设备,包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的多分类器的在线调整方法。

本申请提供的多分类器的在线调整方法及装置,在利用多分类器对当前待处理的在线数据进行分类后,并不直接利用分类后的该条数据调整多分类器,而是对该条在线数据进行相应的缓存处理,直至缓存的各类别数据符合预设数量条件(任两个类别数据的数量差不超过第一预定阈值)时,再利用符合预设数量条件的各类别数据调整多分类器。本申请方案通过缓存分类后的各类别数据,并利用缓存的满足预设数量条件的各类别数据对多分类器进行调整,至少可在一定程度上保证分类器模型调整所采用的各类别数据在数量上的分布均衡性,从而,可有效降低多分类问题中分类模型的性能波动,进而克服了分类模型可能存在的分类不准确的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本申请实施例提供的多分类器在线调整方法的一种流程图;

图2是本申请实施例提供的预处理阶段的一种处理流程示意图;

图3是本申请实施例提供的基于缓存的多分类原理示意图;

图4是本申请实施例提供的预处理阶段的另一种处理流程示意图;

图5-图9是本申请实施例提供的多分类器在线调整方法的多种流程图;

图10-图13是本申请实施例提供的多分类器在线调整装置的多种结构示意图。

具体实施方式

为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:

二分类器:是一种能够将数据映射到给定的两种类别中的某一个,以实现对数据进行类别预测的分类模型。

多分类器:是一种能够将数据映射到给定的多种类别中的某一个,以实现对数据进行类别预测的分类模型。

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

在研究过程中,发明人发现,随机梯度下降法本身有较大的随机性,如果数据分布不均衡(比如,输入的某类别在线数据较多,而其他类别在线数据较少,导致调整模型时所采用的数据不均衡等)或者优化目标复杂,则算法可能会产生性能波动,而由于ftrl是对随机梯度下降的改进,这就导致ftrl同样可能会存在性能波动的问题。尤其是针对在线多分类问题,ftrl更易产生性能波动,即,基于ftrl的多分类模型的性能波动问题更为凸显。鉴于此,本申请实施例提供一种多分类器的在线调整方法及装置,旨在解决上述的数据多分类场景中分类模型易存在的性能波动问题。

为解决上述技术问题,本申请主要提出以下技术构思:

将在线多分类分为两个处理阶段:预处理阶段和在线多分类阶段。

其中,在预处理阶段利用预先已标记好类别信息的多条离线数据(具体包括多分类所需的多个类别的离线数据),构建多分类器;后续,在所述在线多分类阶段,以预处理阶段构建的多分类器为初始多分类器对在线数据进行分类,并根据在线数据的多分类结果,利用在线数据不断地对多分类器进行在线调整。区别于现有技术中在对每条在线数据进行多分类后,直接利用获知所属类别的该条数据对多分类器进行在线调整的特点,本申请提出一种基于缓存的在线调整方式,即基于在线数据的多分类结果,对在线数据按类别进行缓存处理,直至缓存的各类别数据符合预设数量条件(任两个类别数据的数量差不超过第一预定阈值)时,再利用缓存的符合预设数量条件的各类别数据调整多分类器。以此至少在一定程度上保证多分类器的在线调整所采用的各类别数据在数量分布上具有均衡性,进而降低多分类问题中分类模型的性能波动。

接下来,将通过多个实施例,对本申请的在线多分类方案进行说明。

本申请实施例提供的一种多分类器的在线调整方法的流程如图1所示,该方法包括以下步骤:

步骤101、利用预先构建的多分类器对当前待处理的在线数据进行分类,得到所述在线数据的多分类结果。

其中,所述在线数据为当前待处理的一条在线数据,所述在线数据的内容,可以结合多分类的实际应用场景进行确定,比如,针对产品推荐等场景,所述在线数据的内容具体可以包括用户在某类型网站的相应操作行为数据等。

在对当前待处理的一条在线数据进行分类时,所采用的所述预先构建的多分类器,可能是在预处理阶段通过离线数据所构建的所述多分类器,也可能是对预处理阶段构建的多分类器作相应的在线调整后所得的多分类器,具体需视当前的在线数据在在线多分类阶段中所处的分类时机而定,若所述当前在线数据为在线多分类阶段初始时对应处理的第一条数据,则所述多分类器本质上即为预处理阶段所构建的多分类器,否则,所述多分类器则为对预处理阶段构建的多分类器做出相应的在线调整后所得的分类器。

本实施例中,所述多分类器可以是ftrl多分类器,但在此仅作为举例,并不限定于ftrl多分类器。

在实际实施中,对于ftrl类型的多分类器而言,可在初始进入在线多分类阶段时,加载离线构建的所述多分类器给在线ftrl分类算法,以此得到在线多分类阶段初始时所需的ftrl多分类器。

在利用多分类器对所述在线数据进行分类后,所得的多分类结果中一般至少包括所述在线数据所属的类别,以及属于所述类别的置信度。比如,所述多分类结果可以直接给出所述在线数据所属的类别以及属于所述类别的置信度,或者,所述多分类结果也可以包括所述在线数据分别对应于所述多分类器提供的各个分类类别的各个置信度,比如,假设所述多分类器共提供有三个分类类别a、b、c,则在线数据x的多分类结果,可以包括在线数据x对应于类别a的置信度a1、对应于类别b的置信度b1,以及对应于类别c的置信度c1。

步骤102、根据所述在线数据的多分类结果,确定所述在线数据所属的类别。

本步骤中,针对多分类结果直接给出在线数据所属的类别以及属于该类别的置信度的情况,可以根据多分类结果,直接确定出所述在线数据所属的类别。

针对多分类结果包括在线数据分别对应于所述多分类器提供的各个分类类别的各个置信度的情况,可以根据多分类结果中在线数据对应于各个类别的置信度大小,确定出置信度最大的类别为在线数据所属的类别。以上述a、b、c三个分类类别为例,假设所述b1为所述a1、b1、c1中置信度最大的数值,则可确定出在线数据x所属的类别为b。

步骤103、在所述在线数据符合预设缓存条件时,将所述在线数据缓存入预定缓存单元中与所述在线数据所属的类别对应的缓存子单元。

区别于现有技术中在对每条在线数据进行分类后,直接基于该条数据的分类结果利用该条数据在线调整多分类器的特点,本申请对多分类器进行基于缓存的在线调整。

具体地,本实施例预先设置一缓存单元,所述缓存单元包括多个缓存子单元,各个缓存子单元分别与所述多分类器提供的各个分类类别一一对应,以用于分别缓存相应类别的数据。

在实际实施本申请时,可采用缓存器作为所述缓存单元,并采用所述缓存器中预先划分的多个缓存空间,来提供所述多个缓存子单元所需的缓存功能。

鉴于此,在对当前的一条在线数据进行分类后,本申请并不直接根据该条数据的多分类结果,利用该条数据对多分类器进行在线调整,而是根据所述在线数据的多分类结果,对所述在线数据进行以下的缓存处理:在所述在线数据符合预设缓存条件的情况下,将所述在线数据缓存入预定缓存单元中与所述在线数据所属的类别对应的缓存子单元。

所述预设缓存条件可以由技术人员依据实际的缓存需求进行预先设定,比如,具体可以是所述缓存子单元中所缓存数据的数量未达到第一预定数量,或者所述缓存子单元中所缓存数据的数量达到所述第一预定数量,且所述缓存子单元缓存的数据中存在至少一条数据的置信度低于所述在线数据的置信度(在线数据对应于其所属类别的置信度)等等。

对于向所述多分类器输入的不同类别的在线数据而言,在对不同类别的在线数据进行多分类后,可根据多分类结果对不同类别的在线数据进行相应的缓存处理,从而使得所述缓存单元包括的各个缓存子单元中逐步缓存有相应数量的数据。

步骤104、在所述预定缓存单元中的各缓存子单元所缓存数据的数量符合预设数量条件时,利用各个缓存子单元中缓存的数据,对所述多分类器进行调整。

所述预设数量条件的设定,旨在使得所述缓存单元中缓存的各类别(所述多分类器所提供的各个类别)在线数据在数量分布上具有均衡性,比如缓存的各类别数据的数量相同,或者各类别数据的数量差值较小等等,鉴于此,本实施例将所述预设数量条件设置为:所述各缓存子单元中任两个缓存子单元所缓存数据的数量差值不超过第一预定阈值。

所述第一预定阈值可以是由技术人员依据经验或者实际的平衡性衡量需求所设定的一较小的数值,例如,5。

在对所述预设数量条件进行以上说明的基础上,当所述预定缓存单元中的各缓存子单元所缓存数据的数量符合预设数量条件时,比如各类别数据的数量相同或者各类别数据的数量差值小于5等,则表示缓存单元中缓存的各类别数据在数量分布上具有均衡性,从而,可利用各个缓存子单元中缓存的各类别数据,对所述多分类器进行调整。后续,可利用调整后的多分类器继续进行在线数据的多分类处理。

而如果所述预定缓存单元中的各缓存子单元所缓存数据的数量不符合所述预设数量条件,则相应地表示缓存单元中缓存的各类别数据在数量分布上不具有均衡性,此种情况下,可针对每条在线数据继续执行上述的缓存处理,直至各缓存子单元缓存的各类别数据满足所述预设数量条件。

本申请提供的多分类器的在线调整方法,在利用多分类器对当前待处理的在线数据进行分类后,并不直接利用分类后的该条数据调整多分类器,而是对该条在线数据进行相应的缓存处理,直至缓存的各类别数据符合预设数量条件(任两个类别数据的数量差不超过第一预定阈值)时,再利用符合预设数量条件的各类别数据调整多分类器。本申请方案通过缓存分类后的各类别数据,并利用缓存的满足预设数量条件的各类别数据对多分类器进行调整,可在一定程度上保证分类器模型调整所采用的各类别数据在数量上的分布均衡性,从而,可有效降低多分类问题中分类模型的性能波动,进而克服了分类模型可能存在的分类不准确的问题。

上述实施例对在线多分类处理过程(包括在线多分类、缓存处理以及基于缓存的多分类器调整等)进行了阐述,而在线多分类阶段的所述多分类处理过程需要以预处理阶段的相关处理为基础,比如在线多分类阶段所使用的多分类器需要以预处理阶段构建的多分类器为基础等,鉴于此,接下来,本实施例将对预处理阶段的处理过程进行说明。

其中,参考图2,在预处理阶段,可通过执行如图2所示出的预处理流程,来实现为在线多分类阶段提供所需的运行基础:

步骤201、获得预先标记有类别信息的多条离线数据,并获得所述离线数据对应的数据特征集。

其中,所述离线数据的内容,可以结合多分类的实际应用场景进行确定,比如,针对产品推荐等场景,所述离线数据具体可以包括用户在某类型网站的相应历史操作行为数据等。

针对实际的多分类需求,所述离线数据需要包括多分类所需的各种类别的数据,并预先标记好各条离线数据所属的类别,以使得为多分类器的训练提供充分的数据支持。

除此之外,本步骤还获得所述离线数据的各个特征,进而得到离线数据对应的数据特征集。

步骤202、若所述数据特征集中的特征数量未达到第二预定阈值,则利用所述预先标记有类别信息的多条离线数据,构建多分类器。所述多分类器包括多个二分类器,其中,所述多分类器包括的二分类器与所述多分类器提供的多个类别中的类别一一对应。。

在获得多条离线数据,并获得所述离线数据对应的数据特征集基础上,可进一步判断所述数据特征集中的特征数量是否达到第二预定阈值,若所述数据特征集中包含的特征数量较少,未达到所述第二预定阈值,则表示多分类的优化目标并不复杂,从而可直接利用所述已标记有类别信息的多条离线数据,构建多分类器,对于ftrl类型的多分类器而言,可通过将离线数据输入ftrl算法来进行构建。

由于本申请的主要目的在于解决基于ftrl的在线多分类的性能波动问题,而ftrl算法本质上为二分类算法,基于该算法能够构建的分类模型相对应地具体为二分类模型,鉴于此,本实施例中,基于ftrl构建的所述多分类器具体包括多个二分类器,其中,各个二分类器与所述多分类器提供的各个分类类别一一对应,也就是说,采用多个二分类器来构成所需的多分类器。比如,假设所述多分类器提供有a、b、c三个分类类别,则所述多分类器包括:对应于类别a的二分类器、对应于类别b的二分类器以及对应于类别c的二分类器。其中,对应于类别x(如类别a、b或c)的二分类器,具体用于将输入数据分类为属于“x”以及“非x”这两种类别中的类别之一,比如,对应于类别a的二分类器,则用于将输入数据分类为属于“a”以及“非a”这两种类别中的类别之一。

参考图3提供的本申请方案的多分类原理示意图,本实施例中,所述多分类器具体为ftrl类型的多分类器。对于ftrl类型的多分类器而言,可通过将离线数据输入ftrl算法进行多分类器的构建,更具体地,对于多分类器所需提供的多个分类类别(比如a、b、c三个类别)而言,在初始构建各个类别分别对应的二分类器时,可针对每个类别x(x为a、b或c)为其提供一个独立(独立于其他类别的ftrl算法)的ftrl算法,之后,通过向该类别x对应的ftrl算法输入各条离线数据,来训练出对应于该类别x的ftrl二分类器,其中,训练出的该ftrl二分类器具体用于将输入数据分类为属于“x”及“非x”这两种类别中的类别之一。

步骤203、若所述数据特征集中的特征数量达到所述第二预定阈值,则将所述数据特征集划分为多个特征子集,并利用所述预先标记有类别信息的多条离线数据,构建与各个特征子集一一对应的各个子多分类器;各个所述子多分类器构成多分类器;其中,所述多个子多分类器中的子多分类器与所述多个特征子集中的特征子集一一对应。

反之,若所述数据特征集中包含的特征数量较多,已达到所述第二预定阈值,则表示多分类的优化目标较为复杂,从而,为了降低多分类优化目标的复杂程度,以进一步降低后续多分类器的性能波动,则本实施例提出对所述数据特征集进行划分,将包含的特征数量较多的所述数据特征集,划分为多个具有少量特征的特征子集,以此来降低分类模型构建过程中的优化目标的复杂度。

其中,特征子集的划分通常需要考虑特征的分布,如果在数据空间上,数据特征集中各个特征之间是较离散的,各特征之间的相关度不大,且对分类效果来说也是充分冗余的,则此种情况下,可通过随机划分方法或者类别权重法对数据特征集进行子集划分。

随机划分方式的使用较简单,采用随机划分方式将数据特征集中包括的各个特征,均匀划分成多个特征子集(即各特征子集中的特征数量相同或基本相同)即可。

类别权重法由于分类更好的指导性而更易平滑在线算法中性能的波动,但该方法实现起来相对复杂。具体地,需首先基于预定算法利用离线数据训练分类模型,训练出的分类模型中保存了每个数据特征对每个类别的分类权重,在此基础上,可将各特征对每个类别的分类权重进行降序排列,并根据降序排序序列,将数据特征集均匀划分成多个特征子集。

其中,假设多分类的类别数目为l,数据特征集中包括的特征数量为n,需划分的特征子集的个数为m。则可以采用以下处理过程,实现将数据特征集均匀划分成多个特征子集:

1)将n个不同特征按其对每个类别的分类权重(也可称为贡献度)降序排列,得到l个排序序列,各个排序序列与各个分类类别一一对应,且每个排序序列中包括n个不同特征对该序列对应的相应类别的分类权重;

2)对所述l个排序序列进行多次遍历,直至所有特征均被划分到相应特征子集中为止,其中,在每一次遍历过程中:

每遍历到一个排序序列,按照该排序序列中分类权重降序的顺序依次取出m个未划分的特征,将取出的m个特征按预设顺序依次划分到m个特征子集中,即每个特征子集划分得到一个特征。

由于利用到了离线数据的分类训练,所以受离线数据的数据规模、数据在各个类别的样本均衡性、离线数据在数据空间是否充分且独立分布、分类算法的分类准确性和泛化能力等因素的影响,该方法需要充分考虑离线数据的收集和分类算法参数调优。在具体实施时,可基于一个分类方法按上述方式划分特征子集,也可以优选采用多个分类方法划分特征子集,并通过诸如投票法等方法对多个分类方法对应的划分结果进行综合分析及处理,得出最终的特征子集划分结果,本实施例对此不作限定。

其中,在采用投票法对各分类方法的分类结果进行综合处理时,可首先统计每个特征被划分在各个特征子集的票数,并最终将特征划分在票数最多的相应子集中,以下对采用投票法对多个分类方法的分类结果进行综合处理得到最终划分结果的处理过程进行举例说明。

假设特征集中共包含a~f六个特征,即{a;b;c;d;e;f},且需将其划分为两个特征子集:第一特征子集、第二特征子集。同时假设采用第一分类方法可将其划分为:第一特征子集{a;c;f}、第二特征子集{b;d;e};采用第二分类方法可将其划分为:第一特征子集{a;c;d}、第二特征子集{b;e;f};采用第三分类方法可将其划分为:第一特征子集{b;c;f}、第二特征子集{a;d;e}。在采用投票法对各分类方法的分类结果进行综合处理时,可首先统计每个特征被划分在第一特征子集及第二特征子集的票数,具体地,在该示例中,各特征被划分在第一特征子集、第二特征子集的票数分别为:a:<2,1>;b:<1,2>;c:<3,0>;d:<1,2>;e:<0,3>;f:<2,1>;从而,根据“将特征划分在票数最多的相应子集中”这一原则,最终可将特征集中包括的a~f六个特征划分为以下两个子集:{a;c;f}、{b;d;e}。

如果在数据空间上,数据特征集中的各个特征之间不够离散,或者特征之间具有语义关联,则不能只考虑特征对分类的分类权重,而是需要结合特征对分类的分类权重以及特征之间的关联度来划分特征子集。针对此种情况,具体可以采用一种或者多种特征工程的方法,例如最小冗余最大相关性(mrmr)算法,来最大化特征与分类之间的相关性,而最小化特征与特征之间的相关性,该算法通过计算特征与类别之间,以及特征与特征之间的互信息,可得到每个特征的一个得分,特征的得分越高则表示特征与分类之间相关性越大且与其他特征的相关性越小,进而在此基础上,可根据特征的得分进行特征子集的划分。

在将离线数据的数据特征集划分为多个特征子集的基础上,可重组离线数据,使得针对每个特征子集能够提供训练子多分类器所需的离线数据,在此基础上,利用离线数据,针对划分所得的每个特征子集,采用一对一(one-versus-one)方式为每个特征子集构建独立的子多分类器。所述子多分类器包括多个二分类器,其中,所述子多分类器包括的二分类器与所述子多分类器提供的多个类别中的类别一一对应。所述子多分类器具体可以是但不限于ftrl类型的子多分类器,在该子多分类器中,针对子多分类器提供的每个类别,均构建有与该类别相对应的一个二分类器。

所述重组离线数据是指,将重组前离线数据的面向数据特征集中所有特征的特征向量,重组为面向特征子集所包含的特征的特征向量,其中,重组前离线数据的面向数据特征集中所有特征的特征向量一般包括:数据特征集中各个特征与各特征取值间的对应关系,相对应地,在对离线数据进行重组后,所得到的面向特征子集所包含的特征的特征向量则包括:特征子集中各个特征与各特征取值间的对应关系。

以下进一步以一示例详细说明,假设数据特征集中共包含a~f六个特征,重组前某离线数据的特征向量表示为{a:a1;b:b1;c:c1;d:d1;e:e1;f:f1},其中,a1~f1分别为该离线数据在特征a~f上的取值,同时,假设划分后的各特征子集中某一特征子集包含特征a、c、f,则重组后,该离线数据针对该特征子集的特征向量可表示为{a:a1;c:c1;f:f1}。

在对离线数据的特征集进行子集划分得到多个特征子集,并基于划分所得的特征子集对离线数据进行重组后,可针对每个特征子集,利用相对应的重组后的离线数据,训练该特征子集对应的子多分类器。

以下以一个具体示例来对每个特征子集对应的子多分类器的训练过程进行阐述。仍以上文中特征集中共包含a~f六个特征为例,即{a;b;c;d;e;f},假设将其划分为两个特征子集{a;c;f}、{b;d;e},且假设共有p条离线数据,每条离线数据对应的特征集可表示为{a:ai;b:bi;c:ci;d:di;e:ei;f:fi},其中,i∈[1,p],且i为整数,则对各离线数据进行重组后,可得到对应于特征子集{a;c;f}的p条离线数据,以及对应于特征子集{b;d;e}的p条离线数据,其中,对应于特征子集{a;c;f}的p条离线数据的特征可表示为{a:ai;c:ci;f:fi},对应于特征子集{b;d;e}的p条离线数据的特征可表示为{b:bi;d:di;e:ei}。

在此基础上,可对各特征子集对应的子多分类器进行训练。本实施例中,所述子多分类器包括与所述子多分类器提供的多个分类类别一一对应的多个二分类器,假设待训练的子多分类器需提供三个分类类别a、b、c,则对应于特征子集{a:ai;c:ci;f:fi}的子多分类器的训练过程如下:针对所述a、b、c三个分类类别,分别为其一一提供相互独立的ftrl算法,其中对于类别x(a、b或c),可通过将p条具有特征{a:ai;c:ci;f:fi}的离线数据分别输入该类别x对应的ftrl算法中实现模型训练,从而得到类别x对应的二分类器,在通过模型训练得到a、b、c这三个类别分别对应的二分类器后,该三个类别的二分类器构成特征子集{a:ai;c:ci;f:fi}对应的子多分类器;特征子集{b:bi;d:di;e:ei}对应的子多分类器的训练过程,与特征子集{a:ai;c:ci;f:fi}对应的子多分类器的训练过程类似,此处不再详述。

本实施例在预处理阶段构离线建多分类器主要是基于这样的考虑:在线算法ftrl也利用了随机梯度下降法,其本质上是对随机梯度下降的改进,随机梯度下降法本身有较大的随机性,从而在算法运行的初始阶段会有明显的性能抖动,为此,本实施例提出在预处理阶段先通过离线数据训练预置的多分类器,以此来解决算法运行初始阶段的性能抖动。

本发明接下来的实施例继续对预处理阶段的处理过程进行补充,参考图4提供的预处理阶段的处理流程示意图,所述预处理阶段的处理过程还可以包括:

步骤204、利用所述多分类器或者所述各个子多分类器,对各条所述离线数据进行分类,得到各离线数据的多分类结果;其中,离线数据的多分类结果至少包括所述离线数据所属的类别,以及属于所述类别的置信度。

在利用离线数据构建得到所述多分类器或者各个子多分类器后,本实施例继续利用构建的多分类器或者各个子多分类器对各条离线数据进行分类,并根据多分类结果得出每条离线数据所属的类别以及属于该类别的置信度。

步骤205、根据各离线数据的多分类结果,从所述离线数据中抽取出每个分类类别中按置信度递减顺序确定出的前预定数目的离线数据,得到预先抽样集合。

本步骤具体根据每条离线数据所属的类别以及属于该类别的置信度,从离线数据中抽取出每个分类类别中置信度最高的前预定数目的数据并保存,得到预先抽样集合。

本实施例所得到的预先抽样集合旨在解决在线多分类阶段中因向多分类器输入的各类别在线数据在数量上过于不均衡,而导致的多分类器调整频率过低、进而不能保障调整的实时性的问题,该部分内容将在后续的另一个实施例中展开阐述。

根据以上实施例提供的预处理过程可知,在离线数据(即多分类器的训练数据)的特征数量未达到所述第二预定阈值,从而无需对离线数据的数据特征集进行子集划分的情况下,所构建的多分类器具体包括多个二分类器,那么,针对该情况,在线多分类阶段所采用的多分类器也相应地包括多个二分类器。在本申请提供了又一实施例,旨在针对多分类器的此种结构组成,对利用多分类器对在线数据进行分类的分类过程进行说明。

其中,在线多分类阶段所采用的所述多分类器,在在线多分类阶段初始时本质上即为预处理阶段构建的所述多分类器,而在非初始情况下则为对预处理阶段构建的所述多分类器进行相应的在线调整后所得的分类器。相对应地,所述多分类器中包括的多个二分类器在在线多分类阶段初始时即为预处理阶段构建的所述多个二分类器,在非初始情况下则为对预处理阶段构建的所述多个二分类器进行相应的在线调整后所得的二分类器。

在具体实施本申请的过程中,对于ftrl类型的多分类器而言,可在初始进入在线多分类阶段时,加载离线构建的多分类器给在线ftrl分类算法,以此得到在线多分类阶段初始时所需的ftrl多分类器。

在数据特征数量未达到第二预定阈值的情况下,参考图5示出的多分类器的在线调整方法流程图,该方法中,所述步骤101(利用预先构建的多分类器对所述在线数据进行分类,得到多分类结果),具体可以通过以下的处理过程实现:

步骤1011、利用所述多个二分类器分别对所述在线数据进行分类,得到所述在线数据的多个二分类结果。

鉴于该情况下,所述多分类器包括多个二分类器,从而在利用该多分类器对在线数据进行分类时,具体地需将在线数据输入该多分类器包括的每个二分类器中,即利用每个二分类器对在线数据进行二分类,从而得到对应于多个二分类器的多个二分类结果。每个二分类器提供的二分类结果至少包括在线数据所属的类别以及属于该类别的置信度,比如可以直接给出在线数据所属的类别以及属于该类别的置信度,或者也可以包括在线数据对应于各个类别(二分类提供的各个类别)的置信度。

步骤1012、根据所述多个二分类结果,获得所述在线数据的多分类结果。

在得到各个二分类器的二分类结果后,可综合每个二分类器的分类结果提供的分类类别及置信度,采用投票法或者集成分类器再判定的方法等,得出在线数据的最终分类结果。

以下以投票法为例,对综合每个二分类器的分类结果得到在线数据的最终分类结果的处理过程进行说明。

假设多分类器共提供有a、b、c三个分类类别,则该多分类器相应地包括分别与各个类别一一对应的三个二分类器1、2、3,假设在将当前待处理的一条在线数据输入二分类器1后,产生二分类结果:a:30%,非a:70%,相对应地,假设该在线数据输入二分类器2、3后,分别得到二分类结果:b:90%,非b:10%;c:60%,非c:40%,其中,该示例中的各个百分比数值为在线数据属于相应类别的置信度数值。

则在利用投票法对各二分类器的二分类结果进行综合处理时,可首先统计在线数据被分类至各个类别的票数,在以上示例中,根据三个二分类器的上述分类结果,可知该在线数据被分类至类别a、b、c的票数分别为0、1、1,在此基础上,可筛选出票数最多的类别作为在线数据的最终类别,其中,如果筛选出的票数最多的类别多于一个,则可从筛选出的各类别中选取出对应的置信度最高的类别作为在线数据的最终类别,比如,在上述示例中,在线数据对应的票数最多的类别为类别b及类别c,而对应于类别b的置信度为90%,对应于类别c的置信度为60%,从而,最终可确定出在线数据所属的类别为b。

鉴于本实施例中多分类器的结构组成,后续在利用缓存的符合预定数量条件的各个类别数据对多分类器进行调整时,具体是对多分类器中包括的多个二分类器进行调整。

与上述实施例中描述的情况相反,在离线数据的特征数量达到所述第二预定阈值,从而将离线数据的数据特征集划分为多个特征子集的情况下,所构建的多分类器具体包括多个子多分类器,且每个子多分类器包括多个二分类器,那么,针对该情况,在线多分类阶段所采用的多分类器也相应地包括多个子多分类器,且每个子多分类器包括多个二分类器。在本申请提供了又一实施例,旨在针对多分类器的此种结构组成,对利用多分类器对在线数据进行分类的分类过程进行说明。

其中,在线多分类阶段所采用的多分类器中包括的所述子多分类器,在在线多分类阶段的初始时本质上即为预处理阶段构建的所述子多分类器,而在非初始情况下则为对预处理阶段构建的所述子多分类器进行相应的在线调整后所得的分类器。相对应地,在线多分类阶段所采用的子多分类器中包括的多个二分类器,在在线多分类阶段初始时即为预处理阶段构建的相应子多分类器中包括的多个二分类器,在非初始情况下则为对预处理阶段构建的所述多个二分类器进行相应的在线调整后所得的二分类器。

在具体实施本申请的过程中,对于ftrl类型的多分类器而言,可在初始进入在线多分类阶段时,加载离线构建的各个子多分类给相应的在线ftrl分类算法,以此得到在线多分类阶段初始时所需的ftrl类型的多分类器。

且在具体实施时,可进一步判断需部署的各个子多分类器的数量是否超出一定数量,如果超出则可采用分布式部署方式来部署各个子多分类器,以满足在线训练、调整多分类器的实时性要求,否则,则可采用集中部署方式对各个子多分类器进行部署。

在离线数据的数据特征数量达到第二预定阈值的情况下,可通过将在线数据分别输入多分类器包括的多个子多分类器中,以分别利用所述多个子多分类器对在线数据进行分类,得到各个子多分类器的多分类结果;并根据各个子多分类器的多分类结果,获得所述在线数据的多分类结果。

更具体地,参考图6示出的多分类器的在线调整方法流程图,该方法中,所述步骤101(利用预先构建的多分类器对所述在线数据进行分类,得到多分类结果),具体可以通过以下的处理过程实现:

步骤1013、利用每个子多分类器包括的多个二分类器分别对所述在线数据进行分类,得到每个子多分类器对应的一套二分类结果。

由于该情况下,所述多分类器包括多个子多分类器,且每个子多分类器包括多个二分类器,从而在利用该多分类器对在线数据进行分类时,具体地需将在线数据输入该多分类器包括的每个子多分类器的每个二分类器中,即利用每个子多分类器的一套二分类器对在线数据进行二分类,从而得到每个子多分类器对应的一套二分类结果。每个二分类器提供的二分类结果至少包括在线数据所属的类别及属于该类别的置信度。

步骤1014、根据多个子多分类器对应的多套二分类结果,获得所述在线数据的多分类结果。

在得到每个子多分类器的一套二分类结果后,可综合各个子多分类器的多套二分类结果提供的分类类别及置信度,采用投票法或者集成分类器再判定的方法等,得出在线数据的最终分类结果。

以采用投票法对各个子多分类器的多套二分类结果进行综合处理为例,可首先统计在线数据在多套二分类结果中被划分至各个类别的票数,并进一步选取出票数最多的类别作为在线数据的最终类别,其中,对于票数最多的类别包括多个类别的情况,可综合考虑各票数最多的类别对应的综合置信度,从中选取出对应的综合置信度最高的类别作为在线数据的最终类别。

举例而言,假设多分类器提供有a、b、c三个类别,且多分类器共包括两个子多分类器,则每个子多分类器均包括与类别a、b、c一一对应的三个二分类器;同时假设当前的一条在线数据输入多分类器的每个二分类器后得到以下的分类结果:

第一子多分类器:a:30%,非a:70%;b:90%,非b:10%;c:60%,非c:40%;

第二子多分类器:a:25%,非a:75%;b:80%,非b:20%;c:55%,非c:45%;

则可统计出在线数据分别属于a、b、c各类别的票数为0,2,2。其中,票数最多的类别为b、c,此时,可结合考虑在线数据属于b、c的综合置信度来确定出在线数据的最终类别,比如,在线数据属于b的综合置信度可表示为(90%+80%)/2,即85%,属于b的综合置信度可表示为(60%+55%)/2,即57.5,从而,可最终确定出在线数据所属的类别为b。

鉴于本实施例中多分类器的结构组成,在利用缓存的符合预设数量条件的各个类别数据对多分类器进行调整时,具体是对多分类器包括的多个子多分类器中各个二分类器的调整。

针对特征数据集中的特征数量较多(即优化目标较复杂)的情况,通过将特征数据集划分为多个子集,并相应地,针对划分所得的多个子集,将多分类器构建为包括多个子多分类器以及对多个子多分类器进行在线调整的方式,可有效降低多分类问题中优化目标的复杂度,从而可进一步降低多分类问题中分类模型的性能波动。

以上各实施例从不同层面或角度对本申请提供的多分类器的在线调整方法进行了阐述,接下来的实施例将继续针对本申请的多分类器的在线调整方法,提供该方法中包括的缓存处理过程的一种可能的实现方式。

在本实施例的方式中,优选的,所述预设数量条件可以为:所述预定缓存单元中的各缓存子单元所缓存数据的数量全部达到第一预定数量,以最大程度地保证多分类器的在线调整所采用的各类别数据在数量上具有均衡性,进而降低多分类问题中分类模型的性能波动。

在此基础上,参考图7,所述步骤103优选的可以通过以下的处理过程实现:

步骤1031、在所述缓存子单元中所缓存的数据量未达到所述第一预定数量时,或者,在所述缓存子单元中所缓存的数据量达到所述第一预定数量,且所述缓存子单元缓存的数据中存在至少一条数据的置信度低于所述在线数据的置信度时,将所述在线数据缓存入所述缓存子单元。

本实施例旨在使得缓存单元包括的各个缓存子单元中所缓存的数据,为相应类别的高置信度数据;也就是说,本申请在根据在线数据的多分类结果对在线数据进行缓存处理时,在缓存单元的各个缓存子单元中具体缓存的是各个类别中置信度最高的一系列数据,以保证在利用缓存数据进行多分类器的调整时所采用的各类别数据具有较高的参考价值。

在实际实施过程中,在对输入的每条在线数据进行分类,得到多分类结果后,可根据多分类结果表征的该条数据所属的类别以及属于该类别的置信度,通过对该条数据执行以下的缓存处理过程,来确保各个缓存子单元缓存的数据为相应类别的高置信度数据:

a)判断在线数据所属的类别对应的缓存子单元中的缓存数据是否达到所述第一预定数量,或者在预先设定各缓存子单元的最大存储能力即为所述第一预定数量的前提下,也可直接判断所述缓存子单元的缓存是否已满;

本实施例中,各缓存子单元中的数据优选地按置信度降序的顺序排列;

b)若缓存的数据已达到所述第一预定数量,或者缓存已满,则可将该条在线数据的置信度与所述缓存子单元中已存入数据的置信度进行比较,若该条数据的置信度低于缓存子单元中该类别已存入数据的置信度,则不对该条数据进行缓存;否则,则将该条数据按置信度降序顺序插入至缓存子单元中数据序列的相应位置,并清除该缓存子单元数据序列中的最后一个数据。

c)若缓存的数据未达到所述第一预定数量,或者缓存未满,则可将该条数据按置信度降序的顺序添加在缓存子单元数据序列的相应位置,比如插入至缓存子单元中数据序列的相应位置,或者添加在数据序列的末尾等。

后续(参考图7中的步骤1041),可在各缓存子单元中缓存的数据数量全部达到所述第一预定数量时,利用各缓存子单元缓存的各类别数据,对多分类器进行调整。

本实施例通过在各缓存子单元所缓存数据的数量全部达到第一预定数量时,再利用各个缓存子单元中缓存的数据对多分类器进行调整,有效降低了多分类器的调整频率,且通过在各缓存子单元中缓存高置信度的各类别数据,可有效保证在利用缓存数据进行多分类器的调整时所采用的各类别数据具有较高的参考价值,进而可有效提升多分类器的分类准确度。

发明人在研究过程中发现,在在线多分类阶段,如果向多分类器输入的各类别在线数据在数量上过于不均衡,会导致需要较长时间才能使得缓存单元中缓存的各类别数据符合预设数量条件,相应地会导致多分类器调整频率过低,从而难以保证多分类器调整的实时性。本申请接下来的实施例将针对该问题给予以下的解决方案:

在该实施例中,参考图8示出的多分类器的在线调整方法流程图,所述方法还包括以下步骤:

步骤105、在所述预定缓存单元中的各缓存子单元所缓存的数据量未全部达到第一预定数量时,判断向所述多分类器输入的在线数据的数量是否达到第二预定数量。

为解决上述问题,本实施例中,在判断出所述预定缓存单元中的各缓存子单元所缓存数据的数量未全部达到第一预定数量的情况下,继续判断向所述多分类器中输入的在线数据的数量是否达到第二预定数量,以此确定是否已向多分类器输入了足够多的在线数据。

其中,所述第二预定数量,可由技术人员依据经验并结合多分类器的实际实时性调整需求进行预先设定。

步骤106、若达到,则针对缓存量未达到第一预定数量的每个缓存子单元,从所述预先抽样集合中抽取符合所述缓存子单元的数据类别的相应数量离线数据,并将抽取的所述相应数量离线数据添加至所述缓存子单元中,以使得每个缓存子单元的缓存量达到所述第一预定数量;利用各个缓存子单元中缓存的相应类别的第一预定数量的数据,对所述多分类器进行调整。

若判断结果表示向多分类器输入的在线数据已达到所述第二预定数量,则表示已向所述多分类器输入了足够多的在线数据,在输入在线数据足够多的此种情况下,所述缓存单元中某类别/某些类别的缓存数据量仍未达到所述第一预定数量,具体是由于向多分类器中输入的各类别在线数据的数据量过于不均衡所导致的。

针对该情况,为了保证多分类器在线调整的实时性和有效性,本实施例提出,对于缓存量未达到所述第一预定数量的相应分类类别,从预处理阶段生成的预先抽样集合中随机抽取所需数量的离线数据,并将抽取的该类别离线数据添加至该类别的缓存子单元中,以使得该缓存子单元中缓存的该类别数据量达到所述第一预定数量。

即对于缓存量未达到所述第一预定数量的相应分类类别而言,当在线数据的输入量足够多(达到所述第二预定数量)时,不再继续等待后续输入的相应类别的高置信度在线数据来填充缓存,而是直接从预处理阶段生成的预先抽样集合中抽取相应量的离线数据,来使得各类别数据的缓存量达到所述第一预定数量。

在此基础上,可直接利用所述第一预定数量的每个类别的缓存数据(可能仅包括在线数据,也可能同时包括在线及离线数据),对分类器进行调整。从而,之后可基于调整后的多分类器等待下一条在线数据的输入。

步骤107、若未达到,则基于当前的所述多分类器等待下一条在线数据的多分类处理过程。

若判断结果表示向多分类器输入的在线数据未达到所述第二预定数量,则表示还未向所述多分类器输入足够多的在线数据,从而,不需采用上述基于抽取离线数据的方式,来对缓存单元的相应类别进行数据填充,而是继续基于当前的多分类器等待下一条在线数据的输入即可。

这里,需要说明的是,在实际实施时,对于上述因各类别输入数据过于不均衡,而导致需要利用离线数据填充缓存的情况,可进一步结合考虑缓存中需填充的某类别数据量与所述第一预定数量的比例,若该比例较小,则可直接从所述预先抽样集合中随机抽取所需的全部差量数据,以满足该类别缓存的填充需求,而如果该比例较大,则可按合适的比例从所述预先抽样集合及缓存(其他类别的缓存数据)中分别抽取相应量的差量数据,以满足该类别缓存的填充需求。

本实施例通过在预处理阶段生成预先采样集合,使得在向多分类器输入的在线数据类别过于不均衡时,可结合采用缓存的在线数据以及从预先采样集合中抽取的离线数据对多分类器进行及时调整,有效保证了多分类器调整的实时性和有效性。

在利用缓存单元包括的各个缓存子单元中的数据对多分类器进行调整后,后续的多分类器调整过程不再需要这些数据,鉴于此,本申请在接下来的又一个实施例中提出在完成对多分类器的调整之后,对缓存单元执行相应的缓存清除处理,以节约所缓存的数据对缓存空间的占用。

在本实施例中,参考图9示出的本申请的多分类器的在线调整方法流程图,所述方法还可以包括以下步骤:

步骤108、在完成对所述多分类器的调整之后,清空所述缓存单元包括的各个缓存子单元中的数据。

具体地,在利用缓存单元中缓存的各类别数据(可能仅包括在线数据,也可能同时包括在线数据及抽取的离线数据)完成对多分类器的调整后,本实施例清空所述缓存单元包括的各个缓存子单元中的数据,以使得为后续一轮的数据缓存提供所需的缓存空间。

在通过以上各实施例对本申请提供的多分类器的在线调整方法进行说明的基础上,接下来的实施例继续提供一种与所述多分类器的在线调整方法相对应的多分类器的在线调整装置。

参考图10示出的多分类器的在线调整装置的结构示意图,该装置可以包括:

分类模块100,用于利用预先构建的多分类器对当前待处理的在线数据进行分类,得到所述在线数据的多分类结果;

确定模块200,用于根据所述在线数据的多分类结果,确定所述在线数据所属的类别;

缓存模块300,用于在所述在线数据符合预设缓存条件时,将所述在线数据缓存入预定缓存单元中与所述在线数据所属的类别对应的缓存子单元;

分类器调整模块400,用于在所述预定缓存单元中的各缓存子单元所缓存数据的数量符合预设数量条件时,利用各个缓存子单元中缓存的数据,对所述多分类器进行调整;所述预设数量条件包括:所述各缓存子单元中任两个缓存子单元所缓存数据的数量差值不超过预定阈值。

在本申请实施例的一实施方式中,参考图11,所述装置还包括

预处理模块,用于:获得预先标记有类别信息的多条离线数据,并获得所述离线数据对应的数据特征集;若所述数据特征集中的特征数量未达到第二预定阈值,则利用所述预先标记有类别信息的多条离线数据,构建多分类器;若所述数据特征集中的特征数量达到所述第二预定阈值,则将所述数据特征集划分为多个特征子集,并利用所述预先标记有类别信息的多条离线数据,构建多个子多分类器,各个所述子多分类器构成多分类器;其中,所述多个子多分类中的子多分类器与所述多个特征子集中的特征子集一一对应。

在本申请实施例的一实施方式中,所述预处理模块在数据特征集中的特征数量未达到第二预定阈值时,构建的所述多分类器包括多个二分类器,其中,所述多分类器包括的二分类器与所述多分类器提供的多个类别中的类别一一对应;所述预处理模块构建的所述子多分类器包括多个二分类器,其中,所述子多分类器包括的二分类器与所述子多分类器提供的多个类别中的类别一一对应。

在本申请实施例的一实施方式中,所述分类模块,具体用于:

将在线数据分别输入多分类器包括的多个子多分类器中,以分别利用所述多个子多分类器对在线数据进行分类,得到各个子多分类器的多分类结果;根据各个子多分类器的多分类结果,获得所述在线数据的多分类结果。

在本申请实施例的一实施方式中,所述分类模块,具体用于:

利用每个子多分类器包括的多个二分类器分别对所述在线数据进行分类,得到每个子多分类器对应的一套二分类结果;根据多个子多分类器对应的多套二分类结果,获得所述在线数据的多分类结果。

在本申请实施例的一实施方式中,所述调整模块,具体用于:

在所述预定缓存单元中的各缓存子单元所缓存的数据量均达到第一预定数量时,利用各个缓存子单元中缓存的数据,对所述多分类器进行调整。

在本申请实施例的一实施方式中,所述缓存模块,具体用于:

在所述缓存子单元中所缓存的数据量未达到所述第一预定数量时,或者,在所述缓存子单元中所缓存的数据量达到所述第一预定数量,且所述缓存子单元缓存的数据中存在至少一条数据的置信度低于所述在线数据的置信度时,将所述在线数据缓存入预定缓存单元中与所述在线数据所属的类别对应的缓存子单元。

在本申请实施例的一实施方式中,所述预处理模块还用于:

利用所述多分类器或者所述各个子多分类器,对各条所述离线数据进行分类,得到各离线数据的多分类结果;其中,离线数据的多分类结果至少包括所述离线数据所属的类别,以及属于所述类别的置信度;根据各离线数据的多分类结果,从所述离线数据中抽取出每个分类类别中按置信度递减顺序确定出的前预定数目的离线数据,得到预先抽样集合。

在本申请实施例的一实施方式中,参考图12,所述装置还包括:

缓存调整模块,用于:在所述预定缓存单元中的各缓存子单元所缓存的数据量未全部达到第一预定数量时,判断向所述多分类器输入的在线数据的数量是否达到第二预定数量;若达到,则针对缓存量未达到第一预定数量的每个缓存子单元,从所述预先抽样集合中抽取符合所述缓存子单元的数据类别的相应数量离线数据,并将抽取的所述相应数量离线数据添加至所述缓存子单元中,以使得每个缓存子单元的缓存量达到所述第一预定数量,并使得利用各个缓存子单元中缓存的相应类别的第一预定数量的数据,对所述多分类器进行调整;若未达到,则触发利用所述多分类器对下一条在线数据进行多分类处理。

在本申请实施例的一实施方式中,参考图13,所述装置还包括:

缓存清除模块,用于在完成对所述多分类器的调整之后,清空所述缓存单元包括的各个缓存子单元中的数据。

此处,需要说明的是,本实施例涉及的多分类器的在线调整装置的描述,与上文方法的描述是类似的,且同方法的有益效果描述,对于本申请的多分类器的在线调整装置在本实施例中未披露的技术细节,请参照本申请方法实施例的说明,本实施对此不再作赘述。

另外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当所述指令在终端设备上运行时,使得所述终端设备执行本申请实施例中提供的多分类器的在线调整方法。

本申请实施例还提供一种电子设备,该电子设备包括:存储器,处理器,及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现本申请实施例中提供的多分类器的在线调整方法。该电子设备可以是计算机设备。

需要说明的是,对于本申请中所涉及的第一预定数量、第二预定数量、预定阈值等数值型特征而言,在实施本申请方案时,可由技术人员根据经验或根据多分类中的实际需求自行设定,本申请对其不作限定。

综上所述,本申请的在线多分类方案具有以下优势:

1)本申请通过缓存分类后的各类别数据,并利用缓存的满足预设数量条件的各类别数据对多分类器进行调整,保证了多分类器(如ftrl多分类器)的在线模型调整过程中所采用的各类别数据的均衡性,可有效降低多分类器的性能波动。且在缓存单元中缓存的是各类别中置信度最高的一系列数据的情况下,可进一步减少多分类器调整过程中可能引入的噪声,提高了多分类器的运行效率;

2)通过在预处理阶段生成预先采样集合,使得当在在线多分类阶段向多分类器输入的在线数据类别过于不均衡时,可结合采用缓存的在线数据以及从预先采样集合中抽取的离线数据对多分类器进行及时调整,有效保证了多分类器调整的实时性和有效性;

3)多分类器采用一对一(one-versus-one)的构建方法(即以一对一方式利用ftrl算法构建多分类器的子分类器),使得每个二分类器中数据样本不会过于不均衡,虽然比一对多(one-versus-all)方法构建多分类器性能稍低,但可以通过将数据特征集划分为多个特征子集,并针对每个特征子集建立一个独立的子多分类器,各个子多分类器采用分布式的方式来提高性能,以满足在线训练、调整多分类器的实时性要求。

需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1