模型构建方法和系统与流程

文档序号:17762885发布日期:2019-05-24 21:51阅读:321来源:国知局
模型构建方法和系统与流程

本申请属于计算机软件应用领域,尤其是一种模型构建方法和系统。



背景技术:

随着互联网技术的迅猛发展,人类进入了信息爆炸的时代。海量信息同时呈现,一方面使得信息获得者很难从中发现自己感兴趣的信息,另一方面使得大量少人问津的信息无法被一般用户获取,严重阻碍了信息传播。

为了解决上述问题,出现了个性化推荐系统。个性化推荐系统通过建立用户与信息之间的二元关系,利用已有的选择过程或者相似性关系挖掘每个用户潜在感兴趣的个性化信息,进而进行个性化推荐,达到千人千面的效果。

现有技术采用机器学习模型构建个性化推荐系统。首先大量收集用户的行为,提炼出样本数据,根据这些数据通过机器学习的方法,训练得到用户模型,在线根据每个用户的用户特征数据以及上述用户模型,为用户推荐个性化信息。

在生成机器学习模型时,特征构成了整个系统的重要部分。现有技术根据不同的用户偏好得到不同的特征,然后通过配置不同的参数组合得到适用不同用户偏好的机器学习模型。

现有的模型构建方法具有以下的不足:

1)每个模型中包括了大量的特征,并且每个特征都需要工作人员通过过滤、提取、计算等多个步骤得到,导致在每一次的模型构建过程中都需要大量的人力资源和开发周期,降低了模型构建的开发效率。

2)构成模型的这些特征无法实现参数化,对于很相近的a特征和b特征,因为a和b之间只有非常小的区别,所以代码大部分都是一致的,因此为了区别a特征和b特征,只能通过额外的定义或组合进行区别,增加的系统的复杂度。

3)构建模型的所有特征是分散的,每一个在性能上的占比不同,所以很难找到系统上的真正的热点,提高了系统优化和迭代等的复杂度。



技术实现要素:

为克服相关技术中存在的问题,本申请公开一种模型构建方法和系统,采用基于多个子单元的特征获取单元构建特征,改善了模型构建系统的复用性,提高特征生产效率,有效减少资源消耗。

根据本申请实施例的第一方面,提供一种模型构建方法,包括:

提供原始数据库和相应的配置文件;

根据所述配置文件配置基于多个子单元的特征获取单元;

基于配置后的所述特征获取单元从所述原始数据库获取样本特征;

根据多个所述样本特征构建深度学习模型。

可选的,所述多个子单元包括:抽取子单元、过滤子单元、计算子单元以及输出子单元。

可选的,所述基于配置后的所述特征获取单元从所述原始数据库获取样本特征包括:

通过所述抽取子单元从所述原始数据库获取样本数据;

通过所述过滤子单元去除不符合预设条件的所述样本数据;

通过所述计算子单元对所述样本数据进行计算以得到运算结果;以及

通过所述输出子单元根据所述运算结果得到所述样本特征。

可选的,所述对所述样本数据进行计算以得到运算结果包括:

配置多个计算子单元,所述多个计算子单元构成有向无环图;

使得所述样本数据遍历所述有向无环图以得到所述运算结果。

可选的,所述模型构建方法还包括基于所述多个计算子单元之间的依赖关系确定所述多个计算子单元的顺序。

可选的,所述去除不符合预设条件的所述样本数据包括配置多个级联的过滤子单元,每个所述过滤子单元设置有对应的所述预设条件。

可选的,所述模型构建方法根据dsl语言基于所述多个样本特征构建所述深度学习模型。

可选的,所述深度学习模型包括mxnet或者tensorflow等。

可选的,根据xml、json、yaml、html或者xhtml格式配置所述特征获取单元。

可选的,所述模型构建方法还包括配置语言绑定模块,所述语言绑定模块包括c、c++、java以及python等多种编程语言。

可选的,所述模型构建方法还包括:

基于训练样本集对所述深度学习模型进行训练;以及

基于训练的所述深度学习模型进行在线检测。

根据本申请实施例的第二方面,提供一种模型构建系统,包括:

配置模块,被配置于根据配置文件配置基于多个子单元的特征获取单元;

处理模块,被配置于基于配置后的所述特征获取单元从原始数据库获取样本特征;以及

执行模块,被配置于根据多个所述样本特征构建深度学习模型。

可选的,所述特征获取单元包括:

抽取子单元,被配置于从所述原始数据库获取样本数据;

过滤子单元,被配置于去除不符合预设条件的所述样本数据;

计算子单元,被配置于对所述样本数据进行计算以得到运算结果;以及

输出子单元,被配置于根据所述运算结果得到所述样本特征。

可选的,所述特征获取单元包括多个计算子单元,所述多个计算子单元构成有向无环图,所述样本数据遍历所述有向无环图以得到所述运算结果。

可选的,所述特征获取单元基于所述多个计算子单元之间的依赖关系确定所述多个计算子单元的顺序。

可选的,所述特征获取单元包括多个级联的过滤子单元,每个所述过滤子单元设置有对应的所述预设条件。

可选的,所述执行模块根据dsl语言构建所述深度学习模型。

可选的,所述深度学习模型包括mxnet或者tensorflow等。

可选的,所述配置模块根据xml、json、yaml、html或者xhtml格式配置所述特征获取单元。

可选的,所述模型构建系统还包括语言绑定模块,所述语言绑定模块包括c、c++、java以及python等多种编程语言。

可选的,所述模型构建系统还包括:

训练模块,用于基于训练样本集对所述深度学习模型进行训练;以及

检测模块,用于基于训练的所述深度学习模型进行在线检测。

根据本申请实施例的第三方面,提供一种服务器,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述任意一项所述的模型构建方法。

根据本申请实施例的第四方面,提供一种非临时性计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如上述任一项所述的模型构建方法。

本申请的实施例提供的技术方案可以包括以下有益效果:

1)采用基于多个子单元组合的特征获取单元从原始数据库中得到模型所需要的特征,实现了特征的可视化表达;并且可通过配置多个子单元的组合得到不同的特征,改善了模型构建系统的复用性,提高特征生产效率,有效减少资源消耗。

2)子单元之间的拓扑表示特征计算的计算流程,通过改变子单元之间的拓扑结构即可得到不同的特征,在系统优化时只需要实现子单元级别的优化即可达到模型构建系统全局的优化效果,改善了系统的可优化性。

3)绑定有多种编程语言,实现多种语言和格式的统一,特征工作人员只需要通过一个配置文件就可以实现整个流程,提高特征生产效率。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

图1是根据一示例性实施例示出的模型构建方法的流程图;

图2是根据一示例性实施例示出的模型构建系统的结构图;

图3是根据一示例性实施例示出的模型构建系统的框图;

图4是根据一示例性实施例示出的一种执行模型构建方法的装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

机器学习用于通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中,“经验”通常以“数据”形式存在,通过机器学习算法可从数据中产生“模型”,基于这些经验数据产生的模型在面对新的情况时会提供相应的判断,即预测结果。机器学习可被实现为“有监督学习”、“无监督学习”以及“半监督学习”的形式,应注意,本发明的示例性实施例的模型构建方法对机器学习算法并不进行特定限制,也即本发明实施例的模型构建方法能够适用于各种机器学习框架。

例如本发明实施例的模型构建方法可适用于tensorflow和mxnet等深度学习框架。tensorflow和mxnet是一个采用数据流图(dataflowgraphs)用于数值计算的深度学习库。数据流图用节点(nodes)和线(edges)的有向图来描述数学计算。“节点”一般用来表示施加的数学操作,也可以表示数据输入(feedin)的起点/输出(pushout)的终点,或者是读取/写入持久变量(persistentvariable)的终点。“线”一般用来表示“节点”之间的输入/输出关系。这些数据“线”可以输运“size”的多维数据数组,即“张量”(tensor)。

tensorflow和mxnet还提供了对python、r、julia、c++、scala、matlab和javascript的接口,灵活的架构可以在多种平台上展开计算,用于机器学习和深度神经网络。

图1是根据示例性实施例示出的模型构建方法的流程图。

在步骤s110中,提供原始数据库和相应的配置文件。

一些实施例中,在构建模型前首先通过不同系统搜集大量的数据,并将采集到的数据汇总到原始数据库。例如,平台将用户的浏览日志、点击日志、注册信息以及收藏夹内容等汇总到原始数据库。原始数据库例如为文件数据库、sql数据库、分布式nosql数据库、流数据系统等。

在步骤s120中,根据配置文件配置基于多个子单元的特征获取单元。

具体地,图2示出了根据示例性实施例示出的模型构建系统的结构图。在本发明实施例中,模型由多个特征组成,特征由一系列的子单元组成,子单元之间的拓扑表示特征计算的计算流程,通过改变子单元之间的拓扑结构即可得到不同的特征。如图2所示,模型230由特征1-6组成,特征1-6又分别通过特征获取单元210中的多个子单元计算得到。特征获取单元210包括抽取子单元、过滤子单元、计算子单元以及输出子单元。

在步骤s130中,基于特征获取单元从原始数据库获取样本数据,并根据样本数据得到样本特征。

抽取子单元根据需要的特征从原始数据库获取样本数据。例如当构建一个根据用户年龄的视频推荐模型时,抽取子单元根据配置从原始数据库中提取有关用户年龄、观看的视频、点击的视频以及评价的视频等的数据,经过预处理之后将这些数据送入后续的工作流程。

过滤子单元用于基于过滤条件去除不符合的所述样本数据。过滤子单元与抽取子单元连接以接收经过预处理之后的数据,然后根据过滤条件滤除不符合的数据。

在一种实施例中,特征获取单元中配置有多个过滤子单元,如图2所示,特征获取单元210包括过滤子单元1-3,过滤子单元1-3分别设置有各自的过滤条件。例如当构建一个用户年龄为30岁、性别为男性、学历为本科的视频推荐模型时,将过滤子单元1的过滤条件设置为“30岁”,将过滤子单元2的过滤条件设置为“男性”,将过滤子单元3的过滤条件设置为“学历本科”。特征获取单元210工作时,过滤子单元1滤除掉年龄不是30岁的数据,过滤子单元2滤除掉性别不是男性的数据,过滤子单元3滤除掉学历不是本科的数据。使用过滤子单元滤除非特征数据,可减少特征获取单元计算阶段的数据量,同时提高特征提取的准确度。

计算子单元用于对样本数据进行计算以得到运算结果,完成整个特征获取单元的计算。

在一种实施例中,特征获取单元中配置有多个计算子单元,根据计算子单元之间的依赖关系确定计算子单元的顺序,保证计算的准确度。多个计算子单元之间的拓扑用来表达整个特征流的计算流程,形成一个有向无环图(dag),样本数据通过遍历有向无环图得到运算结果。

如图2所示,特征获取单元210中包括计算子单元1-5,计算子单元1用来接收过滤子单元3输出样本数据,样本数据遍历计算子单元1-5完成整个的计算过程,得到运算结果。

输出子单元用于接收所述运算结果,并对所述运算结果进行适配性处理,以得到可以兼容各种深度学习框架(例如tensorflow和mxnet)的样本特征。

在步骤s140中,根据多个样本特征构建深度学习模型。

具体地,循环步骤s130得到一个模型所需要的所有特征,构成一个特征集。如图2所示,通过配置特征获取单元210中的多个子单元的组合,分别得到特征1-特征6,特征1-特征6构成了特征集220。

在一个实施例中,特征集220基于dsl语言(一种用来解决特定领域问题的计算机编程语言,例如css、sql等)配置模型230。

在步骤s150中,基于训练样本集训练深度学习模型。训练样本集是用于模型训练的样本数据的集合,对模型进行训练需要搜集大量的数据,从大量的样本数据中才能实现对模型的有意义调整。

所谓的模型训练,在现有技术下可以采用多种方式实现,主要通过机器学习方法进行模型训练,例如可以采用逻辑回归方法或者梯度提升决策树方法进行离线、在线或者近线模型训练。

在步骤s160中,基于训练的深度学习模型进行在线检测。在模型训练完毕之后提供线上的检测或者预测服务。在此过程中,所有的代码都是公用的,预测、训练、特征开发的描述语言是一致的。

在一种实施例中,上述系统中所有拓扑、结构、参数都是通过配置实现的。例如可以根据xml、json、yaml、html或者xhtml格式来定义整个系统的文法。

在一种实施例中,模型构建方法还包括模型配置语言绑定模块,所述语言绑定模块包括c、c++、java以及python等多种编程语言,实现多种语言和格式的统一,特征工作人员只需要通过一个配置文件就可以实现整个流程。

图3示出根据一示例性实施例示出的模型构建系统的框图。如图3所示,模型构建系统包括:配置模块310、第一处理模块320、第二处理模块330以及执行模块340。

配置模块310被配置于根据配置文件配置基于多个子单元组合的特征获取单元。具体地,在本发明实施例中,模型由多个特征组成,特征由一系列子单元组成,子单元之间的拓扑表示特征计算的计算流程,通过改变子单元之间的拓扑结构即可得到不同的特征。特征获取单元中包括抽取子单元、过滤子单元、计算子单元以及输出子单元。

第一处理模块320被配置于基于特征获取单元从原始数据库获取样本数据,并根据样本数据得到样本特征。

一些实施例中,在构建模型前首先通过不同系统搜集大量的数据,并将采集到的数据汇总到原始数据库。例如,平台将用户的浏览日志、点击日志、注册信息以及收藏夹内容等汇总到原始数据库。原始数据库例如为文件数据库、sql数据库、分布式nosql数据库、流数据系统等。

抽取子单元被配置于根据需要的特征从原始数据库获取样本数据。例如当构建一个根据用户年龄的视频推荐模型时,抽取子单元根据配置从原始数据库中提取有关用户年龄、观看的视频、点击的视频以及评价的视频等的数据,经过预处理之后将这些数据送入后续的工作流程。

过滤子单元被配置于基于过滤条件去除不符合特征的所述样本数据。过滤子单元与抽取子单元连接以接收经过预处理之后的数据,然后根据过滤条件滤除不符合的数据。

在一种实施例中,特征获取单元中配置有多个过滤子单元,如图2所示,特征获取单元210包括过滤子单元1-3,过滤子单元1-3分别设置有各自的过滤条件。例如当构建一个用户年龄为30岁、性别为男性、学历为本科的视频推荐模型时,将过滤子单元1的过滤条件设置为“30岁”,将过滤子单元2的过滤条件设置为“男性”,将过滤子单元3的过滤条件设置为“学历本科”。特征流工作时,过滤子单元1滤除掉年龄不是30岁的数据,过滤子单元2滤除掉性别不是男性的数据,过滤子单元3滤除掉学历不是本科的数据。使用过滤子单元滤除非特征数据,可减少特征获取单元计算阶段的数据量,同时提高特征提取的准确度。

计算子单元被配置于对样本数据进行计算以得到运算结果,完成整个特征获取单元的计算。

在一种实施例中,特征获取单元中配置有多个计算子单元,根据计算子单元之间的依赖关系确定计算子单元的顺序,保证计算的准确度。多个计算子单元之间的拓扑用来表达整个特征流的计算流程,形成一个有向无环图(dag),样本数据通过遍历有向无环图得到运算结果。

输出子单元被配置于接收所述运算结果,并对所述运算结果进行适配性处理,以得到可以兼容各种深度学习框架(例如tensorflow和mxnet)的样本特征。

第二处理模块330被配置于根据多个样本特征构建特征集。第二处理模块330接收第一处理模块320得到的所有特征,构建成一个特征集。如图2所示,通过配置特征获取单元210中的子单元组合,分别得到特征1-特征6,特征1-特征6构成了特征集220。

执行模块340被配置于基于特征集构建深度学习模型。在一个实施例中,特征集基于dsl语言(一种用来解决特定领域问题的计算机编程语言,例如css、sql等)配置模型。

一些实施例中,模型构建系统还包括训练模块350,训练模块350用于基于训练样本集训练深度学习模型。训练样本集是用于模型训练的样本数据的集合,对模型进行训练需要搜集大量的数据,从大量的样本数据中才能实现对模型的有意义调整。

所谓的模型训练,在现有技术下可以采用多种方式实现,主要通过机器学习方法进行模型训练,例如可以采用逻辑回归方法或者梯度提升决策树方法进行离线、在线或者近线模型训练。

一些实施例中,模型构建系统还包括检测模块360,检测模块360用于基于训练的深度学习模型进行在线检测。在模型训练完毕之后提供线上的检测或者预测服务。在此过程中,所有的代码都是公用的,预测、训练、特征开发的描述语言是一致的。

关于上述实施例中的装置,其中各个单元执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

图4是根据一示例性实施例示出的一种用于执行上述模型构建方法的装置500的框图。例如,装置500可以被提供为一服务器。参照图4,装置500包括处理组件505,其进一步包括一个或多个处理器,以及由存储器501所代表的存储器资源,用于存储可由处理组件505的执行的指令,例如应用程序。存储器501中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件505被配置为执行指令,以执行上述模型构建方法。

装置500还可以包括一个电源组件502被配置为执行装置500的电源管理,一个有线或无线网络接口506被配置为将装置500连接到网络,和一个输入输出(i/o)接口508。装置500可以操作基于存储在存储器501的操作系统,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm或类似。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括上述指令的存储器501,上述指令可由装置500的处理组件505执行以完成上述模型构建方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。

本申请还提供计算机程序产品,包括计算机程序产品,所述计算机程序包括程序指令,当所述程序指令被设备执行时,使所述设备执行上述模型构建方法的步骤。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。

应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

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