利用LSTM神经网络模型处理交互数据的方法及装置与流程

文档序号:20920669发布日期:2020-05-29 14:06阅读:276来源:国知局
利用LSTM神经网络模型处理交互数据的方法及装置与流程

本说明书一个或多个实施例涉及机器学习领域,尤其涉及利用机器学习处理交互数据的方法和装置。



背景技术:

在许多场景下,需要对用户交互事件进行分析和处理。交互事件是互联网事件的基本组成元素之一,例如,用户浏览页面时的点击行为,可以视为用户与页面内容区块之间的交互事件,电商中的购买行为可以视为用户与商品之间的交互事件,账户间转账行为则是用户与用户之间的交互事件。用户的一系列交互事件中蕴含了用户的细粒度习惯偏好等特点,以及交互对象的特点,是机器学习模型的重要特征来源。因此,在许多场景下,希望根据交互事件对交互参与方进行特征表达和建模。

然而,交互事件涉及交互双方,并且各个参与方本身的状态可以是动态变化的,因此,综合考虑交互参与方的多方面特点对其进行准确的特征表达非常困难。由此,希望能有改进的方案,更为有效地对交互事件中的交互对象进行分析处理,以得到适于后续业务分析的特征向量。



技术实现要素:

本说明书一个或多个实施例描述了处理交互数据的方法和装置,其中利用lstm神经网络模型,考虑交互对象参与的交互事件以及交互事件中其他对象的影响,将交互对象处理为隐含特征,从而进行后续业务处理分析。

根据第一方面,提供了一种处理交互数据的方法,所述方法包括:

获取根据交互事件集构建的动态交互图,其中,所述交互事件集包括多个交互事件,每个交互事件至少包括,发生交互行为的两个对象和交互时间;所述动态交互图包括任意的第一节点,所述第一节点对应于发生在第一时间的交互事件中的第一对象,所述第一节点通过连接边指向n个关联事件所对应的m个关联节点,所述n个关联事件均发生于第二时间,且均包含所述第一对象作为交互对象之一,所述第二时间为,从所述第一时间向前回溯,所述第一对象发生交互行为的前一时间;所述动态交互图中包括至少一个关联节点数目大于2的多元节点;

在所述动态交互图中,确定与待分析的当前节点对应的当前子图,所述当前子图包括从当前节点出发,经由连接边到达的预定范围内的节点;

将所述当前子图输入神经网络模型,所述神经网络模型包括lstm层,所述lstm层根据所述当前子图中各个节点之间的连接边的指向关系,依次迭代处理各个节点,从而得到所述当前节点的隐含向量;其中所述各个节点包括第二节点,所述依次迭代处理各个节点包括,至少根据所述第二节点的节点特征,该第二节点所指向的k个关联节点各自的中间向量和隐含向量,确定所述第二节点的隐含向量和中间向量;

根据所述当前节点的隐含向量,进行与所述当前节点相关的业务处理。

根据一种实施方式,上述对象包括用户,所述交互事件包括以下中的至少一种:点击事件,社交事件,交易事件。

在一个实施例中,上述m个关联节点为2n个节点,分别对应于所述n个关联事件中各个关联事件所包括的两个对象;或者,在另一实施例中,m个关联节点为n+1个节点,分别对应于所述n个关联事件中与所述第一对象交互的n个其他对象,以及所述第一对象自身。

在不同实施方式中,上述预定范围内的节点可以包括,预设阶数k的连接边之内的节点;和/或,交互时间在预设时间范围内的节点。

在一个实施例中,每个交互事件还包括,交互行为的行为特征;在这样的情况下,所述第二节点的节点特征可以包括,第二节点所对应的对象的属性特征,以及所述第二节点在所对应的交互时间中参与的交互事件的行为特征。

在一个实施例中,可以通过以下方式,确定第二节点的隐含向量和中间向量:将所述第二节点的节点特征,分别与所述k个关联节点对应的k个隐含向量组合,输入算法相同、参数不同的第一变换函数和第二变换函数,分别得到k个第一变换向量和k个第二变换向量;将所述k个关联节点中第i关联节点的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到k个操作结果,将该k个操作结果求和,得到组合向量;将所述第二节点的节点特征连同所述k个隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;基于所述组合向量和第三变换向量,确定所述第二节点的中间向量;基于所述第二节点的中间向量和第四变换向量,确定所述第二节点的隐含向量。

根据一种实施方式,依次迭代处理各个节点可以包括,根据所述第二节点的节点特征,该第二节点所指向的k个关联节点各自的中间向量和隐含向量,以及该第二节点对应的交互时间与所述k个关联节点对应的交互时间之间的时间差,确定所述第二节点的隐含向量和中间向量。

在上述实施方式的一个实施例中,可以通过以下方式,确定第二节点的隐含向量和中间向量:将第二节点的节点特征和所述时间差,与所述k个关联节点对应的k个隐含向量分别组合,输入第一变换函数,得到k个第一变换向量;将所述第二节点的节点特征与所述k个关联节点对应的k个隐含向量分别组合,输入第二变换函数,得到k个第二变换向量;将所述k个关联节点中第i关联节点的中间向量,与对应的第i第一变换向量,第i第二变换向量进行组合操作,得到k个操作结果,将该k个操作结果求和,得到组合向量;将所述第二节点的节点特征连同所述k个隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;基于所述组合向量和第三变换向量,确定所述第二节点的中间向量;基于所述第二节点的中间向量和第四变换向量,确定所述第二节点的隐含向量。

在上述实施方式的另一实施例中,可以通过以下方式,确定第二节点的隐含向量和中间向量:将第二节点的节点特征和所述时间差,与所述k个关联节点对应的k个隐含向量分别组合后,输入算法相同、参数不同的第一变换函数和第二变换函数,分别得到k个第一变换向量和k个第二变换向量;将所述k个关联节点中第i关联节点的中间向量,与对应的第i第一变换向量,第i第二变换向量进行组合操作,得到k个操作结果,将该k个操作结果求和,得到组合向量;将所述第二节点的节点特征连同所述k个隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;基于所述组合向量和第三变换向量,确定所述第二节点的中间向量;基于所述第二节点的中间向量和第四变换向量,确定所述第二节点的隐含向量。

根据一种实施方式,神经网络模型可以包括多个lstm层,其中,上一lstm层确定出的所述第二节点的隐含向量,输入到下一lstm层作为该第二节点的节点特征。

在上述实施方式的一个实施例中,所述神经网络模型将所述多个lstm层各自输出的当前节点的隐含向量进行综合,得到所述当前节点的最终隐含向量。

在上述实施方式的另一实施例中,所述神经网络模型将所述多个lstm层中最后一个lstm层输出的当前节点的隐含向量,作为所述当前节点的最终隐含向量。

根据一个实施例,所述神经网络模型通过以下方式训练:获取历史交互事件,其中包括第一样本对象和第二样本对象;在所述动态交互图中,分别确定与所述第一样本对象对应的第一子图,和与所述第二样本对象对应的第二子图;将所述第一子图和所述第二子图分别输入所述神经网络模型,分别得到所述第一样本对象的隐含向量和第二样本对象的隐含向量;根据所述第一样本对象的隐含向量和第二样本对象的隐含向量,预测所述第一样本对象和第二样本对象是否会发生交互,得到预测结果;根据所述预测结果,确定预测损失;根据所述预测损失,更新所述神经网络模型。

根据另一实施例,所述神经网络模型通过以下方式训练:从所述交互事件集涉及的多个样本对象中选择样本对象,并获取该样本对象的分类标签;在所述动态交互图中,确定与该样本对象对应的样本子图;将所述样本子图输入所述神经网络模型,得到所述样本对象的隐含向量;根据所述样本对象的隐含向量,预测所述样本对象的分类,得到预测结果;根据所述预测结果和所述分类标签,确定预测损失;根据所述预测损失,更新所述神经网络模型。

根据第二方面,提供一种处理交互数据的装置,所述装置包括:

交互图获取单元,配置为获取根据交互事件集构建的动态交互图,其中,所述交互事件集包括多个交互事件,每个交互事件至少包括,发生交互行为的两个对象和交互时间;所述动态交互图包括任意的第一节点,所述第一节点对应于发生在第一时间的交互事件中的第一对象,所述第一节点通过连接边指向n个关联事件所对应的m个关联节点,所述n个关联事件均发生于第二时间,且均包含所述第一对象作为交互对象之一,所述第二时间为,从所述第一时间向前回溯,所述第一对象发生交互行为的前一时间;所述动态交互图中包括至少一个关联节点数目大于2的多元节点;

子图确定单元,配置为在所述动态交互图中,确定与待分析的当前节点对应的当前子图,所述当前子图包括从当前节点出发,经由连接边到达的预定范围内的节点;

子图处理单元,配置为将所述当前子图输入神经网络模型,所述神经网络模型包括lstm层,所述lstm层根据所述当前子图中各个节点之间的连接边的指向关系,依次迭代处理各个节点,从而得到所述当前节点的隐含向量;其中所述各个节点包括第二节点,所述依次迭代处理各个节点包括,至少根据所述第二节点的节点特征,该第二节点所指向的k个关联节点各自的中间向量和隐含向量,确定所述第二节点的隐含向量和中间向量;

业务处理单元,配置为根据所述当前节点的隐含向量,进行与所述当前节点相关的业务处理。

根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。

根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。

根据本说明书实施例提供的方法和装置,基于交互事件集构建动态交互图,该动态交互图反映了各个交互事件的时序关系,以及交互对象之间通过各个交互事件传递的相互影响。考虑实践操作中交互事件同时发生的可能性,该动态交互图允许节点连接到不限数目的关联节点,由此形成混合多元的交互图。利用训练的lstm神经网络模型,基于该动态交互图中与待分析交互对象相关的子图,可以提取得到该交互对象的隐含向量。如此得到的隐含向量中引入了各个交互事件中其他交互对象对其的影响,从而可以综合全面地表达该交互对象的深层特征,用于进行业务处理。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。

图1a示出在一个例子中的交互关系二部图;

图1b示出在另一例子中的交互关系网络图;

图2示出根据一个实施例的实施场景示意图;

图3示出根据一个实施例的处理交互数据的方法流程图;

图4示出根据一个实施例构建的动态交互图;

图5示出根据另一个实施例构建的动态交互图;

图6示出在一个实施例中当前子图的示例;

图7示出在另一个实施例中当前子图的示例;

图8示出lstm层的工作示意图;

图9示出根据一个实施例lstm层的结构;

图10示出根据另一实施例的lstm层的结构;

图11示出根据又一实施例的lstm层的结构;

图12示出在一个实施例中训练神经网络模型的流程图;

图13示出在另一实施例中训练神经网络模型的流程图;

图14示出根据一个实施例的处理交互数据的装置的示意性框图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

如前所述,希望能够基于交互事件,对交互事件的参与方,即交互对象进行特征表达和建模。

在一种方案中,基于历史交互事件构建静态的交互关系网络图,从而基于该交互关系网络图,分析各个交互对象。具体地,可以以各个历史事件的参与者作为节点,在存在交互关系的节点之间建立连接边,从而形成上述交互网络图。

图1a和图1b分别示出在具体例子中的交互关系网络图。更具体而言,图1a示出一个二部图,其中包含用户节点(u1-u4)和商品节点(v1-v3),如果某个用户购买过某件商品,则在该用户和该商品之间构建一条连接边。图1b示出一个用户转账关系图,其中每个节点代表一个用户,发生过转账记录的两个用户之间存在连接边。

然而,可以看到,图1a和图1b尽管示出了对象之间的交互关系,但是没有包含这些交互事件的时序信息。简单地基于这样的交互关系网络图进行图嵌入,获得的特征向量也没有表达出交互事件的时间信息对节点的影响。并且,这样的静态图可扩展性不够强,对于新增交互事件和新增节点的情况,难以灵活进行处理。

在另一方案中,对于各个待分析的交互对象,构建该对象的行为序列,基于该行为序列,提取该对象的特征表达。然而,这样的行为序列仅表征了待分析对象本身的行为,而交互事件是多方参与的事件,参与者之间会通过交互事件间接传递影响。因此,这样的方式没有表达出交互事件中的参与对象之间的影响。

综合考虑以上因素,根据本说明书的一个或多个实施例,将动态变化的交互事件集合构建成动态交互图,其中各个交互事件中涉及的各个交互对象对应于该动态交互图中的各个节点。任意节点连接到若干关联节点,其中关联节点为该任意节点所对应的对象上次参与的交互事件对应的节点。对于待分析的交互对象,从该动态交互图中得到对应节点相关的子图部分,将该子图部分输入基于lstm的神经网络模型,得到该交互对象的特征向量表达。

图2示出根据一个实施例的实施场景示意图。如图2所示,可以获取发生的多个交互事件所构成的交互事件集。更具体的,该交互事件集可以是将多个交互事件按时间顺序组织成的交互事件序列<e1,e2,…,en>,其中每个元素ei表示一个交互事件,可以表示为交互特征组的形式ei=(ai,bi,ti),其中ai和bi是事件ei的两个交互对象,ti是交互时间。由于时间测量的精度等因素,允许在同一时间发生多个交互事件。

根据本说明书的实施例,基于该交互事件集构建动态交互图200。在图200中,将各个交互事件中的各个交互对象ai,bi用节点表示,并在包含同一对象的事件之间建立连接边。由于允许同时发生多个交互事件,动态交互图200中包含至少一个多元节点,该多元节点可以连接到3个或更多的关联节点。动态交互图200的结构将在后续进行更具体的描述。

对于某个待分析的交互对象,可以确定出其在动态交互图中对应的当前节点,并得到动态交互图中与该当前节点有关的当前子图。一般地,当前子图包括从当前节点出发,经过连接边可以达到的一定范围的节点。当前子图反映了,与当前交互对象直接或间接关联的交互事件中的其他对象对当前节点带来的影响。

然后,将当前子图输入到基于长短期记忆lstm的神经网络模型,通过该模型,输出得到当前交互对象的特征向量。如此得到的特征向量,可以抽取出相关联的交互事件的时间信息和各交互事件中的交互对象之间的影响,从而更准确地表达当前交互对象的深层特征。这样的特征向量可以在后续应用于各种机器学习模型和各种业务处理场景。例如,可以基于如此得到的特征向量进行强化学习,也可以基于该特征向量进行聚类分析,例如,将用户聚类为人群。还可以基于这样的特征向量进行分类预测,例如,预测两个对象之间是否会发生交互(比如某个用户是否会购买某个商品),预测某个对象的业务类型(比如某个用户的风险层级),等等。

下面描述以上构思的具体实现方式。

图3示出根据一个实施例的处理交互数据的方法流程图。可以理解,可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。下面结合具体实施例,对如图3所示的处理交互数据的方法中的各个步骤进行描述。

首先,在步骤31,获取根据交互事件集构建的动态交互图。

如前所述,可以获取多个交互事件构成的交互事件集,其中每个交互事件具有两个交互对象和交互时间。因此,任意交互事件ei可以表示为一个交互特征组ei=(ai,bi,ti),其中ai和bi是事件ei的两个交互对象,例如称为第一对象和第二对象,ti是交互时间。

例如,在电商平台中,交互事件可以是用户的购买行为,其中的第一对象可以是某个用户,第二对象可以是某个商品。在另一例子中,交互事件可以是用户对页面区块的点击行为,其中的第一对象可以是某个用户,第二对象可以是某个页面区块。在又一例子中,交互事件可以是交易事件,例如一个用户向另一用户转账,或者一个用户向一个店铺或平台进行支付。在另外一个例子中,交互事件可以是用户通过社交平台发生的社交事件,例如聊天、通话、发红包等等。在其他业务场景中,交互事件还可以是其他在两个对象之间发生的交互行为。

在一个实施例中,根据交互事件的特点,发生交互的两个对象可以是不同类型的对象,例如称为第一类对象和第二类对象。例如,在交互事件为电商平台中的购买行为时,其中的第一类对象可以是某个用户,第二类对象可以是某个商品。在另一些实施例中,交互事件涉及的两个对象可以是同类对象。例如,在即时通讯场景中,交互事件可以是两个用户之间进行了一次即时通讯。此时,第一对象和第二对象均为用户,属于同类对象。在又一些实施例中,可以根据业务的需要,来设定是否区分两个交互对象的类型。例如,对于转账交互事件,在前述例子中,可以认为两个用户属于同类对象。在其他例子中,也可以根据业务需要,将金额转出方用户认为是第一类对象,将接收方用户认为是第二类对象。

进一步的,在一个实施例中,每个交互事件对应的交互特征组还可以包括事件特征或行为特征f,如此,每个交互特征组可以表示为xi=(ai,bi,ti,f)。具体的,事件特征或行为特征f可以包括交互事件发生的背景和上下文信息,交互行为的一些属性特征,等等。

例如,在交互事件为用户点击事件的情况下,事件特征f可以包括,用户进行点击所使用的终端的类型,浏览器类型,app版本,等等;在交互事件为交易事件的情况下,事件特征f可以包括,例如,交易类型(商品购买交易、转账交易等),交易金额,交易渠道等等。

以上描述了交互事件以及事件中的交互对象ai,bi的举例。

对于交互时间ti,需要理解,实际操作中总是会以一个适当的时长为单位对时间进行测量和记录。例如,在一些服务平台,记录交互时间的单位时长可以是小时h,或者分钟m。于是,在该单位时长之内很可能会发生多个交互事件。即使是以较短的时长为单位,例如秒s甚至毫秒ms,对于一些交互非常频繁的服务平台,例如支付宝,仍然会不可避免地出现,单位时长内多个交互事件的情况。

此外,还存在一些批量交互的情况。例如,用户预先编辑了一条消息,并选中了一个好友群,然后进行批量群发的操作。这相当于同时发起与多个好友的交互事件。又例如,用户在购物车中添加了多件商品,然后选择了批量结算,这相当于同时发起与多个商品的交互事件。

至少出于以上两个方面的原因,往往会出现多个交互事件所记录的交互时间相同的情况。对于这样的情况,本文中有时简称为同时发生的多个交互事件,而不区分其精确的时刻和先后。

在一个具体例子中,假定获取到了一个交互事件集s,该交互事件集s中的交互事件按照时间顺序排列,并以交互特征组的形式表示,可以记录为如下:

其中,a,b,c,d,e,f,u,v为交互对象,交互事件e2和e3均发生于t2时间,交互事件e4,e5和e6均发生于t3时间,交互事件e7和e8均发生于t4时间。

对于以上所述的交互事件集,可以构建动态交互图,来刻画各个交互事件以及交互对象之间的关联关系。具体的,可以将各个时间发生的交互事件中包含的对象作为动态交互图的节点。如此,一个节点可以对应在一个时间下发生交互行为的一个对象,但是同一实体对象可能对应到多个节点。例如,实体对象v在t6时间与对象u进行交互,可以对应构建节点v(t6),在t5时间与对象c进行交互,可以对应构建节点v(t5)。因此可以认为,动态交互图中的节点对应于在一定交互时间下的交互对象,或者说,对应于该交互对象在一定交互时间下的状态。

对于动态交互图中的每个节点,按照以下方式构建连接边:对于任意节点i,简单起见将其称为第一节点;假定其对应于第一交互时间t下的第一对象,那么在交互事件序列中,从第一交互时间t向前回溯,也就是向早于第一交互时间t的方向回溯,确定出第一对象发生交互行为的上一时间为第二时间(t-),将第二时间中发生的、该第一对象参与的n个交互事件作为第一节点的n个关联事件,将n个关联事件对应的m个节点作为关联节点,建立从第一节点i指向m个关联节点的连接边。由于存在同一时间发生多个交互事件的可能,因此,n可能大于1。如此,动态交互图中可以包括多元节点,即,所连接的关联节点数目大于2的节点。

在一个实施例中,在构建动态交互图时,为每个交互事件的两个对象都分别建立对应节点。如此,前述的n个关联事件对应2n个节点,这2n个节点即作为前述m个关联节点。

图4示出根据一个实施例构建的动态交互图。具体的,图4左侧示出将前述交互事件集s按照时间顺序组织的交互序列示意图,右侧示出一个动态交互图。在该动态交互图中,将各个交互事件中的两个交互对象分别作为节点。下面以节点u(t6)和v(t6)为例,描述连接边的构建。

可以理解,该节点u(t6)表示时间t6下的对象u。于是,从时间t6出发向前回溯,可以确定出对象u上一次发生交互行为的时间为t4,在该时间t4中参与了2个关联事件e7和e8,即交互事件e7和e8均包含对象u作为交互对象之一。因此,关联事件e7和e8所对应的4个节点,即为节点u(t6)的关联节点。在图4中,为了区分事件e7和e8中的对象节点u,将其记为u1(t4)和u2(t4)。于是,建立从节点u(t6)指向其4个关联节点的连接边。

节点v(t6)表示时间t6下的对象v。于是,从时间t6出发向前回溯,可以确定出对象v上一次发生交互行为的时间为t5,在该时间t5中参与了1个关联事件e9。因此,关联事件e9所对应的2个节点v(t5)和c(t5),即为节点v(t6)的关联节点。于是,建立从节点v(t6)指向该2个关联节点的连接边。对于其他各个节点,均可以采用上述方式,确定出其关联事件和关联节点,从而建立指向关联节点的连接边。在图4所示的动态交互图中,节点u(t6),c(t5)都是多元节点。

在另一个实施例中,在构建动态交互图时,对于发生于同一时间的多个交互事件,确定出该多个交互事件所涉及的不同交互对象,为各个不同交互对象分别建立对应节点。也就是说,如果同一时间发生的多个交互事件中包含同样的对象,则仅为该同样的对象建立一个节点。如此,在建立连接边时,如果对应于第一对象的第一节点存在n个关联事件,那么这n个关联事件则对应n+1个关联节点,分别对应于第一对象自身,以及n个关联事件中与第一对象交互的n个其他对象。

图5示出根据另一个实施例构建的动态交互图。具体的,图5左侧示出前述交互事件集s,右侧示出一个动态交互图。在该动态交互图中,为同时发生的交互事件中不同的交互对象分别建立对应节点。图5的动态交互图与图4的相比,区别在于,将图4中发生于同一时间的多个交互事件中相同对象的节点合并为一个节点。例如,对于均发生于时间t4的两个交互事件e7,e8,其中涉及3个不同交互对象a,b,u,则为该时间下的交互事件建立3个节点a(t4),b(t4),u(t4)。这相当于将图4中的u1(t4)和u2(t4)合并为一个节点u(t4)。在这样的情况下,在一个示例中,可以通过节点之间的虚线双向箭头示出发生的交互关系,例如通过图5的虚线双向箭头可以示出,在t4时间,对象a与u存在交互行为,对象b与u存在交互行为,但是对象a和b之间没有交互行为。

下面仍以节点u(t6)和v(t6)为例,描述连接边的构建。

如前所述,节点u(t6)表示时间t6下的对象u。从时间t6出发向前回溯,可以确定出对象u上一次发生交互行为的时间为t4,在该时间t4中参与了2个关联事件e7和e8,即交互事件e7和e8均包含对象u作为交互对象之一。关联事件e7和e8对应的3个节点a(t4),b(t4),u(t4),为节点u(t6)的关联节点。于是,建立从节点u(t6)指向该3个关联节点的连接边。

从节点v(t6),可以建立指向关联事件e9所对应的2个节点v(t5)和c(t5)的连接边,该过程与结合图4的描述相同,不再赘述。对于图5中的其他各个节点,均可以采用上述方式,确定出其关联事件和关联节点,从而建立指向关联节点的连接边。在图5所示的动态交互图中,节点u(t6),c(t5)都是多元节点。

以上描述了基于交互事件集构建动态交互图的方式和过程。对于图3所示的处理交互数据的方法而言,构建动态交互图的过程可以预先进行也可以现场进行。相应地,在一个实施例中,在步骤31,根据交互事件集现场构建动态交互图。构建方式如以上所述。在另一实施例中,可以预先基于交互事件集构建形成动态交互图。在步骤31,读取或接收已形成的动态交互图。

可以理解,按照以上方式构建的动态交互图具有很强的可扩展性,可以非常容易地根据新增的交互事件进行动态更新。相应地,步骤31还可以包括更新动态交互图的过程。

具体地,可以获取基于已有交互事件集构建的已有动态交互图,然后随着时间的更新,不断检测更新时间中发生的新增交互事件,根据新增交互事件,更新已有动态交互图。

在一个实施例中,已有动态交互图采用图4的形式,每个交互事件对应两个节点。在这样的情况下,假定获取到第一更新时间发生的p个新增交互事件,那么,就在已有动态交互图中添加2p个新增节点,所述2p个新增节点分别对应于p个新增交互事件中各个新增交互事件包括的两个对象。然后,对于每个新增节点,按照前述方式,寻找其关联事件和关联节点。如果其存在关联节点,则添加从该新增节点指向其关联节点的连接边。

在另一实施例中,已有动态交互图采用图5的形式,同时发生的交互事件中不同对象对应不同节点。在这样的情况下,在获取到第一更新时间发生的p个新增交互事件后,首先确定该p个新增交互事件所涉及的q个不同对象。如果p个新增交互事件中不存在相同的交互对象,那么q=2p;如果p个新增交互事件中存在相同的交互对象,那么q<2p。接着,在已有动态交互图中添加q个新增节点,所述q个新增节点分别对应于q个不同对象。然后,对于每个新增节点,按照前述方式,寻找其关联事件和关联节点。如果其存在关联节点,则添加从该新增节点指向其关联节点的连接边。

综合以上,在步骤31,获取到基于交互事件集构建的动态交互图。

接着,在步骤32,在获取的动态交互图中,确定与待分析的当前节点对应的当前子图,所述当前子图包括从当前节点出发,经由连接边到达的预定范围内的节点。

当前节点是与待分析的交互对象对应的节点。然而如前所述,一个实体对象可以对应多个节点,表达该实体对象在不同时间下的状态。为了表达出待分析的交互对象的最新状态,在一个实施例中,选择这样的节点作为当前节点,即在动态交互图中,不存在指向该节点的连接边。也就是说,选择待分析对象最近发生交互行为的时间下对应的节点作为当前节点。例如,在图4和图5所示的动态交互图中,当想要分析交互对象u时,可以选择节点u(t6)作为当前节点。然而,这并不是必须的。在其他实施例中,例如为了训练的目的,也可以选择其他节点作为当前节点,例如,为了分析对象u也可以选择节点u(t4)作为当前节点。

从当前节点出发,经由连接边到达的预定范围内的节点,构成当前节点对应的当前子图。在一个实施例中,上述预定范围内的节点可以是,至多经过预设阶数k的连接边可达的节点。这里阶数k为预设的超参数,可以根据业务情况选取。可以理解,该预设阶数k体现了,在表达当前节点的信息时,向前回溯的历史交互事件的步数。数目k越大,则考虑越多阶次的历史交互信息。

在另一实施例中,上述预定范围内的节点还可以是,交互时间在预定时间范围内的节点。例如,从当前节点的交互时间向前回溯t时长(例如一天),在该时长范围内、且可通过连接边达到的节点。

在又一实施例中,上述预定范围既考虑连接边的数目,又考虑时间范围。换而言之,该预定范围内的节点是指,至多经过预设阶数k的连接边可达、且交互时间在预定时间范围内的节点。

简单起见,下面的例子中,以预设阶数k的连接边为例进行描述。

图6示出在一个实施例中当前子图的示例。在图6的例子中,假定图4中的u(t6)为当前节点,预设阶数k=2,那么从u(t6)出发,沿连接边的指向进行遍历,经由2级连接边可以达到的节点如图中灰色节点所示。这些灰色节点以及其间的连接关系即为当前节点u(t6)对应的当前子图。

图7示出在另一个实施例中当前子图的示例。在图7的例子中,假定图5中的u(t6)为当前节点,预设阶数k=2,那么从u(t6)出发,沿连接边的指向进行遍历,经由2级连接边可以达到的节点如图中灰色节点所示。这些灰色节点以及其间的连接关系即为当前节点u(t6)对应的当前子图。

接着,在步骤33,将当前子图输入神经网络模型,该神经网络模型包括lstm层。对于当前子图中的任意一个节点,为了表述的方便称为第二节点,lstm层进行以下处理:至少根据该第二节点的节点特征,该第二节点所指向的k个关联节点各自的中间向量和隐含向量,确定该第二节点的隐含向量和中间向量。如此,lstm层根据当前子图中各个节点之间的连接边的指向关系,依次迭代处理各个节点,从而得到当前节点的隐含向量。

图8示出lstm层的工作示意图。假定节点q指向k个关联节点:节点j1到节点jk。如图8所示,在t时刻,lstm层分别处理得到节点j1到节点jk的表示向量h1到hk,包括中间向量和隐含向量;在接下来的t+时刻,lstm层根据节点q的节点特征,之前处理得到的j1到jk的表示向量h1到hk,得到节点q的表示向量hq。可以理解,该节点q的表示向量可以在后续时刻,用于处理得到指向节点q的节点的表示向量,如此实现迭代处理。

结合图7的当前子图描述这一过程。对于图中各个最下层的节点,例如节点a(t2),在该当前子图中不考虑其指向节点,也就是认为a(t2)不具有关联节点。在这样的情况下,通过用缺省值(例如0)填补(padding)的方式产生该节点所指向的关联节点各自的中间向量c和隐含向量h。于是,lstm层基于该节点a(t2)的节点特征,以及缺省的关联节点的中间向量c和隐含向量h,确定节点a(t2)的中间向量c(a(t2))和隐含向量h(a(t2))。对于其他最下层节点也做同样的处理,得到其对应的中间向量和隐含向量。

对于中间层节点a(t4),其指向2个关联节点a(t2)和f(t2)。因此,lstm层根据该节点a(t4)本身的节点特征,以及其指向的2个关联节点a(t2)和f(t2)各自的中间向量和隐含向量,即c(a(t2)),h(a(t2)),c(f(t2))和h(f(t2)),确定节点a(t4)的中间向量c(a(t4))和h(a(t4))。对于其他中间层节点也做同样的处理,得到其对应的中间向量和隐含向量。

对于节点u(t6),其指向3个关联节点a(t4),u(t4)和b(t4)。因此,lstm层根据该节点u(t6)本身的节点特征,以及其指向的3个关联节点a(t4),u(t4)和b(t4)各自的中间向量和隐含向量,即c(a(t4)),h(a(t4)),c(u(t4)),h(u(t4)),c(b(t4))和h(b(t4)),确定节点u(t6)的中间向量c(u(t6))和h(u(t6))。

如此,层层迭代处理,可以得到当前节点u(t6)的中间向量和隐含向量。

下面描述为了实现以上的迭代处理,lstm层的内部结构和算法。

图9示出根据一个实施例lstm层的结构。在图9的示例中,当前处理的节点记为u(t),表示该节点u(t)的节点特征。在节点表示用户的情况下,节点特征可以包括用户的属性特征,例如年龄、职业、教育程度、所在地区,等等;在节点表示商品的情况下,节点特征可以包括商品的属性特征,例如商品类别、上架时间、销量等等。在节点表示其他交互对象的情况下,可以相应的获取到原始的节点特征。在交互事件的特征组中还包括事件特征或行为特征f的情况下,也可以在节点特征中包含该节点所对应的交互时间中所参与的各个交互事件的行为特征f。

假定节点u(t)指向k个关联节点,记为u1(t),u2(t),…,uk(t),每个关联节点对应具有中间向量c和隐含向量h。图9中示例性示出了k=3的例子,相应的,表示关联节点的中间向量,表示关联节点的隐含向量,在图9中i分别为1,2,3。但是可以理解,图9所示的计算关系可以适用于k为其他值的情况。例如,如果节点u(t)不具有真实的关联节点,则k=0,此时可以用缺省值,例如零向量,作为关联节点的中间向量和隐含向量;如果节点u(t)为二元节点,则k=2,此时可以将例如零向量的缺省值作为第三个关联节点u3(t)对应的中间节点和隐含向量;如果节点u(t)的关联节点数目大于3,则在图9所示的基础上进一步添加更多关联节点对应的中间向量和隐含向量作为输入。

lstm层对于输入其中的节点特征、中间向量和隐含向量进行以下运算。

将节点特征分别与k个关联节点对应的k个隐含向量(其中i为从1到k)组合,分别输入算法相同、参数不同的第一变换函数g和第二变换函数f,分别得到k个第一变换向量和k个第二变换向量。

更具体的,在一个例子中,第一变换函数g和第二变换函数f分别采用以下公式(1)和公式(2)计算:

以上公式(1)和公式(2)中,σ为激活函数,例如是sigmoid函数,为线性变换的参数矩阵,为偏移量参数。可以看到,公式(1)和(2)算法相同,仅参数不同。通过以上的变换函数,可以得到k个第一变换向量和k个第二变换向量。

当然,在其他例子中,也可以采用类似但不同的变换函数形式,例如选择不同的激活函数,修改以上公式中参数的形式和数目,等等。

然后,将k个关联节点中第i关联节点ui(t)的中间向量与对应的第i个第一变换向量和第i个第二变换向量进行组合操作,于是得到k个操作结果,将该k个操作结果求和,得到组合向量v。

具体的,在一个例子中,上述组合操作可以是,三个向量之间的按位相乘,即其中⊙符号表示按位相乘。在其他例子中,上述组合操作也可以是相加等其他向量操作。在组合操作为按位相乘的情况下,得到的组合向量v可以表示为:

此外,还将节点的节点特征连同k个隐含向量(其中i为从1到k),分别输入第三变换函数p和第四变换函数o,分别得到第三变换向量pu(t)和第四变换向量ou(t)。

具体的,在图9所示的例子中,第三变换函数p可以是,先求得向量zu(t)和su(t),再将zu(t)和su(t)进行组合操作,由此得到第三变换向量pu(t)。例如,在一个具体例子中:

pu(t)=zu(t)⊙su(t)(4)

其中,⊙表示按位相乘。

更具体的,zu(t)和su(t)可以按照以下公式计算:

其中,wz,ws和为线性变换的参数矩阵,bz和bs为偏移量参数。

第四变换函数o可以是,通过以下公式得到第四变换向量ou(t):

其中,wo和roi为线性变换的参数矩阵,bo为偏移量参数。

接着,基于上述组合向量v和第三变换向量pu(t),确定节点u(t)的中间向量cu(t)。例如,可以将组合向量v和第三变换向量pu(t)求和,得到u(t)的中间向量cu(t)。在一个具体的例子中,中间向量cu(t)可以表示为:

在其他例子中,也可以通过其他组合方式,例如加权求和,按位相乘,将组合向量v和第三变换向量进行组合,并根据组合结果得到中间向量cu(t)。

此外,基于如此得到的节点u(t)的中间向量cu(t)和第四变换向量ou(t),确定该节点u(t)的隐含向量hu(t)。

在图9所示的具体例子中,可以将中间向量cu(t)进行tanh函数运算后,与第四变换向量ou(t)进行组合,例如按位相乘,将组合结果作为该节点u(t)的隐含向量hu(t),即:

hu(t)=ou(t)⊙tanh(cu(t))(9)

于是,根据图9所示的结构和算法,lstm层根据当前处理节点u(t)的节点特征,该节点所指向的k个关联节点各自的中间向量和隐含向量,确定该节点u(t)的中间向量cu(t)和隐含向量hu(t)。

在一个实施例中,在迭代处理各个节点u(t)以确定其中间向量和隐含向量过程中,还进一步引入该当前处理节点u(t)对应的交互时间与所指向的k个关联节点对应的交互时间之间的时间差δ。具体的,假定当前处理节点u(t)对应于第一交互时间t1,那么,根据之前对动态交互图的描述,其连接的k个关联节点为,节点u(t)对应的对象上次参与的同时发生的若干交互事件对应的节点,该若干交互事件同时发生的时间记为第二交互时间t2。那么,上述时间差δ即为该第一交互时间t1和第二交互时间t2之间的时间差。如此,lstm层可以根据当前处理节点u(t)的节点特征,该节点u(t)所指向的k个关联节点各自的中间向量和隐含向量,以及上述时间差δ,确定该节点u(t)的隐含向量hu(t)和中间向量cu(t)。

更具体的,可以在图9所示的方式基础上,引入时间差δ的因素,类似的得到节点u(t)的隐含向量和中间向量。具体的,结合时间差的一种处理过程可以包括:

将第二节点u(t)的节点特征和上述时间差δ,与k个关联节点对应的k个隐含向量分别组合,输入第一变换函数g,得到k个第一变换向量;

将第二节点的节点特征分别与所述k个关联节点对应的k个隐含向量组合,输入第二变换函数f,得到k个第二变换向量;

将所述k个关联节点中第i关联节点的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到k个操作结果,将该k个操作结果求和,得到组合向量;

将第二节点的节点特征连同所述k个隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;

基于所述组合向量和第三变换向量,确定所述第二节点u(t)的中间向量cu(t);

基于所述第二节点的中间向量cu(t)和第四变换向量,确定第二节点u(t)的隐含向量hu(t)。

图10示出根据另一实施例的lstm层的结构。对比图10和图9可以看到,图10的结构和实现的算法与图9相似,只是在图9的基础上进一步引入了时间差δ(u,t)。在图10的例子中,时间差δ(u,t)和节点u(t)的节点特征一起,分别与各个关联节点的隐含向量组合,输入到第一变换函数g中。相应的,第一变换函数g可以修改为:

其中,公式(10)在公式(1)基础上进一步引入了对应于时间差δ(u,t)的时间项,相应的,mgi为针对时间项的参数,可以体现为一个向量。

图10中的其他变换函数,以及函数之间的运算过程,可以与结合图9所述的例子相同。

根据另一种实施方式,结合时间差的处理过程可以包括以下步骤:

将第二节点u(t)的节点特征和所述时间差δ,与k个关联节点对应的k个隐含向量分别组合后,输入算法相同、参数不同的第一变换函数g和第二变换函数f,分别得到k个第一变换向量和k个第二变换向量;

将k个关联节点中第i关联节点的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到k个操作结果,将该k个操作结果求和,得到组合向量;

将第二节点的节点特征连同所述k个隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;

基于所述组合向量和第三变换向量,确定所述第二节点u(t)的中间向量cu(t);

基于所述第二节点的中间向量cu(t)和第四变换向量,确定第二节点u(t)的隐含向量hu(t)。

图11示出根据又一实施例的lstm层的结构。可以看到,图11的lstm层同样引入了时间差δ(u,t),并且,对比于图10,图11中的时间差δ(u,t)还进一步输入到了第二变换函数f。也就是说,时间差δ(u,t)和节点u(t)的节点特征一起,分别与各个关联节点的隐含向量组合,分别输入到第一变换函数g和第二变换函数f中。

更具体的,图11中的第一变换函数g仍然可以采取公式(10)的形式。进一步的,第二变换函数f可以采取以下形式:

其中,公式(11)在公式(2)基础上进一步引入了对应于时间差δ(u,t)的时间项,相应的,mfi为针对时间项的参数,可以体现为一个向量。

图11中的其他变换函数,以及函数之间的运算过程,可以与结合图9所述的例子相同。

在更多实施例中,还可以将上述时间差进一步输入到第三变换函数p和/或第四变换函数o。在这样的情况下,可以对前述的公式(5),(6),(7)的一部分或全部进行修改,在原有基础上类似的引入针对时间差的时间项,在此不一一详述。

通过以上结合图9-图11所述的lstm层,依次迭代地处理当前子图中各个节点,可以得到当前节点的中间向量和隐含向量。在一个实施例中,如此得到的隐含向量即可作为神经网络模型的输出,用于表征当前节点。

可以看到,以上基于lstm的神经网络模型,不同于常规lstm网络,而是针对多元动态交互图的处理进行了功能和结构的修改和优化,可以将其称为动态图lstm神经网络模型。

根据一种实施方式,为了进一步提升效果,动态图lstm神经网络模型可以包括多个lstm层,其中,上一lstm层确定出的某个节点的隐含向量,输入到下一lstm层作为该节点的节点特征。也就是说,每个lstm层仍然迭代地处理各个节点,根据当前处理节点i的节点特征、该节点i所指向的k个关联节点各自的中间向量和隐含向量,确定该节点i的隐含向量和中间向量,只是最底层的lstm层采用节点i的原始特征作为节点特征,后续的lstm层采用前一lstm层确定出的该节点i的隐含向量hi作为节点特征。在一个实施例中,上述多个lstm层采用残差网络的方式堆叠形成神经网络模型。

在神经网络模型具有多个lstm层的情况下,可以理解,每个lstm层均可以确定出当前节点的隐含向量。在一个实施例中,神经网络模型将多个lstm层各自输出的当前节点的隐含向量进行综合,得到当前节点的最终隐含向量。更具体的,可以对各个lstm层输出的各个隐含向量进行加权组合,从而得到最终隐含向量。加权组合的权重,可以简单地设定为每层对应一个权重因子,其大小通过训练调整。或者,也可以通过更加复杂的注意力(attention)机制确定权重因子。

在另一实施例中,神经网络模型还可以将多个lstm层中最后一个lstm层输出的当前节点的隐含向量,作为当前节点的最终隐含向量。

如此,通过多种方式,基于lstm的神经网络模型基于与待分析的当前节点对应的当前子图,得到当前节点的隐含向量作为其特征向量。由于当前子图中反映了与当前节点对应的交互对象有关的时序性交互历史的信息,因此,如此得到的当前节点的特征向量,不仅表达出交互对象本身的特征,还可以表达出交互对象在历次交互事件中所受到的影响,从而全面表征交互对象的特点。

于是,在步骤34,根据当前节点的隐含向量,进行与该当前节点相关的业务处理。

在一个实施例中,上述业务处理可以是,根据以上得到的隐含向量,预测当前节点对应的对象的分类类别。

例如,在当前节点对应的对象为用户的情况下,可以基于该隐含向量预测该用户的用户类别,例如所属的人群类别,风险等级类别,等等。在当前节点对应的对象为物品的情况下,可以基于该隐含向量预测该物品的类别,例如所属业务类别,适合的人群类别,被购买的场景类别,等等。

在一种实施方案中,业务处理还可以包括,对与当前节点相关的交互事件进行分析和预测。由于交互事件一般涉及两个对象,因此还需要分析另一节点的特征向量。

具体地,可以在动态交互图中选取与前述的当前节点不同的另一节点,例如图4和图5中的t(t6)。采用与图3中的步骤32和33类似的方式,确定出该另一节点对应的隐含向量。在一个实施例中,可以基于当前节点和该另一节点分别对应的隐含向量,预测这两个节点代表的对象是否会发生交互。在另一个实施例中,前述当前节点和另一节点是已经发生的第一交互事件对应的两个节点。那么可以根据这两个节点分别对应的隐含向量,预测该第一交互事件的事件类别。

例如,在一个例子中,当前节点代表的用户已经确认购买上述另一节点代表的商品,由此产生第一交互事件。在用户请求支付时,可以根据两个节点的隐含向量,预测该第一交互事件是否为涉嫌账号盗用的欺诈性交易,从而确定是否允许本次支付。在又一例子中,当前节点代表的用户已经针对另一节点代表的物品(例如电影)进行评论操作,例如点赞或发布文字评论,由此产生第一交互事件。在这之后,可以根据两个节点的隐含向量,预测该第一交互事件是否为真实操作。

可以理解,上述业务处理的依据为lstm神经网络模型基于动态交互图确定的节点的隐含向量。如前所述,lstm神经网络模型确定节点的隐含向量的计算过程,依赖于大量的参数,例如前述各个变换函数中的参数。这些参数需要通过对该神经网络模型进行训练而确定。在不同实施例中,可以通过不同的任务,训练该神经网络模型。

在一个实施例中,通过预测交互行为来训练神经网络模型。图12示出在该实施例中训练神经网络模型的流程图。如图12所示,在步骤121,获取历史交互事件,该历史交互事件是确已发生的交互事件。在一个具体例子中,可以从前述交互事件集中获取历史交互事件。将该历史交互事件中包括的两个对象称为第一样本对象和第二样本对象。

在步骤122,在动态交互图中,分别确定与第一样本对象对应的第一子图,和与第二样本对象对应的第二子图。具体的,在动态交互图中分别确定出与第一样本对象对应的第一样本节点和与第二样本对象对应的第二样本节点,分别以第一样本节点和第二样本节点作为当前节点,按照图3的步骤32类似的方式,确定出对应的第一子图和第二子图。

然后,在步骤123,将上述第一子图和第二子图分别输入神经网络模型,分别得到第一样本对象的隐含向量和第二样本对象的隐含向量。神经网络模型基于子图中节点的指向关系确定出对应样本对象的隐含向量的具体过程如前结合步骤33所述,不再赘述。

接着,在步骤124,根据第一样本对象的隐含向量和第二样本对象的隐含向量,预测第一样本对象和第二样本对象是否会发生交互,得到预测结果。通常,可以采用一个二分类的分类器,预测两个样本对象是否会发生交互,得到的预测结果通常表现为,这两个样本对象发生交互的概率。

于是,在步骤125,根据上述预测结果,确定预测损失。可以理解,上述第一样本对象和第二样本对象来自历史交互事件,因此实际上已经发生交互,这相当于已知这两个样本对象之间的关系标签。根据例如交叉熵计算方式等损失函数形式,可以基于上述预测结果确定出本次预测的损失。

然后,在步骤126,根据预测损失,更新神经网络模型。具体的,可以采用梯度下降、反向传播等方式,调整神经网络中的参数,以更新神经网络模型,直到神经网络模型的预测准确率达到一定要求。

以上采用历史交互事件中的两个样本对象来进行对象关系的预测,相当于利用了正样本进行训练。在一个实施例中,还可以在动态交互图中找到未发生交互关系的两个样本对象作为负样本进行进一步训练,从而达到更好的训练效果。

根据另一实施方式,通过预测交互对象的分类来训练神经网络模型。图13示出该实施例中训练神经网络模型的流程图。如图13所示,在步骤131,从交互事件集涉及的各个对象中选择样本对象,并获取该样本对象的分类标签。该样本对象可以是交互事件集包含的任意事件中的任意交互对象,针对该样本对象的分类标签可以是与业务场景相关的标签。例如,在样本对象是用户的情况下,分类标签可以是预先设定的人群分类的标签,或用户风险程度分类的标签;在样本对象是商品的情况下,分类标签可以是商品分类的标签。这样的标签可以由人工标注产生,或通过其他业务相关处理而产生。

在步骤132,在动态交互图中,确定与该样本对象对应的样本子图。具体的,可以在动态交互图中确定出与该样本对象对应的节点,以该节点作为当前节点,按照图3的步骤32类似的方式,确定出对应的样本子图。

然后,在步骤133,将上述样本子图输入神经网络模型,得到样本对象的隐含向量。该过程如前结合步骤33所述,不再赘述。

接着,在步骤134,根据样本对象的隐含向量,预测该样本对象的分类,得到预测结果。可以采用分类器,预测样本对象属于各个分类的各个概率,作为预测结果。

然后,在步骤135,根据预测结果和分类标签,确定预测损失。具体的,可以采用例如交叉熵计算方式,可以预测结果中的各个概率和分类标签,确定出本次预测的损失。

在步骤136,根据预测损失,更新神经网络模型。如此,通过预测样本对象分类的任务,训练神经网络模型。

综合以上,在本说明书实施例的方案中,基于交互事件集构建动态交互图,该动态交互图可以反映各个交互事件的时序关系,以及交互对象之间通过各个交互事件传递的相互影响。考虑交互事件同时发生的可能性,该动态交互图允许节点连接到不限数目的关联节点,由此形成混合多元的交互图。利用训练的lstm神经网络模型,基于该动态交互图中与待分析交互对象相关的子图,可以提取得到该交互对象的隐含向量。如此得到的隐含向量中引入了各个交互事件中其他交互对象对其的影响,从而可以综合全面地表达该交互对象的深层特征用于进行业务处理。

根据另一方面的实施例,提供了一种处理交互数据的装置,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。图14示出根据一个实施例的处理交互数据的装置的示意性框图。如图14所示,该处理装置140包括:

交互图获取单元141,配置为获取根据交互事件集构建的动态交互图,其中,所述交互事件集包括多个交互事件,每个交互事件至少包括,发生交互行为的两个对象和交互时间;所述动态交互图包括任意的第一节点,所述第一节点对应于发生在第一时间的交互事件中的第一对象,所述第一节点通过连接边指向n个关联事件所对应的m个关联节点,所述n个关联事件均发生于第二时间,且均包含所述第一对象作为交互对象之一,所述第二时间为,从所述第一时间向前回溯,所述第一对象发生交互行为的前一时间;所述动态交互图中包括至少一个关联节点数目大于2的多元节点;

子图确定单元142,配置为在所述动态交互图中,确定与待分析的当前节点对应的当前子图,所述当前子图包括从当前节点出发,经由连接边到达的预定范围内的节点;

子图处理单元143,配置为将所述当前子图输入神经网络模型,所述神经网络模型包括lstm层,所述lstm层根据所述当前子图中各个节点之间的连接边的指向关系,依次迭代处理各个节点,从而得到所述当前节点的隐含向量;其中所述各个节点包括第二节点,所述依次迭代处理各个节点包括,至少根据所述第二节点的节点特征,该第二节点所指向的k个关联节点各自的中间向量和隐含向量,确定所述第二节点的隐含向量和中间向量;

业务处理单元144,配置为根据所述当前节点的隐含向量,进行与所述当前节点相关的业务处理。

在一个实施例中,所述对象包括用户,所述交互事件包括以下中的至少一种:点击事件,社交事件,交易事件。

在不同实施方式中,上述m个关联节可以点为2n个节点,分别对应于所述n个关联事件中各个关联事件所包括的两个对象;或者,可以为n+1个节点,分别对应于所述n个关联事件中与所述第一对象交互的n个其他对象,以及所述第一对象自身。

在不同实施例中,所述预定范围内的节点可以包括:预设阶数k的连接边之内的节点;和/或,交互时间在预设时间范围内的节点。

根据一种实施方式,前述当前节点是这样的节点:在所述动态交互图中,不存在指向该节点的连接边。

在一个实施例中,每个交互事件还包括,交互行为的行为特征;在这样的情况下,第二节点的节点特征可以包括,所述第二节点所对应的对象的属性特征,以及所述第二节点在所对应的交互时间中参与的交互事件的行为特征。

在一个实施例中,子图处理单元143所利用的神经网络模型中的lstm层具体用于:

将所述第二节点的节点特征,分别与所述k个关联节点对应的k个隐含向量组合,输入算法相同、参数不同的第一变换函数和第二变换函数,分别得到k个第一变换向量和k个第二变换向量;

将所述k个关联节点中第i关联节点的中间向量,与对应的第i个第一变换向量,第i个第二变换向量进行组合操作,得到k个操作结果,将该k个操作结果求和,得到组合向量;

将所述第二节点的节点特征连同所述k个隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;

基于所述组合向量和第三变换向量,确定所述第二节点的中间向量;

基于所述第二节点的中间向量和第四变换向量,确定所述第二节点的隐含向量。

根据一种实施方式,子图处理单元113所利用的神经网络模型中的lstm层用于:根据所述第二节点的节点特征,该第二节点所指向的k个关联节点各自的中间向量和隐含向量,以及该第二节点对应的交互时间与所述k个关联节点对应的交互时间之间的时间差,确定所述第二节点的隐含向量和中间向量。

更具体地,在一个实施例中,上述lstm层具体用于:

将所述第二节点的节点特征和所述时间差,与所述k个关联节点对应的k个隐含向量分别组合,输入第一变换函数,得到k个第一变换向量;

将所述第二节点的节点特征与所述k个关联节点对应的k个隐含向量分别组合,输入第二变换函数,得到k个第二变换向量;

将所述k个关联节点中第i关联节点的中间向量,与对应的第i第一变换向量,第i第二变换向量进行组合操作,得到k个操作结果,将该k个操作结果求和,得到组合向量;

将所述第二节点的节点特征连同所述k个隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;

基于所述组合向量和第三变换向量,确定所述第二节点的中间向量;

基于所述第二节点的中间向量和第四变换向量,确定所述第二节点的隐含向量。

在另一实施例中,上述lstm层具体用于:

将所述第二节点的节点特征和所述时间差,与所述k个关联节点对应的k个隐含向量分别组合后,输入算法相同、参数不同的第一变换函数和第二变换函数,分别得到k个第一变换向量和k个第二变换向量;

将所述k个关联节点中第i关联节点的中间向量,与对应的第i第一变换向量,第i第二变换向量进行组合操作,得到k个操作结果,将该k个操作结果求和,得到组合向量;

将所述第二节点的节点特征连同所述k个隐含向量,分别输入第三变换函数和第四变换函数,分别得到第三变换向量和第四变换向量;

基于所述组合向量和第三变换向量,确定所述第二节点的中间向量;

基于所述第二节点的中间向量和第四变换向量,确定所述第二节点的隐含向量。

根据一种实施方式,神经网络模型包括多个lstm层,其中,上一lstm层确定出的所述第二节点的隐含向量,输入到下一lstm层作为该第二节点的节点特征。

在这样的情况下,在一个实施例中,神经网络模型将所述多个lstm层各自输出的当前节点的隐含向量进行综合,得到所述当前节点的最终隐含向量。

在另一实施例中,神经网络模型将所述多个lstm层中最后一个lstm层输出的当前节点的隐含向量,作为所述当前节点的最终隐含向量。

根据一种实施方式,神经网络模型通过模型训练单元145训练。模型训练单元145可以包含在装置140之中,也可以位于其之外。模型训练单元145可以包括(未示出):

样本获取模块,配置为获取历史交互事件,其中包括第一样本对象和第二样本对象;

子图确定模块,配置为在所述动态交互图中,分别确定与所述第一样本对象对应的第一子图,和与所述第二样本对象对应的第二子图;

向量获取模块,配置为将所述第一子图和所述第二子图分别输入所述神经网络模型,分别得到所述第一样本对象的隐含向量和第二样本对象的隐含向量;

预测模块,配置为根据所述第一样本对象的隐含向量和第二样本对象的隐含向量,预测所述第一样本对象和第二样本对象是否会发生交互,得到预测结果;

损失确定模块,配置为根据所述预测结果,确定预测损失;

更新模块,配置为根据所述预测损失,更新所述神经网络模型。

在另一实施例中,模型训练单元145可以包括(未示出):

样本获取模块,配置为从所述交互事件集涉及的多个样本对象中选择样本对象,并获取该样本对象的分类标签;

子图确定模块,配置为在所述动态交互图中,确定与该样本对象对应的样本子图;

向量获取模块,配置为将所述样本子图输入所述神经网络模型,得到所述样本对象的隐含向量;

预测模块,配置为根据所述样本对象的隐含向量,预测所述样本对象的分类,得到预测结果;

损失确定模块,配置为根据所述预测结果和所述分类标签,确定预测损失;

更新模块,配置为根据所述预测损失,更新所述神经网络模型。

通过以上装置,基于动态交互图,采用神经网络模型处理交互对象,得到适于后续分析的特征向量。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所述的方法。

本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1