离线特征融合方法、装置、电子设备及存储介质与流程

文档序号:33556582发布日期:2023-03-22 12:10阅读:75来源:国知局
离线特征融合方法、装置、电子设备及存储介质与流程

1.本技术涉及数据处理技术领域,尤其涉及一种离线特征融合方法、装置、电子设备及存储介质。


背景技术:

2.随着人工智能时代的到来,机器学习模型已经成为人工智能的数学引擎。它通过梳理海量数据来进行推理,并对这些数据进行预测。数据或者算法科学家会根据应用场景构建不同的机器学习模型,然后使用大量的样本数据来反复调整和验证模型的有效性和准确性,最终使得机器学习模型能够对具体的实际情况做出准确的预测。
3.现有的,用于训练机器学习模型的样本特征一般是通过hive等大数据计算引擎计算得到的。不同的离线特征先通过不同的hive任务来计算得到,然后存储至缓存介质以供模型训练时使用。由于不同hive任务计算得到的离线特征会被存储在不同的hive表中,因此对于某个机器学习模型而言,其所需的多个离线特征往往会存储在不同的hive表中。这样,要对该机器学习模型进行训练时,首先需要从不同的hive表里面提取出需要的离线特征,然后对各特征进行组合形成多个训练样本后再将每个训练样本依次输入至机器学习模型中。
4.现有的离线特征提取方法为,先确定需要的离线特征所属全部hive表,然后对这些hive表直接进行关联形成一个新的hive表(大宽表),最后通过读取大宽表的关联数据将其写入到缓存中以供训练使用。在该种特征提取方法中,不同hive表之间的关联操作非常耗费计算资源,执行速度很慢。并且关联后的特征数据要先存储到大宽表中然后再读出来写到缓存中,耗时久的同时还会造成存储和计算资源的浪费。因此,如何更高效的提取机器学习模型所需的离线特征成为亟需解决的问题。


技术实现要素:

5.有鉴于此,本技术实施例提供了一种离线特征融合方法、装置、电子设备及存储介质。通过为机器学习模型提前配置特征配置表的方式,直接访问多个hive表并从中提取所需要的离线特征,然后根据特征关联主键对抽取的离线特征进行特征融合,得到融合离线特征。这样就可以利用融合离线特征来直接训练机器学习模型。该方法可以实现灵活抽取离线特征的目的。同时,特征关联融合后的结果直接会被写入缓存中,避免了因多次写入而浪费存储资源。
6.本技术实施例第一方面提供了一种离线特征融合方法,该离线特征融合方法包括:
7.获取至少一个机器学习模型对应的预先建立的特征配置表。特征配置表至少包括表征机器学习模型的模型标识,表征离线特征的离线特征标识,表征离线特征所属hive数据表的hive数据表标识及hive数据表中存储的离线特征对应的特征关联主键。
8.根据至少一个机器学习模型对应的特征配置表中的离线特征标识及hive数据表
标识,从离线特征所属hive数据表中抽取离线特征。离线特征包括离线特征对应的特征关联主键、离线特征标识和离线特征值。
9.根据离线特征对应的特征关联主键,对抽取的至少一个机器学习模型对应的离线特征进行特征融合,以获得融合离线特征。
10.本技术实施例第二方面提供了一种离线特征融合装置,该离线特征融合装置包括:
11.获取单元,用于获取至少一个机器学习模型对应的预先建立的特征配置表。特征配置表至少包括表征机器学习模型的模型标识,表征离线特征的离线特征标识,表征离线特征所属hive数据表的hive数据表标识及hive数据表中存储的离线特征对应的特征关联主键。
12.确定单元,用于根据至少一个机器学习模型对应的特征配置表中的离线特征标识及hive数据表标识,从离线特征所属hive数据表中抽取离线特征。离线特征包括离线特征对应的特征关联主键、离线特征标识和离线特征值。
13.处理单元,用于根据离线特征对应的特征关联主键,对抽取的至少一个机器学习模型对应的离线特征进行特征融合,以获得融合离线特征。
14.本技术实施例第三方面还提供了一种电子设备,包括:存储器和处理器,存储器和处理器耦合。
15.其中,存储器用于存储一条或多条计算机指令。
16.处理器用于执行一条或多条计算机指令,以实现上述第一方面所述的离线特征融合方法。
17.本技术实施例第四方面还提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其特征在于,该指令被处理器执行以实现上述任意一种技术方案所述的离线特征融合方法。
18.与现有技术相比,本技术实施例具有以下优点:
19.本技术实施例提供的离线特征融合方法,首先根据待训练的机器学习模型对应的输入预先为其建立特征配置表。该特征配置表中包括机器学习模型所需要的离线特征的各种信息,包括离线特征的离线特征标识。表征离线特征所属hive数据表的hive数据表标识,以及该所属hive数据表中离线特征对应的特征关联主键等。这样,就可以根据特征配置表直接访问原始的hive表,直接从离线特征所属hive数据表中抽取离线特征,获得离线特征对应的特征关联主键、离线特征标识和离线特征值。最后根据各个离线特征对应的特征关联主键,来对多个离线特征进行融合,形成多个特征样本来训练机器学习模型。可以理解的,通过特征配置表的方式,可以直接访问hive表获得单个的离线特征,实现了灵活的抽取离线特征的目的,当遇到离线特征的增加或删除情况时,只需要修改特征配置表中的抽取信息即可。这样在高效机器学习模型所需离线特征的同时也大大提高原始特征的复用性。另外,获取到多个离线特征后,直接对离线特征进行融合并将特征关联融合后的结果直接写入缓存中,避免进行多个hive表之间融合计算以得到大宽表的操作,同时也无需先将融合离线特征存储在大宽表中,再从大宽表读取数据写入缓存,从而达到节约计算资源和存储资源的目的,同时特征融合过程的耗时也将大幅缩短。
附图说明
20.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
21.图1为本技术实施例提供的一种离线特征融合方法的流程示意图;
22.图2为本技术实施例提供的另一种离线特征融合方法的流程示意图;
23.图3为本技术实施例提供的机器学习模型的训练过程的流程示意图;
24.图4为本技术实施例提供的一种离线特征融合装置的结构示意图;
25.图5为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
26.本技术实施例提供了一种离线特征融合方法、装置、电子设备及存储介质。通过为机器学习模型提前配置特征配置表的方式,直接访问多个hive表并从中提取所需要的离线特征,然后根据特征关联主键对抽取的离线特征进行特征融合,得到融合离线特征。这样就可以利用融合离线特征来直接训练机器学习模型。该方法可以实现灵活抽取离线特征的目的。同时,特征关联融合后的结果直接会被写入缓存中,避免了因多次写入而浪费存储资源。
27.为了使本领域的技术人员能够更好的理解本技术的技术方案,下面结合本技术实施例中的附图,对本技术进行清楚、完整地描述。但本技术能够以很多不同于上述描述的其他方式进行实施,因此,基于本技术提供的实施例,本领域普通技术人员在不经过创造性劳动的情况下,所获得的所有其他实施例,都应属于本技术保护的范围。
28.需要说明的是,本技术的权利要求书、说明书及附图中的术语“第一”、“第二”、“第三”等是用于区别类似的角色,并不用于描述特定的顺序或先后次序。这样使用的数据在适当情况下是可以互换的,以便于本文所描述的本技术的实施例,能够以除了在本文图示或描述的内容以外的顺序实施。此外,术语“包括”、“具有”以及他们的变形形式,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
29.随着人工智能时代的到来,机器学习模型已经成为人工智能的数学引擎。它通过梳理海量数据来进行推理,并对这些数据进行预测。数据或者算法科学家会根据应用场景构建不同的机器学习模型,然后使用大量的样本数据来反复调整和验证模型的有效性和准确性,最终使得机器学习模型能够对具体的实际情况做出准确的预测。
30.现有的,用于训练机器学习模型的样本特征一般是通过hive等大数据计算引擎计算得到的。不同的离线特征先通过不同的hive任务来计算得到,然后存储至缓存介质以供模型训练时使用。由于不同hive任务计算得到的离线特征会被存储在不同的hive表中,因此对于某个机器学习模型而言,其所需的多个离线特征往往会存储在不同的hive表中。这样,要对该机器学习模型进行训练时,首先需要从不同的hive表里面提取出需要的离线特征,然后对各特征进行组合形成多个训练样本后再将每个训练样本依次输入至机器学习模
型中。
31.现有的离线特征提取方法为,先确定需要的离线特征所属全部hive表,然后对这些hive表直接进行关联形成一个新的hive表(大宽表),最后通过读取大宽表的关联数据将其写入到缓存中以供训练使用。在该种特征提取方法中,不同hive表之间的关联操作非常耗费计算资源,执行速度很慢。且每当要加入新特征或者去掉旧特征时,都需要修改大宽表的结构增减字段,操作成本很高。另一方面因为每个机器学习模型的所需的离线特征数据,因此得到的大宽表都是专属的,彼此无法复用。并且关联后的特征数据要先存储到大宽表中然后再读出来写到缓存中,耗时久的同时还会造成存储和计算资源的浪费。因此,如何更高效的提取机器学习模型所需的离线特征成为亟需解决的问题。
32.针对上述问题,本技术提供了一种离线特征融合方法、装置、电子设备及存储介质。首先,根据待训练的机器学习模型的输出需求预先为其建立特征配置表。这样,就可以根据特征配置表直接访问原始的hive表,直接从离线特征所属hive数据表中抽取离线特征。最后再对离线特征进行融合,形成多个融合离线特征来训练机器学习模型。这样,可以直接访问hive表获得单个的离线特征,达到灵活的抽取离线特征的目的。在获取到多个离线特征后,直接对离线特征进行融合而无需进行hive表之间的融合。这样可以大大节约计算资源和存储资源,同时减少特征融合过程的时间。下面结合具体实施例及附图对本技术所述的方法、装置、终端以及计算机可读存储介质做进一步详细说明。
33.图1为本技术实施例提供的一种离线特征融合方法的流程示意图。需要说明的是,该流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,同时,在某些情况,可以以不同于该流程示意图中示出的逻辑顺序执行所释出的步骤。
34.如图1所示,该离线特征融合方法包括以下几个步骤:
35.101、获取机器学习模型对应的预先建立的特征配置表。
36.机器学习模型一般需要根据多个输入特征来确定一个输出结果。比如,机器学习模型是关于游戏道具推荐的模型,那么该机器学习模型的输入包括用户道具购买特征和用户道具使用特征。当利用该机器学习模型获得用户道具推荐结果时,就需要将用户道具购买特征和用户道具使用特征同时作为机器学习模型的输入。而机器学习模型的构建需要用大量的样本数据(训练特征)来进行训练,反复调整和验证模型的有效性、准确性,才能使得模型能够与实际情况更为契合进而做出准确预测。因此,在对该机器学习模型进行训练时,也需要根据已有的用户道具购买特征和用户道具使用特征来对其进行训练。
37.然而,现有的不同特征都是通过不同的hive任务来获取的,而且不同的特征都被存储在不同的hive数据表中。比如在上述例子中,用户道具购买特征数据和用户道具使用特征数据均在不同的hive数据表中存储。因此,在对机器学习模型进行训练时,要对不同的hive表中的离线特征进行融合,得到融合离线特征。
38.其中,离线特征是相对实时特征而言,即该特征数据是之前一段时间通过hive等大数据计算引擎计算好的且存储在hive数据表中的特征数据。比如t+1离线特征,就是指利用前一天的运行数据计算出的特征数据。这些离线特征可以按照计算方便随意的存储在不同的hive数据表中,而所有的hive数据表则组成离线特征数据库(hive数据表集合)。
39.示例性的,表1示出了hive数据表的表结构。其中,每一个hive数据表中包含多个特征的特征值。其中,hive数据表根据离线特征标识来存储不同的离线特征的特征值,而离
线特征标识可以为离线特征的特征名,也可以是离线特征的特征符号,具体不做限定。如表1所示,该hive数据表包括特征关联标识、离线特征标识和特征值。其中,特征关联标识则为特征关联主键,用于将不同的离线特征联系起来,例如在上述例子中,特征关联主键可以是用户账户名称,这样,可以利用用户账户名称将属于同一个用户的用户道具购买特征数据和用户道具使用特征数据联系起来。而该hive数据表包括特征1、特征2、特征3三种离线特征以及各种对应的特征值。其中,每一个特征值均对应一个具体的离线特征。
40.表1
41.特征关联主键特征1特征2特征3
ꢀꢀꢀꢀ
42.本技术实施例是利用特征配置表的方式在离线特征数据库众多的离线特征中抽取机器学习模型所需要的离线特征的。该特征配置表的建立过程为首先根据机器学习模型的输入确定机器学习模型所需的至少一个离线特征以及特征关联主键。然后确定每个离线特征的离线特征标识,根据离线特征标识确定每个离线特征在离线特征数据库中所属的hive数据表,再根据离线特征标识确定每个离线特征在所属hive数据表中的所属目标列。最后将每个离线特征对应离线特征标识、所属hive数据表和所属hive数据表中的所属目标列,以及特征关联主键等信息进行记录,得到机器学习模型对应的特征配置表。
43.也就是说,特征配置表至少包括表征机器学习模型的模型标识,示例性的,比如机器学习模型的模型名称,表征离线特征的离线特征标识,比如离线特征的特征名,表征离线特征所属hive数据表的hive数据表标识,比如所属hive数据表的hive表名、所属hive数据表中存储的离线特征对应的特征关联主键。其中,特征关联主键是建立hive数据表中形成的,用于查询hive数据表中存储内容的主关键字,类似于索引,用于标识hive数据表中特定的存储数据。
44.在上述例子中,特征配置表就需要包括机器学习模型的模型名称、用户道具购买特征数据的特征名称、用户道具使用特征的特征名称、用户道具购买特征数据所属hive数据表的hive表名、用户道具使用特征数据所属hive数据表的hive表名、以及特征关联主键如用户账户信息等数据,这样,才可以利用特征配置表去查询离线特征数据库的各hive数据表,获得离线特征。
45.特征配置表用于指示待训练的机器学习模型和hive数据表之间的对应关系,记录在离线特征数据库中抽取目标离线特征的方法。同时特征配置表还可以包括每一个离线特征对应的预处理方式,即在根据特征配置表记录内容获取到离线特征之后,还需要根据对应的预处理方式来对各离线特征对应的特征值进行预处理,最后再进行后续的离线特征融合环节。其中,离线特征的预处理方式包括但不限于标准化、特征编码等,在此不做赘述。
46.102、根据特征配置表中的离线特征标识及hive数据表标识,从离线特征所属hive数据表中抽取离线特征。
47.在预先建立后特征配置表后,当需要对机器学习模型进行训练时,就需要利用特征配置表来抽取离线特征,形成训练样本来训练机器学习模型。在抽取相关离线模型时,先根据特征配置表中的hive数据表标识找到对应的hive数据表,然后在该hive数据表中根据离线特征标识来确定目标离线特征对应的一列特征,得到一列离线特征值,其中,每一个离线特征值都对应一个具体的训练样本。示例性的,假设机器学习模型对应的特征配置表中
记录的hive数据表标识包括表1所示hive数据表的表名,而记录的离线特征标识包括特征2的标识。那么就需要先找到表1所示hive数据表,然后在该hive数据表中确定特征2对应的第三列数据,那么就需要抽取该hive数据表中的第三列数据作为机器学习模型对应的离线特征。其中,每一个离线特征均包括离线特征对应的特征关联主键、离线特征标识和离线特征值。
48.103、根据离线特征对应的特征关联主键,对抽取的机器学习模型对应的离线特征进行特征融合,以获得融合离线特征。
49.在获得大量的离线特征后,就需要对抽取的机器学习模型对应的离线特征进行特征融合,以获得融合离线特征。其中,融合离线特征作为机器学习模型的输入,可以作为训练样本中的输入数据来训练机器学习模型。例如在上述例子中,要训练输出用户道具推荐结果的机器学习模型时,就需要根据特征配置表确定存储有用户道具购买特征的第一个hive数据表和存储有用户道具使用特征的第二个hive数据表,然后确定第一个hive数据表中用户道具使用特征对应的数据以及第二个hive数据表中用户道具购买特征对应的数据。接着每一个抽取的数据均对应特征关联主键,即用户账户信息,比如第一个hive数据表中抽取到的每一个数据即为某个用户对应的用户道具使用特征的特征值,第二个hive数据表中抽取到的每一个数据即为某个用户对应的用户道具购买特征的特征值。最后,根据用户账户信息(特征关联主键)将两个数据表获得的离线特征关联起来,即得到某个账户对应的用户道具使用特征的特征值和用户道具购买特征的特征值。这样,才能将一个账户的用户道具使用特征的特征值和用户道具购买特征的特征值作为一个融合离线特征同时输入至机器学习模型中。
50.可以理解的,如果机器学习模型的结构被更新而输入发生改变时,那么只需要改变特征配置表即可。首先确定待更新离线特征的离线特征标识,然后确定该待更新离线特征的离线特征标识在离线特征数据库中所属的hive数据表的标识,以及该待更新离线特征在所属hive数据表中所属目标列。再根据这些信息更新所述机器学习模型对应的特征配置表即可。
51.比如,如果待更新离线特征的离线特征标识为新增的离线特征标识时,那么只需在特征配置配置表中新增所属hive数据表的hive数据表标识即可。并且还可以新增所属目标列的信息。而待更新离线特征的离线特征标识为待删除的离线特征标识时,则删除该离线特征所属hive数据表hive数据表的hive数据表标识。然后再根据更新后的特征配置表中的信息,重新抽取离线特征即可。这样,可以达到灵活抽取离线特征的目的,不仅可以高效获取机器学习模型所需离线特征,也可以大大提高原始特征的复用性。
52.本技术实施例提供的离线特征融合方法,首先根据待训练的机器学习模型对应的输入预先为其建立特征配置表。该特征配置表中包括机器学习模型所需要的离线特征的各种信息,包括离线特征的离线特征标识。表征离线特征所属hive数据表的hive数据表标识,以及该所属hive数据表中离线特征对应的特征关联主键等。这样,就可以根据特征配置表直接访问原始的hive表,直接从离线特征所属hive数据表中抽取离线特征,获得离线特征对应的特征关联主键、离线特征标识和离线特征值。最后根据各个离线特征对应的特征关联主键,来对多个离线特征进行融合,形成多个特征样本来训练机器学习模型。可以理解的,通过特征配置表的方式,可以直接访问hive表获得单个的离线特征,实现了灵活的抽取
离线特征的目的,当遇到离线特征的增加或删除情况时,只需要修改特征配置表中的抽取信息即可。这样在高效机器学习模型所需离线特征的同时也大大提高原始特征的复用性。另外,获取到多个离线特征后,直接对离线特征进行融合并将特征关联融合后的结果直接写入缓存中,避免进行多个hive表之间融合计算以得到大宽表的操作,同时也无需先将融合离线特征存储在大宽表中,再从大宽表读取数据写入缓存,从而达到节约计算资源和存储资源的目的,同时特征融合过程的耗时也将大幅缩短。
53.结合上述方法,下面对抽取离线特征以及对融合离线特征的过程进行详细的介绍。图2为本技术实施例提供的另一种离线特征融合方法的流程示意图。如图2所示,该方法包括:
54.201、根据特征配置表中的离线特征标识及hive数据表标识,从离线特征所属hive数据表中抽取离线特征。
55.特征配置表中记录了机器学习模型所需的离线特征所属的hive数据表标识,那么只需根据特征配置标访问相应hive数据表即可获得离线特征。在本技术实施例中,可以通过spark计算引擎完成训练样本的获取。首先在spark中按行读取某个机器学习模型的特征配置表信息,按行依次获取每一个特征的信息,然后从相应的hive数据表获取相应离线特征的特征值,然后每次获取一个离线特征,就按照“特征关联主键、离线特征标识、离线特征值”的形式进行存储。可以理解的,如果特征配置表中还包括离线特征的预处理方式时,就先根据预处理方式对离线特征值进行处理,再对处理后得到的特征值按照上述形式进行存储。
56.202、将抽取到的离线特征组合为离线特征按行排列的纵向表格。
57.其中,纵向表格的每一行存储一个离线特征,即每一行的数据包括一个离线特征对应的特征关联主键、离线特征标识和离线特征值。如表2所示,示出了纵向表格的形式,该表格形式为特征关联主键、离线特征标识、离线特征值。示例性的,在图1所示实施例的例子中,第一行数据可以是用户1对应的用户道具购买特征的特征值,第二行数据可以是用户2对应的用户道具使用特征的特征值,第三行数据可以是用户3对应的用户道具购买特征的特征值...即每一行数据均代表一个离线特征,作为后续特征融合的基础。
58.表2
[0059][0060]
在这个过程中,如果有一个离线特征在不同的hive数据表中重复存储,那么根据特征配置表抽取对应数据时,会重复记录同一离线特征。此时要根据不同情况进行不同的
去重操作,也就是说对样本的特征进行聚合处理。示例性的,可以确定离线特征标识和特征关联主键相同的两个离线特征,然后根据离线特征的特征类型,来对两个特征进行筛选。示例性的,如果离线特征是用户等级特征,那么同一个玩家的用户等级应该选择高用户等级,即看两个离线特征中谁记录的用户等级高,最后留下用户等级高的离线特征,对另一个离线特征进行删除。
[0061]
再比如,离线特征是在线时长特征,那么就需要对两个离线特征进行合并处理,即将两个相同离线特征标识和特征关联主键的离线特征的特征值进行求和,合并两个相同离线特征为一个。
[0062]
203、根据特征关联主键对纵向表格进行行列转换,得到离线特征按列排列的横向表格。
[0063]
在利用纵向表格对抽取的所有离线特征进行记录后,就需要对纵向表格进行行列转换,得到离线特征按列排列的横向表格。其中,每一个横向表格的每一行存储一个特征关联主键对应的所有离线特征标识对应的离线特征值。
[0064]
示例性的,可以根据特征关联主键对纵向表格中的内容进行分组处理,将属于同一个特征关联主键的所有离线特征分为一组。然后对每一个特征关联主键对应的所有离线特征标识进行行列转换(pivot透视)处理,这样就便于将一个离线特征标识对应的离线特征值存储在横向表格的一行。
[0065]
示例性的,在上述例子中,分组之后的纵向表格可以如表3所示。纵向表格按照特征关联主键依次记录每一个离线特征。然后采用spark计算引擎的pivot透视功能对表3进行行列转换。
[0066]
表3
[0067][0068]
[0069]
接着,对上述分组后的纵向表格进行行列转换操作,得到离线特征关联融合后的横向表格,形式为(特征关联主键,特征1,特征2,特征3
……
),如表4所示。
[0070]
特征关联主键用户道具购买特征用户道具使用特征用户12040用户22550用户33545
[0071]
204、对横向表格中按列排列的离线特征进行聚合去重,以获得融合离线特征。
[0072]
可以理解的,对同属于一个特征关联主键的离线特征进行聚合处理的过程可以在行列转换之后,也可以在行列转换之前。即也可以在上述步骤中先不进行聚合处理,在得到包括所有离线特征的横向表格后,再对每一个特征关联主键对应的聚合后的离线特征标识进行pivot透视处理。可以理解的,如果同属于一个特征关联主键的多个离线特征中,有几个离线特征对应的离线特征标识是相同的,那么就需要对这几个离线特征进行聚合,聚合处理按照该离线特征标识对应的离线特征类型进行,包括去重操作以及合并操作等,具体方法可以参考上述步骤202中的描述,在此不作赘述。
[0073]
205、将融合离线特征存储至缓存数据库中。
[0074]
得到横向表格后,每一行同属一个特征关联主键的离线特征则为融合离线特征。在得到融合离线特征后,就需要将融合离线特征存储在缓存数据库中。其中,spark引擎与缓存数据库可以进行通信,在得到横向表格之后,就将横向表格的数据写入缓存数据库中,以在在线推理时通过读取缓存数据库中的融合离线特征进行在线推理并获得在线推理结果。
[0075]
下面对利用融合离线特征进行在线推理的过程进行简单的介绍。当需要对机器学习模型进行训练时,先从缓存中获取该机器学习模型的多个融合离线特征,然后将融合离线特征输入至机器学习模型中,得到每个融合离线特征对应的输出结果,再根据输出结果调整机器学习模型的模型参数,直到机器学习模型的输出结果达到训练要求。图3是机器学习模型的训练步骤,包括:
[0076]
s1、根据融合离线特征确定训练样本。
[0077]
在得到多个融合离线特征时,根据融合离线特征确定多个训练样本。其中,每一个训练样本包括一个融合离线特征以及融合离线特征对应的真实结果。例如,在上述例子中,训练样本包括某个用户对应的用户道具购买特征和用户道具使用特征,以及该用户对应的真实道具推荐结果。其中,该用户对应的真实道具推荐结果可以根据实际道具推荐规则来确定,用于评价机器学习模型的输出结果。
[0078]
s2、将融合离线特征输入至待训练的机器学习模型中,得到融合离线特征的输出结果。
[0079]
然后,将每个融合离线特征输入至待训练的机器学习模型中,得到每个融合离线特征的输出结果。例如,在上述例子中,将某个用户对应的用户道具购买特征和用户道具使用特征输入至机器学习模型中,由该机器学习模型输出该用户对应的道具推荐输出结果。
[0080]
s3、对比输出结果和融合离线特征的实际结果,计算损失值。
[0081]
接着,将机器学习模型输出的该用户对应的道具推荐输出结果与该用户对应的真实道具推荐结果进行对比,得到损失值。可以理解的,损失值用来评价道具推荐输出结果和
真实道具推荐结果的差异,根据该差异来反相调整机器学习模型的模型参数,使得机器学习模型的输出结果更接近真实道具推荐结果。
[0082]
s4、根据损失值调整机器学习模型的模型参数。
[0083]
利用损失值调整机器学习模型的模型参数,使得机器学习模型的输出结果更接近真实道具推荐结果。
[0084]
s5、当达到预设训练条件时,结束机器学习模型的训练过程。
[0085]
当训练达到预先设定的训练条件时,结束模型训练。示例性的,预设的训练条件可以是训练次数达到预设次数,或损失值小于预设损失阈值等。
[0086]
基于同一发明构思,本发明实施例中还提供了一种离线特征融合装置,如下面的实施例所述。图4为本技术实施例提供的一种离线特征融合装置的结构示意图,以下结合图4对本实施例提供的进行详细描述。以下描述所涉及的实施例用于解释本技术的技术方案,并不是实际使用的限定。
[0087]
离线特征融合装置包括:
[0088]
获取单元401,用于获取至少一个机器学习模型对应的预先建立的特征配置表。特征配置表至少包括表征机器学习模型的模型标识,表征离线特征的离线特征标识,表征离线特征所属hive数据表的hive数据表标识及hive数据表中存储的离线特征对应的特征关联主键。
[0089]
确定单元402,用于根据至少一个机器学习模型对应的特征配置表中的离线特征标识及hive数据表标识,从离线特征所属hive数据表中抽取离线特征。离线特征包括离线特征对应的特征关联主键、离线特征标识和离线特征值。
[0090]
处理单元403,用于根据离线特征对应的特征关联主键,对抽取的至少一个机器学习模型对应的离线特征进行特征融合,以获得融合离线特征。
[0091]
在一个可选的实施方式中,该离线特征融合装置还包括建立单元404。
[0092]
获取单元401,还用于获取机器学习模型对应的离线特征标识和特征关联主键。
[0093]
确定单元402,还用于根据离线特征标识和特征关联主键确定hive数据表集合中的离线特征所属hive数据表以及离线特征所属hive数据表中的目标列。其中,hive数据表集合中的每一个hive数据表用于存储主键与特征的对应关系。
[0094]
建立单元404,用于根据离线特征标识、特征关联主键、离线特征所属hive数据表和目标列,建立机器学习模型对应的特征配置表。
[0095]
在一个可选的实施方式中,特征配置表还包括离线特征值的预处理方式。
[0096]
处理单元403,还用于在确定单元402从离线特征所属hive数据表中抽取离线特征之后,根据离线特征值的预处理方式对抽取的离线特征值进行预处理。
[0097]
处理单元403,还用于根据预处理后的离线特征值进行特征融合。
[0098]
在一个可选的实施方式中,处理单元403,具体用于将至少一个机器学习模型对应的离线特征组合为离线特征按行排列的纵向表格。纵向表格的每一行存储一个离线特征。根据特征关联主键对纵向表格进行行列转换,得到离线特征按列排列的横向表格。其中,横向表格的每一行存储一个特征关联主键对应的所有离线特征标识对应的离线特征值。对横向表格中按列排列的离线特征进行聚合去重,以获得融合离线特征。
[0099]
在一个可选的实施方式中,该离线特征融合装置还包括存储单元405。
[0100]
存储单元405,用于将融合离线特征存储至缓存数据库中。以在在线推理时通过读取缓存数据库中至少一个机器学习模型对应的融合离线特征进行在线推理,并获得在线推理结果。
[0101]
在一个可选的实施方式中,确定单元402,还用于当机器学习模型进行模型更新时,确定待更新离线特征的离线特征标识。确定待更新离线特征的离线特征标识在hive数据表集合中对应的第一hive数据表以及第一hive数据表中对应的第一目标列。
[0102]
处理单元403,还用于根据第一hive数据表以及第一hive数据表中对应的第一目标列,更新机器学习模型对应的特征配置表。
[0103]
在一个可选的实施方式中,处理单元403,具体用于若待更新离线特征的离线特征标识为新增的离线特征标识时,则新增目标hive数据表为离线特征所属hive数据表,并新增目标hive数据表的目标列为离线特征所属hive数据表的目标列。若待更新离线特征的离线特征标识为待删除的离线特征标识时,则删除离线特征所属hive数据表中的待更新离线特征对应的目标hive数据表。
[0104]
在一个可选的实施方式中,确定单元402,具体用于根据更新后的特征配置表中的离线特征标识及hive数据表标识,从更新后的离线特征所属hive数据表中抽取离线特征。
[0105]
在一个可选的实施方式中,处理单元403,具体用于根据特征关联主键对纵向表格中的内容进行分组处理。根据分组处理结果,确定每一个特征关联主键对应的所有离线特征标识。对每一个特征关联主键对应的所有离线特征标识进行pivot透视处理,将所有离线特征标识对应的离线特征值存储在横向表格的一行。
[0106]
在一个可选的实施方式中处理单元403,还用于对所有离线特征标识进行聚合处理,得到聚合后的离线特征标识。对每一个特征关联主键对应的聚合后的离线特征标识进行pivot透视处理。
[0107]
在本技术实施例中,首先建立单元404根据待训练的机器学习模型对应的输入预先为其建立特征配置表。该特征配置表中包括机器学习模型所需要的离线特征的各种信息,包括离线特征的离线特征标识。表征离线特征所属hive数据表的hive数据表标识,以及该所属hive数据表中离线特征对应的特征关联主键等。这样,确定单元402就可以根据特征配置表直接访问原始的hive表,直接从离线特征所属hive数据表中抽取离线特征,获得离线特征对应的特征关联主键、离线特征标识和离线特征值。最后处理单元403根据各个离线特征对应的特征关联主键,来对多个离线特征进行融合,形成多个特征样本来训练机器学习模型。可以理解的,通过特征配置表的方式,可以直接访问hive表获得单个的离线特征,实现了灵活的抽取离线特征的目的,当遇到离线特征的增加或删除情况时,只需要修改特征配置表中的抽取信息即可。这样在高效机器学习模型所需离线特征的同时也大大提高原始特征的复用性。另外,获取到多个离线特征后,直接对离线特征进行融合并将特征关联融合后的结果直接写入缓存中,避免进行多个hive表之间融合计算以得到大宽表的操作,同时也无需先将融合离线特征存储在大宽表中,再从大宽表读取数据写入缓存,从而达到节约计算资源和存储资源的目的,同时特征融合过程的耗时也将大幅缩短.
[0108]
需要说明的是,离线特征融合装置中各模块/单元之间的信息交互、执行过程等内容,与本技术中图1至图3对应的各个方法实施例基于同一构思,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。
[0109]
接下来介绍本技术实施例提供的一种电子设备,请参阅图5,图5为本技术实施例提供的一种电子设备的结构示意图。其中,电子设备500上可以部署有图5对应实施例中所描述的离线特征融合装置,用于实现图1至图3对应实施例中的功能。具体的,电子设备500包括:接收器501、发射器502、处理器503和存储器504(其中电子设备500中的处理器503的数量可以一个或多个,图5中以一个处理器为例),其中,处理器503可以包括应用处理器5031和通信处理器5032。在本技术的一些实施例中,接收器501、发射器502、处理器503和存储器504可通过总线或其它方式连接。
[0110]
存储器504可以包括只读存储器和随机存取存储器,并向处理器503提供指令和数据。存储器504的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,nvram)。存储器504存储有处理器和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。
[0111]
处理器503控制执行设备的操作。具体的应用中,执行设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
[0112]
上述本技术实施例揭示的方法可以应用于处理器503中,或者由处理器503实现。处理器503可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器503中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器503可以是通用处理器、数字信号处理器(digital signal processing,dsp)、微处理器或微控制器,还可进一步包括专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。该处理器503可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器504,处理器503读取存储器504中的信息,结合其硬件完成上述方法的步骤。
[0113]
接收器501可用于接收输入的数字或字符信息,以及产生与执行设备的相关设置以及功能控制有关的信号输入。发射器502可用于通过第一接口输出数字或字符信息;发射器502还可用于通过第一接口向磁盘组发送指令,以修改磁盘组中的数据;发射器502还可以包括显示屏等显示设备。
[0114]
本技术实施例中,处理器503中的应用处理器5031,用于执行图1至图3对应实施例中的一种离线特征融合方法。需要说明的是,应用处理器5031执行各个步骤的具体方式,与本技术中图1至图3对应的各个方法实施例基于同一构思,其带来的技术效果与本技术中图1至图3对应的各个方法实施例相同,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。
[0115]
本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质包括计算机指令,计算机指令在被处理器执行时用于实现本技术实施例中任意一种离线特征融合方法
的技术方案。
[0116]
本技术实施例中还提供一种包括计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图1至图3所示实施例描述的一种离线特征融合方法中的步骤。
[0117]
本技术虽然以较佳实施例公开如上,但其并不是用来限定本技术,任何本领域技术人员在不脱离本技术的精神和范围内,都可以做出可能的变动和修改,因此本技术的保护范围应当以本技术权利要求所界定的范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1