CN111859928A - 特征处理方法、装置、介质和计算设备 - Google Patents

特征处理方法、装置、介质和计算设备 Download PDF

Info

Publication number
CN111859928A
CN111859928A CN202010753536.6A CN202010753536A CN111859928A CN 111859928 A CN111859928 A CN 111859928A CN 202010753536 A CN202010753536 A CN 202010753536A CN 111859928 A CN111859928 A CN 111859928A
Authority
CN
China
Prior art keywords
feature
output
target
list
operation unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010753536.6A
Other languages
English (en)
Inventor
陈明明
叶宜拓
任鹏飞
谢煜锋
潘照明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Media Technology Beijing Co Ltd
Original Assignee
Netease Media Technology Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Media Technology Beijing Co Ltd filed Critical Netease Media Technology Beijing Co Ltd
Priority to CN202010753536.6A priority Critical patent/CN111859928A/zh
Publication of CN111859928A publication Critical patent/CN111859928A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/253Grammatical analysis; Style critique
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)

Abstract

本发明的实施方式提供了一种特征处理方法、装置、介质和计算设备。该方法包括:基于特征工程配置项,生成运算单元列表;基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径;基于目标特征及其对应的计算路径,确定待处理的属性数据记录以及目标运算单元;其中,所述目标特征为所述输出特征列表中的输出特征;基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果,将所述输出结果赋值给所述目标特征,基于目标格式输出所述目标特征。本发明实施例能够提高特征处理的效率。

Description

特征处理方法、装置、介质和计算设备
技术领域
本发明的实施方式涉及信息处理领域,更具体地,本发明的实施方式涉及一种特征处理方法、装置、介质和计算设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
相关技术中,特征处理方法中主要是在程序代码中直接使用特征处理函数对特征逐个进行处理,或者从数据表中抽取字段进行特征处理。然而,上述的处理方法中,存在特征工程策略可读性差,通用程度低,迭代周期长,不易复用等问题,如此会影响特征处理的效率。
发明内容
本发明期望提供一种特征处理方法、装置、介质和计算设备,以至少解决上述技术问题。
在本发明实施方式的第一方面中,提供了一种特征处理方法,包括:
基于特征工程配置项,生成运算单元列表;其中,所述运算单元列表中包含至少一个运算单元及其对应的输入和输出;其中,所述特征工程配置项基于预定义的运算单元以及预定义的可用属性生成;
基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径;其中,所述输出特征列表中输出特征的全部计算路径包含的运算单元为所述运算单元列表中的至少部分运算单元;
基于目标特征及其对应的计算路径,确定待处理的属性数据记录以及目标运算单元;其中,所述目标特征为所述输出特征列表中的输出特征;
基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果,将所述输出结果赋值给所述目标特征,基于目标格式输出所述目标特征。
在本发明的一个实施例中,所述预定义的运算单元,包括以下内容至少之一:
运算单元名称、功能说明、输入字段、输入字段数据格式、输出字段、输出字段数据格式、运行参数和使用样例。
在本发明的一个实施例中,所述方法还包括:
对所述特征工程配置项进行语义校验和/或语法校验;
若所述特征工程配置项存在语义校验错误和/或语法校验错误,则生成第一提示信息;其中,所述第一提示信息包括以下至少之一:错误配置的位置、错误原因、错误类型。
在本发明的一个实施例中,所述基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径,包括:
根据所述运算单元列表中包含的至少一个运算单元的输入输出依赖关系,生成运算单元特征依赖图;其中,所述运算单元特征依赖图为有向无环图;
删除所述运算单元特征依赖图中的N个运算单元,得到调整后的运算单元特征依赖图;其中,所述N个运算单元为非最终输出特征直接或间接依赖的运算单元;N为整数;
基于调整后的运算单元特征依赖图,生成输出特征列表以及输出特征的计算路径。
在本发明的一个实施例中,所述基于调整后的运算单元特征依赖图,生成输出特征列表以及输出特征的计算路径,还包括:
根据每一个运算单元依赖的属性所属的不同对象,将所述调整后的运算单元特征依赖图划分为至少一个子图;其中,至少一个子图包含第一类子图以及第二类子图;所述第一类子图中的至少部分运算单元的输出作为第二类子图中的至少部分运算单元的输入;
基于所述至少一个子图,生成输出特征列表以及所述输出特征列表中包含的输出特征的计算路径。
在本发明的一个实施例中,所述方法还包括:
对所述待处理的属性数据记录进行校验,得到校验结果;其中,所述校验结果用于表征待处理的属性数据记录是否超出属性数据范围,或待处理的属性数据记录的类型与输出特征类型是否匹配;
当所述检验结果表征待处理的属性数据记录存在错误时,生成第二提示信息;其中,所述第二提示信息用于指示待处理的属性数据记录出现错误,以及提示出错的属性名称、错误原因和原始数据中至少之一。
在本发明的一个实施例中,所述方法还包括:
当获取的待处理的属性数据记录为空时,将所述待处理的属性数据设置为默认值。
在本发明的一个实施例中,所述方法还包括:
在所述目标运算单元中存在无输入输出依赖关系的运算单元的情况下,控制所述无输入输出依赖关系的运算单元进行并行计算。
在本发明的一个实施例中,所述基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果时,所述方法还包括:
对目标运算单元执行过程进行运算检查;
当所述目标运算单元的运算过程中出现错误时,生成第三提示信息;所述第三提示信息用于提示出现错误的运算单元信息、错误信息、输入、输出中至少之一。
在本发明的一个实施例中,确定目标格式的方式,包括:
基于所述特征工程配置项确定所述目标格式,或根据传入参数请求确定所述目标格式;所述传入参数请求中包含指定的所述目标格式;
其中,所述目标格式包括以下至少之一:原始特征数据、索引为特征名稀疏格式特征向量、索引为哈希值的稀疏格式特征向量、带名称的稠密向量、不带名称的稠密向量。
在本发明的一个实施例中,所述方法还包括:
若基于目标格式转换或输出所述目标特征的过程中出现错误,则生成第四提示信息;所述第四提示信息用于提示出错的位置、特征名、特征数据和目标格式中至少之一。
在本发明的一个实施例中,所述方法还包括:
针对所述输出特征的计算路径中包含的全部运算单元中需要依赖统计数据的运算单元,获取对应的统计数据。
在本发明的一个实施例中,所述方法还包括:
从本地文件、大数据集群或网络服务中获取所述待处理的属性数据记录。
本发明实施方式的第二方面,提供一种特征处理装置,包括:
解析模块,用于基于特征工程配置项,生成运算单元列表;其中,所述运算单元列表中包含至少一个运算单元及其对应的输入和输出;其中,所述特征工程配置项基于预定义的运算单元以及预定义的可用属性生成;
编译模块,用于基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径;其中,所述输出特征列表中输出特征的全部计算路径包含的运算单元为所述运算单元列表中的至少部分运算单元;
数据获取模块,用于基于目标特征及其对应的计算路径,确定待处理的属性数据记录以及目标运算单元;其中,所述目标特征为所述输出特征列表中的输出特征;
特征处理模块,用于基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果,将所述输出结果赋值给所述目标特征,基于目标格式输出所述目标特征。
在本发明的一个实施例中,所述预定义的运算单元,包括以下内容至少之一:
运算单元名称、功能说明、输入字段、输入字段数据格式、输出字段、输出字段数据格式、运行参数和使用样例。
在本发明的一个实施例中,所述装置还包括:
第一校验模块,用于对所述特征工程配置项进行语义校验和/或语法校验;若所述特征工程配置项存在语义校验错误和/或语法校验错误,则生成第一提示信息;其中,所述第一提示信息包括以下至少之一:错误配置的位置、错误原因、错误类型。
在本发明的一个实施例中,所述编译模块,用于根据所述运算单元列表中包含的至少一个运算单元的输入输出依赖关系,生成运算单元特征依赖图;其中,所述运算单元特征依赖图为有向无环图;删除所述运算单元特征依赖图中的N个运算单元,得到调整后的运算单元特征依赖图;其中,所述N个运算单元为非最终输出特征直接或间接依赖的运算单元;N为整数;基于调整后的运算单元特征依赖图,生成输出特征列表以及输出特征的计算路径。
在本发明的一个实施例中,所述编译模块,用于根据每一个运算单元依赖的属性所属的不同对象,将所述调整后的运算单元特征依赖图划分为至少一个子图;其中,至少一个子图包含第一类子图以及第二类子图;所述第一类子图中的至少部分运算单元的输出作为第二类子图中的至少部分运算单元的输入;基于所述至少一个子图,生成输出特征列表以及所述输出特征列表中包含的输出特征的计算路径。
在本发明的一个实施例中,所述装置还包括:
第二校验模块,用于对所述待处理的属性数据记录进行校验,得到校验结果;其中,所述校验结果用于表征待处理的属性数据记录是否超出属性数据范围,或待处理的属性数据记录的类型与输出特征类型是否匹配;当所述检验结果表征待处理的属性数据记录存在错误时,生成第二提示信息;其中,所述第二提示信息用于指示待处理的属性数据记录出现错误,以及提示出错的属性名称、错误原因和原始数据中至少之一。
在本发明的一个实施例中,所述数据获取模块,用于当获取的待处理的属性数据记录为空时,将所述待处理的属性数据设置为默认值。
在本发明的一个实施例中,所述特征处理模块,用于在所述目标运算单元中存在无输入输出依赖关系的运算单元的情况下,控制所述无输入输出依赖关系的运算单元进行并行计算。
在本发明的一个实施例中,所述装置还包括:
第三校验模块,用于对目标运算单元执行过程进行运算检查;当所述目标运算单元的运算过程中出现错误时,生成第三提示信息;所述第三提示信息用于提示出现错误的运算单元信息、错误信息、输入、输出中至少之一。
在本发明的一个实施例中,所述特征处理模块,用于基于所述特征工程配置项确定所述目标格式,或根据传入参数请求确定所述目标格式;所述传入参数请求中包含指定的所述目标格式;
其中,所述目标格式包括以下至少之一:原始特征数据、索引为特征名稀疏格式特征向量、索引为哈希值的稀疏格式特征向量、带名称的稠密向量、不带名称的稠密向量。
在本发明的一个实施例中,所述装置还包括:
第四校验模块,用于若基于目标格式转换或输出所述目标特征的过程中出现错误,则生成第四提示信息;所述第四提示信息用于提示出错的位置、特征名、特征数据和目标格式中至少之一。
在本发明的一个实施例中,所述数据获取模块,用于针对所述输出特征的计算路径中包含的全部运算单元中需要依赖统计数据的运算单元,获取对应的统计数据。
在本发明的一个实施例中,所述数据获取模块,用于从本地文件、大数据集群或网络服务中获取所述待处理的属性数据记录。
在本发明实施方式的第三方面中,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行实现上述方法的步骤。
在本发明实施方式的第四方面中,提供了一种计算设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法的步骤。
根据本发明实施方式,能够使用预定义的运算单元来描述特征工程策略,然后可以利用通用的运算单元执行计算得到最终的目标特征。如此,由于预定义的运算单元通用性高,因此在需要进行调整策略、调整需要得到的目标特征、更新策略的时候,只需要再次基于预定义的运算单元特征工程配置项即可实现,从而解决了特征工程可读性差、通用性差、特征调整迭代周期长的问题,使得特征处理的调整简单快速,提高了特征处理的效率。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明一实施方式的特征处理方法实现示意图一;
图2示意性地示出了根据本发明一实施方式的根据特征工程配置项生成的运算单元特征依赖图的示意图;
图3示意性地示出了模型的离线测试以及在线预测的处理流程的示意图;
图4示意性地示出了根据本发明一实施方式的特征处理方法实现流程示意图二;
图5示意性地示出了根据本发明一实施方式的介质结构示意图;
图6示意性地示出了根据本发明一实施方式的特征处理装置的组成结构示意图;
图7示意性地示出了根据本发明一实施方式的计算设备结构示意图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种特征处理方法、装置、介质和计算设备。
在本文中,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
本发明人发现,现有的特征处理方法包括:在程序代码中直接使用特征处理函数对特征逐个进行处理;或者通过静态文本配置特征工程过程,从数据表中抽取字段进行特征工程。然而,上述的处理方法中,存在特征工程策略可读性差,通用程度低,支持的数据类型少,不易复用特征工程配置等问题,导致影响特征处理的效率。
有鉴于此,本发明提供一种特征处理方法、装置、介质和计算设备,使用预定义的运算单元来描述特征工程策略,然后可以利用通用的运算单元执行计算得到最终的目标特征。如此,由于预定义的运算单元通用性高,因此在需要进行调整策略、调整需要得到的目标特征、更新策略的时候,只需要再次基于预定义的运算单元以及可用属性调整特征工程配置项即可实现,从而解决了特征工程可读性差、通用性差、特征调整迭代周期长的问题,使得特征处理的调整简单快速,提高了特征处理的效率。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
示例性方法
下面参考图1来描述根据本发明示例性实施方式的特征处理方法,包括:
S101:基于特征工程配置项,生成运算单元列表;其中,所述运算单元列表中包含至少一个运算单元及其对应的输入以及输出;其中,所述特征工程配置项基于预定义的运算单元以及预定义的可用属性生成;
S102:基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径;其中,所述输出特征列表中输出特征的全部计算路径包含的运算单元为所述运算单元列表中的至少部分运算单元;
S103:基于目标特征及其对应的计算路径,确定待处理的属性数据记录以及运算单元;其中,所述目标特征为所述输出特征列表中的输出特征;
S104:基于所述待处理的属性数据记录以及所述运算单元进行运算得到输出结果,将所述输出结果赋值给目标特征,基于目标格式输出所述目标特征。
在S101中,所述特征工程配置项可以为:根据预设的运算单元列表和可用属性列表按照特定的格式进行配置得到的。其中,所述预设的运算单元列表中包含至少一个预定义的运算单元。所述可用属性列表中包含有至少一个预定义的可用属性。
具体来说,所述特征工程配置项可以是从预设的运算单元列表中选取一个或多个预定义的运算单元,以及从可用属性列表中选取一个或多个可用属性,由用户按照特定的格式对选取的预定义的运算单元以及可用属性进行配置得到的。在用户配置特征工程配置项的时候,可以根据当前实际需求进行配置,比如,用户需要对某一模型进行建模,进而可以确定这个模型需要的一个或多个特征信息,然后可以根据这样的需求配置得到特征工程配置项。也就是说,用户在不同情况下配置的特征工程配置项可以是不同的,但是得到特征配置工程项的处理方式是相同。
所述预定义的运算单元,包括以下内容至少之一:运算单元名称、功能说明、输入字段、输入字段数据格式、输出字段、输出字段数据格式、运行参数和使用样例。
上述输入字段、输出字段可以为一个或多个输入字段(也就是一个或多个输入),以及一个或多个输出字段(也就是一个或多个输出)。
如此,本实施例的预定义的运算单元功能明确,通用程度高。通过设置预定义的运算单元,可以降低特征工程配置的难度,以此提高用户特征工程配置项的配置效率。
再进一步来说,所述特征工程配置项中可以包括特征工程策略;特征工程策略包括对一个或多个特征的特征工程运算。每一个特征工程运算中包含预定义的运算单元以及其对应的输入以及输出。
本实施例中,所述特征工程配置项可以采用文本描述的方式进行配置。比如,可以采用json文件来描述。举例来说,基于json文件描述特征工程配置项的示例,可以如下所示:
Figure BDA0002610784000000101
其中,"features"用于表示其对应的内容为特征工程配置项的特征工程策略;在特征工程策略中,通过"feat"关键字来指示一次特征工程运算。特征工程运算中可以包括运算单元名称,输入和输出。比如,特征工程配置项中总共包含6种运算单元,以上示例中直接写出的有5种,分别为:map_top_k、map_norm、bucketize、map_get_weight、cross。
特别地,以上示例中,在{"feat":"i_cate"}项中没有直接写出运算单元的名称,这种情况下,可以使用默认的运算单元directly_output,该运算单元表征将输入直接作为输出;换句话说,{"feat":"i_cate"}与{"feat":"i_cate=directly_output(i_cate)"}含义相同。
另外,特征工程配置项中还可以包含有目标格式的定义。比如以上示例中,通过"feature_format"关键字对应的内容设置目标格式为“HASH_SPARSE”。
执行S101时,所述方法还包括:对所述特征工程配置项进行语义校验和/或语法校验;若所述特征工程配置项存在语义校验错误和/或语法校验错误,则生成第一提示信息;其中,所述第一提示信息包括以下至少之一:错误配置的位置、错误原因、错误类型。
具体来说,语法校验可以包括拼写检查,参数检查等。所述语义校验可以包括运算单元名称检查,输入依赖检查等。
也就是在进行对所述特征工程配置项进行语义校验和/或语法校验的处理中,特征工程配置项中配置内容出现语句拼写错误或语句格式错误时,确定存在语法错误;和/或,
当特征工程配置项中配置内容依赖的属性在可用属性找不到时,确定存在语法错误;这里,配置内容可以包含一条特征工程配置项中的运算单元及其输入和输出,如果运算单元的输入应该为属性,但是在可用属性列表中无法找到,就认为存在语法错误。
和/或,
当特征工程配置项中配置内容依赖的输入在当前配置行前面配置内容的输出中找不到时,确定存在语义错误;这里,配置内容可以包含一条特征工程配置项中的运算单元及其输入和输出,某一个运算单元的输入,既不是可用属性列表中的可用属性、也不是其他运算单元的输出的时候,可以确定存在语义错误。
和/或,
运算单元的输入个数、输入格式、输出个数中至少一项和预设的定义不匹配时,确定存在语义错误。
相应的,当确定配置项存在语法错误或语义错误时,通过第一提示信息,提示配置出错位置、错误原因和错误类型中至少之一。
通过执行S101可以对预先生成(或预先配置)的特征工程配置项进行解析,得到特征工程配置项所描述的所有运算单元列表,其中,运算单元列表中可以包含至少一个运算单元,以及所述至少一个运算单元中每个运算单元的多个输入和/或多个输出。这里,运算单元的输出可以为最终输出,或者可以为中间输出(或中间特征);所述中间输出(或中间特征)可以为不被最终输出的特征,但是需要作为其他运算单元的输入供其他运算单元使用。如果运算单元的输出为最终的特征,那么可以将其称为输出特征。
通过S101得到运算单元列表后,可以根据运算单元列表直接按照顺序逐个执行得到最终特征。但是,通常用户定义的特征工程配置中存在大量的计算冗余,运行效率很低,因此,本实施例提供的方案,通过后续的步骤S102对特征工程配置列表进行编译优化。
具体的,上述S102中,所述基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径,包括:
根据所述运算单元列表中包含的至少一个运算单元的输入输出依赖关系,生成运算单元特征依赖图;其中,所述运算单元特征依赖图为有向无环图;
删除所述运算单元特征依赖图中的N个运算单元,得到调整后的运算单元特征依赖图;其中,所述N个运算单元为非最终输出特征直接或间接依赖的运算单元;N为整数;
基于调整后的运算单元特征依赖图,生成输出特征列表以及输出特征的计算路径。
前述运算单元依赖关系图可以为一个有向无环图。然后从运算单元依赖图中删除不被最终输出特征依赖的运算单元。
需要指出的是,N为整数包含N可以为0、可以为大于等于1的整数。也就是说,如果用户设置的特征工程配置项可能较为简单或者无冗余,那么最终得到的特征依赖图中可能不存在需要删除的运算单元,此时N可以为0。其他情况下,只要运算单元特征依赖图中包含有不被输出特征直接或间接依赖的运算单元的时候,就可以删除这部分运算单元。此时,N可以大于等于1。
所述基于调整后的运算单元特征依赖图,生成输出特征列表以及输出特征的计算路径,还包括:
根据每一个运算单元依赖的属性所属的不同对象,将所述调整后的运算单元特征依赖图划分为至少一个子图;其中,至少一个子图包含第一类子图以及第二类子图;所述第一类子图中的至少部分运算单元的输出能够作为第二类子图中的至少部分运算单元的输入;
基于所述至少一个子图,生成输出特征列表以及所述输出特征列表中包含的输出特征的计算路径。
也就是根据运算单元依赖的最初的属性所属对象的不同切分为不同的子图。举例进行说明,假设在多个运算单元中,存在第一运算单元的输入依赖第二运算单元的输出的情况下,若第二运算单元的输入为可用属性列表中的第一属性,则可以认为第一运算单元、第二运算单元所依赖的最初的属性为可用属性中的第一属性,基于该第一属性所属的对象可以将第一运算单元、第二运算单元划分在同一个子图。其他的运算单元的最初的属性的判定与其类似,这里不再赘述。
其中一个子图中包含所有只依赖一个相同对象的运算单元,其他的运算单元属于另外的子图。具体划分得到子图的数量与对象的属性或类型的数量相关,比如,若对象有两种一种是用户一种是物品,那么可以划分得到两个子图。若对象有3种或更多,比如分别为对象1、2、3,那么可以基于这三个对象划分得到3个子图。当然,还可以预先规定仅划分出来两个子图,比如,运算单元依赖的最初的属性所属的对象为用户划分至一个子图,运算单元依赖的最初的属性所属的对象为用户之外的其他对象划分至另一个子图。
基于上述特征工程配置项的示例进行处理得到运算单元列表后,可以基于所述运算单元列表生成对应的运算单元特征依赖图,对特征依赖图删除部分运算单元之后得到调整后的运算单元特征依赖图,进而对调整后的运算单元特征依赖图进行划分得到至少一个子图。
以图2为例进行说明,图2中虚线左边的左子图可以为第一类子图,其中包含的为只依赖用户(属性)的运算单元子图,包括所有只依赖用户属性(前缀为u_的属性,u表示user,即为用户)的运算单元;图2中,虚线右边的右子图可以为第二类子图,其中包含的为其他运算单元子图,包含了所有依赖物品(属性)(前缀为i_的属性,i表示item,即为物品)的特征单元。
从图2中可以看出,左子图(即第一类子图)以及右子图(即第二类子图)依赖的最初的属性分别属于用户以及物品;并且,右子图的部分运算单元依赖于左子图的输出,比如,右子图中的运算单元“map_get_value”的输入,依赖于左子图的输出“u_cate_top_norm”。
例如,在推荐场景中,一条待处理的属性数据记录可能包含1个用户和M个物品(M为大于等于2的整数),若直接使用特征单元列表进行计算,则对仅依赖用户属性的特征所对应的运算单元会计算M次,如此存在大量的计算冗余。而本实施例提供的方案,由于第二类子图中的部分运算单元依赖第一类子图的输出,那么第一类子图在某一个运算单元得到对应的输出后,第二类子图无论多少个运算单元需要引用该输出,均无需再次进行计算,只需要第二类子图的运算单元直接获取第一类子图中某一个运算单元得到对应的输出特征即可。
以上处理中,先将原始的运算单元列表根据输入输出依赖生成特征运算依赖关系图,再从图中删除不被最终输出依赖的运算单元,同时根据依赖原始属性所属对象的不同将依赖图划分成两个子图。这种依赖图计算模式可以很好地减少不必要计算量,提高运算并行度,加快运算的速度。
基于至少一个子图可以得到输出特征列表。在输出特征列表中可以包括至少一个输出特征。这里,所述输出特征可以理解为部分运算单元的输出。
一个运算单元的输出是否为输出特征(也就是输出特征列表中包含的输出特征)、或是否为中间输出(或中间特征),可以基于特征工程配置项中针对每一个运算单元(或特征工程项)的配置内容来确定。
举例来说,前述示例中包含的以下内容:
Figure BDA0002610784000000141
其中,“visibility”:“hidden”,用于表示输出是否可见,若配置为“hidden”,则表示隐藏,也就是输出“u_cate_top”不是最终可见的,换句话说,可以认为是中间输出或中间特征,u_cate_top不是最终的输出特征,不会出现在输出特征列表中。
又比如,前述{“feat”:“u_cate_top_norm=map_norm(u_cate_top)”},对于这个特征工程项的定义中,没有设置“visibility”:“hidden”,则该运算单元的输出u_cate_top_norm为最终可见的,也就是该输出u_cate_top_norm为输出特征列表中的输出特征之一。
另外,根据至少一个子图可以列出输出特征在特征依赖关系图中的完整计算路径。在一条计算路径中可以包括有最初的属性、一个或多个运算单元、每一个运算单元的输入及输出。
以图2举例来说,特征“i_cate_match_weight”对应的计算路径为:属性i_cate、输入u_cate_top_norm、以及运算单元map_get_value、输出为特征“i_cate_match_weight”。
另外,所述至少一个子图中还可以包含有所有被依赖的(原始或最初的)属性的名称及其数据类型,以及和所有被依赖的(原始或最初的)属性的所属对象。这里,数据类型可以是数值型(例如,整型int,浮点型float)、文本型(例如,字符串类型string)、列表型(例如,整型列表list<int>)或非结构化类型(例如,map<string,double>)等等。所属对象,可以为前述的用户或物品等等。如此,由于运算单元可以对包括非结构化类型的数据在内的多种类型的数据进行特征工程处理,从而实现了对非结构化数据的支持。
前述S102的处理中,还可以包括:针对所述输出特征的计算路径中包含的全部运算单元中需要依赖统计数据的运算单元,获取对应的统计数据。
也就是,根据得到的输出特征列表以及输出特征的计算路径,就可以确定最终可能被使用的全部的运算单元,本实施例中,对全部运算单元中依赖统计数据的运算单元提前获取所需统计数据进行加载,如此,可以避免在运算过程中读取大量的统计数据,以提升处理效率。
关于运算单元是否需要依赖统计数据,也可以根据特征工程配置项中描述或定义来确定,比如,上述json文件示例中包含的{“feat”:“u_age_bucket=bucketize(u_age)”,“boundaries”:[15,20,25,35,40,50]},其中,boundaries(边界)即表示需要获取的统计数据,后面的“[15,20,25,35,40,50]”表示在哪些边界或在哪些阈值内获取统计数据。
基于所述调整后的运算单元特征依赖图划分得到的至少一个子图,可以得到输出特征列表以及输出特征的计算路径。其中,输出特征的计算路径,可以为输出特征列表中包含的一个或多个输出特征所对应的计算路径。
完成前述处理之后,用户可以指定一个或多个特征进行计算,其中,用户指定的一个或多个特征为所述输出特征列表中的输出特征中一个或多个。这里用户所指定的一个或多个特征即为前述S103中的目标特征。
进一步地,在确定目标特征的情况下,可以确定S103中所述目标特征的计算路径。确定目标特征的计算路径的方式可以为从前述得到多个输出特征的计算路径中查找该目标特征对应的计算路径。
这里,不论用户指定了多少个目标特征,每一个目标特征的处理均采用相同的方法,因此,本实施例不一一进行说明,仅从一个目标特征的角度进行详述。
S103中,可以将目标特征的计算路径中所包含的至少一个运算单元作为目标运算单元,以及将计算路径中所依赖的(最初或原始的)属性作为待处理的属性;然后从本地文件、大数据集群或网络服务中获取待处理的属性数据记录。特别地,可以通过属性仓库获取的方式实现快速添加静态属性的特征的需求。
也就是说,基于目标特征对应的计算路径,可以确定计算路径中每一个目标运算单元所依赖的最初的属性,基于该最初的属性可以从本地文件、大数据集群或网络服务中获取对应的属性记录数据,将获取的属性记录数据作为待处理的属性记录数据。
其中,所述待处理的属性数据记录可以为一个也可以为多个。所述目标运算单元也可以为一个或多个,这里不做限定。
执行S103时,所述方法还包括:对所述待处理的属性数据记录进行校验,得到校验结果;其中,所述校验结果用于表征待处理的属性数据记录是否超出属性数据范围,或待处理的属性数据记录的类型与输出特征类型是否匹配;
当所述检验结果表征待处理的属性数据记录存在错误时,生成第二提示信息;其中,所述第二提示信息用于指示待处理的属性数据记录出现错误,以及提示出错的属性名称、错误原因和原始数据中至少之一。
举例来说,待处理的属性数据类型可以是数值型(例如,整型int,浮点型float)、文本型(例如,字符串类型string)、列表型(例如,整型列表list<int>)或非结构化类型(例如,map<string,double>)。属性数据范围可以根据实际情况进行设置,并且与待处理的属性数据的类型相关,比如,文本型的待处理的属性数据,但是出现了小数,则校验结果为错误。然后,根据待处理的属性数据的名称、错误原因等生成前述第二提示信息。
可选地,所述方法还包括:当获取的待处理的属性数据记录为空时,将所述待处理的属性数据设置为默认值。
需要指出的是,待处理的属性数据的默认值与其类型相关,可以是不同类型的待处理的属性数据可以对应不同的默认值。比如,前述待处理的属性数据为文本型,那么其默认值为一个默认的文本数据;又比如,待处理的属性数据为浮点型,那么对应的默认值为一个默认的浮点型数据。其他类型的待处理的属性数据的默认值也可以存在各自对应的默认值,本实施例不再进行穷举。
通过执行S103可以根据目标特征确定对应的计算路径,进而确定对应的待处理的属性数据记录,以及进行运算所要使用到的一个或多个目标运算单元。然后执行S104,基于待处理的属性数据记录以及一个或多个目标运算单元处理逻辑进行运算,将得到的运算结果赋值给目标特征。
其中,每个目标运算单元的输入可以是待处理的属性数据记录或已完成运算的某一个目标运算单元的输出。
S104中,所述基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果时,可以有以下几种方式:
一种方式中,依次基于待处理的属性数据记录以及对应的目标运算单元进行运算,得到每一个目标运算单元的输出特征,直至得到最终的输出结果。比如,以图2为例进行说明,假设目标特征为“u_age_bucket”以及“u_age_bucket_i_cate”,可以先对待处理的属性数据记录“u_age”以及目标运算单元“bucketize”进行计算得到对应的输出结果并对目标特征进行赋值;然后再基于“u-age”以及“i-cate”通过目标运算单元“cross”进行计算得到对应的输出结果并对目标特征进行赋值。
另一种方式中,在所述目标运算单元中存在无输入输出依赖关系的运算单元的情况下,控制所述无输入输出依赖关系的运算单元进行并行计算。
其中,所述无输入输出依赖关系的运算单元,指的是多个目标运算单元中,存在第一目标运算单元的输入与第二目标运算单元的输出特征之间无关,并且,第一目标运算单元的输出特征也不作为第二目标运算单元的输入属性,那么第一目标运算单元以及第二目标运算单元之间不存在输入输出依赖关系。比如,仍以图2为例,若目标运算单元中包含图2的bucketize以及map_top_k这两个运算单元,从图2中可以看出这两个运算单元之间不存在任何输入输出依赖关系,那么这两个运算单元可以进行并行计算。
需要理解的是,在一次目标特征运算的过程中,可能存在多个相互之间不存在依赖关系的目标运算单元,并不仅限于前述两个运算单元。比如,同时可能存在3个或更多的运算单元之间没有输入输出依赖关系,那么均可以同时进行并行的计算,只是本实施例不进行穷举。
反之,如果目标运算单元中存在某一个目标运算单元依赖于其他目标运算单元的输出,就不可以进行并行计算,而是要在另一个目标运算单元计算完成之后,再进行计算。如图2中,“map_norm”的输出“u_cate_top_norm”为“corss”这个运算单元(图2中最右侧,用于得到“u_age_bucket_i_cate”这个特征的运算单元)的输入,这两个运算单元是不可以进行并行计算的,“cross”的计算需要等到“map_norm”完成运算得到“u_cate_top_norm”的输出之后再执行。
这种方式可以确定并行处理的目标运算单元,进而进行并行计算,这样就可以提高同组运算单元间的运行并行度,并且提升一定的计算效率。
需要指出的,无论采用前述两种方式中哪种进行目标特征单元的计算处理,若某一个目标运算单元的输出被其他一个或多个目标运算单元使用,或者被其他一个目标运算单元使用多次,该输出仅需要进行一次计算,这种方式避免了部分运算单元的多次运算,提高了特征工程计算效率。例如,在推荐场景中,需要给一个用户推荐候选的L个物品(L为大于等于2的整数),使用子图单独计算的方式用户子图中的运算单元只需要计算一次,而直接计算方式中用户特征需要计算L次。由此看出本实施例前述进行子图的划分的处理方式,为后续的计算极大地减少了计算冗余。
执行S104之前还需要确定目标格式。由于不同的机器学习算法和框架可能依赖不同的特征格式,甚至同一个机器学习算法在不同的数据场景下不同的输入格式特征会有不同的效果。以逻辑回归分类算法为例,在大规模稀疏数据场景下适合使用索引为哈希值的稀疏格式特征向量;在数据量小数值特征多时,使用不带名称的稠密向量训练模型效果可能更佳。因此,在实际处理中,用户可能会根据当前的场景或当前的需求来确定最终的目标特征采用哪种目标格式。
本实施例提供的方案中,所述目标格式的确定方式可以为:基于所述特征工程配置项确定所述目标格式,或根据传入参数请求确定所述目标格式;所述传入参数请求中包含指定的所述目标格式;其中,所述目标格式包括以下至少之一:原始特征数据、索引为特征名稀疏格式特征向量、索引为哈希值的稀疏格式特征向量、带名称的稠密向量、不带名称的稠密向量。
分别来说,一种情况下,用户在配置特征工程配置项的时候,在其中设置了“feature_format”(特征格式)这个内容或字段。如此,可以在执行S101的处理中,通过解析特征工程配置项,生成运算单元列表时,还通过解析特征工程配置项中的特征格式的内容确定所述目标格式。
另一种情况下,用户可以在配置特征工程配置项的时候,没有设置“feature_format”(特征格式)这个内容或字段,此时,在执行S104之前,或者在执行S103之前,或者在执行S101之前,用户可以发出传入参数请求,该传入参数中包含有用户指定的目标格式。这样,可以通过接收到传入参数的请求,来确定目标格式。再进一步地,用户可以根据实际的需求来确定当前所需的目标特征的格式,进而将其作为目标格式,将目标格式加入到传入参数请求中。该传入参数可以是指定模型(训练中的模型或者预测模型)的传入参数。
还有一种情况,就是用户在配置特征工程配置项的时候,在其中设置了“feature_format”(特征格式)这个内容或字段,并且用户也发起了传入参数请求。这种情况下,可以根据预先设置的规则来确定使用哪种目标格式,比如,预先设置的规则为用户发起的传入参数请求的优先级最高,那么不论特征工程配置项中是否包含特征格式,都根据传入参数请求来确定目标格式;或者反之亦可,也就是,设置根据特征工程配置项中包含的特征格式来确定目标格式的优先级最高,则不论用户是否发出传入参数请求,都根据特征工程配置项中包含的特征格式来确定目标格式。
S104基于确定的所述目标格式,将目标特征转换为指定的目标格式的特征并输出。
以目标特征为用户类别偏好特征(u_category)为例进行说明,假设用户类别偏好数据为{"娱乐":0.8,"体育":0.6},表示用户对娱乐类别偏好系数为0.8,对体育偏好系数为0.6,当特征名稀疏格式特征向量时,输出结果为{"u_category__娱乐":0.8,"u_category__体育":0.6};输出格式是索引为哈希值的稀疏格式特征向量时,输出结果为{1931643211:0.8,1355713286:0.6},其中1931643211和1355713286两个数值为"u_category__娱乐"和"u_category__体育"进行数值哈希以后的结果;格式为带名称的稠密向量,输出结果为{"u_category_0":0.8,"u_category_3":0.6},其中数值0和3分别为"娱乐"和"体育"在类别统计列表中的索引值;输出格式为不带名称的稠密向量等格式时,输出结果为{12:0.8,15:0.6},其中12和15分别为"u_category_0"和"u_category_3"特征在所有输出特征名列表中的索引。
还需要指出的是,针对同一个目标特征,可以多次进行处理得到多种目标格式的同一个目标特征。其中,多次处理可以为多次对目标特征转换为目标格式的处理,和/或可以为多次采用不同的属性数据记录进行计算的过程,本实施例不对其进行限定。多次处理中可以分别采用不同的方式指示或确定目标格式,比如,其中一次或多次处理可以通过所述特征工程配置项确定所述目标格式,另外一次或多次处理可以根据传入参数请求确定所述目标格式。
另外,所述方法还包括:记录所有目标运算单元执行计算后生成的输出。这里的输出,可以包括中间输出(或者可以称为除最终的目标特征之外的中间特征)以及最终的输出结果(也就是用于赋值给目标特征的输出结果)。其中,记录的输出结果或中间输出可以为与目标格式无关的数据内容。基于此,可以在需要进行检查时候,通过中间输出的内容,查看执行计算的中间过程是否有误。另外,通过将目标运算单元运算结果保存为和目标格式无关的数据,可以便于将输出结果转成不同的目标格式的特征输出,满足了不同机器学习算法和框架对特征输入格式不同的需求。
进一步地,执行S104的过程中,还可以包括:对目标运算单元执行过程进行运算检查;当所述目标运算单元的运算过程中出现错误时,生成第三提示信息;所述第三提示信息用于提示出现错误的运算单元信息、错误信息、以及输入/输出中至少之一。
也就是说,在每次完成目标特征的运算的时候,都可以进行运算检查,这里,运算检查就可以使用到前述记录所有目标运算单元执行计算后生成的输出。比如,可以判断某一个目标运算单元的输出作为另一个目标运算单元的输入的时候,是否存在错误,比如,格式不匹配导致的错误、或者结果错误等等,若确定存在错误,那么可以提示出现错误的运算单元信息、错误信息和对应的输入的位置。当然,还可以存在其他的错误,本实施例不做穷举。
本实施例提供的方案,还可以提供其他的校验方式,前面已经描述过针对同一个目标特征,可以多次进行处理得到多种目标格式的同一个目标特征,即可以得到多种不同目标格式的同一个目标特征。相应的,本实施例还可以:采用多种目标格式输出的同一目标特征进行相互验证,得到验证结果。所述验证结果可以用于表示某一个目标格式的目标特征与其他格式的目标特征的内容不符。此时,可以认为计算存在错误,可以基于每次进行目标特征的计算时记录的输出进行回查,确定出现错误的位置,进而也可以进行提示,以表明出现错误的目标格式、出现错误的目标运算单元、错误信息等等至少之一。
也就是可以使用不同的目标格式的目标特征相互验证和调试对比。举例来说,目标格式是索引为哈希值的稀疏格式特征向量时哈希值对应的含义不容易确定特征名称,可以使用目标格式为特征名稀疏格式特征向量格式的特征进行逐个对比。
如此,本实施例的方案可以根据指定的目标格式将特征运算生成的结果进行输出,由于可以根据实际需求进行目标格式的指定,从而支持多种格式特征输出,可直接适配不同的算法和框架。同时,不同的特征可以相互验证,保证计算过程的正确性。
本实施例提供的方案还可以提供其他的校验方式,比如:若基于目标格式转换或输出所述目标特征的过程中出现错误,则生成第四提示信息;所述第四提示信息用于提示出错的位置、特征名、特征数据和目标格式中至少之一。这种校验可以判断最终输出的目标特征是否为目标格式,或者换句话说,目标特征的格式是否为指定的目标格式,若不是,则回查特征转换以及特征输出的处理过程以确定是否存在错误,进而确定出现错误的位置等。
本实施例提供的前述多种校验方式,可以在每次进行目标特征生成的时候全部使用,或者可以根据设置仅使用其中一部分,这些方式均在本实施例的保护范围内,不再一一赘述。
本实施例提供的特征处理方法,可以应用于电子设备或计算装置,比如,可以用于执行机器学习的特征工程的系统(或服务器系统)或计算装置来执行。
本实施例提供的特征处理方法可以应用在机器学习领域中。所述机器学习关注于从数据中自动分析获得规律,并利用规律对未知数据进行预测的方法。图3示出了机器学习离线训练和在线预测的基本流程,如图3所示,离线训练部分首先需要准备训练数据,通过特征工程步骤将原始属性数据转成目标特征,再将目标特征输入机器学习算法训练得到模型,然后对训练模型进行离线评估。如图3所示,在线预测流程中,首先也需要准备数据,然后经过特征工程将属性数据转成目标特征,再将目标特征输入已经加载离线训练得到的模型进行预测,最后对在线预测结果进行评估。机器学习方法包括监督学习、无监督学习等方法都属于对样例学习的范围,无论哪种学习方法都依赖对待分析的属性数据的分析和理解。通常待分析的属性数据中每条记录包含一个或多个属性信息(例如描述人物画像的年龄、性别等),其中可能存在部分属性信息(如数据类型为字符串的性别)不能直接应用于机器学习算法,需要经过转换成为数值特征。同时为了更准确地表征待分析数据,训练出更好的模型,特征本身也需要经过一定的转换和/或组合成为新的特征,这个过程一般称为特征工程。可以看出,在机器学习领域中通过特征工程的特征处理得到目标特征非常重要,特征处理的好坏直接影响着机器学习训练模型的优劣。基于此,本实施例提供以上处理方案进行特征处理。
上述实施例提供的特征处理方法结合图4进行一种示例性的说明,可以包括:解析特征工程配置项;编译优化特征工程策略;获取待处理的属性数据记录;执行特征工程策略运算;输出指定格式特征(也就是输出目标格式的目标特征)。其中,解析特征工程配置项的处理包含前述S101的处理内容;编译优化特征工程策略的处理包含前述S102的处理内容;获取待处理的属性数据记录的处理可以包含前述S103的处理内容;执行特征工程策略运算以及输出指定格式特征的处理可以包括前述S104的处理内容,这里不再对图4的处理过程进行详述。
本发明使用预定义的运算单元以及可用属性来描述特征工程策略,然后可以利用通用的运算单元执行计算得到最终的目标特征。如此,由于预定义的运算单元通用性高,因此在需要进行调整策略、调整需要得到的目标特征、更新策略的时候,只需要再次基于预定义的运算单元以及可用属性调整特征工程配置项即可实现,不再依赖于程序的升级部署,从而解决了现有技术中特征工程可读性差、通用性差、无法复用、特征调整迭代周期长、计算冗余度高等问题,使得特征调整简单快速,提高了特征处理的效率。
另外,由于本发明编译优化特征运算策略过程中输出特征列表中输出特征的全部计算路径包含的运算单元为所述运算单元列表中的至少部分运算单元,也就是可以删除部分不必要的运算单元,从而可以减少特征处理中的计算冗余,提升处理效率。
示例性介质
在介绍了本发明示例性实施方式的方法之后,接下来,参考图5对本发明示例性实施方式的介质进行说明。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种计算机可读介质,其上存储有程序,当所述程序被处理器执行时用于实现本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的特征处理方法中的步骤。
具体地,上述处理器执行上述程序时用于实现如下步骤:
基于特征工程配置项,生成运算单元列表;其中,所述运算单元列表中包含至少一个运算单元及其对应的输入和输出;其中,所述特征工程配置项基于预定义的运算单元以及预定义的可用属性生成;
基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径;其中,所述输出特征列表中输出特征的全部计算路径包含的运算单元为所述运算单元列表中的至少部分运算单元;
基于目标特征及其对应的计算路径,确定待处理的属性数据记录以及目标运算单元;其中,所述目标特征为所述输出特征列表中的输出特征;
基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果,将所述输出结果赋值给所述目标特征,基于目标格式输出所述目标特征。
需要说明的是:上述的介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图5所示,描述了根据本发明的实施方式的介质50,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序,并可以在设备上运行。然而,本发明不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于:电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算设备。
示例性装置
在介绍了本发明示例性实施方式的介质之后,接下来,参考图6对本发明示例性实施方式的装置进行说明。
本发明实施例提供一种特征处理装置,如图6所示,包括:
解析模块61,用于基于特征工程配置项,生成运算单元列表;其中,所述运算单元列表中包含至少一个运算单元及其对应的输入和输出;其中,所述特征工程配置项基于预定义的运算单元以及预定义的可用属性生成;
编译模块62,用于基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径;其中,所述输出特征列表中输出特征的全部计算路径包含的运算单元为所述运算单元列表中的至少部分运算单元;
数据获取模块63,用于基于目标特征及其对应的计算路径,确定待处理的属性数据记录以及目标运算单元;其中,所述目标特征为所述输出特征列表中的输出特征;
特征处理模块64,用于基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果,将所述输出结果赋值给所述目标特征,基于目标格式输出所述目标特征。
所述预定义的运算单元,包括以下内容至少之一:
运算单元名称、功能说明、输入字段、输入字段数据格式、输出字段、输出字段数据格式、运行参数和使用样例。
所述装置还包括:
第一校验模块65,用于对所述特征工程配置项进行语义校验和/或语法校验;若所述特征工程配置项存在语义校验错误和/或语法校验错误,则生成第一提示信息;其中,所述第一提示信息包括以下至少之一:错误配置的位置、错误原因、错误类型。
所述编译模块62,用于根据所述运算单元列表中包含的至少一个运算单元的输入输出依赖关系,生成运算单元特征依赖图;其中,所述运算单元特征依赖图为有向无环图;删除所述运算单元特征依赖图中的N个运算单元,得到调整后的运算单元特征依赖图;其中,所述N个运算单元为非最终输出特征直接或间接依赖的运算单元;N为整数;基于调整后的运算单元特征依赖图,生成输出特征列表以及输出特征的计算路径。
所述编译模块62,用于根据每一个运算单元依赖的属性所属的不同对象,将所述调整后的运算单元特征依赖图划分为至少一个子图;其中,至少一个子图包含第一类子图以及第二类子图;所述第一类子图中的至少部分运算单元的输出作为第二类子图中的至少部分运算单元的输入;基于所述至少一个子图,生成输出特征列表以及所述输出特征列表中包含的输出特征的计算路径。
所述装置还包括:
第二校验模块66,用于对所述待处理的属性数据记录进行校验,得到校验结果;其中,所述校验结果用于表征待处理的属性数据记录是否超出属性数据范围,或待处理的属性数据记录的类型与输出特征类型是否匹配;当所述检验结果表征待处理的属性数据记录存在错误时,生成第二提示信息;其中,所述第二提示信息用于指示待处理的属性数据记录出现错误,以及提示出错的属性名称、错误原因和原始数据中至少之一。
所述数据获取模块63,用于当获取的待处理的属性数据记录为空时,将所述待处理的属性数据设置为默认值。
所述特征处理模块64,用于在所述目标运算单元中存在无输入输出依赖关系的运算单元的情况下,控制所述无输入输出依赖关系的运算单元进行并行计算。
所述特征处理模块64,用于基于所述特征工程配置项确定所述目标格式,或根据传入参数请求确定所述目标格式;所述传入参数请求中包含指定的所述目标格式;
其中,所述目标格式包括以下至少之一:原始特征数据、索引为特征名稀疏格式特征向量、索引为哈希值的稀疏格式特征向量、带名称的稠密向量、不带名称的稠密向量。
所述装置还包括:
第三校验模块67,用于对目标运算单元执行过程进行运算检查;当所述目标运算单元的运算过程中出现错误时,生成第三提示信息;所述第三提示信息用于提示出现错误的运算单元信息、错误信息、输入、输出中至少之一。
所述装置还包括:
第四校验模块68,用于若基于目标格式转换或输出所述目标特征的过程中出现错误,则生成第四提示信息;所述第四提示信息用于提示出错的位置、特征名、特征数据和目标格式中至少之一。
所述数据获取模块63,用于针对所述输出特征的计算路径中包含的全部运算单元中需要依赖统计数据的运算单元,获取对应的统计数据。
所述数据获取模块63,用于从本地文件、大数据集群或网络服务中获取所述待处理的属性数据记录。
本实施例中特征处理装置中各个模块的具体处理前述实施例中特征处理方法中的处理相同,这里不再赘述。
示例性计算设备
在介绍了本发明示例性实施方式的方法、介质和装置之后,接下来,参考图7对本发明示例性实施方式的计算设备进行说明。
所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明实施方式的计算设备可以至少包括至少一个处理单元以及至少一个存储单元。其中,所述存储单元存储有程序代码,当所述程序代码被所述处理单元执行时,使得所述处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明的各种示例性实施方式的特征处理方法中的步骤。
下面参照图7来描述根据本发明的这种实施方式的计算设备90。图7显示的计算设备90仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算设备90以通用计算设备的形式表现。计算设备90的组件可以包括但不限于:上述至少一个处理单元901、上述至少一个存储单元902,连接不同系统组件(包括处理单元901和存储单元902)的总线903。
总线903包括数据总线、控制总线和地址总线。
存储单元902可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)9021和/或高速缓存存储器9022,可以进一步包括非易失性存储器形式的可读介质,例如只读存储器(ROM)9023。
存储单元902还可以包括具有一组(至少一个)程序模块9024的程序/实用工具9025,这样的程序模块9024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
计算设备90也可以与一个或多个外部设备904(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口905进行。并且,计算设备90还可以通过网络适配器906与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图7所示,网络适配器906通过总线903与计算设备90的其它模块通信。应当理解,尽管图中未示出,可以结合计算设备90使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了特征处理装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。

Claims (10)

1.一种特征处理方法,包括:
基于特征工程配置项,生成运算单元列表;其中,所述运算单元列表中包含至少一个运算单元及其对应的输入和输出;其中,所述特征工程配置项基于预定义的运算单元以及预定义的可用属性生成;
基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径;其中,所述输出特征列表中输出特征的全部计算路径包含的运算单元为所述运算单元列表中的至少部分运算单元;
基于目标特征及其对应的计算路径,确定待处理的属性数据记录以及目标运算单元;其中,所述目标特征为所述输出特征列表中的输出特征;
基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果,将所述输出结果赋值给所述目标特征,基于目标格式输出所述目标特征。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述特征工程配置项进行语义校验和/或语法校验;
若所述特征工程配置项存在语义校验错误和/或语法校验错误,则生成第一提示信息;其中,所述第一提示信息包括以下至少之一:错误配置的位置、错误原因、错误类型。
3.根据权利要求1所述的方法,其特征在于,所述基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径,包括:
根据所述运算单元列表中包含的至少一个运算单元的输入输出依赖关系,生成运算单元特征依赖图;其中,所述运算单元特征依赖图为有向无环图;
删除所述运算单元特征依赖图中的N个运算单元,得到调整后的运算单元特征依赖图;其中,所述N个运算单元为非最终输出特征直接或间接依赖的运算单元;N为整数;
基于调整后的运算单元特征依赖图,生成输出特征列表以及输出特征的计算路径。
4.根据权利要求3所述的方法,其特征在于,所述基于调整后的运算单元特征依赖图,生成输出特征列表以及输出特征的计算路径,还包括:
根据每一个运算单元依赖的属性所属的不同对象,将所述调整后的运算单元特征依赖图划分为至少一个子图;其中,至少一个子图包含第一类子图以及第二类子图;所述第一类子图中的至少部分运算单元的输出作为第二类子图中的至少部分运算单元的输入;
基于所述至少一个子图,生成输出特征列表以及所述输出特征列表中包含的输出特征的计算路径。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
对所述待处理的属性数据记录进行校验,得到校验结果;其中,所述校验结果用于表征待处理的属性数据记录是否超出属性数据范围,或待处理的属性数据记录的类型与输出特征类型是否匹配;
当所述检验结果表征待处理的属性数据记录存在错误时,生成第二提示信息;其中,所述第二提示信息用于指示待处理的属性数据记录出现错误,以及提示出错的属性名称、错误原因和原始数据中至少之一。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述目标运算单元中存在无输入输出依赖关系的运算单元的情况下,控制所述无输入输出依赖关系的运算单元进行并行计算。
7.根据权利要求1所述的方法,其特征在于,确定目标格式的方式,包括:
基于所述特征工程配置项确定所述目标格式,或根据传入参数请求确定所述目标格式;所述传入参数请求中包含指定的所述目标格式;
其中,所述目标格式包括以下至少之一:原始特征数据、索引为特征名稀疏格式特征向量、索引为哈希值的稀疏格式特征向量、带名称的稠密向量、不带名称的稠密向量。
8.一种特征处理装置,包括:
解析模块,用于基于特征工程配置项,生成运算单元列表;其中,所述运算单元列表中包含至少一个运算单元及其对应的输入和输出;其中,所述特征工程配置项基于预定义的运算单元以及预定义的可用属性生成;
编译模块,用于基于所述运算单元列表,生成输出特征列表以及输出特征的计算路径;其中,所述输出特征列表中输出特征的全部计算路径包含的运算单元为所述运算单元列表中的至少部分运算单元;
数据获取模块,用于基于目标特征及其对应的计算路径,确定待处理的属性数据记录以及目标运算单元;其中,所述目标特征为所述输出特征列表中的输出特征;
特征处理模块,用于基于所述待处理的属性数据记录以及所述目标运算单元进行运算得到输出结果,将所述输出结果赋值给所述目标特征,基于目标格式输出所述目标特征。
9.一种介质,其存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的方法。
10.一种计算设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1-7中任一所述的方法。
CN202010753536.6A 2020-07-30 2020-07-30 特征处理方法、装置、介质和计算设备 Pending CN111859928A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010753536.6A CN111859928A (zh) 2020-07-30 2020-07-30 特征处理方法、装置、介质和计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010753536.6A CN111859928A (zh) 2020-07-30 2020-07-30 特征处理方法、装置、介质和计算设备

Publications (1)

Publication Number Publication Date
CN111859928A true CN111859928A (zh) 2020-10-30

Family

ID=72946374

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010753536.6A Pending CN111859928A (zh) 2020-07-30 2020-07-30 特征处理方法、装置、介质和计算设备

Country Status (1)

Country Link
CN (1) CN111859928A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104273A (ja) * 2007-10-22 2009-05-14 Sony Corp 情報処理装置、情報処理方法、およびプログラム
US20150095707A1 (en) * 2013-09-29 2015-04-02 International Business Machines Corporation Data processing
WO2019137444A1 (zh) * 2018-01-12 2019-07-18 第四范式(北京)技术有限公司 用于执行机器学习的特征工程的方法及系统
CN110275889A (zh) * 2019-06-26 2019-09-24 深圳前海微众银行股份有限公司 一种适用于机器学习的特征处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009104273A (ja) * 2007-10-22 2009-05-14 Sony Corp 情報処理装置、情報処理方法、およびプログラム
US20150095707A1 (en) * 2013-09-29 2015-04-02 International Business Machines Corporation Data processing
WO2019137444A1 (zh) * 2018-01-12 2019-07-18 第四范式(北京)技术有限公司 用于执行机器学习的特征工程的方法及系统
CN110275889A (zh) * 2019-06-26 2019-09-24 深圳前海微众银行股份有限公司 一种适用于机器学习的特征处理方法及装置

Similar Documents

Publication Publication Date Title
US11093707B2 (en) Adversarial training data augmentation data for text classifiers
US10585780B2 (en) Enhancing software development using bug data
US11593642B2 (en) Combined data pre-process and architecture search for deep learning models
CN112036162B (zh) 文本纠错的适配方法、装置、电子设备及存储介质
US10983904B1 (en) Test automation for data processing
US11599539B2 (en) Column lineage and metadata propagation
CN108776696B (zh) 节点配置方法及装置、存储介质和电子设备
US11334348B2 (en) Utilizing machine learning to identify and correct differences in application programming interface (API) specifications
US20210406993A1 (en) Automated generation of titles and descriptions for electronic commerce products
US20230078134A1 (en) Classification of erroneous cell data
CN115358397A (zh) 一种基于数据采样的并行图规则挖掘方法及装置
US20210117507A1 (en) Ascribing ground truth performance to annotation blocks
WO2021109874A1 (zh) 拓扑图生成方法、异常检测方法、装置、设备及存储介质
CN117591547A (zh) 数据库的查询方法、装置、终端设备以及存储介质
CN112784157A (zh) 行为预测模型的训练方法、行为预测方法及装置、设备
US11934927B2 (en) Handling system-characteristics drift in machine learning applications
US20210149793A1 (en) Weighted code coverage
US20230177052A1 (en) Performance of sql execution sequence in production database instance
US11715037B2 (en) Validation of AI models using holdout sets
CN111859928A (zh) 特征处理方法、装置、介质和计算设备
US11481212B2 (en) Automatic identification of reference data
CN114791865A (zh) 一种基于关系图的配置项自洽性检测方法、系统和介质
US11900106B2 (en) Personalized patch notes based on software usage
CN113434193B (zh) 根因变更的定位方法和装置
CN117151247B (zh) 机器学习任务建模的方法、装置、计算机设备和存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination