统一地执行特征抽取的方法及系统
技术领域
本发明总体说来涉及数据处理领域,更具体地讲,涉及一种统一地执行特征抽取的方法及系统。
背景技术
随着海量数据的出现,人们倾向于使用机器学习技术来从数据中挖掘出价值。机器学习是人工智能研究发展到一定阶段的必然产物,其致力于通过计算的手段,利用经验来改善系统自身的性能。在计算机系统中,“经验”通常以“数据”形式存在,通过机器学习算法,可从数据中产生“模型”,也就是说,将经验数据提供给机器学习算法,就能基于这些经验数据产生模型;在面对新的情况时,利用训练好的模型来得到相应的预测结果。不论是训练机器学习模型的阶段,还是利用机器学习模型进行预估的阶段,都需要对数据进行特征抽取来得到包括各种特征的机器学习样本。
当前的机器学习平台或系统主要实现的是训练机器学习模型的功能,即,利用已收集好的大规模数据进行特征抽取、模型构建、模型调优等操作的过程,该阶段不重视响应速度,但重视吞吐量,即单位时间内处理的数据量。如果需要使用已训练好的机器学习模型进行预估,则往往在乎的是响应速度,而不关注吞吐量,这使得技术人员不得不针对预估阶段进行额外开发,尤其需要针对特征抽取过程进行额外开发,导致实现预估的成本较高。
发明内容
本发明的示例性实施例在于提供一种统一地执行特征抽取的方法及系统,其能够在各种特征抽取场景下,统一地执行特征抽取。
根据本发明的示例性实施例,提供一种统一地执行特征抽取的方法,其中,所述方法包括:获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本;解析所述特征抽取脚本,以生成用于进行特征抽取的执行计划;以及基于特征抽取场景,通过本机或集群执行生成的执行计划。
可选地,基于特征抽取场景通过本机或集群执行生成的执行计划的步骤包括:当特征抽取场景为在线特征抽取场景时,通过本机以单机模式执行生成的执行计划;以及当特征抽取场景为离线特征抽取场景时,通过集群以分布式模式执行生成的执行计划。
可选地,解析所述特征抽取脚本以生成用于进行特征抽取的执行计划的步骤包括:按处理顺序分割所述特征抽取脚本所定义的处理逻辑,来生成用于进行特征抽取的执行计划。
可选地,所述处理逻辑涉及在至少一个时间窗口下进行特征抽取,并且,按处理顺序分割所述特征抽取脚本所定义的处理逻辑来生成用于进行特征抽取的执行计划的步骤包括:针对各个时间窗口,分别按处理顺序分割相应的处理逻辑来生成用于进行特征抽取的执行计划。
可选地,所述执行计划是由节点构成的有向无环图,其中,所述节点与分割后的处理逻辑对应,并且,基于特征抽取场景通过本机或集群执行生成的执行计划的步骤包括:基于特征抽取场景,通过本机或集群实现与各个节点对应的处理逻辑来执行生成的执行计划。
可选地,所述节点包括与用于从数据表获取特征的处理逻辑对应的计算节点。
可选地,所述节点还包括与用于进行数据表拼接的处理逻辑对应的拼表节点和/或与用于进行特征汇总的处理逻辑对应的特征拼接节点。
可选地,通过本机或集群实现与计算节点对应的处理逻辑包括:通过本机或集群将与计算节点对应的处理逻辑编译为至少一个可执行文件,并运行所述至少一个可执行文件,其中,在将与计算节点对应的处理逻辑编译为可执行文件的过程中,将所述处理逻辑之中的公共子表达式替换为中间变量,并且/或者,将所述处理逻辑之中运算关系紧密且独立于其他处理逻辑的部分处理逻辑编译在同一个可执行文件中。
可选地,所述时间窗口由来源数据表、划分基准字段、时间基准字段、时间跨度和/或窗口大小来定义。
可选地,所述特征抽取场景由用户指定或自动确定。
可选地,当特征抽取场景为离线特征抽取场景时,通过集群以分布式模式执行生成的执行计划的步骤包括:当特征抽取场景为离线特征抽取场景时,向用户提供候选集群的列表;以及通过用户从列表中选择的集群以分布式模式执行生成的执行计划。
可选地,用于进行数据表拼接的处理逻辑包括用于针对特征的来源字段进行数据表拼接的处理逻辑。
可选地,所述处理逻辑涉及在窗口大小为1的时间窗口下进行非时序特征抽取和/或在窗口大小不为1的时间窗口下进行时序特征抽取。
根据本发明的另一示例性实施例,提供一种统一地执行特征抽取的系统,其中,所述系统包括:脚本获取装置,获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本;计划生成装置,解析所述特征抽取脚本,以生成用于进行特征抽取的执行计划;以及计划执行装置,基于特征抽取场景,通过本机或集群执行生成的执行计划。
可选地,计划执行装置当特征抽取场景为在线特征抽取场景时,通过本机以单机模式执行生成的执行计划;以及计划执行装置当特征抽取场景为离线特征抽取场景时,通过集群以分布式模式执行生成的执行计划。
可选地,计划生成装置按处理顺序分割所述特征抽取脚本所定义的处理逻辑,来生成用于进行特征抽取的执行计划。
可选地,所述处理逻辑涉及在至少一个时间窗口下进行特征抽取,并且,计划生成装置针对各个时间窗口,分别按处理顺序分割相应的处理逻辑来生成用于进行特征抽取的执行计划。
可选地,所述执行计划是由节点构成的有向无环图,其中,所述节点与分割后的处理逻辑对应,并且,计划执行装置基于特征抽取场景,通过本机或集群实现与各个节点对应的处理逻辑来执行生成的执行计划。
可选地,所述节点包括与用于从数据表获取特征的处理逻辑对应的计算节点。
可选地,所述节点还包括与用于进行数据表拼接的处理逻辑对应的拼表节点和/或与用于进行特征汇总的处理逻辑对应的特征拼接节点。
可选地,计划执行装置通过本机或集群将与计算节点对应的处理逻辑编译为至少一个可执行文件,并运行所述至少一个可执行文件,其中,计划执行装置在将与计算节点对应的处理逻辑编译为可执行文件的过程中,将所述处理逻辑之中的公共子表达式替换为中间变量,并且/或者,将所述处理逻辑之中运算关系紧密且独立于其他处理逻辑的部分处理逻辑编译在同一个可执行文件中。
可选地,所述时间窗口由来源数据表、划分基准字段、时间基准字段、时间跨度和/或窗口大小来定义。
可选地,所述特征抽取场景由用户指定或自动确定。
可选地,计划执行装置当特征抽取场景为离线特征抽取场景时,向用户提供候选集群的列表;并通过用户从列表中选择的集群以分布式模式执行生成的执行计划。
可选地,用于进行数据表拼接的处理逻辑包括用于针对特征的来源字段进行数据表拼接的处理逻辑。
可选地,所述处理逻辑涉及在窗口大小为1的时间窗口下进行非时序特征抽取和/或在窗口大小不为1的时间窗口下进行时序特征抽取。
根据本发明的另一示例性实施例,提供一种包括至少一个计算装置和至少一个存储指令的存储装置的系统,其中,所述指令在被所述至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的统一地执行特征抽取的方法。
根据本发明的另一示例性实施例,提供一种存储指令的计算机可读存储介质,其中,当所述指令被至少一个计算装置运行时,促使所述至少一个计算装置执行如上所述的统一地执行特征抽取的方法。
根据本发明示例性实施例的统一地执行特征抽取的方法及系统,其能够支持在各种特征抽取场景下,统一地执行特征抽取。作为示例,一方面,能够兼容在线特征抽取场景和离线特征抽取场景,实现了在线特征抽取场景和离线特征抽取场景的无缝对接,从而,无需针对同一特征抽取脚本,分别进行在线特征抽取场景和离线特征抽取场景下的具体运行方式的开发,减少了开发人员的工作量;另一方面,能够在离线特征抽取场景下,以较高吞吐量的方式高效地进行特征抽取,并且,在在线特征抽取场景下,能够高实时性、低延时地进行特征抽取。此外,根据所述方法及系统,能够兼容时序特征抽取和非时序特征抽取。
将在接下来的描述中部分阐述本发明总体构思另外的方面和/或优点,还有一部分通过描述将是清楚的,或者可以经过本发明总体构思的实施而得知。
附图说明
通过下面结合示例性地示出实施例的附图进行的描述,本发明示例性实施例的上述和其他目的和特点将会变得更加清楚,其中:
图1示出根据本发明示例性实施例的统一地执行特征抽取的方法的流程图;
图2示出根据本发明示例性实施例的执行计划的示例;
图3示出根据本发明的另一示例性实施例的统一地执行特征抽取的方法的流程图;
图4示出根据本发明示例性实施例的统一地执行特征抽取的系统的框图。
具体实施方式
现将详细参照本发明的实施例,所述实施例的示例在附图中示出,其中,相同的标号始终指的是相同的部件。以下将通过参照附图来说明所述实施例,以便解释本发明。
图1示出根据本发明示例性实施例的统一地执行特征抽取的方法的流程图。这里,作为示例,所述方法可通过计算机程序来执行,也可由专门的用于执行机器学习、大数据计算、或数据分析等的硬件设备或软硬件资源的集合体来执行,例如,所述方法可由用于实现机器学习相关业务的机器学习平台来执行。
参照图1,在步骤S10中,获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本。
这里,与特征抽取相关的处理逻辑可包括任何与特征抽取有关的处理逻辑。作为示例,与特征抽取相关的处理逻辑可包括用于从数据表获取特征的处理逻辑。这里,所述数据表可以是原始数据表,也可以是对原始数据表进行处理(例如,对多个原始数据表进行拼接)后得到的数据表。
作为示例,当所述数据表是对多个原始数据表进行拼接后得到的数据表时,与特征抽取相关的处理逻辑还可包括用于进行数据表拼接的处理逻辑。作为优选示例,用于进行数据表拼接的处理逻辑可包括用于针对特征的来源字段进行数据表拼接的处理逻辑,这里,用于针对特征的来源字段进行数据表拼接的处理逻辑即:用于仅将待拼接的数据表中的特征来源字段进行拼接以形成新的数据表的处理逻辑。
这里,数据表中的每条数据记录可被看作关于一个事件或对象的描述,对应于一个示例或样例。在数据记录中,包括反映事件或对象在某方面的表现或性质的属性信息,即字段。例如,数据表的一行对应一条数据记录,数据表的一列对应一个字段。
作为示例,与特征抽取相关的处理逻辑可涉及在一个或多个时间窗口下进行特征抽取。这里,时间窗口可用于筛选出生成特征时所需要依赖的一条或多条数据记录,其中,在时间窗口被设置为仅包括一条数据记录时,其可用于生成非时序特征,而在时间窗口被设置为包括多条数据记录时,其可用于生成时序特征。应该理解,与特征抽取相关的处理逻辑可涉及在每个时间窗口下进行一个或多个特征的抽取。作为示例,当与特征抽取相关的处理逻辑涉及在多个时间窗口下进行特征抽取时,与特征抽取相关的处理逻辑还可包括用于进行特征汇总的处理逻辑。
作为示例,时间窗口可由来源数据表、划分基准字段、时间基准字段、时间跨度和/或窗口大小来定义。具体说来,时间窗口的来源数据表即在该时间窗口下进行特征抽取所基于的数据表;时间窗口的划分基准字段即对来源数据表中的数据记录进行分组(也即,分片)所基于的字段(例如,用户ID);时间窗口的时间基准字段即对每组数据记录进行排序所基于的字段(例如,用户刷卡时间);时间窗口的时间跨度即该时间窗口内的数据记录的时间基准字段所对应的时间范围(例如,一周),时间窗口的窗口大小即该时间窗口内的数据的数量,窗口大小为大于零的整数。应该理解,在定义时间窗口时,可设置时间跨度和窗口大小之一,也可设置时间跨度和窗口大小两者。
作为示例,当与特征抽取相关的处理逻辑涉及多个时间窗口下进行特征抽取时,所述多个时间窗口彼此不同,即,所述多个时间窗口之间至少有以下项之中的至少一项不同:来源数据表、划分基准字段、时间基准字段、时间跨度、窗口大小。
作为示例,与特征抽取相关的处理逻辑可涉及在窗口大小为1的时间窗口下进行非时序特征抽取和/或在窗口大小不为1的时间窗口下进行时序特征抽取。
关于时序特征抽取,一般在处理时间序列数据时,需要进行时序特征抽取。时间序列数据具有很强的序列性,而且前后数据一般存在依赖,周期等关系。例如,交易数据可能随着时间变化会呈现出强烈的相关性,从而可以将交易数据的统计结果作为样本的特征。因此,可基于时间窗口来生成反映时序性行为的特征(例如,近期交易习惯(诸如金额)等),一般需要指定时间序列数据的维度(即,时间窗口的划分基准字段),例如,是按照自然人(例如,用户ID)抽取相关特征(例如,关于交易金额的时序统计特征)还是按照发生交易的卡号抽取所述相关特征;此外,还需要指定时序特征所涉及的历史数据的范围(即,时间窗口的时间跨度和/或窗口大小),例如,涉及最近一周内的交易金额等。与时序特征抽取对应的时间窗口能够指定当前待抽取特征所依赖的所有数据记录(包括当前数据记录和/或历史数据记录),进而可基于这些数据记录中的相关字段值来计算所述当前待抽取特征。
根据本发明的示例性实施例,可考虑在窗口大小为1的时间窗口下进行非时序特征抽取,从而使得能够利用统一的时间窗口设置来兼容时序特征和非时序特征两者的抽取。然而,应理解,本发明的示例性实施例也可不在时间窗口下进行非时序特征抽取。
作为示例,当与特征抽取相关的处理逻辑仅涉及非时序特征抽取时,与特征抽取相关的处理逻辑可不涉及时间窗口,即,不必设置任何用于抽取特征的时间窗口。
作为示例,当与特征抽取相关的处理逻辑涉及非时序特征抽取和时序特征抽取时,与特征抽取相关的处理逻辑可涉及在窗口大小为1的时间窗口下进行非时序特征抽取和在窗口大小不为1的时间窗口下进行时序特征抽取。
作为示例,可直接从外部获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本。作为另一示例,可基于用户通过输入框输入的用于定义与特征抽取相关的处理逻辑的代码和/或用户配置的用于定义与特征抽取相关的处理逻辑的配置项来获取特征抽取脚本。例如,所述方法可由用于执行机器学习过程的机器学习平台来执行,机器学习平台可响应于用户操作,向用户提供用于配置特征抽取过程的图形界面(例如,用于配置特征工程的界面),其中,所述图形界面可包括用于输入用于定义与特征抽取相关的处理逻辑的输入控件;然后,可接收用户在所述图形界面上对输入控件执行的输入操作,并根据所述输入操作来获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本。作为示例,所述输入控件可包括用于输入用于定义与特征抽取相关的处理逻辑的代码和/或配置项的内容输入框、和/或用于在关于与特征抽取相关的处理逻辑的候选配置项之间进行选择操作的选择控件。
在步骤S20中,解析获取的特征抽取脚本,以生成用于进行特征抽取的执行计划。
作为示例,可按处理顺序分割获取的特征抽取脚本所定义的处理逻辑,来生成用于进行特征抽取的执行计划。由于特征抽取过程需要按照一定的处理顺序来执行,例如,特征抽取过程需要依次经过数据表拼接、从数据表获取特征、对生成的特征进行汇总等处理,因此,可按照特征抽取过程的处理顺序来分割获取的特征抽取脚本所定义的处理逻辑,例如,可将获取的特征抽取脚本所定义的处理逻辑分割为用于进行数据表拼接的处理逻辑部分、用于从数据表获取特征的处理逻辑部分、用于进行特征汇总的处理逻辑部分;然后,可基于分割后的各处理逻辑部分,生成用于进行特征抽取的执行计划。
作为示例,当获取的特征抽取脚本所定义的处理逻辑涉及在至少一个时间窗口下进行特征抽取时,可针对各个时间窗口,分别按处理顺序分割相应的处理逻辑来生成用于进行特征抽取的执行计划。也即,与不同时间窗口相应的处理逻辑不会被分割到同一处理逻辑部分中。例如,当获取的特征抽取脚本所定义的处理逻辑涉及在多个时间窗口下进行特征抽取时,可分别针对每个时间窗口,按特征抽取过程的处理顺序分割与该时间窗口相应的处理逻辑,例如,可将获取的特征抽取脚本所定义的处理逻辑分割为:分别针对每个时间窗口的用于进行数据表拼接的处理逻辑部分和用于从数据表获取特征的处理逻辑部分、以及用于对针对所有时间窗口生成的特征进行特征汇总的处理逻辑部分;然后,可基于分割后的各处理逻辑部分,生成用于进行特征抽取的执行计划。
作为示例,生成的用于进行特征抽取的执行计划可以是由节点构成的有向无环图(DAG图),其中,所述节点与分割后的处理逻辑对应。作为示例,所述节点可包括与用于从数据表获取特征的处理逻辑对应的计算节点。此外,所述节点还可包括与用于进行数据表拼接的处理逻辑对应的拼表节点和/或与用于进行特征汇总的处理逻辑对应的特征拼接节点。作为示例,针对不同时间窗口的用于从数据表获取特征的处理逻辑可对应不同的计算节点,用于拼接出不同数据表的处理逻辑可对应不同的拼表节点。应该理解,可基于分割后的各处理逻辑部分的输入变量和/或输出变量之间的关系,确定与各分割后的处理逻辑部分对应的节点之间的连接关系。
图2示出根据本发明示例性实施例的执行计划的示例。如图2所示,可按特征抽取过程的处理顺序将获取的特征抽取脚本所定义的处理逻辑分割为:针对时间窗口1的用于进行数据表拼接的处理逻辑部分(例如,用于将数据表1和数据表2进行拼接来得到时间窗口1的来源数据表的处理逻辑部分)、针对时间窗口1的用于从数据表获取特征(即,进行特征抽取)的处理逻辑部分、针对时间窗口2的用于进行数据表拼接的处理逻辑部分(例如,用于将数据表1和数据表3进行拼接来得到时间窗口2的来源数据表的处理逻辑部分)、针对时间窗口2的用于从数据表获取特征的处理逻辑部分、用于对基于时间窗口1获取的特征和基于时间窗口2获取的特征进行特征汇总的处理逻辑部分。然后,可基于分割后的各处理逻辑部分生成如图2所示的由节点构成的有向无环图(也即,用于进行特征抽取的执行计划),其中,拼表节点1与针对时间窗口1的用于进行数据表拼接的处理逻辑部分对应、计算节点1与针对时间窗口1的用于从数据表获取特征的处理逻辑部分对应、拼表节点2与针对时间窗口2的用于进行数据表拼接的处理逻辑部分对应、计算节点2与针对时间窗口2的用于从数据表获取特征的处理逻辑部分对应、特征拼接节点与用于对基于时间窗口1获取的特征和基于时间窗口2获取的特征进行特征汇总的处理逻辑部分对应。
返回图1,在步骤S30中,基于特征抽取场景,通过本机或集群执行生成的执行计划。作为示例,特征抽取场景可以是在线特征抽取场景或离线特征抽取场景。
作为示例,当生成的执行计划是由节点构成的有向无环图时,可基于特征抽取场景,按照所述有向无环图中各节点之间的连接关系,通过本机或集群实现与各个节点对应的处理逻辑来执行生成的执行计划。
作为示例,通过本机或集群实现与计算节点对应的处理逻辑可包括:通过本机或集群直接运行计算节点。作为另一示例,通过本机或集群实现与计算节点对应的处理逻辑可包括:通过本机或集群将与计算节点对应的处理逻辑编译为至少一个可执行文件,并运行所述至少一个可执行文件。优选地,在编译为可执行文件时,可进行相应的优化。
作为优选示例,在将与计算节点对应的处理逻辑编译为可执行文件的过程中,可将所述处理逻辑之中的公共子表达式替换为中间变量。例如,当与计算节点对应的处理逻辑包括f1=discrete(max(col1))和f2=continous(max(col1))时,在将与计算节点对应的处理逻辑编译为可执行文件的过程中,可将公共子表达式max(col1)作为中间变量,即,令a=max(col1),f1=discrete(a),f2=continous(a),这样,在执行对应的可执行文件时,只需计算一遍a的值即可,f1和f2能够复用a的计算结果。通过复用中间变量能够实现中间计算结果的复用,从而能够减少特征抽取过程的计算量、提高特征抽取过程的执行效率。
作为优选示例,在将与计算节点对应的处理逻辑编译为可执行文件的过程中,可将所述处理逻辑之中运算关系紧密且独立于其他处理逻辑的部分处理逻辑编译在同一个可执行文件中。例如,运算关系紧密且独立于其他处理逻辑的部分处理逻辑可以是使用相同的公共子表达式且与其他处理逻辑在逻辑上没有联系的部分处理逻辑,这样,所述部分处理逻辑能够共享中间变量,并且,由于不同可执行文件之间不会共享中间变量,因此,不同可执行文件可被并行执行。从而,根据上述方法,既能够复用编译器的JIT(Just-In-Time,即时编译)功能,提高编译的可执行文件中的代码的执行效率,又能够为并发执行特征抽取过程做好逻辑隔离,以实现并行地执行多个可执行文件。
作为示例,可分别针对每个计算节点,将与该计算节点对应的处理逻辑编译为至少一个可执行文件。
图3示出根据本发明的另一示例性实施例的统一地执行特征抽取的方法的流程图,这里,步骤S30具体包括步骤S301、步骤S302和步骤S303,步骤S10和步骤S20可参照根据图1和图2描述的具体实施方式来实现,在此不再赘述。
在步骤S301,确定特征抽取场景。
作为示例,可获取用户指定的特征抽取场景。例如,所述方法可由用于执行机器学习过程的机器学习平台来执行,机器学习平台可向用户提供用于指定特征抽取场景的图形界面,根据用户通过所述图形界面执行的输入操作来获取用户指定的特征抽取场景。
作为另一示例,可自动确定特征抽取场景。例如,当当前的机器学习场景为训练机器学习模型的机器学习场景时,可自动将特征抽取场景确定为离线特征抽取场景;当当前的机器学习场景为利用训练好的机器学习模型进行预估的机器学习场景时,可自动将特征抽取场景确定为在线特征抽取场景。
当在步骤S301确定特征抽取场景为在线特征抽取场景时,通过本机以单机模式执行生成的执行计划。作为示例,可通过本机基于内存数据库以单机模式执行生成的执行计划。例如,可通过本机的内存数据库来实现用于进行数据表拼接的处理逻辑和/或用于进行特征汇总的处理逻辑。
当在步骤S301确定特征抽取场景为离线特征抽取场景时,执行步骤S303,通过集群以分布式模式执行生成的执行计划。换言之,可通过集群中的多个计算装置并行地执行生成的执行计划。应注意,这里所说的计算装置既可指示物理实体,也可指示虚拟实体,例如,计算装置可指示实际的计算机器,也可指示部署在该计算机器上的逻辑实体。
作为示例,可基于并行运算框架Spark来通过集群以分布式模式执行生成的执行计划。例如,可通过Spark的底层接口来实现用于进行数据表拼接的处理逻辑、用于进行特征汇总的处理逻辑等处理逻辑。例如,可基于Spark将生成的用于进行特征抽取的执行计划分发到集群中的各计算装置,以使各计算装置基于其内存储的数据来执行生成的执行计划并返回执行结果。此外,也可基于其他并行运算框架来通过集群以分布式模式执行生成的执行计划。
作为示例,步骤S303可包括:向用户提供候选集群的列表;然后,通过用户从列表中选择的集群以分布式模式执行生成的执行计划。
根据本发明示例性实施例的统一地执行特征抽取的方法,针对同一特征抽取脚本,由本机或集群根据特征抽取场景来执行统一的执行计划。作为示例,在在线特征抽取场景下,通过本机执行生成的执行计划,在离线特征抽取场景下,通过集群执行生成的执行计划,一方面,能够兼容在线特征抽取场景和离线特征抽取场景,实现了在线特征抽取场景和离线特征抽取场景的无缝对接,从而,无需针对同一特征抽取脚本,分别进行在线特征抽取场景和离线特征抽取场景下的具体运行方式的开发,减少了开发人员的工作量;另一方面,能够在离线特征抽取场景下,以较高吞吐量的方式高效地进行特征抽取,在线特征抽取场景下,能够高实时性、低延时地进行特征抽取。
作为示例,步骤S303可包括:通过集群以分布式模式执行以下操作来实现与计算节点对应的在时间窗口下进行特征抽取的处理逻辑:将该时间窗口的来源数据表中具有相同划分基准字段值的数据记录划分为同一个组(即,不同组对应不同的划分基准字段值),并将同一个组内的数据记录按照时间基准字段值从小到大的顺序(即,时间基准字段值所对应的时间的先后顺序)进行排序;然后,基于同一个组内的排序后的数据记录,在该时间窗口下进行特征抽取,具体地,针对当前数据记录,可利用其所对应的时间窗口内的各条数据记录,针对每个特征所依赖的来源字段的取值进行处理来得到所述每个特征,其中,时间窗口内的各条数据记录是通过时间跨度和/或窗口大小而从所对应的组内筛选出来的。
作为示例,步骤S302可包括:通过本机以单机模式执行以下操作来实现与计算节点对应的在时间窗口下进行特征抽取的处理逻辑:针对当前数据记录,可利用其所对应的时间窗口内的各条数据记录,针对每个特征所依赖的来源字段的取值进行处理来得到所述每个特征,其中,时间窗口内的各条数据记录是通过时间跨度和/或窗口大小而从所对应的组内筛选出来的。
图4示出根据本发明示例性实施例的统一地执行特征抽取的系统的框图。如图4所示,根据本发明示例性实施例的统一地执行特征抽取的系统包括:脚本获取装置10、计划生成装置20和计划执行装置30。
具体说来,脚本获取装置10用于获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本。
这里,与特征抽取相关的处理逻辑可包括任何与特征抽取有关的处理逻辑。作为示例,与特征抽取相关的处理逻辑可包括用于从数据表获取特征的处理逻辑。这里,所述数据表可以是原始数据表,也可以是对原始数据表进行处理(例如,对多个原始数据表进行拼接)后得到的数据表。
作为示例,当所述数据表是对多个原始数据表进行拼接后得到的数据表时,与特征抽取相关的处理逻辑还可包括用于进行数据表拼接的处理逻辑。作为优选示例,用于进行数据表拼接的处理逻辑可包括用于针对特征的来源字段进行数据表拼接的处理逻辑,这里,用于针对特征的来源字段进行数据表拼接的处理逻辑即:用于仅将待拼接的数据表中的特征来源字段进行拼接以形成新的数据表的处理逻辑。
作为示例,与特征抽取相关的处理逻辑可涉及在一个或多个时间窗口下进行特征抽取。这里,时间窗口可用于筛选出生成特征时所需要依赖的一条或多条数据记录,其中,在时间窗口被设置为仅包括一条数据记录时,其可用于生成非时序特征,而在时间窗口被设置为包括多条数据记录时,其可用于生成时序特征。应该理解,与特征抽取相关的处理逻辑可涉及在每个时间窗口下进行一个或多个特征的抽取。作为示例,当与特征抽取相关的处理逻辑涉及在多个时间窗口下进行特征抽取时,与特征抽取相关的处理逻辑还可包括用于进行特征汇总的处理逻辑。
作为示例,时间窗口可由来源数据表、划分基准字段、时间基准字段、时间跨度和/或窗口大小来定义。具体说来,时间窗口的来源数据表即在该时间窗口下进行特征抽取所基于的数据表;时间窗口的划分基准字段即对来源数据表中的数据记录进行分组(也即,分片)所基于的字段(例如,用户ID);时间窗口的时间基准字段即对每组数据记录进行排序所基于的字段(例如,用户刷卡时间);时间窗口的时间跨度即该时间窗口内的数据记录的时间基准字段所对应的时间范围(例如,一周);时间窗口的窗口大小即该时间窗口内的数据的数量,窗口大小为大于零的整数。应该理解,在定义时间窗口时,可设置时间跨度和窗口大小之一,也可设置时间跨度和窗口大小两者。
作为示例,当与特征抽取相关的处理逻辑涉及多个时间窗口下进行特征抽取时,所述多个时间窗口彼此不同,即,所述多个时间窗口之间至少有以下项之中的至少一项不同:来源数据表、划分基准字段、时间基准字段、时间跨度、窗口大小。
作为示例,与特征抽取相关的处理逻辑可涉及在窗口大小为1的时间窗口下进行非时序特征抽取和/或在窗口大小不为1的时间窗口下进行时序特征抽取。
作为示例,脚本获取装置10可直接从外部获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本。作为另一示例,脚本获取装置10可基于用户通过输入框输入的用于定义与特征抽取相关的处理逻辑的代码和/或用户配置的用于定义与特征抽取相关的处理逻辑的配置项来获取特征抽取脚本。
计划生成装置20用于解析所述特征抽取脚本,以生成用于进行特征抽取的执行计划。
作为示例,计划生成装置20可按处理顺序分割所述特征抽取脚本所定义的处理逻辑,来生成用于进行特征抽取的执行计划。
作为示例,当所述处理逻辑涉及在至少一个时间窗口下进行特征抽取时,计划生成装置20可针对各个时间窗口,分别按处理顺序分割相应的处理逻辑来生成用于进行特征抽取的执行计划。
作为示例,生成的用于进行特征抽取的执行计划可以是由节点构成的有向无环图(DAG图),其中,所述节点与分割后的处理逻辑对应。作为示例,所述节点可包括与用于从数据表获取特征的处理逻辑对应的计算节点。此外,所述节点还可包括与用于进行数据表拼接的处理逻辑对应的拼表节点和/或与用于进行特征汇总的处理逻辑对应的特征拼接节点。作为示例,针对不同时间窗口的用于从数据表获取特征的处理逻辑可对应不同的计算节点,用于拼接出不同数据表的处理逻辑可对应不同的拼表节点。应该理解,可基于分割后的各处理逻辑部分的输入变量和/或输出变量之间的关系,确定与各分割后的处理逻辑部分对应的节点之间的连接关系。
计划执行装置30用于基于特征抽取场景,通过本机或集群执行生成的执行计划。作为示例,特征抽取场景可以是在线特征抽取场景或离线特征抽取场景。
作为示例,计划执行装置30可获取用户指定的特征抽取场景。例如,所述系统可部署在用于执行机器学习过程的机器学习平台上,显示装置可向用户提供用于指定特征抽取场景的图形界面,计划执行装置30可根据用户通过所述图形界面执行的输入操作来获取用户指定的特征抽取场景。
作为另一示例,计划执行装置30可自动确定特征抽取场景。例如,当当前的机器学习场景为训练机器学习模型的机器学习场景时,计划执行装置30可自动将特征抽取场景确定为离线特征抽取场景;当当前的机器学习场景为利用训练好的机器学习模型进行预估的机器学习场景时,计划执行装置30可自动将特征抽取场景确定为在线特征抽取场景。
作为示例,计划执行装置30可当特征抽取场景为在线特征抽取场景时,通过本机以单机模式执行生成的执行计划。作为示例,所述系统可部署在用于执行机器学习过程的机器学习平台上,本机即当前使用所述机器学习平台进行特征抽取的计算装置。
作为示例,计划执行装置30可当特征抽取场景为离线特征抽取场景时,通过集群以分布式模式执行生成的执行计划。
作为示例,计划执行装置30可基于并行运算框架Spark来通过集群以分布式模式执行生成的执行计划。
作为示例,当所述执行计划是由节点构成的有向无环图时,计划执行装置30可基于特征抽取场景,通过本机或集群实现与各个节点对应的处理逻辑来执行生成的执行计划。
作为示例,计划执行装置30可通过本机或集群将与计算节点对应的处理逻辑编译为至少一个可执行文件,并运行所述至少一个可执行文件。优选地,计划执行装置30在编译可执行文件时,可进行相应的优化。
作为示例,计划执行装置30可在将与计算节点对应的处理逻辑编译为可执行文件的过程中,将所述处理逻辑之中的公共子表达式替换为中间变量。
作为示例,计划执行装置30可在将与计算节点对应的处理逻辑编译为可执行文件的过程中,将所述处理逻辑之中运算关系紧密且独立于其他处理逻辑的部分处理逻辑编译在同一个可执行文件中。
作为示例,计划执行装置30可当特征抽取场景为离线特征抽取场景时,向用户提供候选集群的列表;并通过用户从列表中选择的集群以分布式模式执行生成的执行计划。
应该理解,根据本发明示例性实施例的统一地执行特征抽取的系统的具体实现方式可参照结合图1至图3描述的相关具体实现方式来实现,在此不再赘述。
根据本发明示例性实施例的统一地执行特征抽取的系统所包括的装置可被分别配置为执行特定功能的软件、硬件、固件或上述项的任意组合。例如,这些装置可对应于专用的集成电路,也可对应于纯粹的软件代码,还可对应于软件与硬件相结合的模块。此外,这些装置所实现的一个或多个功能也可由物理实体设备(例如,处理器、客户端或服务器等)中的组件来统一执行。
应理解,根据本发明示例性实施例的统一地执行特征抽取的方法可通过记录在计算可读介质上的程序来实现,例如,根据本发明的示例性实施例,可提供一种用于统一地执行特征抽取的计算机可读介质,其中,在所述计算机可读介质上记录有用于执行以下方法步骤的计算机程序:获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本;解析所述特征抽取脚本,以生成用于进行特征抽取的执行计划;以及基于特征抽取场景,通过本机或集群执行生成的执行计划。
上述计算机可读介质中的计算机程序可在诸如客户端、主机、代理装置、服务器等计算机设备中部署的环境中运行,应注意,所述计算机程序还可用于执行除了上述步骤以外的附加步骤或者在执行上述步骤时执行更为具体的处理,这些附加步骤和进一步处理的内容已经参照图1至图3进行了描述,这里为了避免重复将不再进行赘述。
应注意,根据本发明示例性实施例的统一地执行特征抽取的系统可完全依赖计算机程序的运行来实现相应的功能,即,各个装置与计算机程序的功能架构中与各步骤相应,使得整个系统通过专门的软件包(例如,lib库)而被调用,以实现相应的功能。
另一方面,根据本发明示例性实施例的统一地执行特征抽取的系统所包括的各个装置也可以通过硬件、软件、固件、中间件、微代码或其任意组合来实现。当以软件、固件、中间件或微代码实现时,用于执行相应操作的程序代码或者代码段可以存储在诸如存储介质的计算机可读介质中,使得处理器可通过读取并运行相应的程序代码或者代码段来执行相应的操作。
例如,本发明的示例性实施例还可以实现为计算装置,该计算装置包括存储部件和处理器,存储部件中存储有计算机可执行指令集合,当所述计算机可执行指令集合被所述处理器执行时,执行统一地执行特征抽取的方法。
具体说来,所述计算装置可以部署在服务器或客户端中,也可以部署在分布式网络环境中的节点装置上。此外,所述计算装置可以是PC计算机、平板装置、个人数字助理、智能手机、web应用或其他能够执行上述指令集合的装置。
这里,所述计算装置并非必须是单个的计算装置,还可以是任何能够单独或联合执行上述指令(或指令集)的装置或电路的集合体。计算装置还可以是集成控制系统或系统管理器的一部分,或者可被配置为与本地或远程(例如,经由无线传输)以接口互联的便携式电子装置。
在所述计算装置中,处理器可包括中央处理器(CPU)、图形处理器(GPU)、可编程逻辑装置、专用处理器系统、微控制器或微处理器。作为示例而非限制,处理器还可包括模拟处理器、数字处理器、微处理器、多核处理器、处理器阵列、网络处理器等。
根据本发明示例性实施例的统一地执行特征抽取的方法中所描述的某些操作可通过软件方式来实现,某些操作可通过硬件方式来实现,此外,还可通过软硬件结合的方式来实现这些操作。
处理器可运行存储在存储部件之一中的指令或代码,其中,所述存储部件还可以存储数据。指令和数据还可经由网络接口装置而通过网络被发送和接收,其中,所述网络接口装置可采用任何已知的传输协议。
存储部件可与处理器集成为一体,例如,将RAM或闪存布置在集成电路微处理器等之内。此外,存储部件可包括独立的装置,诸如,外部盘驱动、存储阵列或任何数据库系统可使用的其他存储装置。存储部件和处理器可在操作上进行耦合,或者可例如通过I/O端口、网络连接等互相通信,使得处理器能够读取存储在存储部件中的文件。
此外,所述计算装置还可包括视频显示器(诸如,液晶显示器)和用户交互接口(诸如,键盘、鼠标、触摸输入装置等)。计算装置的所有组件可经由总线和/或网络而彼此连接。
根据本发明示例性实施例的统一地执行特征抽取的方法所涉及的操作可被描述为各种互联或耦合的功能块或功能示图。然而,这些功能块或功能示图可被均等地集成为单个的逻辑装置或按照非确切的边界进行操作。
例如,如上所述,根据本发明示例性实施例的统一地执行特征抽取的计算装置可包括存储部件和处理器,其中,存储部件中存储有计算机可执行指令集合,当所述计算机可执行指令集合被所述处理器执行时,执行下述步骤:获取用于定义与特征抽取相关的处理逻辑的特征抽取脚本;解析所述特征抽取脚本,以生成用于进行特征抽取的执行计划;以及基于特征抽取场景,通过本机或集群执行生成的执行计划。
以上描述了本发明的各示例性实施例,应理解,上述描述仅是示例性的,并非穷尽性的,本发明不限于所披露的各示例性实施例。在不偏离本发明的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。因此,本发明的保护范围应该以权利要求的范围为准。