掌桥专利:专业的专利平台
掌桥专利
首页

一种训练样本处理方法、装置、设备及存储介质

文献发布时间:2023-06-19 11:19:16


一种训练样本处理方法、装置、设备及存储介质

技术领域

本申请实施例涉及数据处理技术领域,尤其涉及一种训练样本处理方法、装置、设备及存储介质。

背景技术

在短视频推荐、直播推荐和广告等场景下,推荐内容的时效性日益重要。在推荐系统中,时效性对推荐效果起着非常重要的作用,推荐系统的模型更新速度越快,越能反应用户最近的习惯,越能反应最新的流行趋势,越能给用户推荐当前更感兴趣的内容。推荐系统的时效性由两大部分组成,一个是特征的时效性,另一个则是模型的时效性。

为了实现时效性较高的内容推荐,模型需要快速训练,特征需要实时产生,以实现推荐链路需要快速运转。为实现模型的快速训练,现有技术中可以通过线上学习技术,对模型进行线上训练,以提高模型训练速度。但是线上训练模型的训练样本需要实时产出,需要对大数据进行实时处理,以实现训练样本的实时产出。目前的大数据实时处理技术基础比较完善,一些优秀的流处理平台日益成熟,可以通过流处理平台提供的流计算引擎,实现实时数据的处理。但目前的实时数据处理技术还没有应用到实时训练样本,即传统的训练样本产出手段无法实现训练样本的实时产出。

发明内容

本申请实施例提供一种训练样本处理方法、装置、设备及存储介质,能够解决训练样本不能实时产出的问题,保证了推荐模型和推荐系统的时效性。

在第一方面,本申请实施例提供了一种训练样本处理方法,包括:

获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签;

获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理;

将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中;

在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。

在第二方面,本申请实施例提供了一种训练样本处理装置,包括:

标签解析模块,被配置为获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签;

特征预处理模块,被配置为获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理,所述打点事件数据和所述特征数据存储于分布式消息系统中;

数据汇总模块,被配置为将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中;

训练样本生成模块,被配置为在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。

在第三方面,本申请实施例提供了一种电子设备,包括:

存储器以及一个或多个处理器;

所述存储器,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的训练样本处理方法。

在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的训练样本处理方法。

本申请实施例通过获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签;获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理;将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中;在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。采用上述技术手段,通过流计算引擎解析打点事件数据,快速收集打点事件数据的标签信息,通过流计算引擎预处理特征数据,缩小特征数据内存,减小后续的缓存压力。由于打点事件数据和特征数据为不同的数据源,将两者在分布式列式数据库中汇合后再输出至下游模型,能快速发现故障并解决,避免产生大量的错误数据对推荐模型造成巨大影响,避免花费大量的人力物力回滚推荐模型,提高了推荐系统的稳定性。基于流计算引擎和数据汇合处理,以实现训练样本的快速稳定产出,保证推荐模型的时效性,保证推荐系统的时效性。

附图说明

图1是本申请实施例一提供的一种训练样本处理方法的流程图;

图2是本申请实施例一中的打点事件数据和关联数据的汇合流程图;

图3是本申请实施例一中的训练样本产出流程图;

图4是本申请实施例一中的训练样本存储流程图;

图5是本申请实施例一提供的另一种训练样本处理方法的流程图;

图6是本申请实施例一提供的训练样本处理系统的框架示意图;

图7是本申请实施例二提供的一种训练样本处理装置的结构示意图;

图8是本申请实施例三提供的一种电子设备的结构示意图。

具体实施方式

为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

本申请提供的训练样本处理方法、装置、设备及存储介质,旨在获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签;获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理;将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中;在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。相比于传统的训练样本产出方式,其没有应用到实时数据处理技术应用,即传统的训练样本产出方法无法保证训练样本的时效性,从而无法保证模型的时效性,降低了推荐系统的时效性,降低了数据价值。基于此,本申请实施例提供一种训练样本处理方法、装置、设备及存储介质,其基于流计算引擎实时处理训练样本,以高效实时产出训练样本,提高模型时效性,提高推荐系统的时效性。

实施例一:

图1给出了本申请实施例一提供的一种训练样本处理方法的流程图,本实施例中提供的训练样本处理方法可以由训练样本处理设备执行,该训练样本处理设备可以通过软件和/或硬件的方式实现。

下述以训练样本处理设备为执行训练样本处理方法的主体为例,进行描述。参考图1,训练样本处理方法包括:

S110、获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签。

具体的,打点事件数据是通过在客户端埋点采集到的用户行为数据,其可以反映用户对打点事件对应的推荐内容的喜爱程度。因此可以对打点事件数据进行解析,获取用户对推荐内容的反应数据,并将反应数据作为打点事件数据的标签信息,以便后续实现训练样本的高效实时产出。进一步的,由于打点事件数据的数量流过大,引入流计算引擎实时处理打点事件数据,以提高训练样本数据的产出速率。其中,流计算引擎可采用flink,flink是一种开源流处理框架,其提供分布式流数据流引擎,可以通过数据并行和流水线方式执行任意数据流程序。本申请实施例基于flink批处理和流处理的特性,对大量的打点事件数据流进行解析处理,以提高训练样本的实时产出效率。

S120、获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理。

特征数据为推荐内容产出时的使用依据,其表征了推荐内容的内容信息。特征数据的数据源非常稳定,但特征数据的内存非常大,容易影响后续的数据缓存效率。因此,对特征数据进行预处理,特征预处理后的特征数据内存较小,较小后续的数据缓冲压力,以提高数据缓冲效率,提高训练样本产出效率。

且本申请实施例基于flink的流计算引擎,并行执行打点事件数据的解析和特征数据的预处理,在提高数据处理速率的同时,将两个数据处理流程对应构建独立的处理模块,让训练样本处理系统充分解耦,提高训练样本处理系统的稳定性。

S130、将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中。

具体的,打点事件数据在产出时,会为打点事件数据和对应的特征数据自动配置相同的流标识,而在解析打点事件数据的标签和预处理特征数据时,也会为标签和预处理特征数据配置一致的流标识,以便于后续将打点事件数据和关联数据汇合。示例性的,参考图2,图2是本申请实施例一中的打点事件数据和关联数据的汇合流程图。如图2所示,打点事件数据和关联数据的汇合流程包括:

S1301、在所述打点事件数据存储至所述分布式列式数据库之后的第二时间节点,根据所述打点事件数据的流标识,确定所述打点事件数据在所述分布式列式数据库中的存储行;

S1302、将所述标签和所述预处理特征数据存储至该存储行的其余列中,所述标签和预处理特征数据配置有与所述打点事件数据相同的流标识。

示例性的,将打点事件数据存储至分布式列式数据库中,分布式列式数据库可以采用HBase,HBase(Hadoop Database)是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。将HBase作为中间存储,并基于HBase列式存储的特性,将打点事件数据,标签以及对应的预处理特征数据,存储至同一行的字段中,达到了打点事件数据和关联数据汇合的目的。进一步的,在打点事件数据存储至HBase后,为避免同时将打点事件数据和关联数据等大量数据流存储至HBase导致训练样本处理系统的不稳定,从而导致关联数据丢失,在打点事件数据存储至HBase一天之后,再将标签和预处理特征数据存储至HBase中关联字段中。其中,根据打点事件数据的流标识,确定打点事件数据的存储行,再将标签和预处理特征数据存储至该存储行的其余列中。

在本申请实施例中,为让训练样本处理系统充分解耦,将HBase也独立成一个存储流程,在flink的流计算引擎并行执行标签解析流程和预处理流程后,分别将生成的标签和预处理特征数据存储至对应的字段中,保证每个流程的独立性,保证训练样本处理系统中各环节充分解耦,提高训练样本处理系统的稳定性。

S140、在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。

具体的,在将打点事件数据和关联数据存储至HBase后,完成了训练样本的预处理,后续只需将打点事件数据和关联数据存储至训练样本数据库中,由下游的推荐模型随机拉取训练样本数据库中的训练样本。但是打点事件数据延迟较大且不稳定,如果过早的把打点事件数据和关联数据存储至训练样本数据库中,会导致打点事件数据的标签信息不全,影响训练样本的训练效果,因此如何判断其标签信息已完全存储至关联字段中是个问题。对此,可在将打点事件数据和关联数据存储至训练样本数据库中时,可以将打点事件数据和关联数据缓存一段时间后,才从HBase中将打点事件数据和关联数据读取出来,但是缓存的任务十分复杂。因此,本申请实施例在读取HBase中的数据时,延迟读取相关数据,以达到和缓存一样的目的。具体的,参考图3,图3是本申请实施例一中的训练样本产出流程图。如图3所示,训练样本产出流程包括:

S1401、判断所述打点事件数据的标签是否全部存储至对应的关联字段中,若所述打点事件数据的标签已全部存储至对应的关联字段中,则将所述打点事件数据和关联字段中的数据作为第一响应等级的样本数据;

S1402、在所述标签开始存储至所述分布式列式数据库之后的第一时间节点,将所述打点事件数据和关联字段中的数据作为第二响应等级的样本数据。

示例性的,判断打点事件数据的标签是否全部存储至HBase中,若标签没有完全存储至HBase中,则一直查询标签是否全部存储至HBase,直到标签全部存储至HBase中。在标签完全存储至HBase中后,将打点事件数据和关联数据存储至训练样本数据库中,便于下游的推荐模型拉取训练样本数据库中的打点事件数据和关联数据。由于本申请实施例是在标签数据完全存储至HBase后,快速将打点事件数据和关联数据存储至训练样本数据库中,训练样本相当于实时产出,保证了该打点事件数据和关联数据的时效性。因此,将在标签数据完全存储后快速存储至训练样本数据库的打点事件数据和关联数据作为第一响应等级的样本数据。

示例性的,为丰富训练样本的时间粒度,在标签开始存储至HBase之后的一个小时后,再将打点事件数据和关联数据存储至训练样本数据库中,并将这一部分数据作为第二响应等级的样本数据。

本申请实施例通过不同的训练样本产出策略,支持多时间粒度的训练样本,丰富了训练样本的使用场景。

进一步的,对于第一响应等级的样本数据和第二响应等级的样本数据,需将两者存储至不同的训练样本数据库中,以便推荐模型从对应的训练样本数据库中拉取对应的训练样本。具体的,参考图4,图4是本申请实施例一中的训练样本存储流程图。如图4所示,训练样本存储流程包括:

S1403、将所述第一响应等级的样本数据存储至所述分布式消息系统的主题消息单元中,所述主题消息单元用于存储同一主题的消息数据;

S1404、将所述第二响应等级的样本数据存储至所述分布式文件系统中。

示例性的,分布式消息系统采用Kafka,Kafka是一种高吞吐量的分布式发布订阅消息系统,可将第一响应等级的样本数据存储至Kafka topic中。通过Kafka集群向推荐模型提供实时的训练样本,并通过Kafka topic存储打点事件数据和关联数据,在推荐模型从Kafka中拉取训练样本时,从Kafka topic中拉取打点事件数据和关联数据。

示例性的,分布式文件系统采用HDFS(Hadoop Distributed File System),HDFS是一个高度容错性的分布式文件系统,可将第二响应等级的样本数据存储至HDFS中。

本申请实施例通过Kafka集群的实时推送特性,向推荐模型提供实时的训练样本,以实现训练样本的实时产出,提高了推荐模型时效性,提高了推荐系统的时效性。

另一方面,图5给出了本申请实施例一提供的另一种训练样本处理方法的流程图。参考图5,训练样本处理方法包括:

S210、通过流数据管理系统获取客户端发送的打点事件数据和服务端发送的打点事件对应的推送内容的特征数据。

S220、将所述打点事件数据和对应的特征数据存储至所述分布式消息系统中,所述打点事件数据和对应的特征数据配置有相同的流标识。

具体的,将流数据管理系统采集的打点事件数据和特征数据存储至Kafka中。

S230、获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签。

S240、获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理。

S250、将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中。

S260、在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。

步骤S230到S260具体实现过程可以参考步骤S110到S140。

S270、将所述打点事件数据和对应的特征数据作为备份数据,并将所述备份数据存储至所述分布式文件系统中。

S280、基于预设的第二预处理规则,通过所述流计算引擎对所述备份数据进行预处理,获取预处理备份数据,并将所述预处理备份数据存储至所述分布式文件系统中。

具体的,将打点事件数据和对应的特征数据存储至HDFS的原始日志中,作为备份数据。当训练样本产出故障或使用打点事件数据和对应的特征数据做其他处理时,可直接使用原始日志中的备份数据。对特征数据和打点事件数据进行预处理,降低备份数据的内存,减小备份数据的缓存压力。进一步的,将预处理备份数据存储至HDFS中,便于直接从HDFS中拉取对应的预处理备份数据。可理解的,备份数据和样本数据在HDFS中存储的位置不同。

示例性的,参考图6,图6是本申请实施例一提供的训练样本处理系统的框架示意图。如图6所示,服务端将特征数据发送至流数据管理系统,客户端将打点事件数据发送至流数据管理系统。将流数据管理系统中的打点事件数据和特征数据存储至分布式消息系统中,并由流计算引擎拉取打点事件数据和特征数据,并行执行标签解析和特征预处理。将流计算引擎处理得到的标签和预处理特征数据,以及打点事件数据存储至分布式列式数据库的关联字段中。根据实时样本生成策略和小时级样本生成策略,在不同的时间节点将打点事件数据和关联数据分别作为第一响应等级和第二响应等级的样本数据,并将第一响应等级的样本数据存储至分布式消息系统中,将第二响应等级的样本数据存储至分布式文件系统中。另一方面,将分布式消息系统中打点事件数据和特征数据存储至分布式文件系统中,将其作为备份数据,由流计算引擎拉取备份数据并对其进行预处理,将预处理备份数据存储至分布式文件系统中。推荐模型可根据需求从对应的样本数据存储的数据库中拉取合适的样本数据。

进一步的,为保证系统中每一环节的任务稳定运行,所有运行过程中的任务都设置有一系列的实时监控和告警,涵盖了数据源,任务运行中的逻辑,数据产出的质量以及数据延迟等。通过大量的监控指标获取更加详细的样本产出状况,以及时发现系统故障并解决故障,提高系统可靠性和稳定性。

综上,通过获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签;获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理;将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中;在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。采用上述技术手段,通过流计算引擎解析打点事件数据,快速收集打点事件数据的标签信息,通过流计算引擎预处理特征数据,缩小特征数据内存,减小后续的缓存压力。由于打点事件数据和特征数据为不同的数据源,将两者在分布式列式数据库中汇合后再输出至下游模型,能快速发现故障并解决,避免产生大量的错误数据对推荐模型造成巨大影响,避免花费大量的人力物力回滚推荐模型,提高了训练样本处理系统的稳定性。基于流计算引擎和数据汇合处理,以实现训练样本的快速稳定产出,保证推荐模型的时效性,保证推荐系统的时效性。

实施例二:

在上述实施例的基础上,图7为本申请实施例二提供的一种训练样本处理装置的结构示意图。参考图7,本实施例提供的训练样本处理装置具体包括:标签解析模块21、特征预处理模块22、数据汇总模块23和训练样本生成模块24。

其中,标签解析模块21,被配置为获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签;

特征预处理模块22,被配置为获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理,所述打点事件数据和所述特征数据存储于分布式消息系统中;

数据汇总模块23,被配置为将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中;

训练样本生成模块24,被配置为在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。

上述,通过获取打点事件数据,通过流计算引擎对所述打点事件数据进行解析,解析出打点事件对应的推荐内容的用户反应数据,并将所述用户反应数据作为对应打点事件数据的标签;获取所述推荐内容对应的特征数据,基于预设的第一预处理规则,通过所述流计算引擎对所述特征数据进行预处理;将所述打点事件数据存储至分布式列式数据库中,并将所述打点事件数据的标签和对应的预处理特征数据存储至所述打点事件数据的关联字段中;在所述打点事件数据的标签全部存储至对应的关联字段后,将所述打点事件数据和关联字段中的数据作为训练样本,并将所述训练样本存储至所述分布式消息系统或分布式文件系统中。采用上述技术手段,通过流计算引擎解析打点事件数据,快速收集打点事件数据的标签信息,通过流计算引擎预处理特征数据,缩小特征数据内存,减小后续的缓存压力。由于打点事件数据和特征数据为不同的数据源,将两者在分布式列式数据库中汇合后再输出至下游模型,能快速发现故障并解决,避免产生大量的错误数据对推荐模型造成巨大影响,避免花费大量的人力物力回滚推荐模型,提高了推荐系统的稳定性。基于流计算引擎和数据汇合处理,以实现训练样本的快速稳定产出,保证推荐模型的时效性,保证推荐系统的时效性。

本申请实施例二提供的训练样本处理装置可以用于执行上述实施例一提供的训练样本处理方法,具备相应的功能和有益效果。

实施例三:

本申请实施例三提供了一种电子设备,参照图8,该电子设备包括:输入装置33、输出装置34、存储器32以及一个或多个处理器31;所述存储器32,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器31执行,使得所述一个或多个处理器31实现如上述实施例一提供的训练样本处理方法。上述提供的电子设备可用于执行上述实施例一提供的训练样本处理方法,具备相应的功能和有益效果。

实施例四:

本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种训练样本处理方法,该训练样本处理方法。当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的训练样本处理方法,还可以执行本申请任意实施例所提供的训练样本处理方法中的相关操作。

上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。

相关技术
  • 一种训练样本处理方法、装置、设备及存储介质
  • 一种训练样本获得方法、装置、电子设备和存储介质
技术分类

06120112880723