发明内容
本发明的目的在于提供一种特征样本实时采集方法及系统,不仅能很好的支持特征样本实时采集以提升模型在线训练效果,还能解决特征样本离线生产效率低、制作复杂及准确度低的问题。
本发明实施例提供了一种特征样本实时采集方法,所述方法包括:
各个样本生产节点监听模型结果消息系统,当所述样本生产节点监听到模型结果消息系统的结果消息时,所述样本生产节点根据所述结果消息的会话ID,从分布式配置系统中获取特征样本所需的元数据,并从特征库中获取特征样本所需的全部特征,根据获取的元数据和全部特征构造缓存样本,并存储在存储系统中以供实时行为采集节点使用;
各个实时行为采集节点监听用户行为消息系统,当所述实时行为采集节点监听到所述用户行为消息系统的行为消息时,所述实时行为采集节点根据所述行为消息的会话ID,从所述缓存系统中获取与所述会话ID关联的缓存样本,并根据所述缓存样本的业务类型生产样本标签,将所述样本标签和获取的缓存样本整合成特征样本,并存储在特征样本存储系统中以供模型训练。
作为本发明进一步的改进,所述方法还包括:
各个样本生产节点启动时分别调用所述分布式配置系统,从所述分布式配置系统中获取特征样本的元数据并缓存在所述存储系统中,当所述分布式配置系统中的元数据变更时,所述分布式配置系统通知各个所述样本生产节点更新所述存储系统,此时各个所述样本生产节点开始监听所述模型结果消息系统。
作为本发明进一步的改进,所述方法还包括:
当应用系统接入客户端采集SDK后,所述客户端采集SDK根据业务类型,在对应的环节中进行数据埋点,以使所述客户端采集SDK采集应用系统的模型结果;
当所述客户端采集SDK采集到所述模型结果的数据后,所述客户端采集SDK通过异步方式将所述模型结果发送至所述模型结果消息系统中。
作为本发明进一步的改进,所述各个样本生产节点监听模型结果消息系统,当所述样本生产节点监听到模型结果消息系统的结果消息时,所述样本生产节点根据所述结果消息的会话ID,从分布式配置系统中获取特征样本所需的元数据,并从特征库中获取特征样本所需的全部特征,根据获取的元数据和全部特征构造缓存样本,并存储在存储系统中以供实时行为采集节点使用,包括:
所述样本生产节点启动时,调用所述分布式配置系统,从所述分布式配置系统中获取特征样本的元数据并缓存在所述存储系统中,当所述分布式配置系统中的元数据变更时,所述分布式配置系统通知所述样本生产节点更新所述存储系统,所述样本生产节点开始监听所述模型结果消息系统;
应用系统接入所述客户端采集SDK后,所述客户端采集SDK根据业务类型,在对应的环节中进行数据埋点,采集应用系统的模型结果,并通过异步方式将所述模型结果发送至所述模型结果消息系统中;
所述样本生产节点监听到所述模型结果消息系统的结果消息后,所述样本生产节点通过所述模型结果的会话ID,获取特征样本的元数据,通过所述特征样本的元数据中模型输出的项目ID列表,从所述特征库中获取每个项目的特征以得到特征样本的全部特征,并基于获取的元数据和全部特征构造缓存样本,并将所述缓存样本存储在所述缓存系统中;
所述样本生产节点持续监听所述模型结果消息系统,当监听到所述模型结果消息系统的结果消息后重复上述构造缓存样本的过程,直至停止构造缓存样本。
作为本发明进一步的改进,所述各个实时行为采集节点监听用户行为消息系统,当所述实时行为采集节点监听到所述用户行为消息系统的行为消息时,所述实时行为采集节点根据所述行为消息的会话ID,从所述缓存系统中获取与所述会话ID关联的缓存样本,并根据所述缓存样本的业务类型生产样本标签,将所述样本标签和获取的缓存样本整合成特征样本,并存储在特征样本存储系统中以供模型训练,包括:
所述实时行为采集节点启动时,开始监听所述用户行为消息系统;
当所述实时行为采集节点监听到所述用户行为消息系统的行为消息后,根据所述行为消息的会话ID,从所述缓存系统中获取与所述行为消息的会话ID关联的缓存样本;
根据所述缓存样本的业务类型生产样本标签,将所述样本标签和获取的缓存样本整合,生产成最终的特征样本,并将所述特征样本存储在所述特征样本存储系统中;
所述实时行为采集节点持续监听所述用户行为消息系统,当监听到所述用户行为消息系统的行为消息后重复上述获取缓存样本和整合得到特征样本的过程,直至停止监听用户行为。
本发明实施例还提供了一种特征样本实时采集系统,所述系统包括:
客户端采集SDK,封装有模型结果的数据结构以及异步数据发送逻辑,用于应用系统接入并采集模型结果,并通过异步方式将所述模型结果发送至模型结果消息系统;
样本生产集群,包括多个样本生产节点,每个样本生产节点监听模型结果消息系统,当所述样本生产节点监听到所述模型结果消息系统的结果消息时,所述样本生产节点根据所述结果消息的会话ID,从分布式配置系统中获取特征样本所需的元数据,并从特征库中获取特征样本所需的全部特征,根据获取的元数据和全部特征构造缓存样本,并存储在缓存系统中以供实时行为采集节点使用;
实时行为采集集群,包括多个实时行为采集节点,每个实时行为采集节点监听用户行为消息系统,当所述实时行为采集节点监听到所述用户行为消息系统的行为消息时,所述实时行为采集节点根据所述行为消息的会话ID,从所述缓存系统中获取与所述行为消息的会话ID关联的缓存样本,并根据所述缓存样本的业务类型生产样本标签,将所述样本标签和获取的缓存样本整合成特征样本,并存储在特征样本存储系统中以供模型训练。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现所述的方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行以实现所述的方法。
本发明的有益效果为:通过实时采集模型训练的特征样本,不仅能很好的支持特征样本实时采集以提升模型在线训练效果,还能解决特征样本离线生产效率低、制作复杂及准确度低的问题。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明的描述中,所用术语仅用于说明目的,并非旨在限制本发明的范围。术语“包括”和/或“包含”用于指定所述元件、步骤、操作和/或组件的存在,但并不排除存在或添加一个或多个其他元件、步骤、操作和/或组件的情况。术语“第一”、“第二”等可能用于描述各种元件,不代表顺序,且不对这些元件起限定作用。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个及两个以上。这些术语仅用于区分一个元素和另一个元素。结合以下附图,这些和/或其他方面变得显而易见,并且,本领域普通技术人员更容易理解关于本发明所述实施例的说明。附图仅出于说明的目的用来描绘本发明所述实施例。本领域技术人员将很容易地从以下说明中认识到,在不背离本发明所述原理的情况下,可以采用本发明所示结构和方法的替代实施例。
本发明实施例所述的一种特征样本实时采集方法,所述方法包括:
各个样本生产节点监听模型结果消息系统,当所述样本生产节点监听到模型结果消息系统的结果消息时,所述样本生产节点根据所述结果消息的会话ID,从分布式配置系统中获取特征样本所需的元数据,并从特征库中获取特征样本所需的全部特征,根据获取的元数据和全部特征构造缓存样本,并将所述缓存样本存储在存储系统中以供实时行为采集节点使用;
各个实时行为采集节点监听用户行为消息系统,当所述实时行为采集节点监听到所述用户行为消息系统的行为消息时,所述实时行为采集节点根据所述行为消息的会话ID,从所述缓存系统中获取与所述会话ID关联的缓存样本,并根据所述缓存样本的业务类型生产样本标签,将所述样本标签和获取的缓存样本整合成特征样本,并将所述特征样本存储在特征样本存储系统中以供模型训练。
本发明所述方法基于样本生产集群和实时行为采集集群实现特征样本的采集。所述样本生产集群,是由多个样本生产节点组成的集群,例如图1中的样本生产节点_1、……、样本生产节点_n,本发明对所述样本生产集群中样本生产节点的数量不做具体限定。所述样本生产集群中,每个样本生产节点都是对等的,没有状态维护,当其中一个或几个样本生产节点宕机时,不会影响其他样本生产节点的运行,所述样本生产集群仍然可以正常使用。本发明所述样本生成集群是一个高可用的集群。每个样本生产节点均可以监听所述模型结果消息系统(MQ),各个样本生产节点各自独立运行。每个样本生产节点均可以根据监听到的结果消息,根据该结果消息的会话ID,从所述分布式配置系统中获取特征样本所需的元数据,并从所述特征库中获取特征样本所需的全部特征,根据获取的元数据和全部特征构造缓存样本,并将构造的缓存样本存储在所述缓存系统中以供实时行为采集节点使用。
其中,所述分布式配置系统作为元数据的管理平台,可以对元数据进行采集、维护(例如新增、修改、删除等),通过所述分布式配置系统管理元数据,使得元数据的采集效率更快,可以并行执行采集任务,同时所述分布式配置系统可以适应于复杂网络环境。本发明中每个样本生产节点通过缓存(元数据)与用户行为(特征)进行窗口计算构造样本,这个样本即为缓存样本,可以减少无用样本的存储,节省所述系统空间,同时也能提高存储效率和样本质量。
所述实时行为采集集群,是由多个实时行为采集节点组成的集群,例如图1中的实时行为采集节点_1、……、实时行为采集节点_n,本发明对所述实时行为采集集群中实时行为采集节点的数量不做具体限定。所述实时行为采集集群中,每个实时行为采集集群都是对等的,没有状态维护,其中一个或几个实时行为采集节点宕机时,不会影响其他实时采集节点的运行,实时行为采集集群仍然可以正常使用。本发明所述实时行为采集集群是一个高可用的集群。每个实时行为采集节点均可以监听所述用户行为消息系统,各个实时行为采集节点各自独立运行,每个实时行为采集节点均可以根据监听到的行为信息,根据该消息的会话ID,关联所述缓存系统中的缓存样本,然后根据业务类型对关联的缓存样本进行相应的打标签,最后将打完标签的样本即特征样本存储在所述特征样本存储系统中以供模型训练。这里的模型训练可以是在线训练,也可以是离线训练。因此,本发明在支持特征样本实时采集的同时,可以提高模型在线训练效果。
需要指出的是,多个样本生产节点可以同时监听所述模型结果消息系统,当其中一个或多个样本生产节点监听到结果消息时,该一个或多个样本生产节点分别执行上述根据监听到的结果消息构造缓存样本并存储的流程。相应的,多个实时行为采集节点可以同时监听用户行为消息系统,当其中一个或多个实时行为采集节点监听到行为消息时,该一个或多个实时行为采集节点分别执行上述根据监听到的行为消息整合特征样本并存储的流程。
需要指出的是,本发明中所述模型结果消息系统、所述缓存系统、所述特征样本存储系统、所述用户行为消息系统均是高可用的系统,各个系统不存在单点故障,各个系统均可以正常使用。所述样本生产节点集群和所述实时行为采集集群内部均是无状态的对等节点,是高可用集群,不存在单点故障,即样本生产节点故障或是实时行为采集节点故障时,所述样本生产节点集群和所述实时行为采集集群仍然可以正常使用。本发明采用多个高可用的系统,基于应用系统的事件驱动,因此,所述采集方法实时性强,可以在高并发大体量特征情况下,实时高效采集特征样本,同时可以支持样本生产节点和/或实时行为采集节点的扩展。
可以理解的是,通过所述模型结果消息系统、所述用户行为消息系统,可以降低业务系统(应用系统)和本发明所述系统之间的耦合度和复杂度,可以提高业务系统的高性能和稳定性。本发明所述系统通过缓存样本和监听用户行为,两种方式有效结合可以提取有用的特征样本,以减少样本存储体量,节省所述系统存储空间。
本发明所述方法在实现特征样本采集过程中,涉及四种数据:
(1)模型结果(即模型输出结果)
所述模型结果的数据结构描述了模型在执行算法输出结果所需要的具体信息,一共包括五部分,业务类型、会话ID、模型输出的Item (项目)ID列表、环节ID和日期。
(2)特征样本的元数据
所述特征样本的元数据的数据结构定义了从特征库中获取特征所需要的信息,一共包括四个部分:业务类型、环节ID、特征编码列表和样本生产策略。其中,样本生产策略可以理解是构造缓存样本时执行的策略(方法),可以是多种样本生产策略,使得本发明支持多种样本生产策略来构造缓存样本,样本生产节点在构造缓存样本时,根据特征样本的元数据对应的样本生产策略进行构造配置,实时生效,无需重启整个样本生产集群。
(3)缓存样本
所述缓存样本的数据结构定义了缓存系统中存储的样本的数据结构,一共包括七部分:会话ID、业务类型、环节ID、日期、模型输出的Item(项目)ID列表、特征编码列表以及特征编码列表对应的特征值列表。
(4)特征样本
所述特征样本的数据结构定义了特征样本存储系统中最终存储的样本的数据结构,一共包括八部分:标签、会话ID、业务类型、环节ID、日期、模型输出的Item(项目)ID列表、特征编码列表以及特征编码列表对应的特征值列表。
可以理解的是,本发明涉及的四种数据的数据结构之间具有关联的部分(例如,业务类型、环节ID等),样本生产节点和实时行为采集节点根据关联部分的数据,可以实现特征样本的生产、采集等。其中,样本生产节点通过模型结果的会话ID,可以获取特征样本的元数据,通过特征样本的元数据中模型输出的Item(项目)ID列表,从特征库中可以获取每个Item (项目)的特征以得到全部特征,并基于元数据和全部特征来构造缓存样本。相应的,实时行为采集节点通过用户行为对应的行为消息的会话ID,可以获取该会话ID关联的缓存样本,进而可以基于缓存样本来打标签得到最终的特征样本。
一种可选的实施方式中,各个样本生产节点启动时分别调用所述分布式配置系统,从所述分布式配置系统中获取特征样本的元数据并缓存在所述存储系统中,当所述分布式配置系统中的元数据变更时,所述分布式配置系统通知各个所述样本生产节点更新所述存储系统,此时各个所述样本生产节点开始监听所述模型结果消息系统。
如前述,每个样本生产节点均可以监听所述模型结果消息系统。在每个样本生产节点启动时,各个样本生产节点是各自分别调用所述分布式配置系统,来获取元数据,并在所述分布式配置系统的元数据更新完成后,样本生产节点即可开始监听所述模型结果消息系统。
一种可选的实施方式中,所述方法还包括:
当应用系统接入客户端采集SDK后,所述客户端采集SDK根据业务类型,在对应的环节中进行数据埋点,以使所述客户端采集SDK采集应用系统的模型结果;
当所述客户端采集SDK采集到所述模型结果的数据后,所述客户端采集SDK通过异步方式将所述模型结果发送至所述模型结果消息系统中。
需要指出的是,所述客户端采集SDK所依据的业务类型,即是模型结果的业务类型,相应的可以根据模型结果的环节ID,在该环节中进行数据埋点,埋点后即可使所述客户端采集SDK能针对应用系统的事件进行事件追踪。本发明基于应用系统的事件驱动,可以提高特征样本采集过程的实时性,同时也能减小对业务系统的影响。所述客户端采集ADK异步发送精简的模型执行算法后的输出结果,减少数据传输量,输出结果供样本生产节点使用,将业务系统与样本生产逻辑解耦,可以减少业务系统的压力。
上述样本生产节点构造缓存样本并存储的流程可以理解为包括如下流程:
S1,所述样本生产节点启动时,调用所述分布式配置系统,从所述分布式配置系统中获取特征样本的元数据并缓存在所述存储系统中,当所述分布式配置系统中的元数据变更时,所述分布式配置系统通知所述样本生产节点更新所述存储系统,然后所述样本生产节点开始监听所述模型结果消息系统;
S2,应用系统接入所述客户端采集SDK后,所述客户端采集SDK根据业务类型,在对应的环节中进行数据埋点,所述客户端采集SDK采集模型结果;
S3,所述客户端采集SDK通过异步方式将所述模型结果发送至所述模型结果消息系统中;
S4,所述样本生产节点监听到所述模型结果消息系统的结果消息后,所述样本生产节点通过所述模型结果的数据的会话ID,获取特征样本的元数据,通过特征样本的元数据中模型输出的项目ID列表,从所述特征库中可以获取每个Item (项目)的特征以得到全部特征,并基于获取的元数据和全部特征来构造缓存样本,然后将构造的缓存样本存储在所述缓存系统中;
S5,所述样本生产节点持续监听所述模型结果消息系统,当监听到所述模型结果消息系统的结果消息后执行S4,直至停止构造缓存样本即可结束。
上述实时行为采集节点整合特征样本并存储的流程可以理解为包括如下流程:
S1,所述实时行为采集节点启动时,开始监听所述用户行为消息系统;
S2,当所述实时行为采集节点监听到所述用户行为消息系统的行为消息后,根据所述行为消息的会话ID,从所述缓存系统中获取与所述行为消息的会话ID关联的缓存样本;
S3,根据所述缓存样本的业务类型生产样本标签,将所述样本标签和获取的缓存样本整合,生产成最终的特征样本,并将所述特征样本存储在所述特征样本存储系统中;
S4,所述实时行为采集节点持续监听所述用户行为消息系统,当监听到所述用户行为消息系统的行为消息后执行S2和S3,直至停止监听用户行为。
本发明实施例所述的一种特征样本实时采集系统,如图1所示,所述系统包括:
客户端采集SDK,封装有模型结果的数据结构以及异步数据发送逻辑,用于应用系统接入并采集模型结果,并通过异步方式将所述模型结果发送至模型结果消息系统;
样本生产集群,包括多个样本生产节点,每个样本生产节点监听模型结果消息系统,当所述样本生产节点监听到所述模型结果消息系统的结果消息时,所述样本生产节点根据所述结果消息的会话ID,从分布式配置系统中获取特征样本所需的元数据,并从特征库中获取特征样本所需的全部特征,根据获取的元数据和全部特征构造缓存样本,并存储在缓存系统中以供实时行为采集节点使用;
实时行为采集集群,包括多个实时行为采集节点,每个实时行为采集节点监听用户行为消息系统,当所述实时行为采集节点监听到所述用户行为消息系统的行为消息时,所述实时行为采集节点根据所述行为消息的会话ID,从所述缓存系统中获取与所述行为消息的会话ID关联的缓存样本,并根据所述缓存样本的业务类型生产样本标签,将所述样本标签和获取的缓存样本整合成特征样本,并存储在特征样本存储系统中以供模型训练。
本发明所述系统基于应用系统的事件驱动,在高并发大体量特征情况下,可以实时高效采集特征样本。所述系统包括三个模块,分别是所述客户端采集SDK,所述样本生产集群和所述实时行为采集集群。
所述客户端采集SDK提供给应用系统(应用系统例如可以是推荐系统)使用的客户端,所述客户端采集SDK内封装了模型结果的数据结构以及异步消息发送逻辑。其中,模型可以理解为机器学习模型。通过异步方式发送模型输出的结果数据,可以减少数据传输量,降低应用系统的接入成本。
所述样本生产集群,是由多个样本生产节点组成的集群,如前述描述,这里不再赘述。
所述实时行为采集集群,是由多个实时行为采集节点组成的集群,如前述描述,这里不再赘述。
本发明所述系统中所述模型结果消息系统、所述缓存系统、所述特征样本存储系统、所述用户行为消息系统均是高可用的系统,如前述描述,这里不在赘述。
本发明所述系统涉及四种数据:(1)模型结果(即模型输出结果)(2)特征样本的元数据(3)缓存样本(4)特征样本,如前述描述,这里不再赘述。
本发明所述系统能够高效的进行特征样本的实时采集,为业务系统(应用系统)提供简单易用的特征样本采集系统,本发明所述系统具有高性能并对度业务系统产生较低的影响。通过两个消息系统(所述模型结果消息系统、所述用户行为消息系统),可以降低业务系统和本发明所述系统的耦合度和复杂度,可以提高业务系统的高性能和稳定性。本发明所述系统通过缓存样本和监听用户行为可以提取有用的样本,减少样本存储体量,节省存储空间。
本公开还涉及一种电子设备,包括服务器、终端等。该电子设备包括:至少一个处理器;与至少一个处理器通信连接的存储器;以及与存储介质通信连接的通信组件,所述通信组件在处理器的控制下接收和发送数据;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行以实现上述实施例中的方法。
在一种可选的实施方式中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意方法实施例中的方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本公开还涉及一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
此外,本领域普通技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本领域技术人员应理解,尽管已经参考示例性实施例描述了本发明,但是在不脱离本发明的范围的情况下,可进行各种改变并可用等同物替换其元件。另外,在不脱离本发明的实质范围的情况下,可进行许多修改以使特定情况或材料适应本发明的教导。因此,本发明不限于所公开的特定实施例,而是本发明将包括落入所附权利要求范围内的所有实施例。