处理交互序列数据的方法及装置
技术领域
本说明书一个或多个实施例涉及机器学习领域,尤其涉及利用机器学习处理交互序列数据的方法和装置。
背景技术
在许多场景下,需要对用户交互事件进行分析和处理。交互事件是互联网事件的基本组成元素之一,例如,用户浏览页面时的点击行为,可以视为用户与页面内容区块之间的交互事件,电商中的购买行为可以视为用户与商品之间的交互事件,账户间转账行为则是用户与用户之间的交互事件。用户的一系列交互事件中蕴含了用户的细粒度习惯偏好等特点,以及交互对象的特点,是机器学习模型的重要特征来源。因此,在许多场景下,希望根据交互事件对交互参与方进行特征表达和建模。
然而,交互事件涉及交互双方,并且各个参与方本身的状态可以是动态变化的,因此,综合考虑交互参与方的多方面特点对其进行准确的特征表达非常困难。由此,希望能有改进的方案,更为有效地对交互事件中的交互对象进行分析处理,以得到适于后续分析的特征向量。
发明内容
本说明书一个或多个实施例描述了处理交互序列数据的方法和装置,其中考虑交互对象参与的交互事件以及交互事件中其他对象的影响,将交互对象处理为特征向量,从而有利于后续对交互对象的分析和对交互事件的分析。
根据第一方面,提供了一种处理交互序列数据的方法,所述方法包括:
获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件,每个交互事件至少包括,发生交互行为的两个对象和交互时间;所述动态交互图包括,代表各个交互事件中的各个对象的多个节点,其中,任意节点i通过连接边指向两个关联节点,所述两个关联节点是该节点i所代表的对象参与的上一交互事件对应的两个节点;
在所述动态交互图中,确定与第一目标节点对应的第一目标子图,所述第一目标子图包括从所述第一目标节点出发,经由连接边到达的预定范围内的节点;
基于所述第一目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,确定所述第一目标节点对应的第一特征向量。
在一个实施例中,通过以下方式获取动态交互图:
获取基于已有交互序列构建的已有动态交互图;
获取新增交互事件;
将该新增交互事件中包括的两个对象作为两个新增节点,添加到所述已有动态交互图中;
对于每个新增节点,若其存在两个关联节点,添加从该新增节点指向其两个关联节点的连接边。
在另一实施例中,通过以下方式获取动态交互图:
获取基于已有交互序列构建的已有动态交互图;
获取新增交互序列,其中包括多个新增交互事件;
对于每个新增交互事件,将其中包括的两个对象作为两个新增节点,添加到所述已有动态交互图中;
对于每个新增节点,若其存在两个关联节点,添加从该新增节点指向其两个关联节点的连接边。
根据一个实施例,上述第一目标节点是这样的节点:在所述动态交互图中,不存在指向该节点的连接边。
在一个实施方式中,预定范围内的节点包括:预设数目K的连接边之内的节点;和/或,交互时间在预设时间范围内的节点。
在一个实施例中,每个交互事件还包括,交互事件的事件特征;这样的情况下,各个节点的节点特征包括,各个节点所对应的对象的属性特征,以及各个节点所在的交互事件的事件特征。
根据一个实施例,所述方法还包括,根据第一特征向量,预测所述第一目标节点对应的对象的分类类别。
根据一个实施方式,所述方法还包括:
在所述动态交互图中,确定与第二目标节点对应的第二目标子图,所述第二目标子图包括从所述第二目标节点出发,经由连接边到达的所述预定范围内的节点;
基于所述第二目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,确定所述第二目标节点对应的第二特征向量。
进一步地,在一个例子中,还可以根据上述第一特征向量和第二特征向量,预测所述第一目标节点和所述第二目标节点代表的对象是否会发生交互。
在另一例子中,第一目标节点和第二目标节点为第一交互事件对应的两个节点;在这样的情况下,所述方法还包括,根据所述第一特征向量和所述第二特征向量,预测所述第一交互事件的事件类别。
根据一种实施方式,确定所述第一目标节点对应的第一特征向量包括,将所述第一目标子图输入预先训练的神经网络模型,所述神经网络模型基于所述第一目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,输出所述第一特征向量。
进一步地,在不同实施例中,所述神经网络模型包括以下之一:基于LSTM的神经网络模型,基于RNN的神经网络模型,基于Transformer的神经网络模型。
根据一种实施方式,所述神经网络模型通过以下方式训练:
获取历史交互事件,其中包括第一样本对象和第二样本对象;
在所述动态交互图中,分别确定与所述第一样本对象对应的第一样本子图,和与所述第二样本对象对应的第二样本子图;
将所述第一样本子图和所述第二样本子图分别输入所述神经网络模型,分别得到所述第一样本对象对应的第一样本向量和第二样本对象对应的第二样本向量;
根据所述第一样本向量和第二样本向量,预测所述第一样本对象和第二样本对象是否会发生交互,得到预测结果;
根据所述预测结果,确定预测损失;
根据所述预测损失,更新所述神经网络模型。
根据另一实施方式,所述神经网络模型通过以下方式训练:
从所述动态交互序列中选择样本对象,并获取该样本对象的分类标签;
在所述动态交互图中,确定与该样本对象对应的样本子图;
将所述样本子图输入所述神经网络模型,得到所述样本对象的样本向量;
根据所述样本向量,预测所述样本对象的分类,得到预测结果;
根据所述预测结果和所述分类标签,确定预测损失;
根据所述预测损失,更新所述神经网络模型。
根据第二方面,提供了一种处理交互序列数据的装置,所述装置包括:
交互图获取单元,配置为获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件,每个交互事件至少包括,发生交互行为的两个对象和交互时间;所述动态交互图包括,代表各个交互事件中的各个对象的多个节点,其中,任意节点i通过连接边指向两个关联节点,所述两个关联节点是该节点i所代表的对象参与的上一交互事件对应的两个节点;
子图确定单元,配置为在所述动态交互图中,确定与第一目标节点对应的第一目标子图,所述第一目标子图包括从所述第一目标节点出发,经由连接边到达的预定范围内的节点;
子图处理单元,配置为基于所述第一目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,确定所述第一目标节点对应的第一特征向量。
根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面的方法。
根据第四方面,提供了一种计算设备,包括存储器和处理器,其特征在于,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面的方法。
根据本说明书实施例提供的方法和装置,基于动态交互序列构建动态交互图,该动态交互图反映了各个交互事件的时序关系,以及交互对象之间通过各个交互事件传递的相互影响。基于该动态交互图中与待分析交互对象对应的节点相关的子图,可以提取得到该交互对象的特征向量。如此得到的特征向量中引入了各个交互事件中其他交互对象对其的影响,从而可以综合全面地表达该交互对象的深层特征。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1A示出在一个例子中的交互关系二部图;
图1B示出在另一例子中的交互关系网络图;
图2示出根据一个实施例的实施场景示意图;
图3示出根据一个实施例的处理交互序列数据的方法流程图;
图4示出根据一个实施例的动态交互序列和由此构建的动态交互图;
图5示出在一个实施例中当前子图的示例;
图6示出在一个实施例中训练神经网络模型的流程图;
图7示出在另一实施例中训练神经网络模型的流程图;
图8示出根据一个实施例的处理交互序列数据的装置的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
如前所述,希望能够基于交互事件序列,对交互事件的参与方,即交互对象进行特征表达和建模。
在一种方案中,基于历史交互事件构建静态的交互关系网络图,从而基于该交互关系网络图,分析各个交互对象。具体地,可以以各个历史事件的参与者作为节点,在存在交互关系的节点之间建立连接边,从而形成上述交互网络图。
图1A和图1B分别示出在具体例子中的交互关系网络图。更具体而言,图1A示出一个二部图,其中包含用户节点(U1-U4)和商品节点(V1-V3),如果某个用户购买过某件商品,则在该用户和该商品之间构建一条连接边。图1B示出一个用户转账关系图,其中每个节点代表一个用户,发生过转账记录的两个用户之间存在连接边。
然而,可以看到,图1A和图1B尽管示出了对象之间的交互关系,但是没有包含这些交互事件的时序信息。简单地基于这样的交互关系网络图进行图嵌入,获得的特征向量也没有表达出交互事件的时间信息对节点的影响。并且,这样的静态图可扩展性不够强,对于新增交互事件和新增节点的情况,难以灵活进行处理。
在另一方案中,对于各个待分析的交互对象,构建该对象的行为序列,基于该行为序列,提取该对象的特征表达。然而,这样的行为序列仅表征了待分析对象本身的行为,而交互事件是多方参与的事件,参与者之间会通过交互事件间接传递影响。因此,这样的方式没有表达出交互事件中的参与对象之间的影响。
综合考虑以上因素,根据本说明书的一个或多个实施例,将动态变化的交互事件序列构建成动态交互图,其中各个交互事件中涉及的各个交互对象对应于该动态交互图中的各个节点。对于待分析的交互对象,从该动态交互图中得到对应节点相关的子图部分,基于该子图部分中包含的节点的节点特征和节点间连接关系,得到该交互对象的特征向量表达。
图2示出根据一个实施例的实施场景示意图。如图2所示,可以将依次发生的多个交互事件按时间顺序组织成动态交互序列<E1,E2,…,EN>,其中每个元素Ei表示一个交互事件,可以表示为交互特征组的形式Ei=(ai,bi,ti),其中ai和bi是事件Ei的两个交互对象,ti是交互时间。
根据本说明书的实施例,基于该动态交互序列构建动态交互图200。在图200中,将各个交互事件中的各个交互对象ai,bi用节点表示,并在包含同一对象的事件之间建立连接边。动态交互图200的结构将在后续进行更具体的描述。
对于某个待分析的目标交互对象对应的目标节点,可以确定出其在动态交互图中对应的目标子图。一般地,目标子图包括从目标节点出发,经过一定数目的连接边可以达到的节点。该子图反映了,与目标交互对象直接或间接关联的交互事件中的其他对象对目标节点带来的影响。
然后,基于目标子图中各个节点的节点特征和节点连接关系,得到目标节点对应的特征向量。如此得到的特征向量,可以抽取出相关联的交互事件的时序信息和各交互事件中的交互对象之间的影响,从而更准确地表达目标节点代表的目标交互对象的深层特征。这样的特征向量可以在后续应用于各种机器学习模型和各种业务场景。例如,可以基于如此得到的特征向量进行强化学习,也可以基于该特征向量进行聚类分析,例如,将用户聚类为人群。还可以基于这样的特征向量进行分类预测,例如,预测两个对象之间是否会发生交互(比如某个用户是否会购买某个商品),预测某个对象的业务类型(比如某个用户的风险层级),还可以基于一个交互事件中两个对象的特征向量预测该交互事件的事件类别,等等。
下面描述以上构思的具体实现方式。
图3示出根据一个实施例的处理交互序列数据的方法流程图。可以理解,可以理解,该方法可以通过任何具有计算、处理能力的装置、设备、平台、设备集群来执行。下面结合具体实施例,对如图3所示的处理交互序列数据的方法中的各个步骤进行描述。
首先,在步骤31,获取根据动态交互序列构建的动态交互图。
如前所述,动态交互序列,例如表示为<E1,E2,…,EN>,可以包括按照时间顺序排列的多个交互事件,其中每个交互事件Ei可以表示为一个交互特征组Ei=(ai,bi,ti),其中ai和bi是事件Ei的两个交互对象,ti是交互时间。如此,也可以说,动态交互序列包括按照时间顺序排列的多个交互特征组(ai,bi,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指向该上一交互事件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的动态交互图。
需要说明的是,在图4的例子中,各个交互事件中的两个对象为不同类型的对象,其中一个为人名,另一个为商品(电影或电影周边产品)。在组织交互事件的特征组时,按照<第一类对象,第二类对象,交互时间>的方式排布。相应地,在形成动态交互图时,同样地区分对象类型,将同一交互事件中第一类对象对应的节点排布在左侧,将第二类对象对应的节点排布在右侧。如此,如果某个节点存在两个关联节点,这两个关联节点包括左节点和右节点,那么左节点对应于第一类对象,右节点对应于第二类对象。
在不需区分对象类型的情况下,在交互特征组以及动态交互图中两个交互对象可以以任意顺序排布。
以上描述了基于动态交互序列构建动态交互图的方式和过程。对于图3所示的处理交互事件的方法而言,构建动态交互图的过程可以预先进行也可以现场进行。相应地,在一个实施例中,在步骤31,根据动态交互序列现场构建动态交互图。构建方式如以上所述。在另一实施例中,可以预先基于动态交互序列构建形成动态交互图。在步骤31,读取或接收已形成的动态交互图。
可以理解,按照以上方式构建的动态交互图具有很强的可扩展性,可以非常容易地根据新增的交互事件进行动态更新。相应地,步骤31还可以包括更新动态交互图的过程。
在一个实施例中,每当检测到新的交互事件,就基于该新的交互事件更新动态交互图。具体的,在该实施方式下,可以获取基于已有交互序列构建的已有动态交互图,并获取新增交互事件。然后,将该新增交互事件涉及的两个对象,称为第一对象和第二对象,作为两个新增节点,添加到已有动态交互图中。并且,对于每个新增节点,确定其是否存在关联节点,关联节点的定义如前所述。如果存在关联节点,则添加从该新增节点指向其两个关联节点的连接边,如此形成更新的动态交互图。
在另一实施例中,可以每过预定时间间隔,例如每隔一个小时,检测新增的交互事件,将该时间间隔内新增的多个交互事件形成新增交互序列。或者,每当检测到预定数目(例如,100个)的新增交互事件,将该预定数目的新增交互事件形成新增交互序列。然后基于该新增交互序列更新动态交互图。
具体的,在该实施方式下,可以获取基于已有交互序列构建的已有动态交互图,并获取如上所述的新增交互序列,其中包括多个新增交互事件。然后,对于每个新增交互事件,将其中的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中。并且,对于每个新增节点,确定其是否存在关联节点,如果存在,添加从该新增节点指向其两个关联节点的连接边,如此形成更新的动态交互图。
综合以上,在步骤31,获取到基于动态交互序列构建的动态交互图。
接着,在步骤32,在获取的动态交互图中,确定与第一目标节点对应的第一目标子图,其中第一目标子图包括,从第一目标节点出发,经由连接边到达的预定范围内的节点。
需要理解,第一目标节点可以是与待分析的某个目标交互对象对应的节点。然而如前所述,一个交互对象可以对应多个节点,表达该交互对象在不同时刻的不同交互事件中的状态。为了表达出待分析的目标交互对象的最新状态,在一个实施例中,选择这样的节点作为第一目标节点,即在动态交互图中,不存在指向该节点的连接边。也就是说,选择待分析对象所参与的最新一次交互事件对应的节点作为第一目标节点。例如,在图4所示的动态交互图中,当想要分析交互对象David时,可以选择节点u(t6)作为目标节点。然而,这并不是必须的。在其他实施例中,例如为了训练的目的,也可以选择其他节点作为第一目标节点,例如,为了分析David也可以选择节点u(t4)作为第一目标节点。
从第一目标节点出发,经由连接边到达的预定范围内的节点,构成第一目标节点对应的第一目标子图。在一个实施例中,上述预定范围内的节点可以是,至多经过预设数目K的连接边可达的节点。这里数目K为预设的超参数,可以根据业务情况选取。可以理解,该预设数目K体现了,在表达目标节点的信息时,向前回溯的历史交互事件的步数。数目K越大,则考虑越久的历史交互信息。
在另一实施例中,上述预定范围内的节点还可以是,交互时间在预定时间范围内的节点。例如,从目标节点的交互时间向前回溯T时长(例如一天),在该时长范围内、且可通过连接边达到的节点。
在又一实施例中,上述预定范围既考虑连接边的数目,又考虑时间范围。换而言之,该预定范围内的节点是指,至多经过预设数目K的连接边可达、且交互时间在预定时间范围内的节点。
简单起见,下面的例子中,以预设数目K的连接边为例进行描述。
图5示出在一个实施例中目标子图的示例。在图5的例子中,假定图4中的u(t6)为第一目标节点,预设数目K=2,那么从u(t6)出发,沿连接边的指向进行遍历,经由2条连接边可以达到的节点如图中虚线区域所示。该区域中的节点和连接关系即为第一目标节点u(t6)对应的第一目标子图。
接着,在步骤33,基于第一目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,确定所述第一目标节点对应的第一特征向量。
具体地,节点特征可以包括节点代表的对象的属性特征。例如,在节点表示用户的情况下,节点特征可以包括用户的属性特征,例如年龄、职业、教育程度、所在地区,等等;在节点表示商品的情况下,节点特征可以包括商品的属性特征,例如商品类别、上架时间、销量等等。在节点表示其他交互对象的情况下,可以相应的获取到原始的节点特征。在交互事件还包括事件特征f的情况下,也可以在节点特征中包含该节点所在事件的事件特征f。
为了确定第一目标节点对应的第一特征向量,在一个实施例中,可以获取第一目标子图中各个节点的节点特征,然后,根据各个节点在子图中距离第一目标节点的距离为其分配相应权重,基于权重对各个节点的节点特征进行综合,以此得到第一目标节点对应的第一特征向量。某个节点距离第一目标节点的距离,可以基于从第一目标节点到该节点经历的连接边的数目确定,或者基于第一目标节点所在交互事件的交互时间T1和该某个节点对应的交互时间T2之间的时间差确定。当然,可以为第一目标节点自身预设一个比较高的权重。由此,基于第一目标子图中所包含的各个节点的节点特征,并考虑这些节点的连接关系,确定第一目标节点对应的第一特征向量。
在另一实施例中,可以采用图嵌入算法或图嵌入模型,对第一目标子图进行图嵌入,由此得到第一目标节点对应的第一特征向量。已经存在多种监督的或者非监督的图嵌入算法或图嵌入模型,可以基于实际业务的特点和需要,选择适当的算法或模型,从而得到第一特征向量。
根据一种实施方式,在步骤33,将第一目标子图输入预先训练的神经网络模型,由该神经网络模型基于该第一目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,输出所述第一特征向量。
在一个实施例中,所述神经网络模型是基于RNN的神经网络模型。在这样的情况下,根据第一目标子图中节点之间的指向关系,形成节点序列,利用RNN神经网络模型依次对节点序列中的节点进行处理,得到第一目标节点的第一特征向量。
在另一实施例中,所述神经网络模型是基于LSTM的神经网络模型。LSTM神经网络模型是RNN神经网络模型的改进,同样基于节点之间的连接边所代表的节点时序关系对各个节点进行处理。更具体地,对于第一目标子图中的任意一个当前节点,LSTM神经网络模型进行以下处理:至少根据该当前节点的节点特征,当前节点所指向的两个关联节点各自的中间向量和隐含向量,确定当前节点的隐含向量和中间向量。如此,LSTM神经网络模型根据第一目标子图中各个节点之间的连接边的指向关系,依次迭代处理各个节点,从而得到第一目标节点的隐含向量,作为上述第一特征向量。
在又一实施例中,所述神经网络模型是基于Transformer的神经网络模型。在这样的情况下,首先根据第一目标子图中节点之间的指向关系,形成节点序列,并为节点序列中各个节点赋予位置编码,该位置编码反映该节点在第一目标子图中相对于第一目标节点的位置,例如距离几条连接边,左节点或是右节点,等等。然后将该节点序列以及位置编码输入Transfomer神经网络模型,使得Transformer神经网络模型基于节点序列中各个节点的节点特征和位置编码,计算得到第一目标节点的第一特征向量。
在其他实施例中,神经网络模型还可以是基于其他网络结构和算法的神经网络模型,在此不一一列举。
以上,通过各种方式,基于第一目标子图确定出第一目标节点对应的第一特征向量。由于第一目标子图中反映了与第一目标节点对应的交互对象有关的时序性交互历史(例如K次相关交互事件)的信息,因此,如此得到的第一特征向量,不仅表达出交互对象本身的特征,还可以表达出交互对象在历次交互事件中所受到的影响,从而全面表征交互对象的特点。
基于如此得到的第一特征向量,可以进行多项后续分析。
在一个实施例中,上述方法还包括,根据以上得到的第一特征向量,预测第一目标节点对应的对象的分类类别。
例如,在第一目标节点对应的对象为用户为情况下,可以基于该第一特征向量预测该用户的用户类别,例如所属的人群类别,风险等级类别,等等。在第一目标节点对应的对象为物品的情况下,可以基于该第一特征向量预测该物品的类别,例如所属业务类别,适合的人群类别,被购买的场景类别,等等。
在一种实施方案中,还可以在此基础上进一步地对交互事件进行分析和预测。由于交互事件一般涉及两个对象,因此还需要分析另一节点的特征向量。
具体地,可以采用与图3中的步骤32和33类似的方式对另一节点,称为第二目标节点进行分析。也就是说,在动态交互图中,确定与第二目标节点对应的第二目标子图,该第二目标子图包括从第二目标节点出发,经由连接边到达的所述预定范围内的节点;然后,基于第二目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,确定第二目标节点对应的第二特征向量。具体执行过程与结合第一目标节点对步骤32和33的描述相类似,不再赘述。
在一个实施例中,上述第二目标节点为动态交互图中与第一目标节点代表的对象不同的任意一个节点。如此,在分别确定出第一目标节点对应的第一特征向量和第二目标节点对应的第二特征向量之后,可以基于该第一特征向量和第二特征向量,预测第一目标节点和第二目标节点代表的对象是否会发生交互。
例如,在一个例子中,第一目标节点代表某个用户,第二目标节点代表某个商品,则可以根据第一特征向量和第二特征向量,预测该用户是否会购买该商品。在又一例子中,第一目标节点代表某个用户,第二目标节点代表某个页面区块,则可以根据第一特征向量和第二特征向量,预测该用户是否会点击该页面区块。
在另一个实施例中,第一目标节点和第二目标节点是已经发生的第一交互事件对应的两个节点。那么可以根据第一目标节点对应的第一特征向量和第二目标节点对应的第二特征向量,预测该第一交互事件的事件类别。
例如,在一个例子中,第一目标节点代表的用户已经确认购买第二目标节点代表的商品,由此产生第一交互事件。在用户请求支付时,可以根据第一特征向量和第二特征向量,预测该第一交互事件是否为涉嫌套现的欺诈性交易,从而确定是否允许本次支付。在又一例子中,第一目标节点代表的用户已经针对第二目标节点代表的物品(例如电影)进行评论操作,例如点赞或发布文字评论,由此产生第一交互事件。在这之后,可以根据第一特征向量和第二特征向量,预测该第一交互事件是否为真实操作,从而排除一些水军操作的虚假评论。
因此,在产生动态交互图的基础上,将其中的节点表达为特征向量,可以便于后续对节点代表的对象,或者对多个节点相关的事件,进行分析和预测。
如前所述,为了得到目标节点的特征向量,根据一个或多个实施例,采用神经网络模型对目标节点对应的目标子图进行分析和处理。可以理解,神经网络模型在确定目标节点特征向量的计算过程中,依赖于大量的参数,这些参数需要通过对该神经网络模型进行训练而确定。在不同实施例中,可以通过不同的任务,训练该神经网络模型。下面描述对该神经网络的训练过程。
在一个实施例中,通过预测交互行为来训练神经网络模型。图6示出在该实施例中训练神经网络模型的流程图。如图6所示,在步骤61,获取历史交互事件。在一个具体例子中,可以从前述动态交互序列中获取历史交互事件。将该历史交互事件中包括的两个对象称为第一样本对象和第二样本对象。
在步骤62,在动态交互图中,分别确定与第一样本对象对应的第一样本子图,和与第二样本对象对应的第二样本子图。具体的,在动态交互图中分别确定出与第一样本对象对应的第一节点和与第二样本对象对应的第二节点,分别以第一节点和第二节点作为目标节点,按照图3的步骤32类似的方式,确定出对应的第一样本子图和第二样本子图。
然后,在步骤63,将上述第一样本子图和第二样本子图分别输入神经网络模型,分别得到第一样本对象对应的第一样本向量和第二样本对象对应的第二样本向量。神经网络模型基于子图中节点的指向关系确定出样本对象的样本向量的具体过程如前结合步骤33所述,不再赘述。
接着,在步骤64,根据第一样本对象的第一样本向量和第二样本对象的第二样本向量,预测第一样本对象和第二样本对象是否会发生交互,得到预测结果。通常,可以采用一个二分类的分类器,预测两个样本对象是否会发生交互,得到的预测结果通常表现为,这两个样本对象发生交互的概率。
于是,在步骤65,根据上述预测结果,确定预测损失。可以理解,上述第一样本对象和第二样本对象来自历史交互事件,因此实际上已经发生交互,这相当于已知这两个样本对象之间的关系标签。根据例如交叉熵计算方式等损失函数形式,可以基于上述预测结果确定出本次预测的损失。
然后,在步骤66,根据预测损失,更新神经网络模型。具体的,可以采用梯度下降、反向传播等方式,调整神经网络中的参数,以更新神经网络模型,直到神经网络模型的预测准确率达到一定要求。
以上采用历史交互事件中的两个样本对象来进行对象关系的预测,相当于利用了正样本进行训练。在一个实施例中,还可以在动态交互图中找到未发生交互关系的两个样本对象作为负样本进行进一步训练,从而达到更好的训练效果。
根据另一实施方式,通过预测交互对象的分类来训练神经网络模型。图7示出该实施例中训练神经网络模型的流程图。如图7所示,在步骤71,从动态交互序列中选择样本对象,并获取该样本对象的分类标签。该样本对象可以是动态交互序列包含的任意事件中的任意交互对象,针对该样本对象的分类标签可以是与业务场景相关的标签。例如,在样本对象是用户的情况下,分类标签可以是预先设定的人群分类的标签,或用户风险程度分类的标签;在样本对象是商品的情况下,分类标签可以是商品分类的标签。这样的标签可以由人工标注产生,或通过其他业务相关处理而产生。
在步骤72,在动态交互图中,确定与该样本对象对应的样本子图。具体的,可以在动态交互图中确定出与该样本对象对应的节点,以该节点作为目标节点,按照图3的步骤32类似的方式,确定出对应的样本子图。
然后,在步骤73,将上述样本子图输入神经网络模型,得到样本对象的样本向量。该过程如前结合步骤33所述,不再赘述。
接着,在步骤74,根据样本对象的样本向量,预测该样本对象的分类,得到预测结果。可以采用分类器,预测样本对象属于各个分类的各个概率,作为预测结果。
然后,在步骤75,根据预测结果和分类标签,确定预测损失。具体的,可以采用例如交叉熵计算方式,可以预测结果中的各个概率和分类标签,确定出本次预测的损失。
在步骤76,根据预测损失,更新神经网络模型。如此,通过预测样本对象分类的任务,训练神经网络模型。
综合以上,在本说明书一个实施例的方案中,基于动态交互序列构建动态交互图,该动态交互图反映了各个交互事件的时序关系,以及交互对象之间通过各个交互事件传递的相互影响。基于该动态交互图中与待分析交互对象对应的节点相关的子图,可以提取得到该交互对象的特征向量。如此得到的特征向量中引入了各个交互事件中其他交互对象对其的影响,从而可以综合全面地表达该交互对象的深层特征。
根据另一方面的实施例,提供了一种处理交互序列数据的装置,该装置可以部署在任何具有计算、处理能力的设备、平台或设备集群中。图8示出根据一个实施例的处理交互序列数据的装置的示意性框图。如图8所示,该处理装置800包括:
交互图获取单元81,配置为获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件,每个交互事件至少包括,发生交互行为的两个对象和交互时间;所述动态交互图包括,代表各个交互事件中的各个对象的多个节点,其中,任意节点i通过连接边指向两个关联节点,所述两个关联节点是该节点i所代表的对象参与的上一交互事件对应的两个节点;
子图确定单元82,配置为在所述动态交互图中,确定与第一目标节点对应的第一目标子图,所述第一目标子图包括从所述第一目标节点出发,经由连接边到达的预定范围内的节点;
子图处理单元83,配置为基于所述第一目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,确定所述第一目标节点对应的第一特征向量。
在一个实施例中,所述交互图获取单元81配置为:
获取基于已有交互序列构建的已有动态交互图;
获取新增交互事件;
将该新增交互事件中包括的两个对象作为两个新增节点,添加到所述已有动态交互图中;
对于每个新增节点,若其存在两个关联节点,添加从该新增节点指向其两个关联节点的连接边。
在另一实施例中,所述交互图获取单元81配置为:
获取基于已有交互序列构建的已有动态交互图;
获取新增交互序列,其中包括多个新增交互事件;
对于每个新增交互事件,将其中包括的两个对象作为两个新增节点,添加到所述已有动态交互图中;
对于每个新增节点,若其存在两个关联节点,添加从该新增节点指向其两个关联节点的连接边。
根据一种实施方式,前述当前节点是这样的节点:在所述动态交互图中,不存在指向该节点的连接边。
在一个实施例中,第一目标节点是这样的节点:在所述动态交互图中,不存在指向该节点的连接边。
根据一种实施方式,所述预定范围内的节点包括:预设数目K的连接边之内的节点;和/或,交互时间在预设时间范围内的节点。
在一个实施例中,每个交互事件还包括,交互事件的事件特征;在这样的情况下,所述各个节点的节点特征包括,各个节点所对应的对象的属性特征,以及各个节点所在的交互事件的事件特征。
在一个实施例中,所述装置800还包括第一预测单元(未示出),配置为根据所述第一特征向量,预测所述第一目标节点对应的对象的分类类别。
根据一种实施方式,所述子图确定单元82还配置为,在所述动态交互图中,确定与第二目标节点对应的第二目标子图,所述第二目标子图包括从所述第二目标节点出发,经由连接边到达的所述预定范围内的节点;
所述子图处理单元83还配置为,基于所述第二目标子图中包含的各个节点的节点特征,以及节点之间的连接边的指向关系,确定所述第二目标节点对应的第二特征向量。
进一步地,在一个实施例中,装置800还包括第二预测单元(未示出),配置为,根据所述第一特征向量和所述第二特征向量,预测所述第一目标节点和所述第二目标节点代表的对象是否会发生交互。
在另一实施例中,上述第一目标节点和第二目标节点为第一交互事件对应的两个节点;所述装置800还包括第三预测单元(未示出),配置为根据所述第一特征向量和所述第二特征向量,预测所述第一交互事件的事件类别。
根据一种实施方式,子图处理单元83配置为,将第一目标子图输入预先训练的神经网络模型,获得其输出作为所述第一特征向量。
进一步地,在不同实施例中,神经网络模型包括以下之一:基于LSTM的神经网络模型,基于RNN的神经网络模型,基于Transformer的神经网络模型。
根据一种实施方式,神经网络模型通过模型训练单元84训练。模型训练单元84可以包含在装置800之中,也可以位于其之外。模型训练单元84可以包括(未示出):
样本获取模块,配置为获取历史交互事件,其中包括第一样本对象和第二样本对象;
子图确定模块,配置为在所述动态交互图中,分别确定与所述第一样本对象对应的第一样本子图,和与所述第二样本对象对应的第二样本子图;
向量获取模块,配置为将所述第一样本子图和所述第二样本子图分别输入所述神经网络模型,分别得到所述第一样本对象对应的第一样本向量和第二样本对象对应的第二样本向量;
预测模块,配置为根据所述第一样本向量和第二样本向量,预测所述第一样本对象和第二样本对象是否会发生交互,得到预测结果;
损失确定模块,配置为根据所述预测结果,确定预测损失;
更新模块,配置为根据所述预测损失,更新所述神经网络模型。
在另一实施例中,模型训练单元84可以包括(未示出):
样本获取模块,配置为从所述动态交互序列中选择样本对象,并获取该样本对象的分类标签;
子图确定模块,配置为在所述动态交互图中,确定与该样本对象对应的样本子图;
向量获取模块,配置为将所述样本子图输入所述神经网络模型,得到所述样本对象的样本向量;
预测模块,配置为根据所述样本向量,预测所述样本对象的分类,得到预测结果;
损失确定模块,配置为根据所述预测结果和所述分类标签,确定预测损失;
更新模块,配置为根据所述预测损失,更新所述神经网络模型。
通过以上装置,基于动态交互图处理交互对象,得到适于后续分析的特征向量。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3所述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。