本说明书一个或多个实施例涉及机器学习领域,尤其涉及利用训练用于评估交互事件的自编码器的方法和装置。
背景技术:
在许多场景下,需要对用户交互事件进行分析和处理。交互事件是互联网事件的基本组成元素之一,例如,用户浏览页面时的点击行为,可以视为用户与页面内容区块之间的交互事件,电商中的购买行为可以视为用户与商品之间的交互事件,账户间转账行为则是用户与用户之间的交互事件。用户的一系列交互事件中蕴含了用户的细粒度习惯偏好等特点,以及交互对象的特点,是机器学习模型的重要特征来源。因此,在许多场景下,希望根据交互事件对交互参与方进行特征表达和建模,进而对交互事件进行分析,特别是对交互事件的安全性进行分析,从而保障交互平台的安全性。
然而,交互事件涉及交互双方,并且各个参与方本身的状态可以是动态变化的,因此,综合考虑交互参与方的多方面特点对其进行准确的特征表达非常困难。由此,希望能有改进的方案,更为有效地对交互事件进行分析处理。
技术实现要素:
本说明书一个或多个实施例描述了一种用于评估交互事件的自编码器的训练方法和装置,其中基于动态交互图,训练针对特定类型交互事件的自编码器,从而可以利用训练好的自编码器进行交互事件的评估和分析。
根据第一方面,提供了一种训练用于评估交互事件的自编码器的方法,所述方法包括:
获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
分别以预定类别的样本交互事件所对应的第一样本节点、第二样本节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一样本子图和第二样本子图;
获取待训练的自编码器,所述自编码器包括lstm层,所述lstm层根据输入子图中节点之间的父子关系,从叶节点到根节点依次迭代处理各个节点,其中所述迭代处理包括,至少根据当前处理节点的节点特征,及其两个子节点的隐含向量,确定该当前处理节点的隐含向量;
分别将所述第一样本子图和第二样本子图输入到所述自编码器,得到第一样本节点对应的第一样本向量,和第二样本节点对应的第二样本向量;
通过将第一样本子图和第二样本子图中节点间的父子关系反向,并将反向后的子图合并,形成反向样本子图;所述反向样本子图包括所述第一样本子图和第二样本子图中节点的并集形成的样本节点集;
将所述反向样本子图输入所述自编码器,得到所述样本节点集中各个节点的隐含向量,其中所述反向样本子图的叶节点的隐含向量根据所述第一样本向量和第二样本向量确定;
根据所述样本节点集中各个节点的隐含向量与其节点特征之间的距离的综合,确定预测损失,并在预测损失减小的方向,更新所述自编码器。
在不同实施例中,上述预定范围的节点可以包括:预设数目k的连接边之内的k阶子节点;和/或,交互时间在预设时间范围内的子节点。
根据一种实施方式,所述当前处理节点的节点特征包括,该节点所对应的对象的属性特征。
在不同实施例中,当当前处理节点为用户节点时,所述属性特征可以包括以下中的至少一项:年龄、职业、教育程度、所在地区、注册时长、人群标签;当所述当前处理节点为物品节点时,所述属性特征可以包括以下中的至少一项:物品类别、上架时间、评论数、销量。
进一步的,在一个实施例中,当前处理节点的节点特征还包括,该节点所对应的交互事件的事件行为特征。
根据一种实施方式,lstm层通过以下方式确定当前处理节点的隐含向量:将当前处理节点的节点特征,分别与两个子节点的隐含向量组合,并分别输入第一变换函数和第二变换函数,得到2个第一变换向量和2个第二变换向量;将所述两个子节点中第i子节点的用于辅助运算的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;将所述当前处理节点的节点特征连同所述两个子节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量;基于所述当前处理节点的中间向量和第四变换向量,确定所述当前处理节点的隐含向量。
根据另一种实施方式,lstm层进行的迭代处理包括,根据当前处理节点的节点特征,所述两个子节点的隐含向量,以及该当前处理节点所在交互事件的第一交互时间与所述两个子节点所在交互事件的第二交互时间之间的时间差,确定所述当前处理节点的隐含向量。
在上述实施方式下一个更具体的实施例中,lstm层通过以下方式确定当前处理节点的隐含向量:将当前处理节点的节点特征和所述时间差,与所述两个子节点的隐含向量分别组合,输入第一变换函数,得到2个第一变换向量;将所述节点特征与所述两个子节点的隐含向量分别组合,输入第二变换函数,得到2个第二变换向量;将所述两个子节点中第i子节点的用于辅助运算的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;将所述当前处理节点的节点特征连同所述两个子节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量;基于所述当前处理节点的中间向量和第四变换向量,确定所述当前处理节点的隐含向量。
根据一个实施例,形成反向样本子图的步骤具体包括:将所述第一样本子图中节点间的父子关系反向,形成以所述第一样本节点为叶节点的第一反向子图;将所述第二样本子图中节点间的父子关系反向,形成以所述第二样本节点为叶节点的第二反向子图;合并所述第一反向子图和所述第二反向子图中共同的节点,形成合并子图;在所述合并子图中,对于仅有一个子节点的节点,为其添加缺省子节点,由此形成所述反向样本子图。
根据一种实施方式,反向样本子图的叶节点包括对应于第一样本节点的第一叶节点,和对应于第二样本节点的第二叶节点;其中第一叶节点的隐含向量为所述第一样本向量,第二叶节点的隐含向量为所述第二样本向量。
根据另一种实施方式,第一叶节点的隐含向量基于该第一叶节点的节点特征,以及将所述第一样本向量和所述第二样本向量作为两个子节点的隐含向量而确定;第二叶节点的隐含向量基于该第二叶节点的节点特征,以及将所述第一样本向量和所述第二样本向量作为两个子节点的隐含向量而确定。
在一个实施例中,所述自编码器包括多个lstm层,其中,上一lstm层确定出的所述当前处理节点的隐含向量,输入到下一lstm层作为该当前处理节点的节点特征。
在这样的情况下,可以通过以下方式确定预测损失:对于所述样本节点集中的各个节点,确定所述多个lstm层中最后一个lstm层输出的该节点的隐含向量,与输入到第一个lstm层的该节点的节点特征之间的距离;根据所述各个节点对应的距离的综合结果,确定预测损失。
根据第二方面,提供了一种利用自编码器评估交互事件的方法,所述方法包括:
获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
以待分析的目标事件所对应的第一目标节点、第二目标节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一目标子图和第二目标子图;
获取根据第一方面的方法训练得到的自编码器;
分别将所述第一目标子图和第二目标子图输入到所述自编码器,得到第一目标节点对应的第一目标向量,和第二目标节点对应的第二目标向量;
通过将第一目标子图和第二目标子图中节点间的父子关系反向,并将反向后的子图合并,形成反向目标子图;所述反向目标子图包括所述第一目标子图和第二目标子图中节点的并集形成的目标节点集;
将所述反向目标子图输入所述自编码器,得到所述目标节点集中各个节点的隐含向量;其中所述反向目标子图的叶节点的隐含向量根据所述第一目标向量和第二目标向量确定;
确定所述目标节点集中各个节点的隐含向量与其节点特征之间的距离的综合结果;
根据所述综合结果与预定阈值的比较,评估所述目标事件是否为预定类别的事件。
根据一种实施方式,所述目标事件为假设发生的事件,所述预定类别的事件为确定发生的事件。
根据另一种实施方式,所述目标事件为已发生事件,所述预定类别的事件为确认安全的事件。
根据第三方面,提供了一种训练用于评估交互事件的自编码器的装置,所述装置包括:
交互图获取单元,配置为获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
样本子图获取单元,配置为分别以预定类别的样本交互事件所对应的第一样本节点、第二样本节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一样本子图和第二样本子图;
编码器获取单元,配置为获取待训练的自编码器,所述自编码器包括lstm层,所述lstm层根据输入子图中节点之间的父子关系,从叶节点到根节点依次迭代处理各个节点,其中所述迭代处理包括,至少根据当前处理节点的节点特征,及其两个子节点的隐含向量,确定该当前处理节点的隐含向量;
样本子图处理单元,配置为分别将所述第一样本子图和第二样本子图输入到所述自编码器,得到第一样本节点对应的第一样本向量,和第二样本节点对应的第二样本向量;
反向子图形成单元,配置为通过将第一样本子图和第二样本子图中节点间的父子关系反向,并将反向后的子图合并,形成反向样本子图;所述反向样本子图包括所述第一样本子图和第二样本子图中节点的并集形成的样本节点集;
反向子图处理单元,配置为将所述反向样本子图输入所述自编码器,得到所述样本节点集中各个节点的隐含向量,其中所述反向样本子图的叶节点的隐含向量根据所述第一样本向量和第二样本向量确定;
更新单元,配置为根据所述样本节点集中各个节点的隐含向量与其节点特征之间的距离的综合,确定预测损失,并在预测损失减小的方向,更新所述自编码器。
根据第四方面,提供了一种利用自编码器评估交互事件的装置,所述装置包括:
交互图获取单元,配置为获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
目标子图获取单元,配置为以待分析的目标事件所对应的第一目标节点、第二目标节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一目标子图和第二目标子图;
编码器获取单元,配置为获取利用权利要求17的装置训练得到的自编码器;
目标子图处理单元,配置为分别将所述第一目标子图和第二目标子图输入到所述自编码器,得到第一目标节点对应的第一目标向量,和第二目标节点对应的第二目标向量;
反向子图形成单元,配置为通过将第一目标子图和第二目标子图中节点间的父子关系反向,并将反向后的子图合并,形成反向目标子图;所述反向目标子图包括所述第一目标子图和第二目标子图中节点的并集形成的目标节点集;
反向子图处理单元,配置为将所述反向目标子图输入所述自编码器,得到所述目标节点集中各个节点的隐含向量;其中所述反向目标子图的叶节点的隐含向量根据所述第一目标向量和第二目标向量确定;
综合单元,配置为确定所述目标节点集中各个节点的隐含向量与其节点特征之间的距离的综合结果;
评估单元,配置为根据所述综合结果与预定阈值的比较,评估所述目标事件是否为预定类别的事件。
根据第五方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面的方法。
根据第六方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面的方法。
根据本说明书实施例提供的方法和装置,基于交互事件序列构建动态交互图,并基于这样的动态交互图训练用于评估交互事件的自编码器。针对预定类别的交互事件,该自编码器可以通过事件涉及的子图和反向子图,将事件涉及的节点表征为隐含向量,并使得隐含向量充分拟合节点特征。如此,可以利用训练好的自编码器,对未知的交互事件进行分析和评估。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的实施场景示意图;
图2示出根据一个实施例的训练自编码器的方法流程图;
图3示出根据一个实施例的交互事件序列和由此构建的动态交互图;
图4示出在一个实施例中样本子图的示例;
图5示出lstm层的工作示意图;
图6示出根据一个实施例lstm层的结构;
图7示出根据另一实施例的lstm层的结构;
图8示出根据又一实施例的lstm层的结构;
图9示出在一个实施例中形成反向子图的步骤;
图10示出在一个例子中的第一反向子图;
图11示出与图4的样本子图对应的合并子图;
图12示出在一个例子中的反向样本子图;
图13示出自编码器处理反向样本子图的示意图;
图14示出多lstm层的自编码器的示意图;
图15示出根据一个实施例的利用自编码器评估交互事件的方法流程图;
图16示出根据一个实施例的训练自编码器的装置的示意性框图;
图17示出根据一个实施例的评估交互事件的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,希望能够基于交互对象发生的一系列交互事件,对交互对象以及交互事件进行特征表达和建模。
在一种方案中,基于历史交互事件构建静态的交互关系网络图,从而基于该交互关系网络图,分析各个交互对象和各个交互事件。具体地,可以以各个历史事件的参与者作为节点,在存在交互关系的节点之间建立连接边,从而形成交互网络图。在一个例子中,可以基于用户和商品之间的交互形成一个二部图作为交互关系网络图。该二部图中包含用户节点和商品节点,如果某个用户购买过某件商品,则在该用户和该商品之间构建一条连接边。在另一例子中,可以基于用户之间的转账记录形成一个用户转账关系图,其中每个节点代表一个用户,发生过转账记录的两个用户之间存在连接边。
然而,以上例子中的静态网络图,尽管可以示出对象之间的交互关系,但是没有包含这些交互事件的时序信息。简单地基于这样的交互关系网络图进行图嵌入,获得的特征向量也没有表达出交互事件的时间信息对节点的影响。并且,这样的静态图可扩展性不够强,对于新增交互事件和新增节点的情况,难以灵活进行处理。
考虑到以上因素,根据本说明书的一个或多个实施例,将动态变化的交互事件序列构建成动态交互图,其中各个交互事件中涉及的各个交互对象对应于该动态交互图中的各个节点。这样的动态交互图可以反映出各个交互对象所经历的交互事件的时序信息。进一步地,为了基于上述动态交互图进行节点分析和事件分析,在本说明书的实施例中,基于动态交互图训练一个自编码器,该自编码器用于将交互事件中涉及的多个节点编码为表征向量,通过各个节点的表征向量,可以对交互事件进行分析和评估。
图1示出根据一个实施例的实施场景示意图。如图1所示,可以将依次发生的多个交互事件按时间顺序组织成动态交互序列<e1,e2,…,en>,其中每个元素ei表示一个交互事件,可以表示为交互特征组的形式ei=(ai,bi,ti),其中ai和bi是事件ei的两个交互对象,ti是交互时间。
根据本说明书的实施例,基于该动态交互序列构建动态交互图100。在图100中,将各个交互事件中的各个交互对象ai,bi用节点表示,并在包含同一对象的连续事件的节点之间建立父子关系连接边。动态交互图100的结构将在后续进行更具体的描述。
为了更有效地进行节点分析和事件分析,希望基于上述动态交互图训练一个自编码器,从而将交互事件中涉及的节点编码为表征向量。
如本领域技术人员所知,自编码器是一种能够通过无监督学习,学到输入数据高效表示的人工神经网络。输入数据的这一高效表示又称为编码。编码的维度一般远小于输入数据的维度,因此自编码器可用于进行数据降维。此外,自编码器还可以用于在深度神经网络的预训练过程中进行特征抽取或特征编码,还可以用作生成模型来随机生成与训练数据类似的数据。
已经针对例如图像数据、语音数据等形式的输入数据,提出一些自编码器的结构和训练方式。然而,面对以上提出的动态交互图这样的全新图结构,已有的自编码器难以针对性地进行特征编码。
为此,在本说明书的实施例中,基于动态交互图的特点,提出一种基于长短期记忆lstm网络的自编码器。具体的,针对样本交互事件,可以确定出该交互事件在动态交互图中对应的两个节点,并得到以该两个节点为根节点的两个子图(子图1和子图2)。为了训练自编码器,还将上述两个子图中的节点进行父子关系的反向,形成反向子图。然后,将上述两个子图,以及反向子图相继输入到自编码器。自编码器包括lstm层,通过该lstm层对输入子图中各个节点依次进行迭代处理,最终得到反向子图中各个节点的表征向量。通过使得迭代处理的结果拟合各个节点的原始输入特征,对自编码器进行训练,使得自编码器学习到各个节点的表征向量。
如此训练得到的自编码器可以用于进行事件分析。具体的,对于待评估的目标交互事件,可以与上述训练过程类似地得到目标交互事件对应的两个子图和反向子图。然后,利用训练好的自编码器相继处理该两个子图和反向子图,得到反向子图中各个节点的表征向量。通过将这些节点的表征向量与其原始输入特征进行比对,来对目标交互事件进行评估。这样的评估具体可以是,例如,预测目标交互事件涉及的两个对象之间是否会发生交互(比如某个用户是否会点击某个页面),预测目标交互事件的事件类别(比如是否为异常事件),等等。
下面描述以上构思的具体实现方式。
图2示出根据一个实施例的训练自编码器的方法流程图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。下面结合具体实施例,对如图2所示的训练方法中的各个步骤进行描述。
首先,在步骤21,获取用于反映交互事件关联关系的动态交互图。
一般地,可以如前所述将依次发生的多个交互事件按时间顺序组织成交互事件序列,基于这样的交互事件序列构建动态交互图,以此反映交互事件的关联关系。交互事件序列,例如表示为<e1,e2,…,en>,可以包括按照时间顺序排列的多个交互事件,其中每个交互事件ei可以表示为一个交互特征组ei=(ai,bi,ti),其中ai和bi是事件ei的两个交互对象,ti是交互时间。
例如,在电商平台中,交互事件可以是用户的购买行为,其中的两个对象可以是某个用户和某个商品。在另一例子中,交互事件可以是用户对页面区块的点击行为,其中的两个对象可以是某个用户和某个页面区块。在又一例子中,交互事件可以是交易事件,例如一个用户向另一用户转账,此时两个对象为两个用户。在其他业务场景中,交互事件还可以是其他在两个对象之间发生的交互行为。
在一个实施例中,每个交互事件对应的交互特征组还可以包括事件行为特征f,如此,每个交互特征组可以表示为xi=(ai,bi,ti,f)。具体的,事件行为特征f可以包括交互事件发生的背景和上下文信息,交互行为的一些属性特征,等等。
例如,在交互事件为用户点击事件的情况下,事件行为特征f可以包括,用户进行点击所使用的终端的类型,浏览器类型,app版本,等等;在交互事件为交易事件的情况下,事件行为特征f可以包括,例如,交易类型(商品购买交易、转账交易等),交易金额,交易渠道等等。
对于以上所述的交互事件序列,可以构建动态交互图。具体的,用一对节点(两个节点)表示一个交互事件涉及的两个对象,将交互事件序列中各个交互事件中的各个对象分别用节点表示。如此,一个节点可以对应到一个交互事件中的一个对象,但是同一物理对象可能对应到多个节点。例如,如果用户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的子节点,相应的,该节点i为该上一交互事件对应的两个节点的父节点。可以在父子节点之间建立连接边,以示出其父子依赖关系。
下面结合具体例子进行描述。图3示出根据一个实施例的交互事件序列和由此构建的动态交互图。具体的,图3左侧示出按照时间顺序组织的交互事件序列,其中示例性示出分别在t1,t2,…,t6时刻发生的交互事件e1,e2,…,e6,每个交互事件包含交互涉及的两个交互对象以及交互时间(为了图示的清楚,省去了事件行为特征)。图3右侧示出根据左侧的交互事件序列构建的动态交互图,其中,将各个交互事件中的两个交互对象分别作为节点。下面以节点u(t6)为例,描述父子关系和连接边的构建。
如图所示,该节点u(t6)代表交互事件e6中的一个交互对象u。于是,从交互事件e6出发向前回溯,找到的第一个同样包含交互对象u的交互事件为e4,也就是说,e4是对象u参与的上一交互事件,相应的,e4的两个交互对象对应的两个节点u(t4)和w(t4),为节点u(t6)的两个子节点。于是,建立从子节点u(t4)和w(t4)指向父节点u(t6)的两个连接边。类似的,从u(t4)(对应于交互事件e4)继续向前回溯,可以继续找到对象u参与的上一交互事件e2,于是将e2对应的两个节点u(t2)和y(t2)认为是u(t4)的子节点,建立从这两个节点指向u(t4)的连接边。在另一侧,从w(t4)向前回溯,可以找到对象w参与的上一交互事件e3,于是,建立e3对应的两个节点指向w(t4)的连接边。如此,在节点之间构建反映父子关系的连接边,从而形成图3的动态交互图。
在一个实施例中,交互事件所涉及的两个对象可以划分为两类对象:第一类对象和第二类对象。例如,页面点击事件的第一类对象为用户对象,第二类的对象为页面区块。在这样的情况下,在动态交互图中,可以通过节点的相对位置来区分两类对象,例如对于各个交互事件中的节点,将第一类对象布置在左侧,第二类对象布置在右侧。换而言之,将节点相应的划分为左节点和右节点。例如在图3中,左节点为用户节点,右节点为物品节点。当然,在另一些实施例中,也可以不区分节点的位置。
以上描述了基于交互事件序列构建动态交互图的方式和过程。对于图2所示的训练过程而言,构建动态交互图的过程可以预先进行也可以现场进行。相应地,在一个实施例中,在步骤21,根据交互事件序列现场构建动态交互图。构建方式如以上所述。在另一实施例中,可以预先基于交互事件序列构建形成动态交互图。在步骤21,读取或接收已形成的动态交互图。
可以理解,按照以上方式构建的动态交互图具有很强的可扩展性,可以非常容易地根据新增的交互事件进行动态更新。当出现新的交互事件时,可以将该新增交互事件涉及的两个对象作为两个新增节点,添加到已有动态交互图中。并且,对于每个新增节点,确定其是否存在子节点。如果存在子节点,则添加子节点指向该新增节点的连接边,如此形成更新的动态交互图。
综合以上,在步骤21,获取到用于反映交互事件关联关系的动态交互图。接着,在步骤22,分别以样本交互事件所对应的第一样本节点、第二样本节点为根节点,在动态交互图中确定出对应的第一样本子图和第二样本子图。
具体地,为了对自编码器进行训练,上述样本交互事件为选取的已知其类别为预定类别的样本事件。例如,该预定类别可以是,确定已发生交互的事件,或者,确定为安全的交互事件(例如,非黑客攻击事件,非欺诈交易事件,等等)。在选取出样本交互事件的基础上,可以在上述动态交互图中确定出该样本交互事件所涉及的两个节点,即第一样本节点和第二样本节点。然后,分别以上述第一样本节点、第二样本节点作为当前根节点,在上述的动态交互图中,以当前根节点出发,沿父子关系进行遍历,将经由连接边到达的预定范围内的节点作为对应的子图,从而分别得到第一样本子图和第二样本子图。
在一个实施例中,上述预定范围内的节点可以是,至多经过预设数目k的连接边可达的子节点。这里数目k为预设的超参数,可以根据业务情况选取。可以理解,该预设数目k体现了,从根节点向前回溯的历史交互事件的步数,也就是子节点的阶数。数目k越大,则考虑越久的历史交互信息。
在另一实施例中,上述预定范围内的节点还可以是,交互时间在预定时间范围内的子节点。例如,从根节点的交互时间向前回溯t时长(例如一天),在该时长范围内、且可通过连接边达到的子节点。
在又一实施例中,上述预定范围既考虑连接边的数目,又考虑时间范围。换而言之,该预定范围内的节点是指,至多经过预设数目k的连接边可达、且交互时间在预定时间范围内的子节点。
下面延续以上示例并结合具体例子进行描述。图4示出在一个实施例中样本子图的示例。在图4的例子中,假定u(t6)为第一样本节点,于是,以该节点u(t6)为根节点,确定其对应的第一样本子图,并假定子图是由至多经由预设数目k=2的连接边到达的子节点构成。那么,从当前根节点u(t6)出发,沿父子关系的指向进行遍历,经由2条连接边可以达到的节点如图中虚线区域所示。该区域中的节点和连接关系即为节点u(t6)对应的子图,即第一样本子图。
与之类似的,如果设定另一节点v(t6)为第二样本节点,那么可以以该节点v(t6)作为根节点再次进行遍历,从而得到第二样本子图。
下文中,为了描述的清楚和简单,将第一样本节点表示为u(t),将第二样本节点表示为v(t)进行说明。如此,对于已知类别的样本交互事件所涉及的第一样本节点u(t)和第二样本节点v(t),分别得到了对应的第一样本子图和第二样本子图。
另一方面,在步骤23,获取待训练的自编码器,所述自编码器包括lstm层,所述lstm层根据输入子图中节点之间的父子关系,从叶节点到根节点依次迭代处理各个节点,其中所述迭代处理包括,至少根据当前处理节点的节点特征,及其两个子节点的隐含向量,确定该当前处理节点的隐含向量。
图5示出lstm层的工作示意图。假定节点q的两个子节点为节点j1和节点j2。如图5所示,在t时刻,lstm层分别处理得到节点j1和节点j2的表征向量h1和h2,其中表征向量可以包括隐含向量和用于辅助运算的中间向量;在接下来的t 时刻,lstm层根据节点q的节点特征,之前处理得到的j1和j2的表征向量h1和h2,得到节点q的表征向量hq。可以理解,该节点q的表征向量可以在后续时刻,连同节点q的相对节点(同一事件中的另一节点)的表征向量一起,用于处理得到节点q的父节点的表征向量,如此实现迭代处理。
图6示出根据一个实施例lstm层的结构。在图6的示例中,当前处理的节点记为z(t),其中xz(t)表示该节点的节点特征。在节点表示用户的情况下,节点特征可以包括用户的属性特征,例如年龄、职业、教育程度、所在地区、注册时长、人群标签等等;在节点表示物品的情况下,节点特征可以包括物品的属性特征,例如物品类别、上架时间、销量、评论数等等。在节点表示其他交互对象的情况下,可以相应的获取到原始的节点特征。在交互事件的特征组中还包括事件行为特征f的情况下,也可以在节点特征中包含该节点所在交互事件的事件行为特征f。
假定节点z(t)的两个子节点为第一子节点j1和第二子节点j2,那么cj1和hj1分别表示第一子节点j1的中间向量和隐含向量,cj2和hj2分别表示第二子节点j2的中间向量和隐含向量,其中中间向量用于辅助运算,隐含向量用于表示该节点。
lstm层对于输入其中的节点特征、中间向量和隐含向量进行以下运算。
将当前处理节点z(t)的节点特征xz(t),分别与两个子节点j1和j2的隐含向量hj1和hj2组合,分别输入第一变换函数g和第二变换函数f,于是分别得到2个第一变换向量和第二变换向量。
更具体的,在一个例子中,第一变换函数g和第二变换函数f分别采用以下公式(1)和公式(2)计算:
以上公式(1)和公式(2)中,i为1或2,分别对应两个子节点;σ为激活函数,例如是sigmoid函数,
当然,在其他例子中,也可以采用类似但不同的变换函数,例如选择不同的激活函数,修改以上公式中参数的形式和数目,等等。
然后,将2个子节点中第i子节点的中间向量cji,与对应的第i个第一变换向量
具体的,在一个例子中,上述组合操作可以是,三个向量之间的按位相乘,即
此外,还将当前处理节点z(t)的节点特征xz(t),连同2个子节点的隐含向量hj1和hj2,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量。
具体的,在图6所示的例子中,第三变换函数p可以是,先求得向量uz(t)和sz(t),再将uz(t)和sz(t)进行按位相乘,由此得到第三变换向量pz(t),即:
pz(t)=uz(t)⊙sz(t)(4)
其中,⊙表示按位相乘。
更具体的,uz(t)和sz(t)可以按照以下公式计算:
其中,wu,
第四变换函数o可以是,通过以下公式得到第四变换向量oz(t):
其中,wo和
接着,基于上述组合向量v和第三变换向量pz(t),确定当前处理节点z(t)的中间向量cz(t)。例如,可以将组合向量v和第三变换向量pz(t)求和,得到z(t)的中间向量cz(t)。在其他例子中,也可以通过其他组合方式,例如加权求和,按位相乘,将组合结果作为z(t)的中间向量cz(t)。
此外,基于如此得到的节点z(t)的中间向量cz(t)和第四变换向量oz(t),确定该节点z(t)的隐含向量hz(t)。
在图6所示的具体例子中,可以将中间向量cz(t)进行tanh函数运算后,与第四变换向量oz(t)组合,例如按位相乘,作为该节点z(t)的隐含向量hz(t),即:
hz(t)=oz(t)⊙tanh(cz(t))(8)
于是,根据图6所示的结构和算法,lstm层根据当前处理节点z(t)的节点特征,该节点的两个子节点j1和j2各自的中间向量和隐含向量,确定该节点z(t)的中间向量cz(t)和隐含向量hz(t)。
在一个实施例中,在迭代处理各个节点z(t)以确定其中间向量和隐含向量过程中,还进一步引入该当前处理节点z(t)对应的交互时间与其子节点所在交互事件的交互时间之间的时间差δ。也就是说,对于任意的当前处理节点z(t),lstm层处理该节点包括,根据该当前处理节点的节点特征xz(t),其两个子节点j1和j2的隐含向量,以及该节点z(t)所在交互事件的第一交互时间(t)与其两个子节点(j1和j2)所在交互事件的第二交互时间(t-)之间的时间差δ,确定该当前处理节点z(t)的隐含向量hz(t)。
更具体的,可以在图6所示的方式基础上,引入时间差δ的因素,类似的得到节点z(t)的隐含向量和中间向量。具体的,结合时间差的处理过程可以包括:
将当前处理节点z(t)的节点特征xz(t)和所述时间差δ,与两个子节点的隐含向量hj1和hj2分别组合,输入第一变换函数,得到2个第一变换向量;
将上述节点特征与所述两个子节点的隐含向量分别组合,输入第二变换函数,得到2个第二变换向量;
将所述两个子节点中第i子节点的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;
将所述当前处理节点z(t)的节点特征xz(t)连同所述两个子节点的隐含向量hj1和hj2,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量cz(t);
基于所述当前处理节点z(t)的中间向量和第四变换向量,确定所述当前处理节点的隐含向量hz(t)。
图7示出根据另一实施例的lstm层的结构。对比图7和图6可以看到,图7的结构和实现的算法与图6相似,只是在图6的基础上进一步引入了时间差δ。在图7的例子中,时间差δ和节点z(t)的节点特征xz(t)一起,分别与子节点的隐含向量组合,输入到第一变换函数g中。相应的,第一变换函数g可以修改为:
其中,公式(9)在公式(1)基础上进一步引入了对应于时间差δ的时间项,相应的,
图7中的其他变换函数,以及函数之间的运算过程,可以与结合图6所述的例子相同。
根据另一种实施方式,还可以将上述时间差进一步输入到第二变换函数中。也就是,将当前处理节点z(t)的节点特征和时间差δ,分别与两个子节点对应的隐含向量分别组合,然后分别输入第一变换函数g和第二变换函数f,从而分别得到2个第一变换向量和2个第二变换向量。后续处理与前述相同。
例如,图8示出根据又一实施例的lstm层的结构。可以看到,图8的lstm层同样引入了时间差δ,并且,对比于图7,图8中的时间差δ还进一步输入到了第二变换函数f。更具体的,图8中的第一变换函数g仍然可以采取公式(9)的形式,而第二变换函数f可以采取以下形式:
其中,公式(10)在公式(2)基础上进一步引入了对应于时间差δ的时间项,相应的,
图8中的其他变换函数,以及函数之间的运算过程,可以与结合图6所述的例子相同。
在更多实施例中,还可以将上述时间差进一步输入到第三变换函数p和/或第四变换函数o。在这样的情况下,可以对前述的公式(5),(6),(7)的一部分或全部进行修改,在原有基础上类似的引入针对时间差的时间项,在此不一一详述。
通过以上结合图6-图8所述的lstm层,自编码器可以对输入子图中的节点依次迭代地进行处理,得到各个节点的中间向量和隐含向量。
于是,在步骤24,分别将步骤22得到的第一样本子图和第二样本子图输入到前述的自编码器中,分别得到第一样本节点和第二样本节点对应的隐含向量,称为第一样本向量和第二样本向量。
结合图4的第一样本子图描述这一过程。对于图中最下层的节点u(t2),在该输入子图中不考虑其子节点。在这样的情况下,通过用缺省值(例如0)填补(padding)的方式产生该节点的两个子节点各自的中间向量c和隐含向量h。于是,lstm层按照图6-图8中任意的方式,将节点u(t2)作为当前处理节点,基于该节点u(t2)的节点特征,以及缺省产生的两个中间向量c和两个隐含向量h,确定节点u(t2)的中间向量c(u(t2))和隐含向量h(c(t2))。对于最下层节点y(t2)也做同样的处理,得到对应的中间向量c(y(t2))和h(y(t2))。
节点u(t2)和y(t2)的父节点为u(t4)。接着,lstm层将u(t4)作为当前处理节点,根据该节点u(t4)本身的节点特征,以及其两个子节点u(t2)和y(t2)各自的中间向量和隐含向量,即c(u(t2)),h(u(t2)),c(y(t2))和h(y(t2)),按照图6-图8中任意的方式,确定节点u(t4)的中间向量c(u(t4))和h(u(t4))。
如此,层层迭代处理,可以得到第一样本节点u(t6)的中间向量和隐含向量。
对于第二样本子图,自编码器进行类似的处理,可以得到第二样本节点v(t6)的中间向量和隐含向量。
然后,为了训练自编码器,在步骤25,通过将第一样本子图和第二样本子图中节点间的父子关系反向形成反向样本子图,该反向样本子图包括第一样本子图和第二样本子图中节点的并集形成的样本节点集,其中第一样本节点和第二样本节点在前述的第一样本子图和第二样本子图中分别为根节点,而在该反向样本子图中作为最底层的叶节点。
图9示出在一个实施例中形成反向子图的步骤,即上述步骤25的子步骤。如图9所示,可以首先在步骤91,将第一样本子图中节点间的父子关系反向,形成以第一样本节点为叶节点的第一反向子图。
以图4的第一样本子图为例进行说明。在图4中,第一样本节点u(t6)为根节点,各个连接边从子节点指向父节点。通过将图4中的父子关系反向,也就是,将连接边的指向方向反向,并仍然将子节点排布在父节点下方,可以形成图10所示的第一反向子图。可以看到,该第一反向子图可以视为第一样本子图的镜像图。在第一反向子图中,第一样本节点成为了叶节点,在反向子图中将其表示为u`(t6)。
与之类似的,在步骤92,将第二样本子图中节点间的父子关系反向,形成以第二样本节点为叶节点的第二反向子图。可以理解,步骤91和92可以并行执行,或者以任意先后顺序执行。
然后在步骤93,合并第一反向子图和第二反向子图中共同的节点,形成合并子图。可以理解,第一样本子图和第二样本子图中有可能存在共同的节点,例如在图4中,当第一样本节点为u(t6),第二样本节点为v(t6)时,q(t3)和w(t3)为共同的节点。在将第一样本子图和第二样本子图反向之后,第一反向子图和第二反向子图仍然包含这些共同的节点。于是可以将两个反向子图中共同的节点进行合并。图11示出与图4的样本子图对应的合并子图,其中在图4的节点编号后添加“`”,来表示其在反向子图中的对应节点。如果第一反向子图和第二反向子图中没有共同的节点,那么直接将两个反向子图合并在一起,形成合并子图。
然后在步骤94,在上述合并子图中,对于仅有一个子节点的节点,为其添加缺省子节点,由此形成反向样本子图。
需要理解,在原始样本子图中,每个父节点具有两个子节点。在将样本子图中父子关系反向之后,会出现两个父节点共享一个子节点,以及某些节点只有一个子节点的情况。为了与原始样本子图的图结构一致,便于自编码器进行同样的迭代处理,对于合并子图中仅有一个子节点的节点,为其添加缺省子节点。
例如,在图11中,节点u`(t4)仅有一个子节点,可以为其添加缺省子节点a,使其具有两个子节点。节点w`(t4)也仅有一个子节点,可以为其添加缺省子节点b,使其具有两个子节点。节点w`(t3)已有两个子节点,则不必为其添加缺省子节点。于是,可以得到图12所示的反向样本子图,其中为了图示的简单,省去了为部分节点添加的缺省子节点。
在一个实施例中,交互事件涉及的对象被划分为第一类对象和第二类对象,相应的,节点被划分为左节点和右节点。在这样的情况下,在添加缺省子节点时,还需考虑缺少的子节点的类别。当目标节点只有左侧子节点时,为其添加右侧缺省子节点;当目标节点只有右侧子节点时,为其添加左侧缺省子节点。
以上结合图9和图4的例子,描述了一种形成反向样本子图的具体过程。可以理解,还可以在此基础上进行改动,以类似的其他方式形成反向样本子图。例如,可以首先将第一样本子图和第二样本子图进行合并,形成合并子图,然后将合并子图中的节点父子关系反向,最后添加缺省子节点,于是形成反向样本子图。
然后,在图2的步骤26,将所述反向样本子图输入前述自编码器,通过自编码器中lstm层的迭代处理,得到样本节点集中各个节点的隐含向量。
如前所述,自编码器在进行上述迭代处理时,从输入子图的叶节点开始进行处理。当输入子图为反向样本子图时,其叶节点正是原本作为根节点的第一样本节点和第二样本节点,即第一叶节点为第一样本节点,第二叶节点为第二样本节点。这两个叶节点的隐含向量可以通过步骤24自编码器处理第一样本子图和第二样本子图时,针对第一样本节点和第二样本节点分别得到的第一样本向量和第二样本向量而确定。因此,自编码器对反向样本子图的处理,是在第一样本子图和第二样本子图处理结果基础上的延续。
图13示出自编码器处理反向样本子图的示意图,该示意图基于图4的样本子图的例子和图12的反向样本子图的例子进行描述。在图13中为了图示的简单,省略了反向样本子图中添加的缺省子节点。可以看到,自编码器通过处理第一样本子图和第二样本子图,分别得到了第一样本节点对应的第一样本向量(图中简单起见表示为h(u)),以及第二样本节点对应的第二样本向量h(v)。第一样本向量和第二样本向量作为中间结果,用于确定反向样本子图的叶节点的隐含向量,从而将正向样本子图的处理与反向样本子图的处理连接起来,于是叶节点的隐含向量作为自编码器处理反向样本子图的起始向量。
在一个实施例中,直接将第一样本向量作为第一叶节点的隐含向量,将第二样本向量作为第二叶节点的隐含向量。结合图13的示意图,这相当于,将正向的第一样本子图中的第一样本节点u(t6),与反向样本子图中对应的节点u`(t6),在处理上合并为一个抽象节点。
在另一实施例中,反向样本子图中第一叶节点的隐含向量,基于该第一叶节点的节点特征,以及将上述第一样本向量和第二样本向量作为两个子节点的隐含向量而确定;第二叶节点的隐含向量,基于该第二叶节点的节点特征,以及将上述第一样本向量和第二样本向量作为两个子节点的隐含向量而确定。结合图13的示意图,这相当于,将正向的第一/第二样本子图中的根节点u(t6)和v(t6),视为反向样本子图中两个叶节点u`(t6)和v`(t6)的子节点。按照前述的自编码器的处理逻辑,对于每个叶节点,其隐含向量根据其自身的节点特征和两个子节点的隐含向量,即第一样本向量和第二样本向量,而确定。
通过以上方式得到了反向样本子图中叶节点的隐含向量。在此基础上,自编码器中的lstm层就可以采用前述迭代处理,继续处理反向样本子图中的其他节点,从而得到各个节点的隐含向量。
例如,结合图12的例子,节点u`(t4)的隐含向量,基于其自身的节点特征,和其两个子节点,叶节点u`(t6)和缺省子节点a,的隐含向量而确定;节点w`(t4)的隐含向量,基于其自身的节点特征,和其两个子节点,叶节点u`(t6)和缺省子节点b,的隐含向量而确定;节点w`(t3)的隐含向量,基于其自身的节点特征,和其两个子节点w`(t4)和q`(t5)的隐含向量而确定。其中,缺省子节点的隐含向量可以预设为缺省值。在一个实施例中,为左侧缺省子节点和右侧缺省子节点预设不同的缺省隐含向量。
如此迭代处理,自编码器可以得到反向样本子图包含的样本节点集中各个节点的隐含向量。
在一个实施例中,为了更好地提取高层次的特征,进一步提升表征效果,自编码器包括多个lstm层。在这样的情况下,上一lstm层确定出的某个节点的隐含向量,输入到下一lstm层作为该节点的节点特征。
图14示出多lstm层的自编码器的示意图。如图14所示,每个lstm层仍然迭代地处理各个节点,根据当前处理节点i的节点特征、该节点i的两个子节点各自的中间向量和隐含向量,确定该节点i的隐含向量和中间向量,只是最底层的lstm层采用节点i的原始输入特征作为节点特征,后续的lstm层采用前一lstm层确定出的该节点i的隐含向量作为节点特征。在这样的情况下,将最后一个lstm层处理反向样本子图时得到的各个节点的隐含向量,作为样本节点集中各个节点最终的隐含向量。
于是,接下来在步骤27,根据样本节点集中各个节点的隐含向量与其节点特征之间的距离的综合,确定预测损失;在预测损失减小的方向,更新自编码器。
具体的,对于样本节点集s中的任意节点i,可以确定其隐含向量h(i)与节点特征x(i)之间的距离大小‖h(i)-x(i)‖,或称为预测距离。当自编码器包括多个lstm层的情况下,上述节点特征x(i)为输入到第一个lstm层的该节点i的节点特征,隐含向量h(i)为最后一个lstm层处理反向样本子图得到的该节点的隐含向量。如前所述,自编码器的训练目标设定为,使得各个节点的隐含向量拟合其节点特征。于是,在一个例子中,预测损失l可以表示为:
l=∑i∈3‖h(i)-x(i)‖(11)
其中,预测距离‖h(i)-x(i)‖可以通过余弦距离,欧式距离等方式确定。
公式(11)中是将各个节点对应的预测距离求和,得到预测损失。此外,还可以将各个节点的预测距离的平方和作为预测损失。在其他例子中,还可以确定出样本节点集s中节点的数目,从而将各个节点的预测距离的平均值,或者预测距离平方的平均值,作为预测损失l。
在确定出预测损失l的基础上,可以在使得l减小的方向,调整自编码器中的模型参数,具体包括,lstm层中前述公式(1)-(10)中的各个变换矩阵参数和偏移量参数等,从而更新自编码器。具体的,可以采用梯度下降,反向传播等方式,实现自编码器中的参数调优。
通过多次选取预定类别的样本事件,执行上述步骤21到27,可以不断更新和优化自编码器,最终训练得到一个专用于根据动态交互图评估交互事件的自编码器,该自编码器对于前述预定类别的样本事件,可以得到其中涉及的各个节点的隐含向量,且使得基于隐含向量与节点特征的距离得到的预测损失达到极小,例如低于一定阈值。
于是,利用上述训练好的自编码器,就可以对未知的事件进行分析和评估。
图15示出根据一个实施例的利用自编码器评估交互事件的方法流程图。可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。如图15所示,评估交互事件的方法可以包括以下步骤。
在步骤151,获取反映交互事件关联关系的动态交互图。该动态交互图的构成方式和结构特点如之前结合步骤21所述,不复赘述。
在步骤152,以待分析的目标事件所对应的第一目标节点、第二目标节点为根节点,在动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一目标子图和第二目标子图。该步骤的具体执行方式与前述步骤22相似,只是本步骤中的目标事件是类别未知的、有待分析的事件。该事件涉及的两个节点称为第一目标节点和第二目标节点。基于第一目标节点和第二目标节点在动态交互图中确定出第一目标子图和第二目标子图的过程,与前述步骤22相对应,不复赘述。
在步骤153,获取根据图2的方法训练得到的自编码器。
在步骤154,分别将第一目标子图和第二目标子图输入到自编码器,得到第一目标节点和第二目标节点各自对应的隐含向量,分别称为第一目标向量和第二目标向量。自编码器对于输入其中的第一目标子图和第二目标子图分别进行迭代处理的过程,可以参照步骤24的描述。
此外,在步骤155,通过将第一目标子图和第二目标子图中节点间的父子关系反向,并将反向后的子图合并,形成反向目标子图;所述反向目标子图包括所述第一目标子图和第二目标子图中节点的并集形成的目标节点集。该步骤中形成反向目标子图的执行方式与前述步骤25相似,不复赘述。
然后在步骤156,将该反向目标子图输入训练好的自编码器,得到目标节点集中各个节点的隐含向量,其中反向目标子图的叶节点的隐含向量根据所述第一目标向量和第二目标向量确定。该步骤与前述步骤26相对应,不复赘述。
接着在步骤157,确定目标节点集中各个节点的隐含向量与其节点特征之间的距离的综合结果。该综合结果的确定方式,与训练自编码器时预测损失l的确定方式相对应。
进一步的,在步骤158,根据该综合结果与预定阈值的比较,评估上述目标事件是否为预定类别的事件。
如前所述,经过图2所示过程的训练,针对预定类别的事件涉及的节点,自编码器得到的隐含向量可以很好地拟合节点特征,使得隐含向量与节点特征的距离的综合达到极小。因此,可以设置一个阈值,根据当前分析的目标事件对应的综合结果与该阈值的比较,判断目标事件是否为前述预定类别的事件。如果综合结果小于该阈值,则可以确定,当前分析的目标事件属于预定类别的事件;如果达到或者超过该阈值,则认定,目标事件不属于预定类别的事件。
在一个实施例中,该目标事件可以是假设发生的事件,相应的,预定类别的事件为确定发生交互的事件。如此,通过自编码器判断目标事件是否为预定类别的事件,可以用于评估动态交互图中两个节点接下来是否会发生交互,例如,一个用户是否会点击某个页面或页面区块。
在另一实施例中,目标事件为已发生交互的事件,预定类别的事件为具有某种特性的事件,例如,确认安全的事件。如此,通过自编码器判断目标事件是否为预定类别的事件,可以用于评估已发生的某个交互事件是否为安全事件,或者是否具有较高的安全风险。例如,当一个用户发出向另一用户转账的支付请求时,二者发生了交互。可以通过上述自编码器判断该交互事件是正常交易,还是有安全风险的欺诈交易,包括盗用账号的交易,套现交易等等。又例如,当用户针对某个网站发出登录请求时,用户与该网站发生了交互事件。可以通过上述自编码器判断该事件是正常登录事件,还是异常事件,例如黑客的攻击事件,盗用账号的尝试登录,等等。
如此,通过训练好的自编码器,基于动态交互图,更准确、有效地对交互事件进行分析和评估。
综合以上,在本说明书实施例的方案中,基于交互事件序列构建动态交互图,并基于这样的动态交互图训练用于评估交互事件的自编码器。针对预定类别的交互事件,该自编码器可以通过事件涉及的子图和反向子图,将事件涉及的节点表征为隐含向量,并使得隐含向量充分拟合节点特征。如此,可以利用训练好的自编码器,对未知的交互事件进行分析和评估。
根据另一方面的实施例,提供了一种训练用于评估交互事件的自编码器的装置,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。图16示出根据一个实施例的训练自编码器的装置的示意性框图。如图16所示,该训练装置160包括:
交互图获取单元161,配置为获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
样本子图获取单元162,配置为分别以预定类别的样本交互事件所对应的第一样本节点、第二样本节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一样本子图和第二样本子图;
编码器获取单元163,配置为获取待训练的自编码器,所述自编码器包括lstm层,所述lstm层根据输入子图中节点之间的父子关系,从叶节点到根节点依次迭代处理各个节点,其中所述迭代处理包括,至少根据当前处理节点的节点特征,及其两个子节点的隐含向量,确定该当前处理节点的隐含向量;
样本子图处理单元164,配置为分别将所述第一样本子图和第二样本子图输入到所述自编码器,得到第一样本节点对应的第一样本向量,和第二样本节点对应的第二样本向量;
反向子图形成单元165,配置为通过将第一样本子图和第二样本子图中节点间的父子关系反向,并将反向后的子图合并,形成反向样本子图;所述反向样本子图包括所述第一样本子图和第二样本子图中节点的并集形成的样本节点集;
反向子图处理单元166,配置为将所述反向样本子图输入所述自编码器,得到所述样本节点集中各个节点的隐含向量,其中所述反向样本子图的叶节点的隐含向量根据所述第一样本向量和第二样本向量确定;
更新单元167,配置为根据所述样本节点集中各个节点的隐含向量与其节点特征之间的距离的综合,确定预测损失,并在预测损失减小的方向,更新所述自编码器。
在不同实施例中,样本子图获取单元162选取的所述预定范围的节点包括:预设数目k的连接边之内的k阶子节点;和/或,交互时间在预设时间范围内的子节点。
在一种实施方式中,所述lstm层迭代处理时所基于的当前处理节点的节点特征可以包括,该节点所对应的对象的属性特征。
在更具体的实施例中,当当前处理节点可以为用户节点时,所述属性特征可以包括以下中的至少一项:年龄、职业、教育程度、所在地区、注册时长、人群标签;或者,当当前处理节点为物品节点时,所述属性特征包括以下中的至少一项:物品类别、上架时间、评论数、销量。
进一步的,在一个实施例中,所述当前处理节点的节点特征还可以包括,该节点所对应的交互事件的事件行为特征。
根据一种实施方式,其中,所述自编码器中的lstm层配置用于:
将所述当前处理节点的节点特征,分别与两个子节点的隐含向量组合,并分别输入第一变换函数和第二变换函数,得到2个第一变换向量和2个第二变换向量;
将所述两个子节点中第i子节点的用于辅助运算的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;
将所述当前处理节点的节点特征连同所述两个子节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量;
基于所述当前处理节点的中间向量和第四变换向量,确定所述当前处理节点的隐含向量。
根据另一实施方式,所述lstm层配置用于,根据所述当前处理节点的节点特征,所述两个子节点的隐含向量,以及该当前处理节点所在交互事件的第一交互时间与所述两个子节点所在交互事件的第二交互时间之间的时间差,确定所述当前处理节点的隐含向量。
在该实施方式的一个实施例中,所述lstm层具体配置用于:
将所述当前处理节点的节点特征和所述时间差,与所述两个子节点的隐含向量分别组合,输入第一变换函数,得到2个第一变换向量;
将所述节点特征与所述两个子节点的隐含向量分别组合,输入第二变换函数,得到2个第二变换向量;
将所述两个子节点中第i子节点的用于辅助运算的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;
将所述当前处理节点的节点特征连同所述两个子节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量;
基于所述当前处理节点的中间向量和第四变换向量,确定所述当前处理节点的隐含向量。
在一个实施例中,所述反向子图形成单元165进一步包括(未示出):
第一反向模块,配置为将所述第一样本子图中节点间的父子关系反向,形成以所述第一样本节点为叶节点的第一反向子图;
第二反向模块,配置为将所述第二样本子图中节点间的父子关系反向,形成以所述第二样本节点为叶节点的第二反向子图;
合并模块,配置为合并所述第一反向子图和所述第二反向子图中共同的节点,形成合并子图;
添加模块,配置为在所述合并子图中,对于仅有一个子节点的节点,为其添加缺省子节点,由此形成所述反向样本子图。
在具体实施例中,反向样本子图的叶节点包括对应于所述第一样本节点的第一叶节点,和对应于所述第二样本节点的第二叶节点;根据一种实施方式,所述第一叶节点的隐含向量为所述第一样本向量,所述第二叶节点的隐含向量为所述第二样本向量。
根据另一种实施方式,所述反向子图处理单元166配置为,基于该第一叶节点的节点特征,以及将所述第一样本向量和所述第二样本向量作为两个子节点的隐含向量而确定第一叶节点的隐含向量;基于该第二叶节点的节点特征,以及将所述第一样本向量和所述第二样本向量作为两个子节点的隐含向量而确定所述第二叶节点的隐含向量。
在一个实施例中,自编码器包括多个lstm层,其中,上一lstm层确定出的所述当前处理节点的隐含向量,输入到下一lstm层作为该当前处理节点的节点特征。
在这样的情况下,所述更新单元167可以配置为:
对于所述样本节点集中的各个节点,确定所述多个lstm层中最后一个lstm层输出的该节点的隐含向量,与输入到第一个lstm层的该节点的节点特征之间的距离;
根据所述各个节点对应的距离的综合结果,确定预测损失。
根据又一方面的实施例,提供了一种利用自编码器评估交互事件的装置,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。图17示出根据一个实施例的评估交互事件的装置的示意性框图。如图17所示,该评估装置170包括:
交互图获取单元171,配置为获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
目标子图获取单元172,配置为以待分析的目标事件所对应的第一目标节点、第二目标节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一目标子图和第二目标子图;
编码器获取单元173,配置为获取利用前述训练装置训练得到的自编码器;
目标子图处理单元174,配置为分别将所述第一目标子图和第二目标子图输入到所述自编码器,得到第一目标节点对应的第一目标向量,和第二目标节点对应的第二目标向量;
反向子图形成单元175,配置为通过将第一目标子图和第二目标子图中节点间的父子关系反向,并将反向后的子图合并,形成反向目标子图;所述反向目标子图包括所述第一目标子图和第二目标子图中节点的并集形成的目标节点集;
反向子图处理单元176,配置为将所述反向目标子图输入所述自编码器,得到所述目标节点集中各个节点的隐含向量;其中所述反向目标子图的叶节点的隐含向量根据所述第一目标向量和第二目标向量确定;
综合单元177,配置为确定所述目标节点集中各个节点的隐含向量与其节点特征之间的距离的综合结果;
评估单元178,配置为根据所述综合结果与预定阈值的比较,评估所述目标事件是否为预定类别的事件。
在一个实施例中,所述目标事件为假设发生的事件,所述预定类别的事件为确定发生的事件。
在另一实施例中,所述目标事件为已发生事件,所述预定类别的事件为确认安全的事件。
通过以上装置160,基于动态交互图,训练得到自编码器;通过以上装置170,可以利用训练得到的自编码器,对交互事件进行评估和分析。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2和图15所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2和图15所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
1.一种训练用于评估交互事件的自编码器的方法,所述方法包括:
获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
分别以预定类别的样本交互事件所对应的第一样本节点、第二样本节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一样本子图和第二样本子图;
获取待训练的自编码器,所述自编码器包括lstm层,所述lstm层根据输入子图中节点之间的父子关系,从叶节点到根节点依次迭代处理各个节点,其中所述迭代处理包括,至少根据当前处理节点的节点特征,及其两个子节点的隐含向量,确定该当前处理节点的隐含向量;
分别将所述第一样本子图和第二样本子图输入到所述自编码器,得到第一样本节点对应的第一样本向量,和第二样本节点对应的第二样本向量;
通过将第一样本子图和第二样本子图中节点间的父子关系反向,并将反向后的子图合并,形成反向样本子图;所述反向样本子图包括所述第一样本子图和第二样本子图中节点的并集形成的样本节点集;
将所述反向样本子图输入所述自编码器,得到所述样本节点集中各个节点的隐含向量,其中所述反向样本子图的叶节点的隐含向量根据所述第一样本向量和第二样本向量确定;
根据所述样本节点集中各个节点的隐含向量与其节点特征之间的距离的综合,确定预测损失,并在预测损失减小的方向,更新所述自编码器。
2.根据权利要求1所述的方法,其中,所述预定范围的节点包括:
预设数目k的连接边之内的k阶子节点;和/或
交互时间在预设时间范围内的子节点。
3.根据权利要求1所述的方法,其中,所述当前处理节点的节点特征包括,所述当前处理节点所对应的对象的属性特征。
4.根据权利要求3所述的方法,其中,
所述当前处理节点为用户节点,所述属性特征包括以下中的至少一项:年龄、职业、教育程度、所在地区、注册时长、人群标签;或者,
所述当前处理节点为物品节点,所述属性特征包括以下中的至少一项:物品类别、上架时间、评论数、销量。
5.根据权利要求3所述的方法,其中,所述当前处理节点的节点特征还包括,所述当前处理节点所对应的交互事件的事件行为特征。
6.根据权利要求1所述的方法,其中,所述确定该当前处理节点的隐含向量包括:
将所述当前处理节点的节点特征,分别与两个子节点的隐含向量组合,并分别输入第一变换函数和第二变换函数,得到2个第一变换向量和2个第二变换向量;
将所述两个子节点中第i子节点的用于辅助运算的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;
将所述当前处理节点的节点特征连同所述两个子节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量;
基于所述当前处理节点的中间向量和第四变换向量,确定所述当前处理节点的隐含向量。
7.根据权利要求1所述的方法,其中,所述迭代处理包括,根据所述当前处理节点的节点特征,所述两个子节点的隐含向量,以及该当前处理节点所在交互事件的第一交互时间与所述两个子节点所在交互事件的第二交互时间之间的时间差,确定所述当前处理节点的隐含向量。
8.根据权利要求7所述的方法,其中,所述确定当前处理节点的隐含向量包括:
将所述当前处理节点的节点特征和所述时间差,与所述两个子节点的隐含向量分别组合,输入第一变换函数,得到2个第一变换向量;
将所述节点特征与所述两个子节点的隐含向量分别组合,输入第二变换函数,得到2个第二变换向量;
将所述两个子节点中第i子节点的用于辅助运算的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;
将所述当前处理节点的节点特征连同所述两个子节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量;
基于所述当前处理节点的中间向量和第四变换向量,确定所述当前处理节点的隐含向量。
9.根据权利要求1所述的方法,其中,所述形成反向样本子图包括:
将所述第一样本子图中节点间的父子关系反向,形成以所述第一样本节点为叶节点的第一反向子图;
将所述第二样本子图中节点间的父子关系反向,形成以所述第二样本节点为叶节点的第二反向子图;
合并所述第一反向子图和所述第二反向子图中共同的节点,形成合并子图;
在所述合并子图中,对于仅有一个子节点的节点,为其添加缺省子节点,由此形成所述反向样本子图。
10.根据权利要求1所述的方法,其中,所述反向样本子图的叶节点包括对应于所述第一样本节点的第一叶节点,和对应于所述第二样本节点的第二叶节点;所述第一叶节点的隐含向量为所述第一样本向量,所述第二叶节点的隐含向量为所述第二样本向量。
11.根据权利要求1所述的方法,其中,所述反向样本子图的叶节点包括对应于所述第一样本节点的第一叶节点,和对应于所述第二样本节点的第二叶节点;
所述第一叶节点的隐含向量基于该第一叶节点的节点特征,以及将所述第一样本向量和所述第二样本向量作为两个子节点的隐含向量而确定;所述第二叶节点的隐含向量基于该第二叶节点的节点特征,以及将所述第一样本向量和所述第二样本向量作为两个子节点的隐含向量而确定。
12.根据权利要求1所述的方法,其中,所述自编码器包括多个lstm层,其中,上一lstm层确定出的所述当前处理节点的隐含向量,输入到下一lstm层作为该当前处理节点的节点特征。
13.根据权利要求12所述的方法,其中,根据所述样本节点集中各个节点的隐含向量与其节点特征之间的距离的综合,确定预测损失,包括:
对于所述样本节点集中的各个节点,确定所述多个lstm层中最后一个lstm层输出的该节点的隐含向量,与输入到第一个lstm层的该节点的节点特征之间的距离;
根据所述各个节点对应的距离的综合结果,确定预测损失。
14.一种利用自编码器评估交互事件的方法,所述方法包括:
获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
以待分析的目标事件所对应的第一目标节点、第二目标节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一目标子图和第二目标子图;
获取根据权利要求1的方法训练得到的自编码器;
分别将所述第一目标子图和第二目标子图输入到所述自编码器,得到第一目标节点对应的第一目标向量,和第二目标节点对应的第二目标向量;
通过将第一目标子图和第二目标子图中节点间的父子关系反向,并将反向后的子图合并,形成反向目标子图;所述反向目标子图包括所述第一目标子图和第二目标子图中节点的并集形成的目标节点集;
将所述反向目标子图输入所述自编码器,得到所述目标节点集中各个节点的隐含向量;其中所述反向目标子图的叶节点的隐含向量根据所述第一目标向量和第二目标向量确定;
确定所述目标节点集中各个节点的隐含向量与其节点特征之间的距离的综合结果;
根据所述综合结果与预定阈值的比较,评估所述目标事件是否为预定类别的事件。
15.根据权利要求14所述的方法,其中,所述目标事件为假设发生的事件,所述预定类别的事件为确定发生的事件。
16.根据权利要求14所述的方法,其中,所述目标事件为已发生事件,所述预定类别的事件为确认安全的事件。
17.一种训练用于评估交互事件的自编码器的装置,所述装置包括:
交互图获取单元,配置为获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
样本子图获取单元,配置为分别以预定类别的样本交互事件所对应的第一样本节点、第二样本节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一样本子图和第二样本子图;
编码器获取单元,配置为获取待训练的自编码器,所述自编码器包括lstm层,所述lstm层根据输入子图中节点之间的父子关系,从叶节点到根节点依次迭代处理各个节点,其中所述迭代处理包括,至少根据当前处理节点的节点特征,及其两个子节点的隐含向量,确定该当前处理节点的隐含向量;
样本子图处理单元,配置为分别将所述第一样本子图和第二样本子图输入到所述自编码器,得到第一样本节点对应的第一样本向量,和第二样本节点对应的第二样本向量;
反向子图形成单元,配置为通过将第一样本子图和第二样本子图中节点间的父子关系反向,并将反向后的子图合并,形成反向样本子图;所述反向样本子图包括所述第一样本子图和第二样本子图中节点的并集形成的样本节点集;
反向子图处理单元,配置为将所述反向样本子图输入所述自编码器,得到所述样本节点集中各个节点的隐含向量,其中所述反向样本子图的叶节点的隐含向量根据所述第一样本向量和第二样本向量确定;
更新单元,配置为根据所述样本节点集中各个节点的隐含向量与其节点特征之间的距离的综合,确定预测损失,并在预测损失减小的方向,更新所述自编码器。
18.根据权利要求17所述的装置,其中,所述预定范围的节点包括:
预设数目k的连接边之内的k阶子节点;和/或
交互时间在预设时间范围内的子节点。
19.根据权利要求17所述的装置,其中,所述当前处理节点的节点特征包括,所述当前处理节点所对应的对象的属性特征。
20.根据权利要求19所述的装置,其中,
所述当前处理节点为用户节点,所述属性特征包括以下中的至少一项:年龄、职业、教育程度、所在地区、注册时长、人群标签;或者,
所述当前处理节点为物品节点,所述属性特征包括以下中的至少一项:物品类别、上架时间、评论数、销量。
21.根据权利要求19所述的装置,其中,所述当前处理节点的节点特征还包括,所述当前处理节点所对应的交互事件的事件行为特征。
22.根据权利要求17所述的装置,其中,所述lstm层配置用于:
将所述当前处理节点的节点特征,分别与两个子节点的隐含向量组合,并分别输入第一变换函数和第二变换函数,得到2个第一变换向量和2个第二变换向量;
将所述两个子节点中第i子节点的用于辅助运算的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;
将所述当前处理节点的节点特征连同所述两个子节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量;
基于所述当前处理节点的中间向量和第四变换向量,确定所述当前处理节点的隐含向量。
23.根据权利要求17所述的装置,其中,所述lstm层配置用于,根据所述当前处理节点的节点特征,所述两个子节点的隐含向量,以及该当前处理节点所在交互事件的第一交互时间与所述两个子节点所在交互事件的第二交互时间之间的时间差,确定所述当前处理节点的隐含向量。
24.根据权利要求23所述的装置,其中,所述lstm层配置用于:
将所述当前处理节点的节点特征和所述时间差,与所述两个子节点的隐含向量分别组合,输入第一变换函数,得到2个第一变换向量;
将所述节点特征与所述两个子节点的隐含向量分别组合,输入第二变换函数,得到2个第二变换向量;
将所述两个子节点中第i子节点的用于辅助运算的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到2个操作结果,将该2个操作结果求和,得到组合向量;
将所述当前处理节点的节点特征连同所述两个子节点的隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;
基于所述组合向量和第三变换向量,确定所述当前处理节点的中间向量;
基于所述当前处理节点的中间向量和第四变换向量,确定所述当前处理节点的隐含向量。
25.根据权利要求17所述的装置,其中,所述反向子图形成单元包括:
第一反向模块,配置为将所述第一样本子图中节点间的父子关系反向,形成以所述第一样本节点为叶节点的第一反向子图;
第二反向模块,配置为将所述第二样本子图中节点间的父子关系反向,形成以所述第二样本节点为叶节点的第二反向子图;
合并模块,配置为合并所述第一反向子图和所述第二反向子图中共同的节点,形成合并子图;
添加模块,配置为在所述合并子图中,对于仅有一个子节点的节点,为其添加缺省子节点,由此形成所述反向样本子图。
26.根据权利要求17所述的装置,其中,所述反向样本子图的叶节点包括对应于所述第一样本节点的第一叶节点,和对应于所述第二样本节点的第二叶节点;所述第一叶节点的隐含向量为所述第一样本向量,所述第二叶节点的隐含向量为所述第二样本向量。
27.根据权利要求17所述的装置,其中,所述反向样本子图的叶节点包括对应于所述第一样本节点的第一叶节点,和对应于所述第二样本节点的第二叶节点;
所述反向子图处理单元配置为,基于该第一叶节点的节点特征,以及将所述第一样本向量和所述第二样本向量作为两个子节点的隐含向量而确定第一叶节点的隐含向量;基于该第二叶节点的节点特征,以及将所述第一样本向量和所述第二样本向量作为两个子节点的隐含向量而确定所述第二叶节点的隐含向量。
28.根据权利要求17所述的装置,其中,所述自编码器包括多个lstm层,其中,上一lstm层确定出的所述当前处理节点的隐含向量,输入到下一lstm层作为该当前处理节点的节点特征。
29.根据权利要求28所述的装置,其中,所述更新单元配置为:
对于所述样本节点集中的各个节点,确定所述多个lstm层中最后一个lstm层输出的该节点的隐含向量,与输入到第一个lstm层的该节点的节点特征之间的距离;
根据所述各个节点对应的距离的综合结果,确定预测损失。
30.一种利用自编码器评估交互事件的装置,所述装置包括:
交互图获取单元,配置为获取反映交互事件关联关系的动态交互图,其中包括多对节点,每对节点代表一个交互事件中的两个对象,任意节点i通过连接边与两个子节点相连,该两个子节点为该节点i所代表的对象参与的上一交互事件对应的两个节点;
目标子图获取单元,配置为以待分析的目标事件所对应的第一目标节点、第二目标节点为根节点,在所述动态交互图中确定出从根节点出发,经由连接边到达的预定范围的节点所形成的第一目标子图和第二目标子图;
编码器获取单元,配置为获取利用权利要求17的装置训练得到的自编码器;
目标子图处理单元,配置为分别将所述第一目标子图和第二目标子图输入到所述自编码器,得到第一目标节点对应的第一目标向量,和第二目标节点对应的第二目标向量;
反向子图形成单元,配置为通过将第一目标子图和第二目标子图中节点间的父子关系反向,并将反向后的子图合并,形成反向目标子图;所述反向目标子图包括所述第一目标子图和第二目标子图中节点的并集形成的目标节点集;
反向子图处理单元,配置为将所述反向目标子图输入所述自编码器,得到所述目标节点集中各个节点的隐含向量;其中所述反向目标子图的叶节点的隐含向量根据所述第一目标向量和第二目标向量确定;
综合单元,配置为确定所述目标节点集中各个节点的隐含向量与其节点特征之间的距离的综合结果;
评估单元,配置为根据所述综合结果与预定阈值的比较,评估所述目标事件是否为预定类别的事件。
31.根据权利要求30所述的装置,其中,所述目标事件为假设发生的事件,所述预定类别的事件为确定发生的事件。
32.根据权利要求30所述的装置,其中,所述目标事件为已发生事件,所述预定类别的事件为确认安全的事件。
33.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-16中任一项的所述的方法。
34.一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-16中任一项所述的方法。
技术总结