本说明书一个或多个实施例涉及机器学习领域,尤其涉及利用机器学习处理交互事件的方法和装置。
背景技术:
在许多场景下,需要对用户交互事件进行分析和处理。交互事件是互联网事件的基本组成元素之一,例如,用户浏览页面时的点击行为,可以视为用户与页面内容区块之间的交互事件,电商中的购买行为可以视为用户与商品之间的交互事件,账户间转账行为则是用户与用户之间的交互事件。用户的一系列交互事件中蕴含了用户的细粒度习惯偏好等特点,以及交互对象的特点,是机器学习模型的重要特征来源。因此,在许多场景下,希望根据交互历史对交互参与方,以及交互事件进行特征表达和建模。
然而,交互事件涉及交互双方,并且各个参与方本身的状态可以是动态变化的,因此,综合考虑交互参与方的多方面特点对其进行准确的特征表达非常困难。由此,希望能有改进的方案,更为有效地对交互事件进行分析处理。
技术实现要素:
本说明书一个或多个实施例描述了处理交互事件的方法和装置,其中将交互事件序列用动态交互图表示,对于当前交互事件,从动态交互图中确定出该事件的参与节点和关联节点,并基于动态交互图中反映的事件节点之间的指向和关联关系,将各个参与节点和关联节点处理为隐含特征,利用这些隐含特征分析当前交互事件。
根据第一方面,提供了一种处理交互事件的方法,所述方法包括:
获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件,每个交互事件包括,发生交互行为的两个对象,事件特征和交互时间;所述多个交互事件中至少部分交互事件具有事件类别标签;所述动态交互图包括代表各个事件中的各个对象的多个节点,其中,任意节点i通过连接边指向两个关联节点,所述两个关联节点是该节点i所代表的对象参与的上一交互事件对应的两个节点;
在所述动态交互图中,确定待分析的当前交互事件对应的第一节点和第二节点,以及相关的四个关联节点,所述四个关联节点包括所述第一节点指向的两个关联节点,以及所述第二节点指向的两个关联节点;
分别以所述第一节点、第二节点、四个关联节点为当前根节点,在所述动态交互图中确定出各自对应的当前子图,从而分别得到第一子图、第二子图以及四个关联子图,其中所述当前子图包括从当前根节点出发,经由连接边到达的预定范围内的节点;
将所述第一子图和第二子图分别输入第一神经网络模型,分别得到对应的第一隐含向量和第二隐含向量;其中,所述第一神经网络根据输入子图中各个节点的第一输入特征,以及节点之间的连接边的指向关系,确定输入子图对应的隐含向量,其中所述第一输入特征包括节点所在事件的事件特征;
将所述四个关联子图分别输入第二神经网络模型,分别得到四个关联隐含向量;其中,所述第二神经网络根据输入子图中各个节点的第二输入特征,以及节点之间的连接边的指向关系,确定输入子图对应的隐含向量,其中所述第二输入特征包括节点所在事件的事件类别标签;
根据所述第一隐含向量、第二隐含向量以及四个关联隐含向量,预测所述当前交互事件的事件类别。
根据一种实施方式,获取根据动态交互序列构建的动态交互图包括:
获取基于已有交互序列构建的已有动态交互图;
获取新增交互事件;
将该新增交互事件涉及的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中;
对于每个新增节点,若其存在两个关联节点,添加从该新增节点指向其两个关联节点的连接边。
根据一个实施例,当前子图中经由连接边到达的预定范围内的节点包括:经由预设数目k之内的连接边到达的节点;和/或,经由连接边可达且交互时间在预设时间范围内的节点。
根据不同实施例,所述第一输入特征还可以包括,节点的属性特征,和/或,该节点所在交互事件的第一交互时间与其两个关联节点所在交互事件的第二交互时间之间的时间差。
在一个具体实施例中,上述交互事件为交易事件,所述事件特征包括以下中的至少一项:交易类型,交易金额,交易渠道;所述事件类别标签为,交易风险级别标签。
在一种实施方式中,所述第一神经网络模型是基于lstm的神经网络,其中包括至少一个lstm层,所述lstm层如下处理第一子图:
将所述第一子图中各个节点依次作为目标节点,根据目标节点的第一输入特征,该目标节点所指向的两个关联节点各自的中间向量和隐含向量,确定该目标节点的隐含向量和中间向量,直到得到所述第一节点的隐含向量。
进一步地,在一个实施例中,所述目标节点所指向的两个关联节点为第一关联节点和第二关联节点;第一神经网络模型如下确定目标节点的隐含向量和中间向量:
将所述目标节点的所述第一输入特征、第一关联节点的隐含向量和第二关联节点的隐含向量,分别输入算法相同、参数不同的第一变换函数和第二变换函数,分别得到第一变换向量和第二变换向量;
将第一变换向量和第二变换向量分别与第一关联节点的中间向量和第二关联节点的中间向量进行组合操作,基于操作结果得到组合向量;
将所述目标节点的所述第一输入特征、第一关联节点的隐含向量和第二关联节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述目标节点的中间向量;
基于所述目标节点的中间向量和第四变换向量,确定所述目标节点的隐含向量。
在一个实施例中,第一神经网络模型包括多个lstm层,其中,上一lstm层确定出的所述目标节点的隐含向量,输入到下一lstm层作为该目标节点的第一输入特征。
进一步地,在一个实施例中,第一神经网络模型将所述多个lstm层各自输出的所述第一节点的隐含向量进行综合,得到所述第一隐含向量。
或者,在另一实施例中,第一神经网络模型将所述多个lstm层中最后一个lstm层输出的所述第一节点的隐含向量,作为所述第一隐含向量。
根据一种实施方式,第一神经网络模型和第二神经网络模型为结构和算法相同、参数不同的神经网络模型。
在一个实施例中,如下确定当前交互事件的事件类别:
利用全连接神经网络,将所述第一隐含向量、第二隐含向量以及四个关联隐含向量进行融合,得到所述当前交互事件的事件表示向量;
利用分类器,根据所述事件表示向量,确定所述当前交互事件的事件类别。
根据一种实施方式,前述方法还包括:
获取所述当前交互事件的当前类别标签;
至少根据确定的事件类别,和所述当前类别标签,确定预测损失;
根据所述预测损失,联合训练所述第一神经网络模型,第二神经网络模型,所述全连接神经网络和所述分类器。
根据另一种实施方式,前述方法还包括:
获取所述当前交互事件的当前类别标签;
至少根据确定的事件类别,和所述当前类别标签,确定预测损失;
根据所述预测损失,训练所述第一神经网络模型和第二神经网络模型。
根据第二方面,提供一种处理交互事件的装置,所述装置包括:
交互图获取单元,配置为获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件,每个交互事件包括,发生交互行为的两个对象,事件特征和交互时间;所述多个交互事件中至少部分交互事件具有事件类别标签;所述动态交互图包括代表各个事件中的各个对象的多个节点,其中,任意节点i通过连接边指向两个关联节点,所述两个关联节点是该节点i所代表的对象参与的上一交互事件对应的两个节点;
节点确定单元,配置为在所述动态交互图中,确定待分析的当前交互事件对应的第一节点和第二节点,以及相关的四个关联节点,所述四个关联节点包括所述第一节点指向的两个关联节点,以及所述第二节点指向的两个关联节点;
子图确定单元,配置为分别以所述第一节点、第二节点、四个关联节点为当前根节点,在所述动态交互图中确定出各自对应的当前子图,从而分别得到第一子图、第二子图以及四个关联子图,其中所述当前子图包括从当前根节点出发,经由连接边到达的预定范围内的节点;
第一处理单元,配置为将所述第一子图和第二子图分别输入第一神经网络模型,分别得到对应的第一隐含向量和第二隐含向量;其中,所述第一神经网络根据输入子图中各个节点的第一输入特征,以及节点之间的连接边的指向关系,确定输入子图对应的隐含向量,其中所述第一输入特征包括节点所在事件的事件特征;
第二处理单元,配置为将所述四个关联子图分别输入第二神经网络模型,分别得到四个关联隐含向量;其中,所述第二神经网络根据输入子图中各个节点的第二输入特征,以及节点之间的连接边的指向关系,确定输入子图对应的隐含向量,其中所述第二输入特征包括节点所在事件的事件类别标签;
预测单元,配置为根据所述第一隐含向量、第二隐含向量以及四个关联隐含向量,预测所述当前交互事件的事件类别。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
根据本说明书实施例提供的方法和装置,基于动态交互序列构建动态交互图,该动态交互图反映了各个交互事件的时序关系,以及交互对象之间通过各个交互事件传递的相互影响。对于待分析的当前交互事件,从该动态交互图中得到该当前交互事件的参与节点,以及参与节点的关联节点,并得到以各个参与节点、关联节点为根节点的各个子图部分,将这些子图部分分别输入神经网络模型,得到各个参与节点、关联节点的隐含向量表达。如此得到的隐含向量中引入了历史交互事件的事件特征或类别标签,以及这些历史交互事件对节点的影响,从而可以综合全面地表达节点的深层特征。基于与当前交互事件相关的参与节点和关联节点各自的隐含向量,可以更全面更准确地表达并分析当前交互事件。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1a示出在一个例子中的交互关系二部图;
图1b示出在另一例子中的交互关系网络图;
图2示出根据一个实施例的实施场景示意图;
图3示出根据一个实施例的处理交互事件的方法流程图;
图4示出根据一个实施例的动态交互序列和由此构建的动态交互图;
图5示出与当前交互事件有关的节点关系图;
图6示出在一个实施例中子图的示例;
图7示出第一神经网络模型中lstm层的工作示意图;
图8示出根据一个实施例第一神经网络模型中lstm层的结构;
图9示出根据一个实施例第二神经网络模型中lstm层的结构;
图10示出在一个实施例中综合模型的结构示意图;
图11示出根据一个实施例的处理交互事件的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,希望能够基于交互历史,对交互事件的参与方,以及交互事件本身进行特征表达和建模。
在一种方案中,基于历史交互事件构建静态的交互关系网络图,从而基于该交互关系网络图,分析各个交互对象。具体地,可以以各个历史事件的参与者作为节点,在存在交互关系的节点之间建立连接边,从而形成上述交互网络图。
图1a和图1b分别示出在具体例子中的交互关系网络图。更具体而言,图1a示出一个二部图,其中包含用户节点(u1-u4)和商品节点(v1-v3),如果某个用户购买过某件商品,则在该用户和该商品之间构建一条连接边。图1b示出一个用户转账关系图,其中每个节点代表一个用户,发生过转账记录的两个用户之间存在连接边。
然而,可以看到,图1a和图1b尽管示出了对象之间的交互关系,但是没有包含这些交互事件的时序信息。简单地基于这样的交互关系网络图进行图嵌入,获得的特征向量也没有表达出交互事件的时间信息对节点的影响。并且,这样的静态图可扩展性不够强,对于新增交互事件和新增节点的情况,难以灵活进行处理。
在另一方案中,对于待分析的交互事件中的各个交互对象,构建该对象的行为序列,基于该行为序列,提取该对象的特征表达,进而构造事件的特征表达。然而,这样的行为序列仅表征了待分析对象本身的行为,而交互事件是多方参与的事件,参与者之间会通过交互事件间接传递影响。因此,这样的方式没有表达出交互事件中的参与对象之间的影响。
综合考虑以上因素,根据本说明书的一个或多个实施例,将动态变化的交互事件序列构建成动态交互图,其中各个交互事件中涉及的各个交互对象对应于该动态交互图中的各个节点。对于待分析的当前交互事件,从该动态交互图中得到该当前交互事件的参与节点,以及参与节点的关联节点,并得到与各个参与节点、关联节点相关的各个子图部分,将这些子图部分分别输入神经网络模型,得到各个参与节点、关联节点的隐含向量表达,基于这些节点的隐含向量,表达并分析当前交互事件。
图2示出根据一个实施例的实施场景示意图。如图2所示,可以将依次发生的多个交互事件按时间顺序组织成动态交互序列<e1,e2,…,en>,其中每个元素ei表示一个交互事件,可以表示为交互特征组的形式ei=(ai,bi,f,ti),其中ai和bi是事件ei的两个交互对象,f是交互特征,或称为事件特征,ti是交互时间。
根据本说明书的实施例,基于该动态交互序列构建动态交互图200。在图200中,将各个交互事件中的各个交互对象ai,bi用节点表示,并在包含同一对象的事件之间建立连接边。动态交互图200的结构将在后续进行更具体的描述。
对于某个待分析的当前交互事件,可以确定出其在动态交互图中的参与节点,以及关联节点,并在该动态交互图中分别以各个参与节点、关联节点为当前根节点得到对应子图。一般地,子图包括从当前根节点出发,经过连接边可以达到的一定范围内的节点。子图反映了,与当前交互对象直接或间接关联的交互事件中的其他对象对当前节点带来的影响。
然后,将参与节点的子图,和关联节点的子图分别输入到两个神经网络模型,即第一神经网络模型和第二神经网络模型。第一神经网络模型基于参与节点的子图中各个节点的事件特征和节点连接关系,得到参与节点对应的隐含向量。第二神经网络模型基于关联节点的子图中各个节点的事件类别标签和节点连接关系,得到关联节点的隐含向量。如此得到的隐含向量,可以抽取出相关联的交互事件的标签信息、时序信息,以及各交互事件中的交互对象之间的影响,从而更准确地表达各个交互对象的深层特征。基于如此得到的参与节点的隐含向量和关联节点的隐含向量,可以对当前交互事件进行表达和分析,确定当前交互事件的事件类别。
下面描述以上构思的具体实现方式。
图3示出根据一个实施例的处理交互事件的方法流程图。可以理解,可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。下面结合具体实施例,对如图3所示的处理交互序列数据的方法中的各个步骤进行描述。
首先,在步骤31,获取根据动态交互序列构建的动态交互图。
如前所述,动态交互序列,例如表示为<e1,e2,…,en>,可以包括按照时间顺序排列的多个交互事件,其中每个交互事件ei可以表示为一个交互特征组ei=(ai,bi,f,ti),其中ai和bi是事件ei的两个交互对象,f是事件特征或交互特征,该特征可以用于描述交互行为发生的背景和上下文信息,交互行为的一些属性特征等,ti是交互时间。
为了对交互事件的性质进行分析,要求上述交互事件的序列中,至少部分交互事件具有事件类别的标签。事件类别的标签可以通过人工打标产生,或者通过对已发生的交互事件的事后分析而产生。如此,部分交互事件的交互特征组可以进一步表示为ei=(ai,bi,f,y,ti),其中y为事件类别标签。
例如,在一个实施例中,交互事件可以是交易事件。在这样的情况下,两个交互对象ai和bi可以是某个用户与某个商品,也可以是两个用户。交易事件的事件特征f可以包括,例如,交易类型(商品购买交易、转账交易等),交易金额,交易渠道等。已经发生的至少部分交易事件还可以具有事件类别标签y,该标签y可以示出交易风险级别,例如,用-1表示欺诈交易,用0表示正常交易,或者用不同数字表示不同的风险系数。
在另一实施例中,交互事件可以是用户对呈现有特定内容的页面区块的点击行为。在这样的情况下,两个交互对象ai和bi分别是某个用户,和某个页面区块。交互事件的事件特征f可以包括,用户进行点击所使用的终端的类型,浏览器类型,app版本,页面区块在页面中的位置编号,等等。交互事件的事件类别标签可以示出,用户对页面区块的点击行为是否将区块中的内容进行了转化,例如是否购买了区块中显示的商品,是否领取了区块中显示的优惠券,等等。
在其他业务场景中,交互事件还可以是其他在两个对象之间发生的交互行为,例如用户之间的通信行为等。根据业务场景的不同,交互事件可以具有不同的事件特征,和事件类别标签。
对于以上所述的动态交互序列,可以构建动态交互图。具体的,将动态交互序列中各个交互事件中的各个对象分别作为动态交互图的节点。如此,一个节点可以对应到一个交互事件中的一个对象,但是同一物理对象可能对应到多个节点。例如,如果用户u1在t1时刻购买了商品m1,在t2时刻购买了商品m2,那么存在两个交互事件的特征组(u1,m1,t1)和(u1,m2,t2),那么则根据这两个交互事件分别为用户u1创建节点u1(t1),u1(t2)。因此可以认为,动态交互图中的节点对应于一个交互对象在一次交互事件中的状态。
对于动态交互图中的每个节点,按照以下方式构建连接边:对于任意节点i,假定其对应于交互事件i(交互时间为t),那么在动态交互序列中,从交互事件i向前回溯,也就是向早于交互时间t的方向回溯,将第一个同样包含节点i代表的对象的交互事件j(交互时间为t-,t-早于t)确定为该对象参与的上一交互事件。于是,建立从节点i指向该上一交互事件j中的两个节点的连接边。于是,这两个被指向的节点也称为节点i的关联节点。
下面结合具体例子进行描述。图4示出根据一个实施例的动态交互序列和由此构建的动态交互图。具体的,图4左侧示出按照时间顺序组织的动态交互序列,其中示例性示出分别在t1,t2,…,t6时刻发生的交互事件e1,e2,…,e6,每个交互事件包含交互涉及的两个交互对象以及交互时间(为了图示的清楚,省去了事件特征)。图4右侧示出根据左侧的动态交互序列构建的动态交互图,其中,将各个交互事件中的两个交互对象分别作为节点。下面以节点u(t6)为例,描述连接边的构建。
如图所示,该节点u(t6)代表交互事件e6中的一个交互对象david。于是,从交互事件e6出发向前回溯,找到的第一个同样包含交互对象david的交互事件为e4,也就是说,e4是david参与的上一交互事件,相应的,e4的两个交互对象对应的两个节点u(t4)和v(t4),为节点u(t6)的两个关联节点。于是,建立从节点u(t6)指向e4对应的两个节点u(t4)和v(t4)的连接边。类似的,从u(t4)(对应于交互事件e4)继续向前回溯,可以继续找到对象u也就是david参与的上一交互事件e2,于是建立从u(t4)指向e2对应的两个节点的连接边;从v(t4)向前回溯,可以找到对象v参与的上一交互事件e3,于是,建立从v(t4)指向e3对应的两个节点的连接边。如此,在节点之间构建连接边,从而形成图4的动态交互图。
以上描述了基于动态交互序列构建动态交互图的方式和过程。对于图3所示的处理交互事件的方法而言,构建动态交互图的过程可以预先进行也可以现场进行。相应地,在一个实施例中,在步骤31,根据动态交互序列现场构建动态交互图。构建方式如以上所述。在另一实施例中,可以预先基于动态交互序列构建形成动态交互图。在步骤31,读取或接收已形成的动态交互图。
可以理解,按照以上方式构建的动态交互图具有很强的可扩展性,可以非常容易地根据新增的交互事件进行动态更新。相应地,步骤31还可以包括更新动态交互图的过程。
在一个实施例中,每当检测到新的交互事件,就基于该新的交互事件更新动态交互图。具体的,在该实施方式下,可以获取基于已有交互序列构建的已有动态交互图,并获取新增交互事件。然后,将该新增交互事件涉及的两个对象,称为第一对象和第二对象,作为两个新增节点,添加到已有动态交互图中。并且,对于每个新增节点,确定其是否存在关联节点,关联节点的定义如前所述。如果存在关联节点,则添加从该新增节点指向其两个关联节点的连接边,如此形成更新的动态交互图。
在另一实施例中,可以每过预定时间间隔,例如每隔一个小时,检测新增的交互事件,将该时间间隔内新增的多个交互事件形成新增交互序列。或者,每当检测到预定数目(例如,100个)的新增交互事件,将该预定数目的新增交互事件形成新增交互序列。然后基于该新增交互序列更新动态交互图。
具体的,在该实施方式下,可以获取基于已有交互序列构建的已有动态交互图,并获取如上所述的新增交互序列,其中包括多个新增交互事件。然后,对于每个新增交互事件,将其中的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中。并且,对于每个新增节点,确定其是否存在关联节点,如果存在,添加从该新增节点指向其两个关联节点的连接边,如此形成更新的动态交互图。
综合以上,在步骤31,获取到基于动态交互序列构建的动态交互图。接着,在步骤32,在上述动态交互图中,确定待分析的当前交互事件涉及的节点信息。
在一个实施例中,当前交互事件是事件类别未知、从而有待分析的交互事件。例如,在一个例子中,用户a发起与对象b的交易,从而产生当前交互事件。在接收到这样的交易请求时(例如在用户a请求支付时),对该当前交互事件进行分析,从而确定该交易事件的事件类别,例如是否为涉嫌套现的欺诈交易,交易的风险等级,等等。
在另一实施例中,当前交互事件也可以是具有事件类别标签,从而已知其类别的事件。对具有标签的当前交互事件进行分析,可以用于神经网络模型的学习和训练。这将在后文进行进一步描述。
对于上述任一种当前交互事件,可以在动态交互图中确定其涉及的节点信息。具体而言,可以确定出当前交互事件的两个参与对象所对应的两个节点,称为第一节点和第二节点,以及该事件相关的四个关联节点,所述四个关联节点包括第一节点指向的两个关联节点,以及第二节点指向的两个关联节点。换而言之,对于有待分析的当前交互事件,从动态交互图中确定出该事件的两个参与节点,以及四个关联节点。
图5示出与当前交互事件有关的节点关系图。如图5所示,当前交互事件的两个参与对象分别对应于节点1和节点2。节点1所代表的对象所参与的上一交互事件为第一事件,第一事件的参与对象对应于节点3和节点4。可以理解,节点3和节点4中的一个与节点1为相同物理对象在不同时刻、不同事件中的节点。相应地,在动态交互图中,节点1指向节点3和节点4。类似的,节点2代表的对象参与的上一交互事件为第二事件,第二事件对应于节点5和节点6。如此,对于当前交互事件来说,相关的节点包括,两个参与节点,即节点1和节点2,以及四个关联节点,即节点3,4,5,6。
为了更清楚地进行说明,结合图4的例子进行描述。在一个例子中,假定事件e6是有待分析的当前交互事件。从图4中可以看到,事件e6的发生时刻为t6,交互对象为u和w。因此,当前交互事件对应的两个节点,即第一节点和第二节点,分别为u(t6)和w(t6)。第一节点u(t6)指向两个关联节点u(t4)和v(t4),第二节点w(t6)指向两个关联节点p(t5)和w(t5)。如此,与当前交互事件e6相关的节点包括,两个参与节点u(t6)和w(t6),以及四个关联节点,即节点u(t4)和v(t4),p(t5)和w(t5)。
在确定出与当前交互事件有关的上述节点之后,在步骤33,确定各个节点在动态交互图中的对应子图。具体地,分别以上述第一节点、第二节点、四个关联节点为根节点,在动态交互图中确定出各自对应的子图,从而分别得到第一子图、第二子图以及四个关联子图,其中对于任意根节点,对应的子图包括从根节点出发,经由连接边到达的预定范围内的节点。
在一个实施例中,上述预定范围内的节点可以是,至多经过预设数目k的连接边可达的节点。这里数目k为预设的超参数,可以根据业务情况选取。可以理解,该预设数目k体现了,从根节点向前回溯的历史交互事件的步数。数目k越大,则考虑越久的历史交互信息。
在另一实施例中,上述预定范围内的节点还可以是,交互时间在预定时间范围内的节点。例如,从根节点的交互时间向前回溯t时长(例如一天),在该时长范围内、且可通过连接边达到的节点。
在又一实施例中,上述预定范围既考虑连接边的数目,又考虑时间范围。换而言之,该预定范围内的节点是指,至多经过预设数目k的连接边可达、且交互时间在预定时间范围内的节点。
下面延续以上示例并结合具体例子进行描述。图6示出在一个实施例中子图的示例。在图6的例子中,假定以当前交互事件e6的第一节点,即图4中的u(t6)为根节点,确定其对应的第一子图,并假定子图是由至多经由预设数目k=2到达的节点构成。那么,从当前根节点u(t6)出发,沿连接边的指向进行遍历,经由2条连接边可以达到的节点如图中虚线区域所示。该区域中的节点和连接关系即为节点u(t6)对应的子图,即第一子图。
与之类似的,当以当前交互事件的另一参与节点(第二节点),例如w(t6),为根节点进行遍历,可以得到第二子图。此外,分别以四个关联节点作为根节点,在动态交互图中沿着连接边遍历,可以分别得到四个关联子图。
如此,对于当前交互事件,分别得到与第一节点对应的第一子图,与第二节点对应的第二子图,以及与四个关联节点分别对应的四个关联子图。
接下来,在步骤34,将第一子图和第二子图分别输入第一神经网络模型进行处理,以分别得到对应的第一隐含向量和第二隐含向量,其中,该第一神经网络根据输入子图中各个节点的节点输入特征x,以及节点之间的连接边的指向关系,确定输入子图对应的隐含向量,其中节点输入特征x包括节点所在事件的事件特征。
为了进行区分,第一神经网络模型中处理的节点输入特征x又称为第一输入特征。如前所述,第一输入特征x包括节点所在事件的事件特征f。例如,当事件为交易事件时,事件特征可以包括,交易类型,交易金额,交易渠道等等。
在一个实施例中,第一输入特征x还可以包括节点自身的属性特征a。例如,在节点表示用户的情况下,节点属性特征可以包括用户的属性特征,例如年龄、职业、教育程度、所在地区,等等;在节点表示商品的情况下,节点属性特征可以包括商品的属性特征,例如商品类别、上架时间、销量等等。在节点表示其他交互对象的情况下,可以相应的获取到原始的节点属性特征。
下面描述第一神经网络模型的处理过程。
第一神经网络模型可以采用多种能够处理序列信息的神经网络模型,例如rnn神经网络模型,lstm神经网络模型,transformer神经网络模型,等等。
在一个实施例中,第一神经网络模型是基于transformer的神经网络模型。在这样的情况下,根据输入子图中节点之间的指向关系,形成节点序列,将该节点序列输入transformer神经网络模型,得到输入子图对应的隐含向量。
在另一实施例中,第一神经网络是基于lstm的神经网络模型。在这样的情况下,lstm神经网络模型根据输入子图中节点之间的指向关系,对各个节点依次迭代进行处理,得到输入子图对应的隐含向量。下面结合lstm神经网络,描述具体处理过程。
具体地,第一神经网络模型可以包括至少一个lstm层。当将第一子图输入到第一神经网络模型,其中的lstm层将第一子图中的各个节点依次作为目标节点,根据目标节点的第一输入特征x,该目标节点所指向的两个关联节点各自的中间向量和隐含向量,确定该目标节点的隐含向量和中间向量,如此依次迭代处理,直到得到第一子图的根节点,即第一节点,的隐含向量。
图7示出第一神经网络模型中lstm层的工作示意图。假定节点q指向节点j1和节点j2。如图7所示,在t时刻,lstm层分别处理得到节点j1和节点j2的表示向量h1和h2,包括中间向量和隐含向量;在接下来的t+时刻,lstm层根据节点q的第一输入特征xq,之前处理得到的j1和j2的表示向量h1和h2,得到节点q的表示向量hq。可以理解,该节点q的表示向量可以在后续时刻,用于处理得到指向节点q的节点的表示向量,如此实现迭代处理。
结合图6的第一子图描述这一过程。对于图中最下层的节点u(t2),在该第一子图中不考虑其指向节点,也就是认为u(t2)不具有指向的节点。在这样的情况下,通过用缺省值(例如0)填补(padding)的方式产生该节点所指向的两个节点各自的中间向量c和隐含向量h。于是,lstm层基于该节点u(t2)的第一输入特征x(u(t2)),以及产生的两个中间向量c和两个隐含向量h,确定节点u(t2)的中间向量c(u(t2))和隐含向量h(c(t2))。对于最下层节点r(t2)也做同样的处理,得到对应的中间向量c(r(t2))和h(r(t2))。
对于节点u(t4),其指向节点u(t2)和r(t2)。因此,lstm层根据该节点u(t4)的第一输入特征x(u(t4)),以及其指向的两个节点u(t2)和r(t2)各自的中间向量和隐含向量,即c(u(t2)),h(u(t2)),c(r(t2))和h(r(t2)),确定节点u(t4)的中间向量c(u(t4))和h(u(t4))。
如此,层层迭代处理,可以得到第一子图的根节点,即第一节点u(t6)的中间向量和隐含向量。
下面描述为了实现以上的迭代处理,lstm层的内部结构和算法。
图8示出根据一个实施例第一神经网络模型中lstm层的结构。在图8的示例中,当前处理的目标节点记为z(t),其中xz(t)表示该节点的第一输入特征。
假定目标节点z(t)指向的两个节点为第一关联节点j1和第二关联节点j2,那么cj1和hj1分别表示第一关联节点j1的中间向量和隐含向量,cj2和hj2分别表示第二关联节点j2的中间向量和隐含向量。
lstm层对于输入其中的第一输入特征x、中间向量和隐含向量进行以下运算。
将第一输入特征xz(t)、第一关联节点j1的隐含向量hj1和第二关联节点j2的隐含向量hj2,分别输入算法相同、参数不同的第一变换函数和第二变换函数,分别得到第一变换向量
其中,第一变换函数和第二变换函数可以采用多种运算,例如首先对输入的向量进行线性变换,然后施加激活函数的运算。例如,在一个例子中,第一变换函数和第二变换函数可以分别采用以下公式(1)和公式(2)计算:
以上公式(1)和公式(2)中,σ为激活函数,例如是sigmoid函数,
当然,在其他例子中,也可以采用类似但不同的变换函数,例如选择不同的激活函数,修改以上公式中参数的形式和数目,等等。
然后,将第一变换向量
具体的,在一个例子中,如图8所示,上述组合操作可以是,将第一变换向量
此外,还将节点的第一输入特征xz(t)、第一关联节点j1的隐含向量hj1和第二关联节点j2的隐含向量hj2,分别输入第三变换函数和第四变换函数,分别得到第三变换向量rz(t)和第四变换向量oz(t)。
具体的,在图8所示的例子中,第三变换函数可以是,先求得向量iz(t)和uz(t),再将iz(t)和uz(t)进行按位相乘,由此得到第三变换向量rz(t),即:
rz(t)=iz(t)⊙uz(t)(3)
其中,⊙表示按位相乘。
更具体的,iz(t)可以采用与第一变换函数形式相似、参数不同的函数,例如,可以按照以下公式计算:
uz(t)可以按照以下公式计算
第四变换函数可以采用与第一变换函数形式相似、参数不同的函数,从而得到四变换向量oz(t)。
接着,基于上述组合向量和第三变换向量rz(t),确定目标节点z(t)的中间向量cz(t)。
更具体的,在一个例子中,可以将组合向量和第三变换向量求和,得到z(t)的中间向量cz(t)。在其他例子中,也可以通过其他组合方式,例如加权求和,按位相乘,将组合结果作为z(t)的中间向量cz(t)。
此外,基于如此得到的节点z(t)的中间向量cz(t)和第四变换向量oz(t),确定该节点z(t)的隐含向量hz(t)。
在图8所示的具体例子中,可以将中间向量cz(t)进行tanh函数运算后,与第四变换向量oz(t)按位相乘,作为该节点z(t)的隐含向量hz(t),即:
hz(t)=oz(t)⊙tanh(cz(t))(6)
于是,根据图8所示的结构和算法,lstm层根据当前处理的目标节点z(t)的第一输入特征x,该节点所指向的两个关联节点j1和j2各自的中间向量和隐含向量,确定该节点z(t)的中间向量cz(t)和隐含向量hz(t)。
在一个实施例中,在迭代处理各个目标节点z(t)以确定其中间向量和隐含向量过程中,还进一步引入该当前处理的目标节点z(t)对应的交互时间与所指向的节点对应的交互时间之间的时间差δ。
操作中,在一个实施例中,可以将上述时间差δ也纳入到上述第一输入特征x中作为其中的一部分。也就是说,第一输入特征也可以包含上述时间差δ。在另一实施例中,可以将第一输入特征和上述时间差δ作为两个并列的输入特征。此时,可以保持上述第一到第四变化函数的形式,只是在原有基础上引入关于时间差的参数即可。例如对于上述第一和第二变换函数,可以在公式(1)和(2)的基础上引入关于时间差δ的参数,得到以下变换函数:
其他变换函数可以进行类似的修正,从而引入时间差δ的因素。
通过以上如图8所示的lstm层,依次迭代地处理第一子图中各个节点,从而可以得到根节点第一节点的中间向量和隐含向量。在一个实施例中,如此得到的隐含向量即可作为第一神经网络模型输出的针对第一子图的第一隐含向量。
根据一种实施方式,为了进一步提升效果,第一神经网络模型中可以包括多个lstm层,其中,上一lstm层确定出的某个节点的隐含向量,输入到下一lstm层作为该节点的第一输入特征。也就是说,每个lstm层仍然迭代地处理各个节点,根据当前处理的目标节点i的第一输入特征、该目标节点i所指向的两个关联节点各自的中间向量和隐含向量,确定该目标节点i的隐含向量和中间向量,只是最底层的lstm层采用目标节点i的原始事件特征(可选的,还包括节点属性特征和/或时间差)作为第一输入特征,后续的lstm层采用前一lstm层确定出的该目标节点i的隐含向量hi作为第一输入特征。在一个实施例中,上述多个lstm层采用残差网络的方式堆叠形成第一神经网络模型。
在第一神经网络模型具有多个lstm层的情况下,可以理解,每个lstm层均可以确定出作为根节点的第一节点的隐含向量。在一个实施例中,第一神经网络模型将多个lstm层各自输出的第一节点的隐含向量进行综合,得到第一节点的最终隐含向量,即第一隐含向量。更具体的,可以对各个lstm层输出的各个隐含向量进行加权组合,从而得到最终的第一隐含向量。加权组合的权重,可以简单地设定为每层对应一个权重因子,其大小通过训练调整。或者,也可以通过更加复杂的注意力(attention)机制确定权重因子。
在另一实施例中,第一神经网络模型还可以将多个lstm层中最后一个lstm层输出的第一节点的隐含向量,作为最终的第一隐含向量。
如此,通过多种方式,第一神经网络模型基于以第一节点为根节点的第一子图,得到第一节点的隐含向量,即第一隐含向量。由于第一子图中反映了与第一节点对应的交互对象有关的时序性交互历史的信息,因此,如此得到的第一隐含向量,不仅表达出第一节点(例如图4和图6中的u(t6))对应的交互对象(例如david)本身的特征,还可以表达出交互对象在历次交互事件中所受到的影响,从而全面表征交互对象的特点。
与以上过程类似的,当将第二节点对应的第二子图输入上述第一神经网络模型,第一神经网络模型根据第二子图中各个节点的第一输入特征x(其中包括事件特征),以及节点之间的连接边的指向关系,依次迭代处理各个节点,从而确定出第二节点或第二子图对应的隐含向量,即第二隐含向量。具体地,在采用lstm神经网络模型的情况下,第一神经网络模型的lstm层将第二子图中的各个节点依次作为目标节点,根据目标节点的第一输入特征x,该目标节点所指向的两个关联节点各自的中间向量和隐含向量,确定该目标节点的隐含向量和中间向量,如此依次迭代处理,直到得到第二子图的根节点,即第二节点,的隐含向量。该过程与处理第一子图相似,不再赘述。
如此,通过第一神经网络模型,基于第一子图和第二子图,分别得到第一节点对应的第一隐含向量和第二节点对应的第二隐含向量。
另一方面,在步骤35,将步骤33得到的四个关联子图分别输入第二神经网络模型,分别得到四个关联隐含向量;其中,第二神经网络根据输入子图中各个节点的第二输入特征y,以及节点之间的连接边的指向关系,确定输入子图对应的隐含向量,其中第二输入特征包括节点所在事件的事件类别标签。
可以看到,第二神经网络模型与第一神经网络模型的处理逻辑相似。不同之处在于,第一神经网络模型在处理子图中各个节点时,所基于的特征(第一输入特征x)包括节点所在事件的事件特征,而第二神经网络模型在处理各个节点时,所基于的特征(第二输入特征y)包括节点所在事件的事件类别标签。相应地,这就要求,关联子图中各个节点所在事件具有已知的事件类别标签。
更具体地,第二神经网络模型也包括lstm层。当将某个关联子图输入到第二神经网络模型,其中的lstm层将关联子图中的各个节点依次作为目标节点,根据目标节点的第二输入特征y,该目标节点所指向的两个关联节点各自的中间向量和隐含向量,确定该目标节点的隐含向量和中间向量,如此依次迭代处理,直到得到关联子图的根节点的隐含向量。
图9示出根据一个实施例第二神经网络模型中lstm层的结构。在该实施例中,第二神经网络模型中lstm层的结构和处理逻辑与图8所示的第一神经网络模型完全相同,只是将图8中的第一输入特征x修改为第二输入特征y,其中y包括节点所在事件的事件类别标签。操作中,可以首先将事件类别标签进行嵌入处理,得到标签的嵌入向量表达,作为第二输入特征y。在一个实施例中,第二输入特征y还可以在事件类别标签的基础上,进一步包含节点自身的属性特征,和/或与关联节点所在事件的时间差。
第二神经网络模型也可以包含多个图9所示的lstm层,将多层的隐含向量结果融合,得到关联子图对应的关联隐含向量。
在一个实施例中,第二神经网络模型可以和第一神经网络模型具有完全相同的结构(例如层数)和算法逻辑(例如变换函数形式),只是其网络参数不同。
如此,通过将步骤33得到的四个关联子图分别输入第二神经网络模型,可以分别得到四个关联节点分别对应的四个关联隐含向量。
接着,在步骤36,根据步骤34中第一神经网络模型得到的第一隐含向量h1和第二隐含向量h2,以及步骤35中第二神经网络模型得到的四个关联隐含向量g1,g2,g3,g4,确定当前交互事件的事件类别。
在一个实施例中,将上述第一、第二隐含向量h1,h2以及四个关联隐含向量g1-g4,输入具有预定算法逻辑的计算函数,根据函数结果,确定出当前交互事件的事件类别。
在另一实施例中,采用进一步的神经网络,对上述6个隐含向量进行进一步处理,以分析当前交互事件。
在一个例子中,可以利用全连接神经网络,将上述第一隐含向量h1、第二隐含向量h2以及四个关联隐含向量g1-g4进行融合,得到当前交互事件的事件表示向量。在不同实施例中,可以采用不同的融合方式,例如,将6个隐含向量进行拼接,加权组合等直接融合方式。还可以采用更加复杂的融合方式,例如,将第一、第二隐含向量进行加权组合,得到第一组合向量,将四个关联隐含向量进行加权组合,得到第二组合向量,再将第一组合向量和第二组合向量进行拼接,等等。融合的具体方式可以根据当前交互事件的业务场景进行设置。
如此,通过全连接神经网络,得到当前交互事件的事件表示向量。可以理解,该事件表示向量综合考虑了当前交互事件的两个参与节点和四个关联节点的隐含向量,而各个节点的隐含向量进一步体现了历史交互事件的时序信息和事件特征/标签信息,因此,该事件表示向量全面体现了历史交互事件对当前节点和当前事件的影响,包含了丰富而深层的特征信息。
接着,可以利用分类器,基于上述事件表示向量,预测当前交互事件的事件类别。
此时,第一神经网络模型、第二神经网络模型、全连接神经网络以及分类器,共同构成一个综合模型。
图10示出在一个实施例中综合模型的结构示意图。如图10所示,在该综合模型中,第一神经网络模型用于根据当前交互事件的两个参与节点对应的子图,得到第一和第二隐含向量;第二神经网络模型用于根据当前交互事件的四个关联节点对应的子图,得到四个关联隐含向量。全连接神经网络与第一、第二神经网络相连接,从其分别获得第一、第二隐含向量和四个关联隐含向量,并将其融合为事件表示向量。分类器与全连接神经网络相连接,根据该事件表示向量,预测当前交互事件的事件类别。
在一个实施例中,当前交互事件是事件类别未知的交互事件。如此,通过步骤36,即可分析出当前交互事件的事件类别,进而可以决定后续的处理方式。例如,在一个例子中,当前交互事件是用户a发起的与对象b的交易。通过对该交易事件的分析,可以预测出其事件类别,例如是否为涉嫌套现的欺诈交易,交易的风险等级,等等。根据如此预测的事件类别,可以决定是否允许该笔交易,是否通过用户a的支付请求。
在另一实施例中,当前交互事件也可以是具有事件类别标签的事件。在这样的情况下,前述步骤31-36可以是神经网络模型的学习和训练过程中的一部分。在这样的情况下,神经网络模型的训练过程还包括以下步骤。
可以获取当前交互事件的当前类别标签。类别标签的获取方式和含义如前所述,不复赘述。
然后,根据步骤36确定的事件类别,和获取的当前类别标签,确定预测损失。预测损失可以采用例如l2误差,交叉熵等损失函数形式得到。
于是接着,可以根据预测损失,训练上述第一神经网络模型和第二神经网络模型。具体的,可以采用梯度下降、反向传播等方式,调整第一神经网络和第二神经网络中的参数,例如其中各个变换函数中的参数,以更新第一和第二神经网络模型,直到对当前交互事件的类别预测准确率达到一定要求。该方式适合于步骤36通过预定计算函数实现,或全连接神经网络和分类器已经经过训练的情况。
在另一实施例中,用于表征事件向量的全连接神经网络和用于执行分类的分类器同样有待进行训练。此时,可以根据以上确定的预测损失,联合训练上述第一神经网络模型、第二神经网络模型、全连接神经网络和分类器,也就是训练图10所示的整个综合模型。具体地,可以对综合模型中各个模型部分的参数均进行调整更新,使得预测损失下降,直到对当前交互事件的类别预测准确率达到一定要求。如此训练得到的综合模型,可以直接对待分析事件进行类别分析。
综合以上,在本说明书实施例的方案中,基于动态交互序列构建动态交互图,该动态交互图反映了各个交互事件的时序关系,以及交互对象之间通过各个交互事件传递的相互影响。对于待分析的当前交互事件,从该动态交互图中得到该当前交互事件的参与节点,以及参与节点的关联节点,并得到以各个参与节点、关联节点为根节点的各个子图部分,将这些子图部分分别输入神经网络模型,得到各个参与节点、关联节点的隐含向量表达。如此得到的隐含向量中引入了历史交互事件的事件特征或类别标签,以及这些历史交互事件对节点的影响,从而可以综合全面地表达节点的深层特征。基于与当前交互事件相关的参与节点和关联节点各自的隐含向量,可以更全面更准确地表达并分析当前交互事件。
根据另一方面的实施例,提供了一种处理交互序列数据的装置,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。图11示出根据一个实施例的处理交互事件的装置的示意性框图。如图11所示,该处理装置110包括:
交互图获取单元111,配置为获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件,每个交互事件包括,发生交互行为的两个对象,事件特征和交互时间;所述多个交互事件中至少部分交互事件具有事件类别标签;所述动态交互图包括代表各个事件中的各个对象的多个节点,其中,任意节点i通过连接边指向两个关联节点,所述两个关联节点是该节点i所代表的对象参与的上一交互事件对应的两个节点;
节点确定单元112,配置为在所述动态交互图中,确定待分析的当前交互事件对应的第一节点和第二节点,以及相关的四个关联节点,所述四个关联节点包括所述第一节点指向的两个关联节点,以及所述第二节点指向的两个关联节点;
子图确定单元113,配置为分别以所述第一节点、第二节点、四个关联节点为当前根节点,在所述动态交互图中确定出各自对应的当前子图,从而分别得到第一子图、第二子图以及四个关联子图,其中所述当前子图包括从当前根节点出发,经由连接边到达的预定范围内的节点;
第一处理单元114,配置为将所述第一子图和第二子图分别输入第一神经网络模型,分别得到对应的第一隐含向量和第二隐含向量;其中,所述第一神经网络根据输入子图中各个节点的第一输入特征,以及节点之间的连接边的指向关系,确定输入子图对应的隐含向量,其中所述第一输入特征包括节点所在事件的事件特征;
第二处理单元115,配置为将所述四个关联子图分别输入第二神经网络模型,分别得到四个关联隐含向量;其中,所述第二神经网络根据输入子图中各个节点的第二输入特征,以及节点之间的连接边的指向关系,确定输入子图对应的隐含向量,其中所述第二输入特征包括节点所在事件的事件类别标签;
预测单元116,配置为根据所述第一隐含向量、第二隐含向量以及四个关联隐含向量,预测所述当前交互事件的事件类别。
在一个实施例中,交互图获取单元111配置为:
获取基于已有交互序列构建的已有动态交互图;
获取新增交互事件;
将该新增交互事件涉及的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中;
对于每个新增节点,若其存在两个关联节点,添加从该新增节点指向其两个关联节点的连接边。
根据一个实施例,子图确定单元113所确定的子图中,经由连接边到达的预定范围内的节点包括:经由预设数目k之内的连接边到达的节点;和/或,经由连接边可达且交互时间在预设时间范围内的节点。
根据一个实施例中,第一神经网络模型处理的各个节点的第一输入特征还包括,节点的属性特征,和/或,该节点所在交互事件的第一交互时间与其两个关联节点所在交互事件的第二交互时间之间的时间差。
在一个具体实施例中,交互事件为交易事件,所述事件特征包括以下中的至少一项:交易类型,交易金额,交易渠道;所述事件类别标签为,交易风险级别标签。
根据一种实施方式,第一神经网络包括lstm层,所述lstm层用于:
将所述第一子图中各个节点依次作为目标节点,根据目标节点的第一输入特征,该目标节点所指向的两个关联节点各自的中间向量和隐含向量,确定该目标节点的隐含向量和中间向量,直到得到所述第一节点的隐含向量。
进一步地,在一个具体实施例中,上述目标节点所指向的两个关联节点为第一关联节点和第二关联节点;所述lstm层具体用于:
将所述目标节点的所述第一输入特征、第一关联节点的隐含向量和第二关联节点的隐含向量,分别输入算法相同、参数不同的第一变换函数和第二变换函数,分别得到第一变换向量和第二变换向量;
将第一变换向量和第二变换向量分别与第一关联节点的中间向量和第二关联节点的中间向量进行组合操作,基于操作结果得到组合向量;
将所述目标节点的所述第一输入特征、第一关联节点的隐含向量和第二关联节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述目标节点的中间向量;
基于所述目标节点的中间向量和第四变换向量,确定所述目标节点的隐含向量。
根据一种实施方式,第一神经网络模型包括多个lstm层,其中,上一lstm层确定出的所述目标节点的隐含向量,输入到下一lstm层作为该目标节点的第一输入特征。
进一步地,在一个实施例中,第一神经网络模型将所述多个lstm层各自输出的所述第一节点的隐含向量进行综合,得到所述第一隐含向量。
或者,在另一实施例中,第一神经网络模型将所述多个lstm层中最后一个lstm层输出的所述第一节点的隐含向量,作为所述第一隐含向量。
根据一种实现方式,第一神经网络模型和第二神经网络模型为结构和算法相同、参数不同的神经网络模型。
在一个实施例中,预测单元116配置为:
利用全连接神经网络,将所述第一隐含向量、第二隐含向量以及四个关联隐含向量进行融合,得到所述当前交互事件的事件表示向量;
利用分类器,根据所述事件表示向量,确定所述当前交互事件的事件类别。
根据一种实施方式,通过模型训练单元117训练各个神经网络模型。在不同实施例中,模型训练单元117可以位于装置110之外或者之内。
在一个实施例中,模型训练单元117配置为:
获取所述当前交互事件的当前类别标签;
至少根据确定的事件类别,和所述当前类别标签,确定预测损失;
根据所述预测损失,联合训练所述第一神经网络模型,第二神经网络模型,所述全连接神经网络和所述分类器。
在另一实施例中,模型训练单元117配置为:
获取所述当前交互事件的当前类别标签;
至少根据确定的事件类别,和所述当前类别标签,确定预测损失;
根据所述预测损失,训练所述第一神经网络模型和第二神经网络模型。
通过以上装置,基于动态交互图,采用神经网络模型处理交互事件的参与节点和关联节点,从而对交互事件进行全面分析和预测。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。