在线特征确定方法、装置、电子设备及存储介质与流程

文档序号:16756767发布日期:2019-01-29 17:28阅读:189来源:国知局
在线特征确定方法、装置、电子设备及存储介质与流程

本申请涉及计算机技术领域,特别是涉及一种在线特征确定方法、装置、电子设备及存储介质。



背景技术:

在o2o搜索推荐场景中,基于机器学习的排序是一个重要环节,排序效果的好坏直接影响用户体验和o2o平台的收益。其中特征决定了排序效果的上限。目前大多数排序算法,在获取特征时主要事先通过离线任务将不同维度和来源的数据关联在一起,然后提供一个特征数据的查询接口。申请人发现,现有技术中基于离线任务产生特征的方式存在以下问题:无法很好的保证线上特征和离线特征数据的一致,从而影响排序效果;只能依赖人工增加大量离线任务来增加新特征,无法灵活增加新特征,从而影响了特征的扩展性。



技术实现要素:

本申请提供一种在线特征确定方法,解决现有技术中以上至少一个问题。

第一方面,本申请实施例提供了一种在线特征确定方法,包括:

根据预测需求加载目标模型;

根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息;

根据所述组合机制描述信息,确定所述输入特征的特征值。

第二方面,本申请实施例提供了一种在线特征确定装置,包括:

目标模型加载模块,用于根据预测需求加载目标模型;

特征及组合机制描述信息确定模块,用于根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息;

特征在线确定模块,用于根据所述组合机制描述信息,确定所述输入特征的特征值。

第三方面,本申请实施例还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请实施例所述的在线特征确定方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时本申请实施例公开的在线特征确定方法的步骤。

本申请实施例公开的在线特征确定方法,通过根据预测需求加载目标模型,然后,根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息;最后,根据所述组合机制描述信息,确定所述输入特征的特征值,解决了现有技术中无法灵活增加新特征的问题。本申请实施例公开的在线特征确定方法通过配置信息设置模型需要的特征维度以及特征维度生成方法,从而在线进行特征交叉计算生成新的特征,极大提升了特征的扩展性。

附图说明

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

图1是本申请实施例一的在线特征确定方法流程图;

图2是本申请实施例二的在线特征确定方法的流程图;

图3是本申请实施例二的复合特征组合机制的描述信息示意图;

图4是本申请实施例二的复合特征定义数据示意图;

图5是本申请实施例二的抽象算法树示意图;

图6是本申请实施例三的在线特征确定装置结构示意图之一;

图7是本申请实施例三的在线特征确定装置的结构示意图之二。

具体实施方式

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

实施例一

本实施例公开的一种在线特征确定方法,如图1所示,该方法包括:步骤110至步骤130。

步骤110,根据预测需求加载目标模型。

本申请具体实施时,预先构建了策略数据,所述策略数据包括模型数据。其中,模型数据包括模型库和模型文件。例如,所述模型数据包括o2o搜索推荐业务在线排序的机器学习排序模型,如:逻辑回归模型和模型文件、梯度提升决策树及模型文件、深度学习模型及模型文件等。

具体实施时,不同的应用场景或业务需求需要加载不同的模型,需要根据预测需求从预设的策略数据中加载目标模型。以商户搜索为例,商户搜索请求包含用户信息(如用户标识、位置等),然后,根据预设的模型映射信息(如用户的请求流量类型)确定逻辑回归模型为目标模型,之后,加载所述逻辑回归模型。

本申请实施例中所述的模型数据是一种离线文件,在线使用的时候,必须加载到计算机的内存中,所以通过对所述模型文件进行解析,然后在内存中创建目标模型的实例,以实现模型加载。所述商户搜索请求包含的召回商户的条件信息(条件例如:中山公园美食),将作为数据服务的输入信息,以获取待排序的数据。

步骤120,根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息。

本申请具体实施时,所述策略数据还包括特征元数据。所述特征元数据包括模型需要的输入特征和复合特征定义数据。例如,所述特征元数据可以包括:索引特征、服务特征、键值特征以及复合特征等,所述特征元数据还包括复合特征定义数据。所述复合特征定义数据包括各种复合特征的声明,以及组合生成所述复合特征需要的特征处理算子的定义和实现。

在本申请的一些实施例中,所述模型文件中预置有配置信息,所述配置信息中包括相应模型需要的输入特征的维度信息以及组合生成所述输入特征的组合机制描述信息。在本申请的另一些实施例中,可以通过独立的模型与输入特征对应关系文件存储各模型需要的输入特征的维度信息和组合生成所述输入特征的组合机制描述信息。在目标模型加载完成之后,所述目标模型对应的输入特征和组合生成所述输入特征的组合机制描述信息即可通过模型文件或模型与输入特征对应关系文件确定。

步骤130,根据所述组合机制描述信息,确定所述输入特征的特征值。

进一步的,根据确定的输入特征的维度信息确定所述输入特征所述复合特征属性,并进一步确定所述输入特征对应的复合特征定义数据。然后,根据所述组合机制描述信息生成组合生成所述输入特征的组合机制的定义,所述组合机制的定义为由第二特征维度、特征处理算子组成的算法定义,如算法公式。然后,通过继承所述复合特征定义数据中定义的特征处理算子的实现,作为所述组合机制的定义中引用的所述特征处理算子的实现。最后,通过根据所述组合机制的定义,实例化组合机制。实例化的组合机制类似于创建了特征组合线程,通过执行所述组合机制实例,既可以根据所述第二特征维度的特征值计算出所述输入特征的特征值。

本申请实施例公开的在线特征确定方法,通过根据预测需求加载目标模型,然后,根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息;最后,根据所述组合机制描述信息,确定所述输入特征的特征值,解决了现有技术中无法灵活增加新特征的问题。本申请实施例公开的在线特征确定方法通过配置信息设置模型需要的特征维度以及特征维度生成方法,从而在线进行特征交叉计算生成新的特征,极大提升了特征的扩展性。

实施例二

本实施例公开的一种在线特征确定方法,如图2所示,该方法包括:步骤210至步骤270。

步骤210,预置策略数据。

在本申请的一些实施例中,所述策略数据包括模型数据和特征元数据。其中,模型数据包括模型库和模型文件,例如,所述模型数据逻辑回归模型和模型文件、梯度提升决策树及模型文件、深度学习模型及模型文件等;所述特征元数据包括模型需要的输入特征和复合特征定义数据,例如,所述特征元数据可以包括:索引特征、服务特征、键值特征以及复合特征等,所述特征元数据还包括复合特征定义数据。

策略数据为离线构建的数据,具体实施时,以代码或离线文件的形式存储。本实施例中,以通过离线文件存储策略数据举例说明在线特征确定方法的具体技术方案。

存储所述策略数据的离线文件中,可以通过数据表的形式定义模型以及模型与应用场景或预测需求的对应关系,便于后续根据应用场景或预测需求确定当前需要加载的模型。同时,所述策略数据的离线文件中还进一步包括每个模型在线使用时(如用于在线预测时)的输入特征的特征维度(即第一特征维度)以及组合生成所述第一特征维度的组合机制描述信息。在本申请的一些实施例中,通过在离线文件中设置模型配置信息的形式配置每个模型的输入特征。例如,每个模型的配置信息中包括该模型的部分输入特征的组合机制描述信息。所述输入特征为经过抽象得到的特征元数据,用于指示输入特征的属性信息或类别信息。在本申请的一些实施例中,如图3所示,所述组合机制描述信息包括输入特征310、组合生成所述输入特征的第二特征维度320,以及,对所述第二特征维度进行组合运算的特征处理算子330,所述输入特征310、第二特征维度320以及特征处理算子330按照预设的规则顺序排列,组成一个字符串,用于后续进行特征解析和组合运算。

所述复合特征定义数据包括各种复合特征的声明,以及组合生成所述复合特征需要的特征处理算子的定义和实现。图4是通过java类定义的复合特征定义数据示意图,图4中的410表示特征元数据,可以认为是抽象后的特征类型;复合特征类别下包括该类特征下的第一维度特征、特征处理算子等数据。如,图4中的430为输入特征product,图4中的420表示在组合生成复合特征时可以使用的特征处理算子。其中,所述特征处理算子包括逻辑运算符和函数。进一步的,所述复合特征定义数据还包括函数类特征处理算子的定义和实现,如图4中的440为函数类特征处理算子的定义。在本申请的一些实施例中,所述特征处理算子包括逻辑运算符、函数。对于函数类特征处理算子,如果所述函数不是系统函数,则需要首先定义并实现该函数。

步骤220,根据预测需求加载目标模型。

根据预测需求加载目标模型的具体实时方式参见实施例一,本实施例不再赘述。

步骤230,根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息。

在记载目标模型之后,进一步确定目标模型的配置信息,通过所述配置信息可以确定模型的输入特征。例如,所述目标模型的配置信息中定义了4种输入特征,分别为图3中所示的索引特征、服务特征、键值特征和复合特征。其中,复合特征的组合机制描述信息如图4的字符串所示。通过对特征做一系列的抽象,把它梳理为几种类型,包括索引特征、复合特征、服务特征以及一些索引特征。每种特征对应一种数据的获取方式,例如:索引特征、服务特征、索引特征就是从索引、服务、索引系统中获取特征数据。此外对一些复杂的特征计算,也做了抽象,形成了复合特征,利用复合特征可以实现很多的算子操作符、比如逻辑与(and),逻辑或(or),分段(level)等,通过这些算子操符可以形成新的特征,通过这种机制可以很好地实现特征的扩展性。

进一步的,所述索引特征、服务特征、键值特征进一步还可以包括第二特征维度。例如,所述索引特征包括:地理位置、品类、星级等。

步骤240,根据所述组合机制描述信息,确定所述输入特征的特征值。

在本申请的一些实施例中,所述组合机制描述信息包括依序排列的所述第一特征维度、特征处理算子和第二特征维度,所述根据所述组合机制描述信息,确定所述输入特征的特征值,包括:根据所述组合机制描述信息,确定组合生成所述第一特征维度的组合机制的定义,其中,所述组合机制用于指示通过所述特征处理算子对所述第二特征维度的特征值进行运算处理得到所述第一特征维度的特征值的算法;根据预设的复合特征定义数据和所述组合机制的定义,实例化所述组合机制;通过执行所述组合机制的实例对所述第二特征维度的特征值进行组合运算,确定所述输入特征的特征值。

可选的,在本申请的一些实施例中,所述根据所述组合机制描述信息,确定组合生成所述第一特征维度的组合机制的定义,包括:将所述第二特征维度作为叶子节点,将所述第一特征维度作为根节点,将所述特征处理算子按照由所述第二特征维度向所述第一特征维度的排列顺序逐级作为所述叶子节点的上一级父节点,生成抽象算法树,其中,所述父节点用于指示对下一级节点生成的值执行的运算处理;根据所述抽象算法树,确定所述组合机制的定义。

以图3所示的组合机制描述信息为例,通过对所述组合机制描述信息进行解析,可以确定该组合机制描述信息描述的输入特征为product,组合生成所述输入特征product的第二特征维度包括:poi、timerelevance和timeseg,对所述第二特征维度进行组合运算生成输入特征product的特征处理算子包括:dist、defaultdistscore、sqort、timerelevanceseek。具体实施时,按照该组合机制描述信息的格式对所述组合机制进行解析,如按照下划线进行分词,确定表示第一特征维度、第二特征维度和特征处理算子的子字符串;然后,取第一个子字符串作为第一特征维度;之后,确定所述第一特征维度的对应的复合特征定义数据,并将分词得到的子字符串和所述复合特征定义数据中定义的特征处理算子进行匹配,确定属于特征处理算子的子字符串;最后,将剩余的子字符串作为第二特征维度。

接下来,将所述第二特征维度poi、timerelevance和timeseg作为叶子节点,将所述第一特征维度product作为根节点,将所述特征处理算子dist、defaultdistscore、sqort、timerelevanceseek按照由所述第二特征维度向所述第一特征维度的排列顺序逐级作为所述叶子节点的上一级父节点,生成抽象算法树,生成的抽象算法树如图5所示。即所述第二特征维度poi和所述第一特征维度product之间紧邻所述第二特征维度poi的所述特征处理算子dist作为叶子节点510的父节点520;所述第二特征维度poi和所述特征处理算子dist之间紧邻所述特征处理算子dist的所述特征处理算子defaultdistscore作为父节点520的父节点;依次类推,确定组合生成第一特征维度product的抽象语法树。其中,所述父节点用于指示对下一级节点生成的值执行的运算处理。具体实施时,可以通过java等脚本语言描述所述抽象算法树,然后,通过语言解释器即可根据所述抽象算法树,确定所述组合机制的定义。

以图3所示的组合机制描述信息为例,它的物理意义为:对默认商户距离分开根号,然后再与商户时段相关分做乘积。经过对组合机制描述信息进行解析,可以得到一个如图5所示的树形结构,通过对树形结构的先序遍历可以还原得到复合特征product。在这个树形结构中,每一个父节点代表一种特征处理算子,比如sqrt是开平方运算,代表对下级子树的生成的值进行二次运算,从而得到新的特征值。具体实施时,通过预先配置好模型的输入特征(即第一特征维度)、第二特征维度和特征处理算子,新的特征(即复合特征)就可以通过配置,实现快速上线。具体实施时,可以根据业务需求设置特征处理算子,例如开根号是为了基于用户的距离敏感度确定更准确的距离特征,不同特征进行逻辑运算的作用是最大化不同特征之间的相关性,提升组合特征的准确性。

进一步可选的,在本申请的一些实施例中,所述根据预设的复合特征定义数据和所述组合机制的定义,实例化所述组合机制,包括:根据预设的复合特征定义数据,确定所述第一特征维度对应的所述复合特征定义数据中对所述特征处理算子的定义;根据所述特征处理算子的定义和所述组合机制的定义,确定所述组合机制的实现;根据所述组合机制的实现,实例化所述组合机制。

在本申请的一些实施例中,通过语言解释器对所述抽象算法树进行编译,确定的所述组合机制的定义可以为一段代码或者一个运算公式,例如,所述组合机制的定义可以表示为:

value(product)=sqrt(defaultdistscore(dist(poi)))*timerelevanceseek(timerelevance,timeseg)。

由上述公式可知,所述代码或运算公式表示的所述组合机制的定义中包括作为自变量的第二特征维度、作为运算符的特征处理算子和输出的第一特征维度。而特征处理算子的定义和实现则通过所述第一特征维度(如product)对应的所述复合特征定义数据定义。

然后,在系统运行过程中,在加载了目标模型之后,进一步创建每个复合特征对应的组合机制的实例,便于后续计算相应的复合特征时调用。

本实施例中,以用户输入查询词“麻辣小龙虾”执行商户搜索请求为例,所述商户搜索请求包含的召回商户的条件信息如麻辣小龙虾,将作为数据服务的输入信息,以获取待排序数据。然后,所述目标模型通过调用索引服务、键值服务为别获取所述待排序数据的索引特征、和键值特征;通过调用服务类服务获取用户信息、商户信息等服务特征;通过执行组合机制实例,进一步调用数据服务获取第二特征维度的特征值,并由组合计算公式计算得到第一特征维度(如product)的特征值。

本申请的一些实施例中,所述根据所述组合机制描述信息,确定所述输入特征的特征值的步骤之后,还包括:将所述输入特征的特征值输入至所述目标模型,确定所述特征值的预测结果;通过所述预测结果、所述输入特征,更新所述目标模型的训练样本;基于更新后的所述训练样本,更新训练所述目标模型。

步骤250,将所述输入特征的特征值输入至所述目标模型,确定所述特征值的预测结果。

在确定了所述输入特征的特征值之后,将所述输入特征的特征值输入至所述目标模型,可以得到对当前条待排序数据的排序得分。经过一段时间的在线预测,所述目标模型将多条待排序数据的排序得分。

在本申请的一些实施例中,在通过所述目标模型进行预测时,可以并行获取第二特征维度的特征。例如,对于查询维度(querylevel)的特征,可以并行地从各自的数据源中获取当前维度的特征数据,比如用户实时行为数据,用户画像数据等等。然后,对搜集的特征数据进行分组分片处理,如进行分片组合运算,以得到第一特征维度的特征。通过分片搜集和处理特征数据,可以有效提升模型的预测性能。

步骤260,通过所述预测结果、所述输入特征,更新所述目标模型的训练样本。

进一步的,通过将从每一条待排序数据中提取的输入特征的特征值和由所述目标模型的对该条待排序数据进行预测得到的预测得分组成一条训练样本,进行在线特征的搜集和存储,用于更新所述目标模型的训练样本。

步骤270,基于更新后的所述训练样本,更新训练所述目标模型。

在本申请的另一些实施例中,可以根据线上搜集的用于更新所述目标模型的训练样本,重新训练或优化所述目标模型,以保证离线和在线特征数据的一致性。

在本申请的一些实施例中,还可以通过在线搜集的特征进一步实时统计和/或离线统计模型输入特征的特征覆盖率,例如记录特征覆盖率随时间变化的情况,通过数据环比和同比及时发现特征覆盖率的异常。

本申请实施例公开的在线特征确定方法,通过根据预测需求加载目标模型,然后,根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息;最后,根据所述组合机制描述信息,确定所述输入特征的特征值,解决了现有技术中无法灵活增加新特征的问题。本申请实施例公开的在线特征确定方法通过配置信息设置模型需要的特征维度以及特征维度生成方法,从而在线进行特征交叉计算生成新的特征,极大提升了特征的扩展性。进一步的,通过在线搜集特征,并用于模型的更新训练,以保证离线和在线特征数据的一致性,从而提升模型预测的准确性。

实施例三

本实施例公开的一种在线特征确定装置,如图6所示,所述装置包括:

目标模型加载模块610,用于根据预测需求加载目标模型;

特征及组合机制描述信息确定模块620,用于根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息;

特征在线确定模块630,用于根据所述组合机制描述信息,确定所述输入特征的特征值。

可选的,所述组合机制描述信息包括依序排列的所述第一特征维度、特征处理算子和第二特征维度,如图7所示,所述特征在线确定模块630进一步包括:

组合机制定义子模块6301,用于根据所述组合机制描述信息,确定组合生成所述第一特征维度的组合机制的定义,其中,所述组合机制用于指示通过所述特征处理算子对所述第二特征维度的特征值进行运算处理得到所述第一特征维度的特征值的算法;

组合机制实例化子模块6302,用于根据预设的复合特征定义数据和所述组合机制的定义,实例化所述组合机制;

特征在线确定子模块6303,用于通过执行所述组合机制的实例对所述第二特征维度的特征值进行组合运算,确定所述输入特征的特征值。

可选的,所述组合机制实例化子模块6302进一步用于:

根据预设的复合特征定义数据,确定所述第一特征维度对应的所述复合特征定义数据中对所述特征处理算子的定义;

根据所述特征处理算子的定义和所述组合机制的定义,确定所述组合机制的实现;

根据所述组合机制的实现,实例化所述组合机制。

可选的,所述组合机制定义子模块6301进一步用于:

将所述第二特征维度作为叶子节点,将所述第一特征维度作为根节点,将所述特征处理算子按照由所述第二特征维度向所述第一特征维度的排列顺序逐级作为所述叶子节点的上一级父节点,生成抽象算法树,其中,所述父节点用于指示对下一级节点生成的值执行的运算处理;

根据所述抽象算法树,确定所述组合机制的定义。

可选的,所述特征处理算子包括逻辑运算符、函数。

可选的,如图7所示,所述装置还包括:

预测模块640,用于将所述输入特征的特征值输入至所述目标模型,确定所述特征值的预测结果;

训练样本搜集模块650,用于通过所述预测结果、所述输入特征,更新所述目标模型的训练样本;

模型更新训练模块660,用于基于更新后的所述训练样本,更新训练所述目标模型。

本申请实施例公开的在线特征确定装置,用于实现本申请实施例一和实施例二中所述的在线特征确定方法的各步骤,装置的各模块的具体实施方式参见相应步骤,此处不再赘述。

本申请实施例公开的在线特征确定装置,通过根据预测需求加载目标模型,然后,根据所述目标模型的预设配置信息,确定所述目标模型的输入特征的第一特征维度以及组合生成所述第一特征维度的组合机制描述信息;最后,根据所述组合机制描述信息,确定所述输入特征的特征值,解决了现有技术中无法灵活增加新特征的问题。本申请实施例公开的在线特征确定方法通过配置信息设置模型需要的特征维度以及特征维度生成方法,从而在线进行特征交叉计算生成新的特征,极大提升了特征的扩展性。进一步的,通过在线搜集特征,并用于模型的更新训练,以保证离线和在线特征数据的一致性,从而提升模型预测的准确性。

相应的,本申请还公开了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如本申请实施例一和实施例二所述的在线特征确定方法。所述电子设备可以为pc机、移动终端、个人数字助理、平板电脑等。

本申请还公开了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例一和实施例二所述的在线特征确定方法的步骤。

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

以上对本申请提供的一种在线特征确定方法及装置进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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

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