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

用于周期性数据的预测的方法、装置、设备和介质

文献发布时间:2023-06-19 18:37:28


用于周期性数据的预测的方法、装置、设备和介质

技术领域

本公开的示例实施例总体涉及计算机技术领域,特别地涉及用于周期性数据的预测的方法、装置、设备和计算机可读存储介质。

背景技术

在广泛的机器学习场景中经常会遇到周期性或循环性数据。例如,在推荐系统中,可以观察到用户通常可以在每天相对固定的时间窗口内(例如,睡前或下班后)登录应用程序。基于推荐策略,向用户提供的推荐内容将会具有强烈的周期性模式。在金融市场中,资产价格可能每年周期性地上涨和下跌,这一现象通常被称为“季节性”。在搜索引擎中,某些关键词的搜索热度或点击量也可以显示周期性的模式。因此,机器学习模型能够追踪和学习这样的周期性数据,并给出正确的预测结果。

发明内容

在本公开的第一方面,提供了一种用于周期性数据的预测的方法。该方法包括:获取经训练的预测模型,预测模型被配置为处理具有目标周期的输入数据,预测模型在第一训练过程中至少基于第一训练数据样本、相关联的第一样本时间以及第一标注信息而被训练,第一样本时间指示在目标周期内第一标注信息的获得时间;获取目标数据样本和相关联的目标样本时间,目标样本时间指示在目标周期内目标数据样本的获得时间;以及利用预测模型,基于目标数据样本和目标样本时间来确定针对目标数据样本的预测结果。

在本公开的第二方面,提供了一种用于周期性数据的预测的装置。该装置包括:模型获取模块,被配置为获取经训练的预测模型,预测模型被配置为处理具有目标周期的输入数据,预测模型在第一训练过程中至少基于第一训练数据样本、相关联的第一样本时间以及第一标注信息而被训练,第一样本时间指示在目标周期内第一标注信息的获得时间;目标获取模块,被配置为获取目标数据样本和相关联的目标样本时间,目标样本时间指示在目标周期内目标数据样本的获得时间;以及预测执行模块,被配置为利用预测模型,基于目标数据样本和目标样本时间来确定针对目标数据样本的预测结果。

在本公开的第三方面,提供了一种电子设备。该设备包括至少一个处理单元;以及至少一个存储器,至少一个存储器被耦合到至少一个处理单元并且存储用于由至少一个处理单元执行的指令。指令在由至少一个处理单元执行时使设备执行第一方面的方法。

在本公开的第四方面,提供了一种计算机可读存储介质。该介质上存储有计算机程序,计算机程序被处理器执行时实现第一方面的方法。

应当理解,该部分中所描述的内容并非旨在限定本公开的实施例的关键特征或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的描述而变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标记表示相同或相似的元素,其中:

图1示出了能够在其中实现本公开的实施例的示例环境的示意图;

图2示出了示例模型训练过程的对比;

图3示出了根据本公开的一些实施例的用于周期性数据的预测的架构;

图4示出了根据本公开的一些实施例的模型训练过程;

图5示出了根据本公开的一些实施例的预测模型的示例结构;

图6A示出了在一些示例预测任务下利用基于傅里叶展开的周期性建模部分的预测结果;

图6B示出了根据本公开的一些实施例所示的一组周期性核函数的示例样式;

图6C示出了根据本公开的另一些实施例所示的一组周期性核函数的示例样式;

图7A和7B示出了根据本公开的一些实施例的预测模型的详细结构;

图8示出了根据本公开的一些实施例的用于周期性数据的预测的过程的流程图;

图9示出了根据本公开的一些实施例的用于周期性数据的预测的装置的框图;以及

图10示出了其中可以实施本公开的一个或多个实施例的电子设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中示出了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反,提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“一些实施例”应当理解为“至少一些实施例”。下文还可能包括其他明确的和隐含的定义。

可以理解的是,本技术方案所涉及的数据(包括但不限于数据本身、数据的获取或使用)应当遵循相应法律法规及相关规定的要求。

可以理解的是,在使用本公开各实施例公开的技术方案之前,均应当根据相关法律法规通过适当的方式对本公开所涉及个人信息的类型、使用范围、使用场景等告知用户并获得用户的授权。

例如,在响应于接收到用户的主动请求时,向用户发送提示信息,以明确地提示用户,其请求执行的操作将需要获取和使用到用户的个人信息,从而使得用户可以根据提示信息来自主地选择是否向执行本公开技术方案的操作的电子设备、应用程序、服务器或存储介质等软件或硬件提供个人信息。

作为一种可选的但非限制性的实现方式,响应于接收到用户的主动请求,向用户发送提示信息的方式,例如可以是弹窗的方式,弹窗中可以以文字的方式呈现提示信息。此外,弹窗中还可以承载供用户选择“同意”或“不同意”向电子设备提供个人信息的选择控件。

可以理解的是,上述通知和获取用户授权过程仅是示意性的,不对本公开的实现方式构成限定,其他满足相关法律法规的方式也可应用于本公开的实现方式中。

如本文中所使用的,术语“模型”可以从训练数据中学习到相应的输入与输出之间的关联关系,从而在训练完成后可以针对给定的输入,生成对应的输出。模型的生成可以基于机器学习技术。深度学习是一种机器学习算法,通过使用多层处理单元来处理输入和提供相应输出。神经网络模型是基于深度学习的模型的一个示例。在本文中,“模型”也可以被称为“机器学习模型”、“学习模型”、“机器学习网络”或“学习网络”,这些术语在本文中可互换地使用。

“神经网络”是一种基于深度学习的机器学习网络。神经网络能够处理输入并且提供相应输出,其通常包括输入层和输出层以及在输入层与输出层之间的一个或多个隐藏层。在深度学习应用中使用的神经网络通常包括许多隐藏层,从而增加网络的深度。神经网络的各个层按顺序相连,从而前一层的输出被提供作为后一层的输入,其中输入层接收神经网络的输入,而输出层的输出作为神经网络的最终输出。神经网络的每个层包括一个或多个节点(也称为处理节点或神经元),每个节点处理来自上一层的输入。

通常,机器学习大致可以包括三个阶段,即训练阶段、验证阶段和应用阶段(也称为推理阶段)。在训练阶段,给定的模型可以使用大量的训练数据进行训练,不断迭代更新参数值,直到模型能够从训练数据中获得一致的满足预期目标的推理。通过训练,模型可以被认为能够从训练数据中学习从输入到输出之间的关联(也称为输入到输出的映射)。训练后的模型的参数值被确定。在验证阶段,将验证输入应用到训练后的模型,验证模型是否能够提供正确的输出,从而确定模型的性能。在应用阶段,模型可以被用于基于训练得到的参数值,对实际的输入进行处理,确定对应的输出。

图1示出了能够在其中实现本公开的实施例的示例环境100的示意图。如图1所示,环境100包括模型训练系统110和模型应用系统120。在图1的示例实施例,模型训练系统110被配置利用训练数据集112来训练预测模型105。模型应用系统120可以被配置为应用训练后的预测模型105。

在实际系统中,预测模型105可以被配置为处理输入数据,并确定对应的预测结果。在每次预测时,预测模型105接收输入的数据样本并生成数据样本对应的预测结果。在此,“数据样本”指的是预测模型105可处理的输入数据的单位粒度。

可以根据实际应用来定义预测模型105所要执行的预测任务。例如,在推荐系统中,预测任务是预测推荐项目的转化结果,并基于预测的转化结果来确定是否要向用户推荐该项目。在此,推荐项目可以是任何要被推荐的内容或资源,其示例可以包括应用、实体商品、虚拟商品、音视频内容,等等。推荐项目的转化结果可以基于具体项目以及实际需要来定义,一些示例转化结果例如可以包括点击、下载、注册、加入购物车、付费、激活、或其他资源需求行为。

在与推荐相关的预测任务中,输入到预测模型105的数据样本可以至少包括与推荐项目相关的信息。在一些情况下,数据样本还可以包括与要推荐的用户相关的信息。预测模型105输出的预测结果可以是推荐项目在被推荐的情况下会发生转化的概率,或者特定用户针对该推荐项目发生转化的概率,等等。

作为另一个例子,在金融应用中,预测模型105的预测任务可以是预测产品在未来时间的销售量。在该示例中,输入到预测模型105的数据样本可以包括进一步的时间、与产品和/或其他相关产品相关的信息、产品和/或者其他相关产品的历史销售量、与产品的目标地理区域和目标用户相关的信息等等。预测模型105的输出可以包括产品在某个时间的预测销售量。

应当理解,上面仅列出了若干可能的示例,并且预测模型105可以被配置为实现任何其他预测任务。在下文中,出于解释说明的目的,以推荐系统的应用场景为例进行说明,但应当理解本公开的实施例可以被应用到其他具有类似特性的预测任务中。

预测模型105可以被构造为能够处理输入的数据样本并生成输出作为预测结果的函数。预测模型105可以配置有一组参数,这些参数的值将通过训练过程从训练数据中学习。

在训练时,所使用的训练数据集112可以包括提供给预测模型105的训练数据样本114,以及指示训练数据样本114的对应真实预测结果的标注信息116。虽然图1仅示出了一对训练数据样本及其标注信息,但在训练时可能需要一定数量的训练数据样本以及标注信息。

在一些实施例中,使用目标函数来衡量预测模型105针对训练数据样本114给出的输出与标注信息116之间的误差(或距离)。这种误差也称为机器学习的损失,目标函数也可以称为损失函数。损失函数可以表示为l(f(x),y),其中x表示训练数据样本,f()表示机器学习模型,f(x)表示预测模型的输出,y表示x的标注信息,指示x的真实预测结果。在训练期间,预测模型105的参数值被更新以减少从目标函数计算的误差。在目标函数被优化,例如,所计算的误差被最小化或达到期望的阈值时,学习目标完成。

在训练过程之后,可以将用更新的参数值配置的训练的预测模型105提供给模型应用系统120,该模型应用系统120将实际需要预测的目标数据样本122应用于预测模型105,以输出目标数据样本122的预测结果124。

在图1中,模型训练系统110和模型应用系统120可以是任何具有计算能力的系统,例如各种计算设备/系统、终端设备、服务器等。终端设备可以是任意类型的移动终端、固定终端或便携式终端,包括移动手机、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、媒体计算机、多媒体平板、或者前述各项的任意组合,包括这些设备的配件和外设或者其任意组合。服务器包括但不限于大型机、边缘计算节点、云环境中的计算设备,等等。

应当理解,图1示出的环境中的部件和布置仅是示例,适于用于实现本公开所描述的示例实施例的计算系统可以包括一个或多个不同的部件、其他部件和/或不同的布置方式。例如,虽然被示出为是分离的,但模型训练系统110和模型应用系统120可以集成在相同系统或设备。本公开的实施例在此方面不受限制。

应当理解,仅出于示例性的目的描述环境100中各个元素的结构和功能,而不暗示对于本公开的范围的任何限制。

在某些情况下,由机器学习模型处理的输入数据可能具有一定的周期性。这种数据称为周期性或周期性数据。例如,在推荐场景中,用户群体的行为随着时间有周期性。应用程序的用户可能通常在每天相对固定的时间窗口内(例如,睡前和下班后)登录应用程序或者在周末才会频繁使用应用程序,并在不同日子在同一时间窗口显示相同的兴趣。这些规律行为对预测模型造成的影响就是预测模型在相邻两个周期的同一时刻往往非常相似。

如果构建普通预测模型f(x),不考虑数据样本的时间特征,那么预测结果难以反映周期性特点。因此,需要利用能够建模周期性数据的预测模型。对于处理周期性数据的预测模型,将会引入输入的数据样本相关联的时间,作为时间特征。用于处理周期性数据的预测模型可以被表示为f(x,t),其中x表示输入到模型的数据样本,t表示数据样本x在一个周期内的获得时间。这样,对于在不同时间的数据样本,可以实施不同的预测策略。

另一方面,除周期性之外,需要执行预测的输入数据在一个周期内表现出的特性可能也会发生改变。例如,在一段时间内用户总是在白天展示出对某些内容的兴趣,但在另一段时间用户可能在夜晚展示出对应的兴趣,或者在白天展示出对另一些内容的兴趣。这就要需要不断更新预测模型,以使模型能够追踪到将要处理的输入数据的更新特性。因此,在一次训练完成后,已被投入使用的预测模型可能还会需要利用新的训练数据来重新训练。在这种情况下,预测模型的训练其实可以被认为有两个阶段。第一阶段是利用大量历史训练数据进行模型训练的阶段,称为批式训练。在训练后的模型投入使用后,还根据后续到来的训练数据继续更新模型。这个过程叫做流式训练。

在利用输入数据的周期性来训练更好的预测模型的问题可以如下设置。给定由三元组表示的样本(x,y,t),其中x是用于模型输入的训练数据样本,y是训练数据采样的预测结果,并且t是在一定周期内训练数据样本x的获得时间,期望学习可以预测任意给定时间t的预测模型(表示为f)。训练数据样本可能也是以循环方式到达模型训练系统。更具体地说,在模型的两次连续更新之间,只有在更新间隔内可获得的样本才能够被用于训练。这可能会导致对周期性数据进行建模的预测模型在学习过程中的一定预估误差。

下面将举一个具体示例来说明这个问题。

在推荐场景中,在推荐平台中提供推荐项目后(例如推荐给用户后),与本次推荐对应的转化结果会被反馈至推荐平台。转化结果被反馈给推荐平台,称为转化回流。推荐项目被提供的时间称为推荐项目的“发送时间”,转化结果的反馈时间称为推荐项目的“回流时间”。

有时候与一次推荐对应的转化结果可能并不总是被实时反馈的。转化结果的非实时可获得称为“转化回流延迟”,或反馈延迟。造成转化回流延迟的原因有多种,例如某些推荐项目的转化行为是在接收到推荐项目一段时间后才发生(例如,付费行为、激活行为等),或者转化结果被故意延迟以实现隐私保护,等等。此外,对于不同推荐项目或者不同转化结果,具体的转化回流延迟也不同。例如,对于某个推荐项目,如果用户未发生转化,那么指示未转化的转化结果可能会被实时反馈。如果用户在一段时间后执行了转化,那么指示成功转化的转化结果可能会在延迟一段时间后才被反馈。

一般情况下,在推荐项目被发送时,由于只知道推荐项目相关的信息(以及用户的信息)而不知道该用户是否执行转化,即只知道模型输入的数据样本,而不知道该数据样本的标注信息,所以该推荐项目无法被应用于训练预测模型。只有在转化回流后,才能构造三元组(x,y,t)用于预测模型的训练。这个原因将会导致训练得到的预测模型的预测结果不准确。

下面结合图2,通过一个较为极端的例子来证明由于训练样本的延迟导致的误差。假设存在作为基准的预测模型210,f(x),该模型不对数据的周期性进行建模,但会持续用最新获得标注的数据进行更新。此外还存在对数据的周期性进行建模的预测模型220,f(x,t)。假设在一个周期(假设为一天)内时间t只有两个取值,t=0或1,其中f(x,t=0)表示预测模型在白天对数据样本x执行的预测,f(x,t=1)表示预测模型在夜晚对数据样本x执行的预测。如果数据样本x对应的标注信息y=1,表示数据样本的真实预测结果(例如,指示发生转化),其具有反馈延迟1(假设,延迟12小时)。反之,如果数据样本x对应的标注信息y=0,表示数据样本的真实预测结果(例如,指示未发生转化),其具有反馈延迟0(假设,延迟0小时)。具有标注信息y=1的数据样本x可以称为正样本,具有标注信息y=0的数据样本x可以称为负样本。

假设在前一周期(例如,前一天)的夜晚t=1提供数据样本211,并且在当前周期(例如,今天)的白天t=0提供数据样本212。在当前周期t=0的时间处,例如今天的白天,如果要对预测模型执行训练,那么此时可以获得的是前一周期t=1被发送的数据样本及其标注信息,即正样本231,以及当前周期t=0被发送的数据样本及其标注信息,即负样本232。对于预测模型210,由于没有时间特征t的存在,所以这两类样本被共同用于更新预测模型。假设这两类样本数量为1:1,那么预测模型210学到的样本均值为0.5。对于预测模型220,正样本211会被用于更新预测模型220中与t=1相关的部分,即f(x,t=1),而负样本212会被用于更新预测模型220中与t=0相关的部分,即f(x,t=0)。这样,f(x,t=1)学习到的样本均值为1,而f(x,t=0)学习到的样本均值为0。

在更新过后,由于当前时间是白天t=0,那么预测模型220将会需要用训练后的f(x,t=0)来执行预测,这就导致对于当前时间获得的目标数据样本做出错误估计,即预测结果是低估(0<0.5)。当然,如果在图2的示例中,负样本的标注信息的延迟较大而正样本的标注信息的延迟较小,那么在更新预测模型220后将会导致预测结果的高估(例如,1>0.5)。

如果数据样本的标注信息的反馈时间没有被延迟,那么对于预测模型220的训练将会有与模型210的相同效果。然而,在针对具有周期性的输入数据的很多预测场景中,训练数据样本的标注信息的获得可能总是存在延迟。发明人通过大量研究实验发现,如果使用训练数据样本的获得时间作为时间特征,则在AB实验中会存在预测误差。这是因为,AB实验的过程中,当前训练的预测模型需要被即时应用到对当前到来的数据样本进行预估,这样就会导致反馈延迟较长的样本会更难被及时用于模型的学习与更新,从而导致在AB实验过程中观察到的模型预估性能主要由短时间内反馈的样本决定。如果反馈延迟较长的样本与反馈延迟较短的样本之间有较大差异,则会出现预测模型在线上即时到来数据上的预估性能与在已反馈完全的离线数据上的预估性能差异。

根据本公开的实施例,提供了一种改进的方案,以解决处理周期性数据的预测模型的更新问题。在该方案中,对于被配置为处理具有目标周期的输入数据的预测模型,在训练过程中,如果训练数据样本的标注信息的反馈有延迟,将训练数据样本对应的标注信息的获得时间作为该训练数据样本的时间特征来进行模型训练。对于这一类训练数据样本,预测模型的输入是训练数据样本本身以及样本时间,该样本时间指示在目标周期内标注信息的获得时间。这样,可以基于已获得的标注信息来确定对预测模型的更新。在训练完成后,经训练的预测模型被应用于处理目标数据样本并确定对应的预测结果,该目标数据样本的时间特征为在目标周期内该数据样本的获得时间。通过在训练时利用标注信息的获得时间来代替输入的数据样本的获得时间,能够有效改善标注信息反馈延迟导致的模型学习效果不佳(特别是在AB实验过程中对于线上数据进行预测时表现不佳)、预测平均值不准确的情况,从而能够在实际预测中输出更准确的预测结果。

以下将继续参考附图描述本公开的一些示例实施例。

图3示出了根据本公开的一些实施例的用于周期性数据的预测的架构。假设预测模型310被配置为处理具有目标周期的输入数据。这样的预测模型会被构建为以数据样本和样本时间作为模型输入,并且输出对应的预测结果。目标周期可以是取决于具体应用来设置,样本时间指的是目标周期内的一个时间,其可以是目标周期内任意粒度的时间点或时间段。下文中首先描述模型的训练,然后再讨论具有周期性建模能力的预测模型310的详细架构。

根据本公开的实施例,期望对预测模型310执行多次迭代更新。在每次更新时,利用新采集到的训练数据执行针对预测模型310的训练过程。在每次迭代中,在训练阶段,预测模型310的训练数据可以包括训练数据样本302-1、302-2、……302-N(N为大于等于1的整数),为便于讨论,统称为或单独称为训练数据样本302。为了完成训练,每个训练数据样本还需要对应的标注信息304-1、304-2、……304-N,为便于讨论,统称为或单独称为标注信息304。标注信息304指示对应的训练数据样本302的真实预测结果。例如,在推荐场景下,如果训练数据样本302是与推荐项目相关的信息,标注信息304可以指示推荐项目的真实转化结果。

在训练时,预测模型310基于当前的模型参数来处理输入的训练数据样本302和对应的样本时间,并给出预测结果。更新模块312可以基于训练数据样本302的预测结果以及对应的标注信息304之间的误差,来更新预测模型310。通过迭代更新,预测模型310可以学习到训练数据样本302所展现的特性,从而能够在后续给出更准确的预测结果。

在一些情况下,由于训练数据样本的标注信息的反馈存在延迟,因此可能会存在这样的情况,在当前时间t所获得的标注信息,其对应的训练数据样本的获得时间是t-Δ,其中Δ表示延迟时间。如前文结合图2所讨论的,如果依赖于训练数据样本的获得时间作为样本时间输入到预测模型,那么将会导致训练出的预测模型在标注信息未完成反馈的部分数据样本上出现预测误差。在本公开的实施例中,对于预测模型310,在训练过程中所使用的训练数据样本302中,至少有部分训练数据样本302,其训练过程中其样本时间指示在目标周期内对应的标注信息304的获得时间。这就意味着,虽然存在标注信息的反馈延迟,但对于当前时间,可以将已被延迟反馈的标注信息的获得时间作为训练数据样本的样本时间,共同用于训练预测模型310。这样,预测模型310可以针对当前时间,从更多更全面的训练数据中学习到周期性输入数据的特性,从而在模型应用过程中防止用于预测模型出现对某些数据样本的高估或低估现象。

在一些实施例中,在预测模型310的所有训练数据样本302中,如果部分训练数据样本的标注信息没有反馈延迟,那么在当前时间可以直接将这部分数据样本302的获得时间作为样本时间输入到预测模型310。也就是说,预测模型310的输入可以分为两类。第一类输入包括第一训练数据样本以及第一样本时间,第一样本时间指示第一训练数据样本的标注信息的获得时间。第二类输入包括第二训练数据样本以及第二样本时间,第二样本时间指示第二训练数据样本的获得时间。在一些实施例中,在训练时预测模型310的输入也可以总是利用训练数据样本以及训练数据样本的标注信息的获得时间(即,第一样本时间)。

在推荐应用中,预测模型310被配置为预测推荐项目的转化结果。相应地,第一训练数据样本至少指示训练推荐项目的相关信息(以及可能还可以指示用户的相关信息),第一样本时间指示在目标周期内该训练推荐项目的真实转化结果的获得时间。真实转化结果为第一训练数据样本的标注信息,其获得时间相对于训练推荐项目被推荐的时间具有延迟。在一些实施例中,可以使用多个第一训练数据样本、其标注信息以及各自的第一样本时间来训练预测模型310。在一些实施例中,还可以附加地使用第二训练数据样本,其中第二训练数据样本也至少指示训练推荐项目的相关信息(以及可能还可以指示用户的相关信息),相关联的第二样本时间指示在目标周期内该训练推荐项目的获得时间。

继续结合图4可以更清楚理解本公开的一些实施例的预测模型的训练。图4的示例是在与图2的示例类似的场景下。对于正样本231,虽然数据样本的获得时间是t=1,例如推荐项目是在前一周期的时间t=1被发送的,但在当前周期的时间t=0要对预测模型310执行训练时,可以以在t=0时标注信息的获得时间tf=0作为其样本时间。这样,正样本231及其样本时间t=tf=0可以被用于训练预测模型310中负责处理一个周期中t=0的处理部分f(x,t=0)。此外,在当前周期的时间t=0,由于标注信息的反馈没有延迟,那么同样可以获得负样本232用于模型训练。负样本232的样本时间是数据样本的获得时间t=0。由此,所训练的预测模型310中f(x,t=0)可以被用于对周期内t=0时间的数据样本执行准确预测。

注意,虽然图4示出了正样本的标注信息具有反馈延迟,但在其他情况下可能负样本的标注信息会出现反馈延迟,或者正样本和负样本的标注信息均会出现相同或不同的反馈延迟。注意,虽然借助推荐场景下的预测来进行说明,但任何其他预测场景也同样适用。本公开的实施例提出的模型训练方式可以适用于在对周期性数据进行学习时,输入数据的获得时间与其标注信息的获得时间之间存在延迟的任何场景。

继续参考回图3,在训练阶段,预测模型310的训练例如可以由图1的环境100中的模型训练系统110来实现,并且更新模块312可以被实现为模型训练系统110的一部分。

在经过一个训练过程被训练完成后,经训练的预测模型310可以被投入应用,例如可以由图1的模型应用系统120来应用。如图3所示,在应用阶段,获取要预测的目标数据样本304以及对应的目标样本时间作为预测模型310的输入,目标样本指示目标数据样本304的获得时间。例如,在推荐场景中,目标数据样本可以至少指示待被推荐的目标推荐项目的相关信息(以及可能还可以指示用户的相关信息),目标样本时间可以指示在目标周期内目标推荐项目要被推荐的时间。预测模型310被用于基于目标数据样本和目标样本时间来确定针对目标数据样本的预测结果。

在一些实施例中,对于预测模型310的训练过程可以按一定时间间隔或者根据其他条件被重复执行。每次执行训练时,均可以根据上文讨论的类似方式获得对应的训练数据来进行模型更新。

在一些实施例中,为了能够对输入数据的周期性进行建模,预测模型310可以包括至少包括非周期性建模部分、周期性建模部分和输出层。图5示出了预测模型310的一个示例结构,其包括非周期性建模部分510、周期性建模部分520和输出层530。

非周期性建模部分510被配置为从输入的数据样本提取中间特征表示。在训练阶段,输入的数据样本是训练数据样本;在应用阶段,输入的数据样本是目标数据样本。非周期性建模部分510用于学习模型输入中非周期性的部分。周期性建模部分520被配置为基于在目标周期内与数据样本对应的样本时间来处理中间特征表示,以获得周期性特征表示。周期性建模部分520用于学习模型输入中周期性的部分。在训练阶段,对于某些训练数据样本,样本时间是训练数据样本的标注信息的获得时间,对于另一些训练数据样本,样本时间是训练数据样本的获得时间。在应用阶段,输入到周期性建模部分520的样本时间是目标数据样本的获得时间。预测模型310中的输出层530被配置为至少基于周期性特征表示来确定针对数据样本的预测结果。

在一些实施例中,周期性建模部分520可以被配置为利用傅里叶展开函数,基于样本时间来处理非周期性建模部分提供的中间特征表示。这样的周期性建模部分520可以被称为傅里叶层。基于傅里叶学习构建的模型可以直观地利用训练数据的周期性,并且可以表示为具有周期性的周期函数。因此,傅里叶学习可以适用于基于机器学习的预测模型。基于傅里叶展开的周期性建模部分520可以被表示为如下:

其中N是超参数,T表示预测模型310所要处理的输入数据的目标周期(其也是超参数),t是样本时间,x是周期性建模部分的输入,即从非周期性建模部分获得的中间特征表示。周期性建模部分520可以被构造为实现如上式(1)所示的傅里叶展开,得到周期性特征表示。周期性建模部分520的输出会被提供以由输出层530映射到预测结果。引入基于傅里叶展开的周期性建模部分520,可以允许通过考虑输入数据内的周期性来生成更准确的预测结果。

在一些预测任务中,如果利用基于傅里叶展开的周期性建模部分520,可能会由于模型更新学习率固定而导致学习出的各个频率分量并不会呈现出明显的周期性,进而导致加和之后f

为了解决这个现象,在一些实施例中,根据具体预测任务,还可以利用周期性高斯核函数来直接建模输入数据的周期性。基于周期性高斯核函数的周期性建模部分520可以被表示为如下:

其中K(x,y)是高斯核函数:

基于周期性高斯核函数的周期性建模部分520可以很好地学习到输入数据的周期性。周期性高斯核函数可以被表示为与目标周期内的相应时间分别对应的核函数。例如,假设p=1,改变参数l,可以得到如图6B所示的一组周期性核函数K(x,y)的样式。当l变化的时候,周期性高斯核函数的最低点会出现变化。当最低点更接近0时,则中心在t

对于

结合图6B和6C,可以注意到在t=t

相比于傅里叶展开,周期性高斯核函数能够使预测模型的意义从频域中切换回时域中,特别地,使a

在预测模型310中,非周期性建模部分和周期性建模部分可以具有多种部署方式。在一些实施例中,非周期性建模部分510可以包括多个预测部分,每个预测部分可以被配置为提供一个中间预测结果。

在一些实施例中,周期性建模部分510可以被构建为其中一个预测部分,周期性建模部分510的输出作为一个中间预测结果,与其他预测部分的中间预测结果一起聚合出最终的预测结果。图7A示出了预测模型310的这样一个示例。预测模型310包括一个或多个预测部分710-1、710-2、……710-M(M为大于等于1的整数),统称为或单独称为预测部分710。每个预测部分710可以基于不同机器学习建模方式来构造,并可以以数据样本为输入进行处理,得到中间特征表示,并提供给输出层530。预测模型310还包括共享部分712,被配置为从数据样本提取中间特征表示,并将中间特征表示提供给非共享部分714和周期性建模部分520。共享部分712和非共享部分714例如可以基于深度学习模型来构建。非共享部分714处理中间特征表示,并提取进一步的中间特征表示提供给输出层530。周期性建模部分520处理来自共享部分712的中间特征表示以及数据样本的样本时间,并提供周期性特征表示给输出层530。输出层530汇总来自各个部分的特征表示,将其映射到预测结果。

在一些实施例中,为了进一步简化预测模型310的结构,使模型参数量更少,非周期性建模部分中的多个预测部分可以各自处理输入的数据样本,并提供多个中间预测结果。这些中间预测结果可以被级联作为中间特征表示,输入到周期性预测部分530。图7B示出了预测模型310的这样一个示例。如图7B所示,预测模型310包括多个预测部分710-1、710-2、……710-M以及预测部分716。这些预测部分分别处理输入的数据样本,得到多个中间预测结果,这些中间预测结果被级联得到中间预测结果的级联720。中间预测结果的级联720被输入到周期性建模部分520。周期性建模部分520还接收数据样本的样本时间,以基于学习到的输入数据的周期性来给出准确的特征提取,帮助准确的结果预测。周期性建模部分520确定出周期性特征表示,提供到输出层530,以用于确定预测结果。

当然,除图7A和图7B的示例外,周期性建模部分520在预测模型中还可以有其他部署方式,本文中对此不限定。

图8示出了根据本公开的一些实施例的用于周期性数据的预测的过程800的流程图。过程800例如可以被实现在图1的模型应用系统120处。

在框810,模型应用系统120获取经训练的预测模型,预测模型被配置为处理具有目标周期的输入数据。预测模型在第一训练过程中至少基于第一训练数据样本、相关联的第一样本时间以及第一标注信息而被训练,第一样本时间指示在目标周期内第一标注信息的获得时间。预测模型的训练例如可以在模型训练系统120处实现。模型应用系统110可以从模型训练系统110获取经训练的预测模型。

在框820,模型应用系统120获取目标数据样本和相关联的目标样本时间,目标样本时间指示在目标周期内目标数据样本的获得时间。在框830,模型应用系统120利用预测模型,基于目标数据样本和目标样本时间来确定针对目标数据样本的预测结果。

在一些实施例中,预测模型包括非周期性建模部分、周期性建模部分和输出层。非周期性建模部分被配置为从输入的数据样本提取中间特征表示。周期性建模部分被配置为基于在目标周期内与数据样本对应的样本时间来处理中间特征表示,以获得周期性特征表示。输出层被配置为至少基于周期性特征表示来确定针对数据样本的预测结果。

在一些实施例中,周期建模部分被配置为利用周期性高斯核函数,基于样本时间来处理中间特征表示。在一些实施例中,周期性高斯核函数被表示为与目标周期内的相应时间分别对应的核函数。

在一些实施例中,周期建模部分被配置为利用傅里叶展开函数,基于样本时间来处理中间特征表示。

在一些实施例中,非周期性建模部分包括多个预测部分,多个预测部分被配置为处理输入的数据样本并输出多个中间预测结果,多个中间预测结果被级联作为中间特征表示。

在一些实施例中,预测模型被配置为预测推荐项目的转化结果。第一训练数据样本至少指示训练推荐项目的相关信息,第一样本时间指示在目标周期内训练推荐项目的真实转化结果的获得时间。目标数据样本至少指示待被推荐的目标推荐项目的相关信息,目标样本时间指示在目标周期内目标推荐项目要被推荐的时间。

在一些实施例中,真实转化结果的获得时间相对于训练推荐项目被推荐的时间具有延迟。

在一些实施例中,预测模型在第一训练过程中还基于第二训练数据样本、相关联的第二样本时间以及第二标注信息而被训练,第二样本时间指示在目标周期内第二标注信息的获得时间。

图9示出了根据本公开的一些实施例的用于周期性数据的预测的装置900的示意性结构框图。装置900可以被实现为或者被包括在模型应用系统120中。装置900中的各个模块/组件可以由硬件、软件、固件或者它们的任意组合来实现。

如图所示,装置900包括模型获取模块910,被配置为获取经训练的预测模型,预测模型被配置为处理具有目标周期的输入数据,预测模型在第一训练过程中至少基于第一训练数据样本、相关联的第一样本时间以及第一标注信息而被训练,第一样本时间指示在目标周期内第一标注信息的获得时间。装置900还包括目标获取模块920,被配置为获取目标数据样本和相关联的目标样本时间,目标样本时间指示在目标周期内目标数据样本的获得时间。装置900还包括预测执行模块930,被配置为利用预测模型,基于目标数据样本和目标样本时间来确定针对目标数据样本的预测结果。

在一些实施例中,预测模型包括非周期性建模部分、周期性建模部分和输出层。非周期性建模部分被配置为从输入的数据样本提取中间特征表示。周期性建模部分被配置为基于在目标周期内与数据样本对应的样本时间来处理中间特征表示,以获得周期性特征表示。输出层被配置为至少基于周期性特征表示来确定针对数据样本的预测结果。

在一些实施例中,周期建模部分被配置为利用周期性高斯核函数,基于样本时间来处理中间特征表示。在一些实施例中,周期性高斯核函数被表示为与目标周期内的相应时间分别对应的核函数。

在一些实施例中,周期建模部分被配置为利用傅里叶展开函数,基于样本时间来处理中间特征表示。

在一些实施例中,非周期性建模部分包括多个预测部分,多个预测部分被配置为处理输入的数据样本并输出多个中间预测结果,多个中间预测结果被级联作为中间特征表示。

在一些实施例中,预测模型被配置为预测推荐项目的转化结果。第一训练数据样本至少指示训练推荐项目的相关信息,第一样本时间指示在目标周期内训练推荐项目的真实转化结果的获得时间。目标数据样本至少指示待被推荐的目标推荐项目的相关信息,目标样本时间指示在目标周期内目标推荐项目要被推荐的时间。

在一些实施例中,真实转化结果的获得时间相对于训练推荐项目被推荐的时间具有延迟。

在一些实施例中,预测模型在第一训练过程中还基于第二训练数据样本、相关联的第二样本时间以及第二标注信息而被训练,第二样本时间指示在目标周期内第二标注信息的获得时间。

图10示出了其中可以实施本公开的一个或多个实施例的电子设备1000的框图。应当理解,图10所示出的电子设备1000仅仅是示例性的,而不应当构成对本文所描述的实施例的功能和范围的任何限制。图10所示出的电子设备1000可以用于实现模型训练系统110和/或模型应用系统120。电子设备1000可以包括或被实现为图9的装置900。

如图10所示,电子设备1000是通用计算设备的形式。电子设备1000的组件可以包括但不限于一个或多个处理器或处理单元1010、存储器1020、存储设备1030、一个或多个通信单元1040、一个或多个输入设备1050以及一个或多个输出设备1060。处理单元1010可以是实际或虚拟处理器并且能够根据存储器1020中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高电子设备1000的并行处理能力。

电子设备1000通常包括多个计算机存储介质。这样的介质可以是电子设备1000可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器1020可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(RAM))、非易失性存储器(例如,只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存)或它们的某种组合。存储设备1030可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,诸如闪存驱动、磁盘或者任何其他介质,其可以能够用于存储信息和/或数据(例如用于训练的训练数据)并且可以在电子设备1000内被访问。

电子设备1000可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图10中示出,可以提供用于从可拆卸、非易失性磁盘(例如“软盘”)进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。存储器1020可以包括计算机程序产品1025,其具有一个或多个程序模块,这些程序模块被配置为执行本公开的各种实施例的各种方法或动作。

通信单元1040实现通过通信介质与其他电子设备进行通信。附加地,电子设备1000的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,电子设备1000可以使用与一个或多个其他服务器、网络个人计算机(PC)或者另一个网络节点的逻辑连接来在联网环境中进行操作。

输入设备1050可以是一个或多个输入设备,例如鼠标、键盘、追踪球等。输出设备1060可以是一个或多个输出设备,例如显示器、扬声器、打印机等。电子设备1000还可以根据需要通过通信单元1040与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与电子设备1000交互的设备进行通信,或者与使得电子设备1000与一个或多个其他电子设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(I/O)接口(未示出)来执行。

根据本公开的示例性实现方式,提供了一种计算机可读存储介质,其上存储有计算机可执行指令,其中计算机可执行指令被处理器执行以实现上文描述的方法。根据本公开的示例性实现方式,还提供了一种计算机程序产品,计算机程序产品被有形地存储在非瞬态计算机可读介质上并且包括计算机可执行指令,而计算机可执行指令被处理器执行以实现上文描述的方法。

这里参照根据本公开实现的方法、装置、设备和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其他可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

可以把计算机可读程序指令加载到计算机、其他可编程数据处理装置、或其他设备上,使得在计算机、其他可编程数据处理装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其他可编程数据处理装置、或其他设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本公开的多个实现的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

以上已经描述了本公开的各实现,上述说明是示例性的,并非穷尽性的,并且也不限于所公开的各实现。在不偏离所说明的各实现的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实现的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文公开的各个实现方式。

技术分类

06120115636871