一种模型训练以及联机分析处理方法及装置与流程

文档序号:24531090发布日期:2021-04-02 10:10阅读:48来源:国知局
一种模型训练以及联机分析处理方法及装置与流程

本申请涉及数据处理技术领域,尤其涉及一种模型训练以及联机分析处理方法及装置。



背景技术:

联机分析处理(onlineanalyticalprocess,olap)是一种使用户能够从多种角度对原始数据中转化出来的信息进行快速、一致、交互的存储,从而获得对数据更深入了解的一类软件技术。并且基于存储方式的不同有多种实现方式,其中,以多维数组存储的多维olap(multidimensionalolap,molap)是一种主要的实现方式。

目前,基于molap的方式进行数据分析时,需要从数据仓库中获取待分析的多维数据,并基于各不同维度组合以及不同维度组合下的度量,进行预计算,将预计算的结果存储为"立方体cube"的结构,后续基于molap进行数据查询时,便可直接查询各cube对应的多维数据。其中,n个维度存在2n种不同的维度组合。

进一步的,随着数据的维度增多,维度组合的数量也呈几何级数增长,molap构建cube的时间复杂度也越高。而用户在进行数据分析时,往往只涉及特定的维度组合,因此现有技术中为了减少cube的构建时长,还需人为对各维度组合进行“剪枝”处理。其中,常用方法有:基于聚合组、必需维度、层级维度以及联合维度等规则处理。

以设置必需维度进行“剪枝”处理为例进行说明,假设待分析的数据可基于a、b、c三种不同维度进行分析,则各不同维度之间进行组合的方式有8种,分别为a、b、c、ab、ac、bc、abc。其中,a为人为设置的必需维度。则进行“剪枝”处理时,可从确定出的8种维度组合中,筛选出包含a这一必需维度的维度组合,即,a、ab、ac、abc,并基于筛选出的各维度组合构建数据立方体cube。



技术实现要素:

本说明书实施例提供一种模型训练以及联机分析处理方法及装置,解决了现有技术中需要人工手动设置“剪枝”规则,对各维度组合进行筛选,导致构建数据立方体灵活性较差以及准确度较低的问题。

本说明书实施例采用下述技术方案:

本说明书提供的一种模型训练方法,包括:

从数据立方体包含的各维度组合中,确定用户在预设时长内已查询的若干维度组合,并确定与所述维度组合相近的若干其它维度组合;

将确定出的维度组合以及其它维度组合作为训练样本,并根据所述用户在所述预设时长的第一时段内的查询信息,对各训练样本进行标注,所述标注信息包含正样本或者负样本;

根据所述用户在所述预设时长的第二时段内的查询信息,确定各训练样本在预设的各特征维度上的特征值,并根据确定出各特征值,分别确定各训练样本的特征向量,所述特征维度至少包含被查询的次数;

针对每个训练样本,将该训练样本的特征向量输入待训练的分类模型中,确定所述分类模型输出的维度组合类型;

以最小化所述分类模型输出的维度组合类型与所述训练样本的标注之间的差异为目标,调整所述分类模型中的模型参数,所述分类模型用于预测用户待查询的维度组合,以预先基于预测的维度组合构建数据立方体。

可选地,确定与所述维度组合相近的若干其它维度组合,具体包括:

针对在预设时长内已查询的每个维度组合,从所述数据立方体包含的不属于已查询的各维度组合中,确定与该维度组合相差预设维度数量的维度组合,作为与该维度组合相近的其它维度组合。

可选地,所述方法还包括:

确定在预设时长内已查询的维度组合的数量,以及所述其它维度组合的数量;

判断所述已查询的维度组合的数量与所述其它维度组合的数量的比值是否符合预设比值条件;

若是,则已确定出全量的其它维度组合;

若否,则增大预设维度数量,重新针对已查询的每个维度组合,从所述数据立方体包含的各维度组合中,确定与该维度组合相差预设维度数量的维度组合,并根据重新确定出的维度组合,更新与该维度组合相近的其它维度组合,直至所述已查询的维度组合的数量与所述其它维度组合的数量的比值符合预设比值条件为止。

可选地,所述第二时段早于所述第一时段;

根据所述用户在所述预设时长的第二时段内的查询信息,确定各训练样本在预设的各特征维度上的特征值,具体包括:

针对每个训练样本,根据所述用户在所述预设时长的第二时段内的查询信息,确定该训练样本在所述第二时段内被查询的次数;和/或

确定该训练样本在所述第二时段内被查询的用户数;和/或

确定与该训练样本相近的其它训练样本在所述第二时段内是否被查询;和/或

确定该训练样本与其它训练样本的相关性;和/或

确定该训练样本在所述第二时段的数据分布,与在所述第一时段的数据分布之间的差异;

根据确定出该训练样本在预设的各特征维度上的特征值,确定该训练样本的特征向量。

本说明书提供的一种联机分析处理方法,包括:

获取构建数据立方体所需的业务数据,所述业务数据为包含若干不同维度的多维数据;

确定用户在预设时长内针对所述业务数据查询的若干维度组合;

根据所述用户在所述预设时长内第二时段的查询信息,确定各维度组合在预设的各特征维度上的特征值,并根据确定出的各特征值,确定各维度组合的特征向量;

将各维度组合的特征向量分别输入预先训练的分类模型中,确定所述分类模型输出的各维度组合的分类结果,其中,所述分类模型基于上述权利要求1~4任一所述的方法进行训练;

根据获取到的业务数据,确定分类结果属于正样本的各维度组合的度量值,并根据确定出的各属于正样本的维度组合及其度量值,构建数据立方体;

当接收到所述用户发送的查询请求时,根据所述查询请求中包含的维度组合,从已构建的数据立方体中确定对应所述维度组合的度量值,并将确定出的度量值返回至所述用户。

可选地,所述方法还包括:

根据用户在所述数据立方体构建后查询的维度组合,以及预先训练的分类模型中模型参数,更新所述分类模型。

可选地,所述方法还包括:

判断所述分类结果中属于正样本的维度组合的数量是否大于预设值;

若是,按照各维度组合属于正样本的置信度,从中确定出符合预设值的维度组合;

若否,根据属于正样本的维度组合的数量与预设值之差,从历史上最近一次确定出的正样本中,确定符合所述差值的正样本。

本说明书提供一种模型训练装置,包括:

第一确定模块,从数据立方体包含的各维度组合中,确定用户在预设时长内已查询的若干维度组合,并确定与所述维度组合相近的若干其它维度组合;

标注模块,将确定出的维度组合以及其它维度组合作为训练样本,并根据所述用户在所述预设时长的第一时段内的查询信息,对各训练样本进行标注,所述标注信息包含正样本或者负样本;

第二确定模块,根据所述用户在所述预设时长的第二时段内的查询信息,确定各训练样本在预设的各特征维度上的特征值,并根据确定出各特征值,分别确定各训练样本的特征向量,所述特征维度至少包含被查询的次数;

输入模块,针对每个训练样本,将该训练样本的特征向量输入待训练的分类模型中,确定所述分类模型输出的维度组合类型;

调整模块,以最小化所述分类模型输出的维度组合类型与所述训练样本的标注之间的差异为目标,调整所述分类模型中的模型参数,所述分类模型用于预测用户待查询的维度组合,以预先基于预测的维度组合构建数据立方体。

本说明书提供一种联机分析处理装置,包括:

获取模块,获取构建数据立方体所需的业务数据,所述业务数据为包含若干不同维度的多维数据;

维度组合确定模块,确定用户在预设时长内针对所述业务数据查询的若干维度组合;

特征向量确定模块,根据所述用户在所述预设时长内第二时段的查询信息,确定各维度组合在预设的各特征维度上的特征值,并根据确定出的各特征值,确定各维度组合的特征向量;

输入模块,将各维度组合的特征向量分别输入预先训练的分类模型中,确定所述分类模型输出的各维度组合的分类结果,其中,所述分类模型基于上述权利要求1~4任一所述的方法进行训练;

构建模块,根据获取到的业务数据,确定分类结果属于正样本的各维度组合的度量值,并根据确定出的各属于正样本的维度组合及其度量值,构建数据立方体;

查询模块,当接收到所述用户发送的查询请求时,根据所述查询请求中包含的维度组合,从已构建的数据立方体中确定对应所述维度组合的度量值,并将确定出的度量值返回至所述用户。

本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述模型训练方法或者联机分析处理方法。

本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述模型训练方法或者联机分析处理方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

在本说明书中,可先从数据立方体包含的各维度组合中,确定用户在预设时长内已查询的若干维度组合,以及与该维度组合相近的若干其它维度组合。其次,将确定出的维度组合以及其它维度组合作为训练样本,并根据该用户在预设时长的第一时段内的查询信息,对各训练样本进行标注。之后,根据该用户在预设时长的第二时段内的查询信息,确定各训练样本在预设的各特征维度上的特征向量。然后,针对每个训练样本,将该训练样本的特征向量输入待训练的分类模型中,确定该分类模型输出的维度组合类型。最后,以最小化该分类模型输出的维度组合类型与该训练样本的标注之间的差异为目标,调整该分类模型中的模型参数,以通过该分类模型预测用户待查询的维度组合,预先构建数据cube。基于用户在预设时长内已查询的维度组合以及相近的其它维度组合,作为训练样本进行模型训练得到分类模型,并通过分类模型对用户待查询的维度组合进行预测,以基于预测得到的维度组合构建数据cube,提高了构建数据cube的灵活性以及准确度。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本说明书实施例提供的一种数据立方体的结构示意图;

图2a为本说明书实施例提供的一种包含各维度组合的树形结构示意图;

图2b为本说明书实施例提供的一种基于聚合组剪枝对应的树形结构示意图;

图3为本说明书实施例提供的一种基于必需维度剪枝对应的树形结构示意图;

图4为本说明书实施例提供的一种基于联合维度剪枝对应的树形结构示意图;

图5为本说明书实施例提供的一种模型训练方法的流程示意图;

图6为本说明书实施例提供的一种联机分析处理方法的流程示意图;

图7为本说明书实施例提供的一种模型训练装置的结构示意图;

图8为本说明书实施例提供的一种联机分析处理装置的结构示意图;

图9为本说明书实施例提供的实现模型训练以及联机分析处理方法的电子设备示意图。

具体实施方式

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

以下结合附图,详细说明本申请各实施例提供的技术方案。

olap是一种使用户从多种角度快速分析数据的技术。基于数据存储格式的不同,主要分为多维olap(multidimensionalolap,molap)、关系型olap(relationalolap,rolap)以及混合olap(hybridolap,holap)。

其中,molap是以多维数组的方式进行存储的olap方法,可预先根据用户定义的各数据维度以及度量值,对待分析的多维数据进行聚合计算,并将预先聚合计算的结果以多维数组的方式存储为数据cube,当用户需要查询时,直接从数据cube中查找预先聚合计算的结果,通过预先计算并存储数据cube的方式,以空间换时间,减少了实时计算的时长,可加速数据查询效率。

进一步的,在本说明书中构建数据cube时,具体的,可先从数据仓库中获取待分析的业务数据,其中,该业务数据为包含若干不同维度的多维数据。之后,根据用户预定义的各数据维度,对各数据维度进行组合,确定各维度组合,其中,n个数据维度对应有2n种维度组合。然后,基于预定义的度量以及待分析的业务数据,对各维度组合进行聚合计算,确定各维度组合下的度量值,其中,将每个维度组合及其度量称为一个子立方体cuboid。最后,根据确定出的各cuboid,构建该业务数据对应的cube。

以对用户消费情况进行数据分析为例进行说明,假设用户定义分别从地区、时间以及消费类型这3个维度对用户消费数据进行数据分析,并且定义度量为用户的消费金额。则在进行数据分析时,可组合出8种维度组合,分别为:地区、时间、消费类型、地区+时间、地区+消费类型、时间+消费类型、地区+时间+消费类型。

则在进行数据分析之前,可预先根据用户消费的业务数据,进行聚合计算,分别确定不同维度组合下的消费金额,并基于各维度组合下的消费金额,生成各cuboid,以构建数据cube。如图1所示,图1中预定义的各数据维度有消费类型、地区以及时间,其中,预定义的地区维度下的维度成员包含北京、上海以及广州,时间维度下的维度成员包含2019年第一季度、2019年第二季度以及2019年第三季度,消费类型下的维度成员包含电子商品消费、日用品消费以及食品消费。在构建数据cube时,可先通过预计算,确定各维度组合对应的cuboid,以进一步构建cube。

但是,随着数据维度的不断增多,维度组合的数量也呈几何级数增长,计算量增加,导致构建cube的复杂度也不断增大,构建所需的时长也不断延长。由于用户在进行数据分析时,往往仅针对特定的数据维度组合进行分析,因此目前为了减少构建cube的复杂度,常通过人工设置“剪枝”规则的方式,对各维度组合进行筛选,从中确定出特定的维度组合生成cuboid,以进一步构建数据cube。

常见的“剪枝”规则主要包含聚合组、必需维度、层级维度以及联合维度等。

聚合组是指用户根据所关注的维度组合,划分出的维度组合的分组。在构建数据cube时,可仅确定各聚合组下的cuboid,以减少构建cube的压力。例如,假设待分析数据包含abc三个维度,基于这3种不同维度进行维度组合,可确定出23=8种维度组合,对应的树形结构如图2a所示,若用户在进行数据分析时,设置关注的聚合组为维度组合ab,则基于聚合组ab确定出的维度组合有5种,对应的树形结构如图2b所示,可见,维度组合的数量由8个减少到5个,于是生成的cuboid的数量减少,构建数据cube的压力减少。

必需维度是指用户关注的一个或多个数据维度。继续以对包含abc三个维度的多维数据进行数据分析为例说明,假设用户关注的必需维度为一个数据维度a,则基于必需维度a进行“剪枝”时,可从各维度组合中筛选出包含必需维度a的维度组合,筛选出的维度组合的所组成的树形结构如图3所示,可见,维度组合的数量由23=8个,减少到5个,于是生成的cuboid的数量减少,构建数据cube的压力减少。

层级维度是指在进行数据分析时,预定义的存在层级关系的数据维度。例如:对于国家、省份以及城市这种具有层级关系的数据维度,由于国家与省份之间以及省份与城市之间是一对多的关系,当省份确定后,国家也是唯一确定的,同理,当城市确定后,省份以及国家也是唯一确定的。也就是说,对于这3种数据维度组成的维度组合来说,国家+省份与省份对应的区域意义相同,省份+城市、国家+城市以及国家+省份+城市与城市对应的区域意义相同,于是可对区域意义相同的维度组合进行“剪枝”,以减少生成的cuboid的数量以及构建数据cube的压力。

联合维度是指将若干数据维度进行联合,作为一个整体的数据维度。则在构建数据cube时,用户可基于需要设置联合维度,并将联合维度作为一个整体,确定各维度组合,以减少生成的cuboid的数量以及构建数据cube的压力。如:假设对包含abc三个维度的多维数据进行数据分析,其中,用户将维度组合ab定义为联合维度,则可将维度组合ab作为一个整体,确定生成cuboid的各维度组合分别为abc、ab、c、如图4所示,可见,维度组合的数量由23=8个,减少到4个,生成的cuboid的数量较少,构建数据cube的压力也进一步减少。

综上,现有技术在减少构建数据cube的压力以及时长时,都是通过预先设置的一些“剪枝”规则,对组成的各维度组合进行进一步筛选,以减少生成的cuboid的数量,从而减少数据cube的构建压力以及时长。

但是,上述这种通过设置“剪枝”规则的方式,往往需要人工参与,所需人力成本较高,且效率较低。进一步的,通过固定的规则对维度组合进行筛选,并不完全适应于数据分析的需要,灵活性较差。

基于现有技术存在的上述问题,本说明书提供一种模型训练以及联机分析处理方法,基于历史上用户已查询的维度组合进行模型训练,得到分类模型,则在构建数据cube时,可先通过该分类模型对用户将查询的数据维度进行预测,并基于预测的维度组合,预先生成cuboid并构建cube,从而减少了cuboid生成的数量,以及构建cube的压力,并且提高构建的灵活性以及准确度。

图5为本说明书实施例提供的一种模型训练方法的流程示意图,具体可包括以下步骤:

s100:从数据立方体包含的各维度组合中,确定用户在预设时长内已查询的若干维度组合,并确定与所述维度组合相近的若干其它维度组合。

基于上述分析,本说明书提供的模型训练方法用于训练分类模型,以通过该分类模型以及用户已查询的维度组合,对用户待查询的维度组合进行预测,因此在进行模型训练时,可先获取用户在一段时间内已查询的维度组合,以作为训练样本进行模型训练。

需要说明的是,本说明书提供的模型训练方法具体可由执行模型训练过程的服务器执行,该服务器可以是单独的服务器,也可以是多个服务器组成的系统,例如:分布式服务器等,本说明书对此不做限制,具体可根据需要设置。

具体的,当数据维度较多时,所组成的维度组合的数量也呈几何级增长。为了减少模型训练过程中的计算量,并且保证模型训练效果,该服务器可先从待查询的数据cube包含的各维度组合中,确定用户在预设时长内已查询的若干维度组合。

之后,为了增加样本丰富度,该服务器可根据确定出的已查询的维度组合,确定与该维度组合相近的若干其它维度组合,以从该相近的其它维度组合中,提取用户未查询的特征信息,进行后续的模型训练。其中,预设时长可根据需要设置,例如,设置为一年时间,本说明书对此不做限制。

进一步的,在确定与已查询的维度组合相近的若干其它维度组合时,该服务器可针对已查询的每个维度组合,从待构建的数据cube包含的不属于用户已查询的各维度组合中,确定与该维度组合相差预设维度数量的维度组合,作为与该维度组合相近的其它维度组合。其中,预设维度数量可根据需要设置,通常设置为相差1个维度数量,本说明书对此不做限制。

例如:假设数据cube包含a、b、c三个数据维度,预设维度数量为1个,当确定出其中已查询的一个维度组合为ab时,可确定与该维度组合相差1个维度数量的维度组合有:a、b以及abc。

更进一步的,基于模型训练的经验,当训练样本中用户已查询的维度组合数量与相近的其它维度组合数量的比值符合一定的比值条件时,模型训练效果较好。因此在本说明书中,当确定出其它维度组合后,该服务器还可确定已查询的维度组合的数量以及其它维度组合的数量,并判断该已查询的维度组合的数量与其它维度组合的数量的比值是否符合预设的比值条件,当符合该比值条件时,则表示已确定出全量的其它维度组合。当不符合该比值条件时,为达到更好的模型训练效果,扩充其它维度组合的数量。该服务器还可增大预设维度数量,即,与已查询的维度组合相差的维度数量,从而确定数量更多的其它维度组合。

当预设维度数量增大后,该服务器便可重新针对已查询的每个维度组合,从该数据cube包含的各维度组合中,确定与该维度组合相差预设维度数量的维度组合,并根据重新确定出的维度组合,更新与该维度组合相近的其它维度组合,直至已查询的维度组合的数量与相近的其它维度组合的数量的比值符合预设比值条件为止。其中,预设的比值条件可根据需要设置,例如,可设置为比值小于4,本说明书对此不做限制。

例如:假设待分析的数据维度包含a、b、c、d四个维度组合,用户已查询的维度组合为ab,初始时预设维度数量为1,可确定相近的维度组合有a、b以及abc。当确定出的已查询的维度组合的数量与其它维度组合的数量不符合预设比值条件时,可增大预设维度数量,将预设维度数量增大为2。此时,可确定相近的维度组合有abcd,并且已查询的维度组合的数量与其它维度组合的数量不符合预设比值条件。于是,可确定与该已查询的维度组合相近的维度组合有:a、b、abc、abcd。

s102:将确定出的维度组合以及其它维度组合作为训练样本,并根据所述用户在所述预设时长的第一时段内的查询信息,对各训练样本进行标注。

在本说明书一种或多种实施例中,当通过步骤s100确定出用户在预设时长内已查询的维度组合,以及相近的其它维度组合后,便可根据确定出的各维度组合,确定训练样本及其标注,以进行模型训练。

具体的,该服务器可将确定出的用户已查询的维度组合,以及相近的其它维度组合,作为训练样本。

由于业务数据的不断更新,数据cube也是周期性的重新构建以供用户查询。因此在进行模型训练时,也应以一个构建周期内的样本数据进行训练。于是,在确定出训练样本后,该服务器可根据用户在预设时长的第一时段内的查询信息,将该用户在第一时段内已查询的维度组合作为正样本,将该用户在第一时段内未查询的维度组合作为负样本。其中,该第一时段与构建周期的时长相同,以保证模型预测效果较好。

s104:根据所述用户在所述预设时长的第二时段内的查询信息,确定各训练样本在预设的各特征维度上的特征值,并根据确定出各特征值,分别确定各训练样本的特征向量。

在本说明书一种或多种实施例中,当确定出训练样本及其标注后,便可确定训练样本的特征信息,以基于训练样本的特征信息对分类模型进行训练。

具体的,该服务器可先针对每个作为训练样本的维度组合,根据用户在预设时长的第二时段内的查询信息,确定该维度组合在第二时段内被查询的次数,作为该维度组合在预设的一个特征维度上的特征值。

根据用户在预设时长的第二时段内的查询信息,确定该维度组合在第二时段内被查询的用户数,作为该维度组合在预设的一个特征维度上的特征值。

根据用户在预设时长的第二时段内的查询信息,确定与该维度组合相近的其它维度组合在第二时段内是否被查询,作为该维度组合在预设的一个特征维度上的特征值。

根据用户在预设时长的第二时段内的查询信息,对作为训练样本的各维度组合进行聚类,确定聚类结果。并根据聚类结果,确定该维度组合与其它维度组合的相关性,作为该维度组合在预设的一个特征维度上的特征值。其中,查询次数相近的维度组合属于同一簇。

根据用户在预设时长的第二时段内的查询信息,以及在邻近的第三时段内的查询信息,确定该维度组合在第二时段内的数据分布,与在第三时段内的数据分布之间的差异,作为该维度组合在预设的一个特征维度上的特征值。其中,第三时段早于第二时段,且与构建周期的时长相同。

最后,根据确定出的该维度组合在预设的至少一个特征维度上的特征值,确定该维度组合的特征向量。其中,第二时段为与第一时段邻近的时段,处于第一时段之前,且第二时段与第三时段的时长相同,为数据cube的构建周期。

需要说明的是,在确定与该维度组合相近的其它维度组合在第二时段内是否被查询时,其中,与该维度组合相近的其它维度组合可基于上述步骤s100中的方法确定,本说明书对此不再赘述。

进一步的,在确定该维度组合与其它维度组合的相关性时,具体可根据作为训练样本的各维度组合被查询的次数,通过基于密度的聚类算法(density-basedspatialclusteringofapplicationswith,dbscan)进行聚类,确定查询次数相近的各簇。其中,属于同一簇的维度组合之间的相关性较高。聚类算法也可采用其它聚类算法,可根据需要设置。

更进一步的,在确定该维度组合在第二时段内的数据分布,与在第三时段内的数据分布之间的差异时,具体的,该服务器可先确定该维度组合在第二时段内的数据分布,即,该维度组合对应的各维度成员之间的组合的度量值。并确定该维度组合在第三时段内的数据分布。之后,计算两个数据分布的js散度,确定该维度组合在两个时段的数据分布差异。

例如:假设预设时长为过去一年,第二时段为11月份,第三时段为10月份,作为训练样本的维度组合为(地区,消费类型),其中,地区的维度成员包含北京以及上海,消费类型的维度成员包含食品消费以及日用品消费,度量值为消费金额。其在第二时段内的数据分布与在第三时段内的数据分布如下表1所示。

表1

根据表1可确定该维度组合下的(北京,食品消费)在10月份的消费金额占总消费金额为300/(300+200+400+500)=3/14,在11月份的消费金额占总消费金额为350/(350+300+850+900)=7/48,可基于该维度成员组合分别在不同时段的概率值,确定该维度成员组合的js散度,并基于各维度成员组合的js散度,确定该维度组合在不同时段的数据分布差异。

此外,在本说明书其它实施例中,在确定各维度组合的特征值时,也可将该维度组合在第二时段内某一时段时,在预设各特征维度上的特征值,如,当第二时段为11月份时,可确定用户在11月份的最后一周内的查询次数,作为该维度组合在预设的一个特征维度上的特征值。其中,预设的每个特征维度对应的时长也可以不同,具体可根据需要设置,本说明书对此不做限制。

s106:针对每个训练样本,将该训练样本的特征向量输入待训练的分类模型中,确定所述分类模型输出的维度组合类型。

s108:以最小化所述分类模型输出的维度组合类型与所述训练样本的标注之间的差异为目标,调整所述分类模型中的模型参数。

在本说明书一种或多种实施例中,当确定出训练样本的特征信息后,便可基于训练样本的特征信息以及标注信息,对分类模型进行训练。

具体的,针对每个训练样本,该服务器可先将该训练样本的特征向量输入待训练的分类模型中,确定该分类模型输出的维度组合类型。其中,维度组合类型包含正样本以及负样本,正样本即为预测的用户待查询的维度组合的类型。

之后,以最小化该分类模型输出的维度组合类型与该训练样本的标注之间的差异为目标,调整该分类模型中的模型参数。其中,该分类模型用于预测用户待查询的维度组合,以预先基于预测的维度组合构建数据立方体。其中,该分类模型可以是逻辑回归、决策树以及多层感知机等,能够达到对维度组合所属类型的分类即可,具体可根据需要设置,本说明书对此不做限制。

基于图1所示的模型训练方法,可先从数据立方体包含的各维度组合中,确定用户在预设时长内已查询的若干维度组合,以及与该维度组合相近的若干其它维度组合。其次,将确定出的维度组合以及其它维度组合作为训练样本,并根据该用户在预设时长的第一时段内的查询信息,对各训练样本进行标注。之后,根据该用户在预设时长的第二时段内的查询信息,确定各训练样本在预设的各特征维度上的特征向量。然后,针对每个训练样本,将该训练样本的特征向量输入待训练的分类模型中,确定该分类模型输出的维度组合类型。最后,以最小化该分类模型输出的维度组合类型与该训练样本的标注之间的差异为目标,调整该分类模型中的模型参数,以通过该分类模型预测用户待查询的维度组合,预先构建数据cube。基于用户在预设时长内已查询的维度组合以及相近的其它维度组合,作为训练样本进行模型训练得到分类模型,并通过分类模型对用户待查询的维度组合进行预测,以基于预测得到的维度组合构建数据cube,减少了构建的cuboid的数量,进一步减少cube的构建时长。

此外,在本说明书步骤s100中,为了进一步减少模型训练的计算资源,当确定出的用户在预设时长内已查询的维度组合的数量较多时,该服务器可按照各维度组合在预设时长内被查询的频率,将各维度组合分为若干分组,并从各分组中抽取出符合预设阈值的维度组合。其中,不同分组对应不同的频率范围。预设阈值可根据需要设置,本说明书对此不做限制。

在本说明书步骤s104中确定各维度组合中与其它维度组合的相关性时,由于相关性计算复杂,且在短期时间内该特征值的变化较小,因此可周期行进行更新,以减少计算次数,

本说明书提供的模型训练的方法可训练得到分类模型,该分类模型可根据输入的某一时段内各维度组合的特征向量,对各维度组合属于正样本或负样本进行预测。其中,正样本指的是在下一时段被用户查询的维度组合。

本说明书还提供一种联机分析处理方法,在构建数据cube之前,可应用上述训练完成的分类模型,对用户可能会查询的维度组合进行预测,并根据预测得到的维度组合,通过聚合度量值,生成cuboid以构建数据cube。通过对各维度组合是否会被用户查询进行预测,并基于预测的维度组合,构建cube,减少了生成cuboid的数量,进一步减少了cube的构建压力以及构建时长。

图6为本说明书实施例提供的一种联机分析处理方法流程的示意图,其中使用的分类模型可采用上述图5所述的模型训练方法进行训练。具体可包括以下步骤:

s200:获取构建数据立方体所需的业务数据。

本说明书提供的molap方法,是在进行数据分析之前,预先基于待分析的业务数据以及各维度组合,通过预计算生成若干cuboid,并构建数据cube的方法。从而在基于用户关注的各维度组合进行数据分析时,可从cube包含的各cuboid中,方便、快捷的查询到用户关注的各维度组合的度量值。

于是在本说明书中,可先获取构建cube所需的业务数据,以通过后续步骤构建cube。其中,在进行数据分析时,通常从用户关注的多个维度组合进行分析,因此待分析的业务数据为包含若干不同数据维度的多维数据。

需要说明的是,本说明书提供的联机分析处理方法,具体可由执行molap的服务器执行,该服务器可以是单独的服务器,也可以是多个服务器组成的系统,如,分布式服务器等,本说明书对此不做限制,具体可根据需要设置。

s202:确定用户在预设时长内针对所述业务数据查询的若干维度组合。

在本说明书一种或多种实施例中,当获取到待分析的业务数据后,便可确定该业务数据对应的多个维度的维度组合,以通过分类模型区分出目标维度组合以及其它维度组合。

但是,由于分类模型是基于用户在预设时长内已查询的各维度组合进行训练得到的,因此,当应用该分类模型对各维度组合进行分类时,该服务器也需基于当前时间,确定预设时长内用户针对该业务数据查询过的若干维度组合。其中,该预设时长即为进行模型训练时所设定的时长。

s204:根据所述用户在所述预设时长内第二时段的查询信息,确定各维度组合在预设的各特征维度上的特征值,并根据确定出的各特征值,确定各维度组合的特征向量。

在本说明书一种或多种实施例中,在确定出已查询的若干维度组合后,还需确定各维度组合的特征向量,以作为分类模型的输入,用于预测用户待查询的维度组合。

具体的,该服务器可根据用户在预设时长的第二时段内的查询信息,确定各维度组合在预设的各特征维度上的特征值,并根据确定出的各特征值,确定各维度组合的特征向量。

例如:假设预设时长为一年时间,当需要预测5月份用户可能查询的维度组合时,可确定距离当前时间在一年以内的,用户已查询的维度组合,并确定已查询的维度组合处于4月份时,在各特征维度上的特征向量。以根据各维度组合在4月份的特征向量,通过分类模型预测5月份用户可能查询的维度组合。

其中,确定各维度组合的特征向量的具体过程在上述步骤s104中已经进行了详细阐述,本说明书在此不再赘述。

s206:将各维度组合的特征向量分别输入预先训练的分类模型中,确定所述分类模型输出的各维度组合的分类结果。

在本说明书一种或多种实施例中,当确定出各维度组合的特征向量后,便可基于预先训练的分类模型,确定各维度组合的分类结果,后续可基于分类结果中属于正样本的维度组合,构建数据cube。

具体的,针对确定出的每个维度组合,将该维度组合的特征向量输入至预先训练的分类模型中,确定该分类模型输出的该维度组合的分类结果。其中,当分类结果为正样本时,则表明预测该维度组合被用户查询。

s208:根据获取到的业务数据,确定分类结果属于正样本的各维度组合的度量值,并根据确定出的各属于正样本的维度组合及其度量值,构建数据立方体。

在本说明书一种或多种实施例中,当通过分类模型预测出用户待查询的正样本后,便可基于预测出的属于正样本的维度组合,构建数据立方体。

具体的,该服务器可根据获取到的业务数据,确定分类结果属于正样本的各维度组合的度量值。其中,度量是用户预定义的业务指标。该分类模型是通过上述模型训练方法训练得到的,本说明书在此不再赘述。

之后,根据确定出的各属于正样本的维度组合及其度量值,生成若干cuboid,并根据生成的各cuboid,构建数据cube。

s210:当接收到用户发送的查询请求时,根据所述查询请求中包含的维度组合,从已构建的数据立方体中确定所述维度组合的度量值,并将确定出的所述维度组合的度量值返回至所述用户。

在本说明书一种或多种实施例中,当数据cube构建完成后,则在进行数据分析时,便可直接从构建完成的cube中查找预计算的cuboid。

具体的,当接收到用户发送的查询请求时,该服务器可根据该查询请求中包含的维度组合,从已构建的数据cube中确定对应该维度组合的cuboid,并从该cuboid中确定出该维度组合的度量值,将确定出的该维度组合的度量值返回至该用户。

基于图6所示的联机分析处理方法,可先获取构建数据立方体所需的业务数据,并确定用户在预设时长内针对该业务数据查询的若干维度组合。之后,根据该用户在预设时长内第二时段的查询信息,确定各维度组合在预设的各特征维度上的特征向量。然后,将各维度组合的特征向量分别输入预先训练的分类模型中,确定各维度组合的分类结果,并根据获取到的业务数据,确定分类结果属于正样本的各维度组合的度量值,以构建数据立方体。最后,当接收到查询请求时,从已构建的数据立方体中确定对应查询信息中维度组合的度量值,并返回至用户。基于用户在预设时长内已查询的维度组合,及其在历史时段内的特征向量,通过训练完成的分类模型对用户待查询的维度组合进行预测,以基于预测得到的维度组合构建数据立方体,提高了构建的灵活性以及准确度。

此外,由于用户仍然不断查询新的维度组合,并进行数据分析。因此为了保证模型预测的准确性以及实时性,还可周期性的重新确定训练样本,重新对模型进行训练。

或者,为了在保证模型实时性的前提下,节省模型训练时间以及成本,也可以根据用户新的查询数据,对上述分类模型进行更新,以根据更新后的分类模型,预测用户接下来查询的维度组合,预先构建数据cube。

具体的,该服务器可根据用户新查询的维度组合,以及训练完成的分类模型的模型参数,进行增量学习,以对训练完成的分类模型进行更新。其中,对分类模型进行更新具体可采用集成学习的方法进行训练,通过集成学习的方法进行模型训练是一种成熟的现有技术,本说明书对此不再赘述。

在本说明书步骤s202中,为了避免通过分类模型得到的属于正样本的维度组合的数量过多,在构建cube时计算量较大,以及避免属于正样本的维度组合的数量较少,导致构建的cube中数据不足。

于是,在本说明书中,当通过分类模型确定出属于正样本的维度组合后,可先判断属于正样本的维度组合的数量是否超出预设阈值,当确定数量超出时,可根据分类模型输出的各维度组合属于正样本的置信度,从各维度组合中,确定出符合预设阈值的维度组合。如,假设确定出的属于正样本的维度组合的数量为100,预设阈值为50,则可按照置信度高低,从中选取置信度较高的50个维度组合。当确定数量不足时,还可确定属于正样本的维度组合的数量与预设阈值的差值,并从历史上最近一次确定出的属于正样本的维度组合中,确定符合该差值的正样本。

基于图5所示的模型训练方法,本说明书实施例还对应提供一种模型训练装置的结构示意图,如图7所示。

图7为本说明书实施例提供的一种模型训练装置的结构示意图,所述装置包括:

第一确定模块300,从数据立方体包含的各维度组合中,确定用户在预设时长内已查询的若干维度组合,并确定与所述维度组合相近的若干其它维度组合;

标注模块302,将确定出的维度组合以及其它维度组合作为训练样本,并根据所述用户在所述预设时长的第一时段内的查询信息,对各训练样本进行标注,所述标注信息包含正样本或者负样本;

第二确定模块304,根据所述用户在所述预设时长的第二时段内的查询信息,确定各训练样本在预设的各特征维度上的特征值,并根据确定出各特征值,分别确定各训练样本的特征向量,所述特征维度至少包含被查询的次数;

输入模块306,针对每个训练样本,将该训练样本的特征向量输入待训练的分类模型中,确定所述分类模型输出的维度组合类型;

调整模块308,以最小化所述分类模型输出的维度组合类型与所述训练样本的标注之间的差异为目标,调整所述分类模型中的模型参数,所述分类模型用于预测用户待查询的维度组合,以预先基于预测的维度组合构建数据立方体。

可选地,所述第一确定模块300具体用于,针对在预设时长内已查询的每个维度组合,从所述数据立方体包含的不属于已查询的各维度组合中,确定与该维度组合相差预设维度数量的维度组合,作为与该维度组合相近的其它维度组合。

可选地,所述第一确定模块300还用于,确定在预设时长内已查询的维度组合的数量,以及所述其它维度组合的数量,判断所述已查询的维度组合的数量与所述其它维度组合的数量的比值是否符合预设比值条件,若是,则已确定出全量的其它维度组合,若否,则增大预设维度数量,重新针对已查询的每个维度组合,从所述数据立方体包含的各维度组合中,确定与该维度组合相差预设维度数量的维度组合,并根据重新确定出的维度组合,更新与该维度组合相近的其它维度组合,直至所述已查询的维度组合的数量与所述其它维度组合的数量的比值符合预设比值条件为止。

可选地,所述第二时段早于所述第一时段,所述第二确定模块304具体用于,针对每个训练样本,根据所述用户在所述预设时长的第二时段内的查询信息,确定该训练样本在所述第二时段内被查询的次数,和/或确定该训练样本在所述第二时段内被查询的用户数,和/或确定与该训练样本相近的其它训练样本在所述第二时段内是否被查询,和/或确定该训练样本与其它训练样本的相关性,和/或确定该训练样本在所述第二时段的数据分布,与在所述第一时段的数据分布之间的差异,根据确定出该训练样本在预设的各特征维度上的特征值,确定该训练样本的特征向量。

基于图6所示的联机分析处理方法,本说明书实施例还对应提供一种联机分析处理装置的结构示意图,如图8所示。

图8为本说明书实施例提供的一种联机分析处理装置的结构示意图,所述装置包括:

获取模块400,获取构建数据立方体所需的业务数据,所述业务数据为包含若干不同维度的多维数据;

维度组合确定模块402,确定用户在预设时长内针对所述业务数据查询的若干维度组合;

特征向量确定模块404,根据所述用户在所述预设时长内第二时段的查询信息,确定各维度组合在预设的各特征维度上的特征值,并根据确定出的各特征值,确定各维度组合的特征向量;

输入模块406,将各维度组合的特征向量分别输入预先训练的分类模型中,确定所述分类模型输出的各维度组合的分类结果,其中,所述分类模型基于上述权利要求1~4任一所述的方法进行训练;

构建模块408,根据获取到的业务数据,确定分类结果属于正样本的各维度组合的度量值,并根据确定出的各属于正样本的维度组合及其度量值,构建数据立方体;

查询模块410,当接收到所述用户发送的查询请求时,根据所述查询请求中包含的维度组合,从已构建的数据立方体中确定对应所述维度组合的度量值,并将确定出的度量值返回至所述用户。

可选地,所述输入模块406还用于,根据用户在所述数据立方体构建后查询的维度组合,以及预先训练的分类模型中模型参数,更新所述分类模型。

可选地,所述构建模块408还用于,判断所述分类结果中属于正样本的维度组合的数量是否大于预设值,若是,按照各维度组合属于正样本的置信度,从中确定出符合预设值的维维度组合,若否,根据属于正样本的维度组合的数量与预设值之差,从历史上最近一次确定出的正样本中,确定符合所述差值的正样本。

本说明书实施例还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图5提供的模型训练方法或图6提供的联机分析处理方法。

基于图5所示的模型训练方法以及6所示的联机分析处理方法,本说明书实施例还提出了图9所示的电子设备的示意结构图。如图9,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图5所示的模型训练方法或图6所示的联机分析处理方法。

当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmablelogicdevice,pld)(例如现场可编程门阵列(fieldprogrammablegatearray,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logiccompiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardwaredescriptionlanguage,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advancedbooleanexpressionlanguage)、ahdl(alterahardwaredescriptionlanguage)、confluence、cupl(cornelluniversityprogramminglanguage)、hdcal、jhdl(javahardwaredescriptionlanguage)、lava、lola、myhdl、palasm、rhdl(rubyhardwaredescriptionlanguage)等,目前最普遍使用的是vhdl(very-high-speedintegratedcircuithardwaredescriptionlanguage)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(applicationspecificintegratedcircuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmelat91sam、microchippic18f26k20以及siliconelabsc8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

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

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

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