一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

时序数据的预测方法及装置与流程

2022-07-16 23:14:17 来源:中国专利 TAG:


1.本公开涉及机器学习技术领域,尤其涉及利用机器学习进行时序数据的预测方法和装置。


背景技术:

2.随着数据爆炸式的增长,将这些数据结合对应的时间戳统计起来,就会构成时间序列。对目标对象的时间序列数据(下文简称时序数据)进行预测,可以实现对目标对象的未来行为的预测。在现实生活中,目标对象一般会与其他对象产生交互,且该交互致使其他对象的时序数据会对目标对象的时序数据产生影响(产生交互的其他对象可称为邻居对象)。因此,为了更精确的对目标对象的时序数据进行预测,不仅需要考虑目标对象的时序数据,还需要考虑邻居对象的时序数据对目标对象的时序数据的影响。
3.现有的时序数据的预测方法引入了图模型来刻画各个对象之间的关系,其根据各个对象自身的时序数据获取各个对象的节点特征,然后基于图结构进行传播而学习邻居对象的时序数据对目标对象的时序数据的影响。通过该方法获得的各个对象的节点特征(embedding)比较粗糙,因此,预测结果不佳。


技术实现要素:

4.有鉴于此,本公开提供一种时序数据的预测方法及装置,以有效的提高预测结果的精确度。
5.第一方面,提供一种时序数据的预测方法,所述方法包括:获取图数据,所述图数据包括目标节点的时序数据以及所述目标节点的邻居节点的时序数据;将所述目标节点的时序数据输入时序编码器,得到所述目标节点的节点特征;将所述目标节点的时序数据和所述邻居节点的时序数据输入空间编码器,得到所述邻居节点的节点特征,所述邻居节点的节点特征为所述邻居节点的时序数据中的与所述目标节点的时序数据相关的特征;将所述目标节点的节点特征和所述邻居节点的节点特征融合,得到融合后的特征;根据所述融合后的特征,确定所述目标节点的时序数据的预测结果。
6.第二方面,提供一种时序数据的预测装置,所述装置包括:获取模块,用于获取图数据,所述图数据包括目标节点的时序数据以及所述目标节点的邻居节点的时序数据;第一输入模块,用于将所述目标节点的时序数据输入时序编码器,得到所述目标节点的节点特征;第二输入模块,用于将所述目标节点的时序数据和所述邻居节点的时序数据输入空间编码器,得到所述邻居节点的节点特征,所述邻居节点的节点特征为所述邻居节点的时序数据中的与所述目标节点的时序数据相关的特征;融合模块,用于将所述目标节点的节点特征和所述邻居节点的节点特征融合,得到融合后的特征;确定模块,用于根据所述融合后的特征,确定所述目标节点的时序数据的预测结果。
7.第三方面,提供一种时序数据的预测装置,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器被配置为执行所述可执行代码,以实现如第一方面所述的方
法。
8.第四方面,提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
9.第五方面,提供一种计算机程序产品,包括可执行代码,当所述可执行代码被执行时,能够实现如第一方面所述的方法。
10.本公开实施例提供的时序预测方法,可基于图数据显性的刻画目标节点(即目标对象)和邻居节点(即邻居对象)之间的关系,该方法可通过时序编码器从目标节点的时序数据中确定目标节点的节点特征,并通过空间编码器同时从目标节点的时序数据和邻居节点的时序数据中确定邻居节点的节点特征,以使邻居节点的节点特征为邻居节点的时序数据中的与目标节点的时序数据相关的特征。采用这种方式可使邻居节点的节点特征被表征为对应于目标节点的专有特征表示,从而在后续通过由目标节点的节点特征和邻居节点的节点特征得到的融合后的特征确定目标节点的时序数据的预测结果时,其预测结果更加精确。
附图说明
11.图1是本公开实施例提供的图的结构示意图。
12.图2是本公开实施例提供的预测方法的流程示意图。
13.图3是本公开实施例提供的用于时序数据预测的模型的架构示例图。
14.图4是本公开实施例中的基于注意力机制的transformer神经网络模型的结构示意图。
15.图5是本公开实施例中的注意力层的操作示意图。
16.图6是本公开一实施例提供的预测装置的结构示意图。
17.图7是本公开另一实施例提供的预测装置的结构示意图。
具体实施方式
18.下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本公开一部分实施例,而不是全部的实施例。
19.为了便于理解,先对本公开实施例的相关概念进行简单介绍。
20.时间序列(time series):简称时序,可以是一串按时间维度索引的数据,描述了某个被测量的主体在一个时间范围内的每个时间点上的测量值。时序也可以理解为将某一个统计指标在不同时间上的各个数值,按时间先后顺序排列而形成的序列。例如,股票价格、按照时间排列的消费支出数据、按照时间排列的销量数据或者被记录的按照时间排列的实验数据。时序可通过时间序列数据(简称时序数据)进行描述或表达,即时序和时序数据等同。
21.时间序列预测(time series prediction):用于对目标对象在未来时间点上的测量值进行预测。时序预测的核心可以理解为假设时序具有一定的规律,利用历史一段时间窗口的时序数据来预测未来一段时间窗口的时序数据。
22.图(graph):如图1所示,是由节点和边组成的一种数据结构,包括表征节点的数据及表征节点与节点之间的关系的数据。其中,节点是指实体对象,例如用户或者设备。边,可
称为连接边,位于有影响(或称交互)关系的两个节点之间,用来表示这两个节点之间的关系,例如,转账、交易或者收发信息等。图中可以包含多个节点和多个边,每个节点表示不同的对象。在本公开实施例中,将目标对象所对应的节点记为目标节点,将与目标节点通过边直接连接或者间接连接的节点记为邻居节点。其中,直接连接的邻居节点为一阶邻居节点,间隔一个节点间接连接的节点为二阶邻居节点,间隔两个节点间接连接的节点为三阶邻居节点,以此类推。如图1所示,如果标号为1的节点为目标节点,则标号为3、4和5的节点为一阶邻居节点,标号为7和8的节点为二阶邻居节点,标号为9的节点为三阶邻居节点。邻居节点对应于与目标对象有交互关系的其他对象(与目标对象有交互关系的其他对象也可称为邻居对象)。一个目标节点可以具有多个邻居节点,一个邻居节点也可以与多个目标节点之间具有连接边。目标节点和邻居节点之间的连接关系可称为拓扑结构。
23.随着数据的爆炸式发展,时间序列的预测在各个领域中都得到了广泛的应用。例如,在信贷领域,可以通过对目标用户的资金的时间序列的预测得知其资金需求;或者,在供货链领域,可以通过对目标客户的销量的时间序列的预测得知其货品需求;又或者,在设备监测领域,可以通过对设备的目标监测数据的时间序列的预测得知该设备的状态。然而,在现实生活中,目标对象一般会与其他对象产生交互,且该交互致使其他对象的时序数据会对目标对象的时序数据产生影响,因此,目标对象与其他对象的时序数据往往不是相互独立的。为了更容易理解,下面结合示例对此进行说明。
24.作为一个示例,目标对象可以是信贷行业的用户,例如个人或者企业,其时序数据可以是其历史的消费时序数据、其历史的还款数的时序数据和/或其历史的回笼资金的时序数据。信贷行业的金融机构可以根据该目标用户的上述时序数据分析其在未来时间内所需要的资金以及其还款的能力,从而在可控风险的情况下确定出为目标用户提供的资金的额度。例如,常见的银行贷款、信用卡、花呗、借呗及网商贷等。然而,根据目标对象的时间序列准确地预估其资金需求是一个非常复杂的过程。究其原因,目标对象的资金需求的变化不仅仅与自己的需求相关,通常也受到与目标对象产生交互的其他对象的影响。例如,目标用户为个人时,其朋友在存在资金短缺时,会向该用户借贷以进行资金周转。如果可以得知该信息,则可以为该目标用户提供这部分资金需求。又例如,目标用户为企业时,其下游企业的资金回笼延迟,导致其给目标用户的回款延迟,导致目标用户出现短期的资金缺口。如果可以得知该信息,则可以为该目标用户提供这部分资金需求。
25.作为另一个示例,目标对象可以是供应链上的商户,其时序数据可以是其历史的进货量的时序数据或其历史的销售量的时序数据。其供货商可以根据该目标对象的上述时序数据分析其在未来时间内所需要的货品量,从而在可控风险内生产或者采购等量的货品以为目标对象及时地提供货品。然而,准确地预估该目标对象的货品需求量也是一个复杂的过程,其货品需求量的变化也不仅仅与其自身的需求相关,通常受到与该目标对象交互的其他对象的影响。此处产生交互的其他对象例如可以是与该商户销售相似商品或者互补商品的其他商户。例如,产生交互的其他对象为销售同类型商品的商户,则该商户的销售量在某段时间出现销量的上升,可能会使得目标商户在未来时间内的销量降低。如果可以得知该信息,则可使供货商做出相应的生产或者采购调整。
26.作为又一个示例,目标对象可以是执行任务的目标设备,其时序数据可以是该设备的历史的某项监测值的时序数据。通过对该时序数据的分析可以预测目标设备在未来时
间内可能会出现的异常,从而尽早的进行提醒和报警。然而,准确的预估目标设备是否会发生异常也是一个复杂的过程,其异常的发生也不仅仅与其自身的时序数据有关。究其原因,目标设备在工作中往往也会与其他设备交互。例如,目标设备和其他设备共同协作完成同一个任务,如果其他设备的历史的某项监测值的时序数据出现了表征目标设备在与其协作过程中发生异常的信号,则其也可以预示着目标设备在未来时间内会发生异常。如果可以得知该信息,则可更准确的预估目标设备是否会在未来发生异常。
27.由此可知,本公开实施例所提及的目标对象及与目标对象产生交互关系的其他对象均具有时序数据,且该交互关系可以体现在彼此的时序数据上。在对该目标对象的时序数据进行预测时,仅使用目标对象的时序数据进行预测的模式是无法捕捉到上述其他对象对目标对象的影响关系的。
28.为了将上述其他对象对目标对象的影响考虑在对目标对象的时序的预测中,一种可行的方式是通过transformer模型基于大数据计算所有对象中的每两个对象之间的时序数据的相关性。然而,在这种方式下,由于目标对象并不清楚哪些对象是与其产生交互的其他对象,因此,在进行计算时还需要计算目标对象及不与其产生交互的其他对象的时序数据的相关性,其计算量非常大。也就是说该方法需要针对现实中的所有待观测对象进行每两个对象的时序数据之间的相关性计算,其对于现实中千万或者亿以上级别的观测对象而言,不容易实现计算。
29.另一种可行的方式是,利用图神经网络(例如gnn)学习目标对象的时序数据及与邻居对象对目标对象的影响。该方法可以根据能体现交互关系的图的结构进行传播计算,其显性的刻画出各个对象之间的关系,在学习各个对象之间的影响时,只需要对目标对象和邻居对象进行计算,因此可应用于大规模的数据。但是,该方法是根据每个节点的时序数据分别进行图嵌入而获得每个节点的节点特征,该每个节点的节点特征是唯一的,然后在此基础上再利用图结构来学习不同节点之间的传播权重,以此获得目标对象与邻居对象之间的相关性。
30.如图1所示,标号为1和2的节点分别表示目标对象a和目标对象b,标号为3的节点表示分别与目标对象a及目标对象b均具有交互关系的其他对象c(此处的其他对象c也可以称为目标对象a的邻居对象c和/或目标对象b的邻居对象c)。现有的基于图神经网络进行影响关系的学习方法中,会根据邻居对象c自身的时序数据计算节点3的节点特征,然后基于该同一个节点特征向目标对象a和目标对象b以不同的权重系数进行传播。
31.然而,通过这样的方式所表示的节点特征比较粗糙,因此时序预测的结果不佳。在实际场景中,邻居对象c对目标对象a的影响时刻及影响程度与邻居对象c对目标对象b的影响时刻及影响程度是不同的。以信贷领域为例,邻居对象c可能是在小额消费上会频繁向目标对象a借钱,在大额消费上会低频向目标对象b借钱。
32.有鉴于此,本公开提出在学习邻居对象c与目标对象a的相关性时,可以先使用其时序数据中的频繁、小数值有规律部分对邻居对象c的节点特征进行表征;在学习邻居对象c与目标对象b的相关性时,可以先使用其时序数据中的异常、大数值部分对邻居对象c的节点特征进行表征。可以理解,此场景应用只是个示例,本公开对其应用场景不做具体的限定。通过此示例,可以理解本公开是将邻居对象c的节点特征表征为适配于不同的目标对象的不同特征,使得邻居对象c的节点特征被表达的更加精确。以此节点特征再通过其后续的
传播对目标对象的序列数据进行预测时,其预测结果也会更加精准。
33.结合上述论述,本公开实施例提供一种预测方法。该方法可基于图数据对目标节点和目标节点的邻居节点进行分析,其首先通过时序编码器从目标节点的时序数据中确定目标节点的节点特征,和,通过空间编码器同时从目标节点的时序数据和邻居节点的时序数据中确定邻居节点的节点特征,以使邻居节点的节点特征为邻居节点的时序数据中的与目标节点的时序数据对应相关的特征,最后通过由目标节点的节点特征和邻居节点的节点特征得到的融合后的特征确定目标节点的时序数据的预测结果。与上述相关技术相比,能够有效地提高预测结果的精确度。
34.下面结合附图2,对本公开实施例提供的预测方法进行详细描述。
35.在步骤s210,获取图数据。
36.图数据为前文所述的图(graph)中的数据。如果已知多个(例如n个)待观测对象在历史[1-t]时间段内的信息,以及该多个待观测对象之间的影响关系,就可以构造图并获取图数据。每个待观测对象对应图上的每个节点,如果两个待观测对象之间具有影响关系,则用边连接这两个待观测对象。那么由该n个待观测对象组成的图数据可以记作g=(v,e)。其中,v={v1,v2,

,vn}表示图中的n个节点,e={vi,vj}表示节点i和节点j之间的边。
[0037]
图中可包含多个节点,例如,节点可以是目标节点,也可以是与目标节点之间直接或间接通过连接边连接的其他节点(可称为目标节点的邻居节点,简称邻居节点),或者还可以是与目标节点之间没有连接边的其他节点(简称非邻居节点)。目标节点可代表目标对象,邻居节点可代表与目标对象具有交互关系(或称为影响关系)的邻居对象。每个节点可以包括该节点所对应的对象的多个内容。例如,该对象的时序数据或者属性信息。
[0038]
因此,本公开实施例中的图数据可以包括目标节点的时序数据以及邻居节点的时序数据。节点的时序数据可以记作:,i=1,2,

,n。本公开实施例所述的时序数据可以是节点所对应的对象的任意时间序列,以信贷领域为例,时序数据可以是节点所代表的对象的消费信息的时间序列,或者还款信息的时间序列,或者转账的时间序列。可以理解,此处的时序数据仅用以示例,时序数据也可以是其他领域内的时间序列,可根据需要自行调整。
[0039]
本公开对图数据中的数据内容不做具体的限定,在一些实现方式中,图数据还可以包括从节点的非时序信息或协变量信息中提取的特征。例如,目标节点的非时序特征和协变量特征以及邻居节点的非时序特征和协变量特征。非时序特征可以理解为从节点所对应的对象的属性信息(即非时序信息)中提取的特征,例如,对象性别、年龄、职业或者地址信息等基本信息。图数据中的节点的非时序特征可以记作:fi,i=1,2,

,n。协变量特征可以理解为从协变量信息中提取的特征,协变量信息是一种从历史时刻起至未来要预测的时段(可记作[1,t t])内都是已知的信息,且协变量信息与节点的时序数据相关。以信贷领域为例,协变量信息可以是每个月的还款日期。节点的协变量特征可以记作:,i=1,2,

,n。
[0040]
在另一些实现方式中,图数据还可以包括用于连接节点的连接边的边特征,每个边特征记作:e
ij
,其中,i=1,2,

,n, j=1,2,

,n,且i≠j。
[0041]
在步骤s220,将目标节点的时序数据输入时序编码器,得到目标节点的节点特征。
[0042]
时序编码器可对输入的目标节点的时序数据进行特征提取,以输出目标节点的节点特征。该目标节点的节点特征可以理解为包含了目标节点的时序信息的特征表示,或者根据目标节点的时序数据而获得的目标节点的嵌入向量(embedding)。也就是说目标节点的节点特征是可以表征目标节点的时序信息的抽象特征。
[0043]
本公开实施例中的目标节点的节点特征不仅仅限定于根据目标节点的时序数据而得到的特征表示。在一些实施方式中,时序编码器还可以从目标节点的非时序特征、目标节点的协变量特征及目标节点的时序数据中融合提取到目标节点的节点特征。例如,可以使用时序编码器将目标节点的非时序特征、目标节点的协变量特征以及目标节点的时序数据进行拼接,再通过该拼接特征得到目标节点的节点特征。
[0044]
本公开实施例对时序编码器获取目标节点的节点特征的方法不作具体的限定。作为一种实现方式,时序编码器可以基于卷积的方法获取目标节点的节点特征,常用的是考虑时序穿越的因果卷积。也可以是基于长短期记忆(lstm)神经网络方法,又或者还可以是基于门控循环(gru)神经网络等等可用于序列预测的方法。
[0045]
作为另一种实现方式,如图3所示,时序编码器(对应于时序编码模块32)可以基于注意力机制计算目标节点的时序数据中的各个时间点之间的相关性以获取目标节点的节点特征。例如时序编码器为基于注意力机制的transformer神经网络模型,通过将目标节点的时序数据输入时序编码器之后,其中i为目标节点的标号,时序编码器首先确定出目标节点的查询向量qi=fq(zi)、目标节点的键向量ki=fk(zi)和目标节点的值向量vi=fv(zi);然后时序编码器会基于注意力机制根据目标节点的查询向量qi=fq(zi)、目标节点的键向量ki=fk(zi)和目标节点的值向量vi=fv(zi)确定所述目标节点的节点特征。相较于其他方法获得的节点特征,通过该方法而获得的目标节点的节点特征可以保留更长时序下的信息,从而具有更丰富的特征表示。
[0046]
在步骤s230,将目标节点的时序数据和邻居节点的时序数据输入空间编码器,得到邻居节点的节点特征。
[0047]
空间编码器可对输入的目标节点的时序数据和邻居节点的时序数据进行特征提取,以输出邻居节点的节点特征。邻居节点的节点特征为邻居节点的时序数据中的与目标节点的时序数据具有相关性的特征。该邻居节点的节点特征也可以理解为根据目标节点和邻居节点的时序数据而获得的邻居节点的对应于目标节点的嵌入向量(embedding)。即,如果该邻居节点对应于多个目标节点,则分别根据该邻居节点的时序数据和多个目标节点中的每个目标节点的时序数据,可以分别得到该邻居节点的多个嵌入向量,该邻居节点的多个嵌入向量中的每个嵌入向量与多个目标节点中的每个目标节点一一对应,从而使邻居节点的节点特征是可以表征邻居节点相对于目标节点具有时序信息相关性的抽象特征。
[0048]
本公开实施例对邻居节点不做具体的限定,邻居节点可以是目标节点的任意阶邻居节点内的邻居节点。例如。邻居节点可以是一阶邻居节点和二阶邻居节点,或者还可以是一阶邻居节点、二阶邻居节点和三阶邻居节点。优选地,邻居节点可以是与目标节点直接连接的一阶邻居节点。
[0049]
本公开实施例中的邻居节点的节点特征不仅仅限定于根据目标节点的时序数据
和邻居节点的时序数据而得到的特征表示。在一些实施方式中,空间编码器还可以从邻居节点的非时序特征、邻居节点的协变量特征、邻居节点的时序数据及目标节点的时序数据中的融合信息中提取到目标节点的节点特征。例如,可以使用空间编码器将邻居节点的非时序特征、邻居节点的协变量特征以及邻居节点的时序数据进行拼接,通过该拼接特征与目标节点的时序数据进行相关性计算,从而得到邻居节点的节点特征。
[0050]
本公开对空间编码器获取邻居节点的节点特征的方法不作具体的限定。作为一种实现方式,如图3所示,空间编码器(对应于空间编码模块33)可以基于注意力机制计算邻居节点的时序数据和目标节点的时序数据中的各个时间点之间的相关性以获取邻居节点的节点特征。例如空间编码器为基于注意力机制的transformer神经网络模型。通过将目标节点和邻居节点的时序数据和输入空间编码器之后(其中i为目标节点的标号,j为邻居节点的标号),空间编码器首先会确定出目标节点的查询向量qi=fq(zi)、邻居节点的键向量kj=fk(zj)和邻居节点的值向量vj=fv(zj);然后空间编码器会基于注意力机制根据目标节点的查询向量qi=fq(zi)、邻居节点的键向量kj=fk(zj)和邻居节点的值向量vj=fv(zj)确定邻居节点的节点特征。通过该方法而获得的邻居节点的节点特征具有对应于其目标节点的专有特征表示,从而可使邻居节点的节点特征保留更丰富的与目标节点具有相关性的信息,从而使得邻居节点的表征方式更加精细,有利于后续的时序数据的预测。
[0051]
在步骤s240,将目标节点的节点特征和邻居节点的节点特征融合,得到融合后的特征。
[0052]
融合后的特征可以理解为是目标节点的关于未来的预测信息的表征。将目标节点的节点特征和邻居节点的节点特征融合的过程可以是对上述时序编码器和空间编码器的输出进行混合解码的过程,因此,该步骤可通过如图3所示的混合解码模块34而实现。
[0053]
本公开对将目标节点的节点特征和邻居节点的节点特征进行融合的方式不做具体的限定,只要融合后的特征可以从目标节点的节点特征和邻居节点的节点特征中学习到目标节点的关于未来的预测信息即可。
[0054]
作为一种实现方式,可以将目标节点的节点特征和邻居节点的节点特征输入神经网络的一个全连接(dense)层,以通过该全连接层将目标节点的节点特征和邻居节点的节点特征进行融合。使用此方式进行融合的神经网络结构最为简单,且可以满足后续的时序预测。
[0055]
作为另一种实现方式,还可以将目标节点的节点特征和邻居节点的节点特征输入神经网络的多个卷积层、池化层以及全连接层,以通过该多个神经网络层将目标节点的节点特征和邻居节点的节点特征进行多层计算而融合。使用此方式获得的融合后的特征可使融合后的特征具有较低的维数,以便于减少后续的计算量。
[0056]
作为又一种实现方式,将邻居节点的节点特征与目标节点的节点特征进行融合之前,需要根据邻居节点的节点特征和邻居节点至目标节点的传播权重,确定待融合特征。然后将待融合特征和目标节点的节点特征进行融合而得到融合后的特征。待融合特征是目标节点的待融合特征,也可以理解为其是从邻居节点的节点特征传播至目标节点的部分特征表示。邻居节点至目标节点的传播权重可以是图神经网络中的邻居节点所在的神经网络层
至目标节点所在的神经网络层之间的传播权重,该传播权重可以是图神经网络自学习的权重矩阵。
[0057]
如前所述,混合解码是为了获取目标节点的关于未来的预测信息的表征。为了使该表征具有更丰富的信息,在一些实施例中,混合解码不仅仅限于将目标节点的节点特征和目标节点的待融合特征进行融合,其可以将待融合特征、目标节点的节点特征以及邻居节点和目标节点之间的连接边的边特征融合,并以此得到融合后的特征。本公开实施例对融合的连接边不做具体的限定,例如,邻居节点采用的是一阶邻居节点,则融合的连接边为一阶邻居节点与目标节点之间的连接边;或者邻居节点采用的是一阶邻居节点和二阶邻居节点,则融合的连接边为一阶邻居节点与目标节点之间的连接边以及二阶邻居节点与一阶邻居节点之间的连接边。具体所要融合的连接边可根据邻居节点的选择而进行相应的调整。
[0058]
在步骤s250,根据融合后的特征,确定目标节点的时序数据的预测结果。
[0059]
本公开对时序数据的预测结果不做具体的限定,可根据预测的目的自行调整。例如,在信贷领域,预测结果为目标用户的未来时段内的资金需求;在供应链领域,预测结果为目标客户在未来时段内的货品需求;在设备监测领域,预测结果为目标设备在未来时段内的设备状态。当然,可以理解的是,预测结果并不限于此,只要是预测结果是可以根据时序数据而预测的类型都可以在本公开的保护范围之内。
[0060]
本公开实施例对根据融合后的特征确定目标节点的时序数据的预测结果的方式不做具体的限定。例如,可以直接将前述的融合后的特征输入简单的线性变化层或者其他复杂的神经网络层以得到预测结果。又例如,可以将前述的融合后的特征与目标对象的非时序特征及目标对象的协变量特征进行拼接,并将此拼接特征输入简单的线性变化层或者其他复杂的神经网络层,以得到预测结果。如图3所示,简单的线性变化层或者其他复杂的神经网络层可以是图3中的结果预测模块35中的计算层。
[0061]
本公开实施例可基于图数据对目标节点和目标节点的邻居节点进行分析,该方法可通过时序编码器从目标节点的时序数据中确定目标节点的节点特征,并通过空间编码器同时从目标节点的时序数据和邻居节点的时序数据中确定邻居节点的节点特征,以使邻居节点的节点特征为邻居节点的时序数据中的与目标节点的时序数据对应相关的特征。采用这种方式可使邻居节点的节点特征被表征为对应于目标节点的专有特征表示,从而在后续通过由目标节点的节点特征和邻居节点的节点特征得到的融合后的特征确定目标节点的时序数据的预测结果时,其预测结果更加精确。
[0062]
如前所述,时序编码器和空间编码器可以采用多种方式获取目标节点的节点特征和邻居节点的节点特征。为了便于理解,下面结合图3,以时序编码器和空间编码器均采用基于注意力机制的transformer神经网络模型的方式为例,给出图2方法的实现方式的一个示例。
[0063]
参见图3,该时序数据的预测模型30可以包括图数据构建模块31,时序编码模块32、空间编码模块33、混合解码模块34以及结果预测模块35。
[0064]
图数据构建模块31用于接收多个观测对象的数据并基于该数据构建图数据。多个观测对象的数据可包括观测对象的时序数据、非时序数据以及表示每两个观测对象之间的交互的关系的数据。构建图结构时,图数据构建模块31会将多个观测对象分别表示为多个
节点,其中具有直接交互关系的两个观测对象之间构造连接边。图结构中的图数据与前文所述一致,因此,可参考前文,此处不再赘述。
[0065]
时序编码器模块32和空间编码模块33对应于前文所述的时序编辑器和空间编辑器。时序编码模块32和空间编码模块33是基于注意力机制的transformer神经网络模型(简称transformer模型)计算节点特征的模块,分别用于获取目标节点的节点特征和邻居节点的节点特征。如本领域技术人员所了解,transformer模型多用于执行自然语言处理nlp任务。transformer模型的核心特点在于其采用的独特的注意力机制。在处理自然语言,例如一个句子时,transformer模型利用该注意力机制,为句子中各个词向量赋予不同的注意力系数,从而更全面地考虑句子中上下文对各个词的影响。借鉴transformer模型对句子对应的词序列的处理方式,在本公开实施例中,利用transformer模型处理图结构中的每个节点的节点特征。
[0066]
图4示出了在一个实施例中的基于注意力机制的transformer神经网络模型的结构示意图。如图4所示,该transformer模型400包括嵌入层410和至少一个注意力层420。图4中仅以一个注意力层为例。嵌入层410可以按照历史时段[1-t]中的每个时间点(即时刻1,时刻2等)的数据,获取节点的对应于每个时间点的第一嵌入向量,因此通过嵌入层410可获得t个时间点的第一嵌入向量。在每个注意力层420,注意力层420可以从上一层获取的t个输入向量,采用注意力机制,基于向量间的关联度对各个向量进行变换,得到t个输出向量。可以理解,当注意力层420是与嵌入层直接相连的层时,如图4所示,其获取的输入向量即第一嵌入向量。当该注意力层是注意力层420的后续注意力层时,其获取的输入向量为前一个注意力层的输出向量。
[0067]
图5为根据一个实施例的注意力层的操作示意图,该示意图示出注意力层如何将输入向量变换为输出向量。
[0068]
如图5所示,分别采用第一变换矩阵q,第二变换矩阵k和第三变换矩阵v对上述t个输入向量中的各个输入向量进行变换,得到各个输入向量对应的查询向量(q向量),键向量(k向量)和值向量(v向量)。例如,该t个输入向量是上述t个第一嵌入向量。操作上,可以分别用第一变换矩阵q,第二变换矩阵k和第三变换矩阵v,对节点(例如目标节点或者邻居节点)的t个输入向量构成的输入矩阵进行线性变换,分别得到输入矩阵的q矩阵,k矩阵和v矩阵,再分别对矩阵进行拆分,即可得到节点的各个输入向量对应的q向量,k向量和v向量。
[0069]
对于t个输入向量中任意的第i输入向量,基于该第i输入向量对应的查询向量(q向量)和各个其他输入向量的键向量(k向量)的点乘操作,确定该第i输入向量与各个输入向量的各个关联度。
[0070]
尽管也可以直接将查询向量与键向量的点乘结果确定为关联度,但是更经典地,先将点乘结果除以一常数,然后进行softmax运算,将运算结果作为输入向量与各个其他输入向量的关联度。然后将该第i输入向量的与各个输入向量的各个关联度作为权重因子,对各个输入向量对应的值向量进行加权,则得到该各个输入向量关于第i个输入向量的注意力值,即:。
[0071]
其中,m为masking矩阵,主要为了避免时序数据中的穿越问题。通过对上述注意力
值进行简单的线性变换,或者进一步地通过多个神经网络层对其进行提取,可以最终获取输出向量(即节点上的节点特征)。该节点特征可以表示为:。
[0072]
可以理解,时序编码模块32和空间编码模块33的结构可以是相同或者类似的,其计算方法与上述节点特征的计算方法一致。仅时序编码模块32和空间编码模块33所计算的底层数据不同。
[0073]
时序编码模块32是通过目标节点的时序数据计算目标节点的节点特征,目标节点的节点特征可以表示为:。
[0074]
其中,qi=fq(zi),ki=fk(zi),vi=fv(zi),i为目标节点的标号。
[0075]
空间编码模块是通过目标节点的时序数据和邻居节点的时序数据一起计算邻居节点的节点特征,邻居节点的节点特征可以表示为:。
[0076]
其中,qi=fq(zi),kj=fk(zj),vj=fv(zj),i为目标节点的标号,j为邻居节点的标号。
[0077]
在节点时序数据较多或者图结构较为复杂的情况下,计算复杂度会较高,在一些实施例中,可以将基于注意力机制的transformer神经网络模型与数据稀疏化方法结合,以有选择性的对邻居节点的节点特征或目标节点的节点特征进行计算。稀疏化的方法有很多,作为一种实现方式,transformer的嵌入层可以将输入的节点的历史时段[1-t]内的时序数据按照长度固定的时间段进行划分,并获得划分后的多个时间段内的时序数据所对应第一嵌入向量,通过减少第一嵌入向量的数量来降低计算复杂度。此过程可以理解为在transformer的嵌入层选取节点的时序数据中的稀疏数据。作为另一种实现方式,可在时序编码模块32和空间编码模块33中使用log_attention,低秩矩阵等方法来对目标节点和邻居节点的节点特征以及邻居数进行稀疏化,以降低计算复杂度。
[0078]
继续参见图3,混合解码模块34可用于聚合从上述时序编码模块32和空间编码模块33输出的目标节点的节点特征和邻居节点的节点特征,以及目标节点和邻居节点的连接边的边特征,以得到目标节点关于未来的预测信息(即融合后的特征)。混合解码模块34可以是一个简单的全连接层或者其他神经网络结构。
[0079]
融合后的特征可以表示为:,其中i为目标节点的标号,j为邻居节点的标号。
[0080]
结果预测模块35用于根据混合编码模块34的输出,结合未来已知的信息(即协变量特征)以及目标节点自身的非时序特征,来预测未来t个时间步的值(即时序数据的预测结果)。结果预测模块35可以是一个简单的线性变换层或者其他神经网络结构。时序数据的预测结果可以表示为:。
[0081]
混合解码模块34和结果预测模块35可以使用不同的神经网络结构。该时序数据的预测模型30可以理解为是基于transformer的图神经网络,因此,该时序数据的预测模型是
可以提前训练好的。对于其训练方式,此处不再赘述。
[0082]
上文结合图1至图5,详细描述了本公开的方法实施例,下面结合图6至图7,详细描述本公开的装置实施例。应理解,方法实施例的描述与装置实施例的描述相互对应,因此,未详细描述的部分可以参见前面方法实施例。
[0083]
图6是本公开一实施例提供的预测装置的示意性结构图。该装置600可以包括获取模块610、第一输入模块620、第二输入模块630、融合模块640以及确定模块650。下面对这些模块进行详细介绍。
[0084]
获取模块610用于获取图数据,图数据包括目标节点的时序数据以及目标节点的邻居节点的时序数据。
[0085]
第一输入模块620用于将目标节点的时序数据输入时序编码器,得到目标节点的节点特征。
[0086]
第二输入模块630用于将目标节点的时序数据和邻居节点的时序数据输入空间编码器,得到邻居节点的节点特征,邻居节点的节点特征为邻居节点的时序数据中的与目标节点的时序数据相关的特征。
[0087]
融合模块640用于将目标节点的节点特征和邻居节点的节点特征融合,得到融合后的特征。
[0088]
确定模块650用于根据融合后的特征,确定目标节点的时序数据的预测结果。
[0089]
可选地,第二输入模块630用于:将目标节点的时序数据和邻居节点的时序数据输入空间编码器,以确定目标节点的查询向量、邻居节点的键向量和邻居节点的值向量;根据目标节点的查询向量、邻居节点的键向量和邻居节点的值向量确定邻居节点的节点特征。
[0090]
可选地,第一输入模块620用于:将目标节点的时序数据输入时序编码器,以确定目标节点的查询向量、目标节点的键向量和目标节点的值向量;根据目标节点的查询向量、目标节点的键向量和目标节点的值向量确定目标节点的节点特征。
[0091]
可选地,融合模块640用于:根据邻居节点的节点特征和邻居节点至目标节点的传播权重,确定待融合特征;将待融合特征和目标节点的节点特征融合,得到融合后的特征。
[0092]
可选地,图数据还包括目标节点和邻居节点之间的连接边的边特征,融合模块640还用于将待融合特征、目标节点的节点特征和边特征融合,得到融合后的特征。
[0093]
可选地,时序编码器和空间编码器均为基于注意力机制的transformer神经网络模型。
[0094]
可选地,基于注意力机制的transformer神经网络模型结合数据稀疏化的方法确定邻居节点的节点特征或者目标节点的节点特征。
[0095]
可选地,图数据还包括目标节点的非时序特征和目标节点的协变量特征以及邻居节点的非时序特征和邻居节点的协变量特征,第一输入模块620用于将目标节点的非时序特征、目标节点的协变量特征及目标节点的时序数据输入时序编码器,得到目标节点的节点特征,第二输入模块630用于将邻居节点的非时序特征、邻居节点的协变量特征、邻居节点的时序数据及目标节点的时序数据输入空间编码器,得到邻居节点的节点特征。
[0096]
图7是本公开又一实施例提供的预测装置的结构示意图。该装置700例如可以是具有计算功能的计算设备。比如,装置700可以是移动终端或者服务器。装置700可以包括存储器710和处理器720。存储器710可用于存储可执行代码。处理器720可用于执行所述存储器
710中存储的可执行代码,以实现前文描述的各个方法中的步骤。在一些实施例中,该装置700还可以包括网络接口730,处理器720与外部设备的数据交换可以通过该网络接口730实现。
[0097]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本公开实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,dvd))、或者半导体介质(例如固态硬盘(solid state disk,ssd))等。
[0098]
本领域普通技术人员可以意识到,结合本公开实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本公开的范围。
[0099]
在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0100]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0101]
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0102]
以上所述,仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献