处理交互序列数据的方法及装置与流程

文档序号:19377216发布日期:2019-12-10 23:59阅读:274来源:国知局
处理交互序列数据的方法及装置与流程

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



背景技术:

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

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



技术实现要素:

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

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

获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件所对应的多个交互特征组,每个交互特征组包括,发生交互行为的第一对象,第二对象和交互时间;所述动态交互图包括代表各个交互特征组中的各个第一对象和第二对象的多个节点,所述多个节点包括第一节点,所述第一节点通过连接边指向两个叶节点,所述两个叶节点分别代表,所述第一节点对应的交互对象所参与的上一交互事件所对应的交互特征组中的两个对象;

在所述动态交互图中,确定与待分析的当前节点对应的当前序列,所述当前序列包括,从当前节点出发,经由连接边到达的预定范围内的多个节点,以及所述多个节点中各个节点在所述动态交互图中相对于所述当前节点的位置编码;

将所述当前序列输入基于transformer的神经网络模型,所述神经网络模型包括嵌入层和至少一个注意力层,在所述嵌入层,基于所述当前序列中各个节点的节点特征及其位置编码,得到n个嵌入向量;在每个注意力层,基于从上一层获取的n个输入向量中各个输入向量之间的关联度,对各个输入向量进行综合,得到n个输出向量;所述神经网络模型基于所述至少一个注意力层得到的n个输出向量,确定所述当前节点对应的特征向量。

在一个实施例中,通过以下方式获取动态交互图:

获取基于已有交互序列构建的已有动态交互图;

获取新增交互事件对应的新增交互特征组;

将该新增交互特征组中包括的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中;

对于每个新增节点,若其存在叶节点,则添加从该新增节点指向其两个叶节点的连接边。

在另一个实施例中,通过以下方式获取动态交互图:

获取基于已有交互序列构建的已有动态交互图;

获取新增交互序列,其中包括多个新增交互事件对应的多个新增交互特征组;

对于每个新增交互特征组,将其中的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中;

对于每个新增节点,若其存在叶节点,则添加从该新增节点指向其两个叶节点的连接边。

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

根据一种实施方式,所述预定范围内的节点包括:预设数目k的连接边之内的节点;和/或,交互时间在预设时间范围内的节点。

在一个实施例中,前述第一对象和第二对象分别是第一类对象和第二类对象,所述两个叶节点包括左节点和右节点,左节点对应于所述上一交互事件中的第一类对象,右节点对应于所述上一交互事件中的第二类对象。

在这样的情况下,位置编码可以包括,各节点相对于所述当前节点经过的连接边的数目,以及该节点是左节点或是右节点。

根据一种实施方式,每个交互特征组还包括,交互行为的行为特征;于是,当前序列中各个节点的节点特征可以包括,该节点所对应的交互对象的属性特征,以及该节点所在的交互特征组中的行为特征。

在一个实施例中,嵌入层如此得到n个嵌入向量:

对各个节点的节点特征分别进行嵌入处理,得到n个节点嵌入向量;

对各个节点的位置编码分别进行嵌入处理,得到n个位置嵌入向量;

对所述n个节点嵌入向量和n个位置嵌入向量进行综合,得到所述n个嵌入向量。

在一个实施例中,注意力层如此得到n个输出向量:

分别采用第一变换矩阵q,第二变换矩阵k和第三变换矩阵v对所述n个输入向量中各个输入向量进行变换,得到各个输入向量对应的第一中间向量,第二中间向量和第三中间向量;

对于n个输入向量中任意的第i输入向量,基于该第i输入向量对应的第一中间向量与各个输入向量对应的各个第二中间向量的点乘操作,确定该第i输入向量与各个输入向量的各个关联度;

以该第i输入向量与各个输入向量的各个关联度作为权重因子,对所述各个输入向量对应的第三中间向量进行加权组合,得到该第i输入向量对应的第i组合向量;

基于各个输入向量对应的各个组合向量,得到所述n个输出向量。

进一步地,在一个实施例中,每个注意力层维护m套变换矩阵,每套变换矩阵包括所述第一变换矩阵q、第二变换矩阵k和第三变换矩阵v,从而得到m个向量序列,每个向量序列包括基于一套变换矩阵得到的n个组合向量;注意力层于是还将所述m个向量序列进行拼接,得到拼接矩阵;通过第四变换矩阵对所述拼接矩阵进行变换,将变换得到的矩阵拆分为n个向量作为所述n个输出向量。

在一个实施例中,所述至少一个注意力层为多个注意力层,其中包括与所述嵌入层连接的第一注意力层和后续注意力层,所述第一注意力层从所述嵌入层获取所述n个嵌入向量作为其n个输入向量,每个后续注意力层获取其上一注意力层得到的n个输出向量作为其n个输入向量。

进一步地,在多个注意力层的情况下,神经网络模型可以对多个注意力层中各个注意力层得到的n个输出向量进行综合,得到所述当前节点对应的特征向量。

在另一实施例中,神经网络模型还可以对多个注意力层中最后一个注意力层得到的n个输出向量进行综合,得到所述当前节点的特征向量。

根据一种实施方式,神经网络模型通过以下方式训练:

获取历史交互事件对应的历史特征组,其中包括第一样本对象和第二样本对象;

在所述动态交互图中,分别确定与所述第一样本对象对应的第一序列,和与所述第二样本对象对应的第二序列;

将所述第一序列和所述第二序列分别输入所述神经网络模型,分别得到与所述第一样本对象对应的第一特征向量和与第二样本对象对应的第二特征向量;

根据所述第一特征向量和第二特征向量,预测所述第一样本对象和第二样本对象是否会发生交互,得到预测结果;

根据所述预测结果,确定预测损失;

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

根据另一实施方式,神经网络模型通过以下方式训练:

从所述动态交互序列中选择样本对象,并获取该样本对象的分类标签;

在所述动态交互图中,确定与该样本对象对应的样本序列;

将所述样本序列输入所述神经网络模型,得到所述样本对象的特征向量;

根据所述样本对象的特征向量,预测所述样本对象的分类,得到预测结果;

根据所述预测结果和所述分类标签,确定预测损失;

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

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

交互图获取单元,配置为获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件所对应的多个交互特征组,每个交互特征组包括,发生交互行为的第一对象,第二对象和交互时间;所述动态交互图包括代表各个交互特征组中的各个第一对象和第二对象的多个节点,所述多个节点包括第一节点,所述第一节点通过连接边指向两个叶节点,所述两个叶节点分别代表,所述第一节点对应的交互对象所参与的上一交互事件所对应的交互特征组中的两个对象;

序列确定单元,配置为在所述动态交互图中,确定与待分析的当前节点对应的当前序列,所述当前序列包括,从当前节点出发,经由连接边到达的预定范围内的多个节点,以及所述多个节点中各个节点在所述动态交互图中相对于所述当前节点的位置编码;

序列处理单元,配置为将所述当前序列输入基于transformer的神经网络模型,所述神经网络模型包括嵌入层和至少一个注意力层,在所述嵌入层,基于所述当前序列中各个节点的节点特征及其位置编码,得到n个嵌入向量;在每个注意力层,基于从上一层获取的n个输入向量中各个输入向量之间的关联度,对各个输入向量进行综合,得到n个输出向量;所述神经网络模型基于所述至少一个注意力层得到的n个输出向量,确定所述当前节点对应的特征向量。

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

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

根据本说明书实施例提供的方法和装置,基于动态交互序列构建动态交互图,该动态交互图反映了各个交互事件的时序关系,以及交互对象之间通过各个交互事件传递的相互影响。利用预先训练的基于transformer的神经网络模型,基于该动态交互图中与待分析交互对象相关的序列信息,可以提取得到该交互对象的特征向量。如此得到的特征向量中引入了各个交互事件中其他交互对象对其的影响,从而可以综合全面地表达该交互对象的深层特征。

附图说明

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

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

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

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

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

图4示出根据一个实施例的动态交互序列和由此构建的动态交互图;

图5示出在一个实施例中当前序列的示例;

图6示出在一个实施例中基于transformer的神经网络模型的结构示意图;

图7为根据一个实施例的注意力层的操作示意图;

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

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

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

具体实施方式

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

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

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

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

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

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

综合考虑以上因素,根据本说明书的一个或多个实施例,将动态变化的交互事件序列构建成动态交互图,其中各个交互事件中涉及的各个交互对象对应于该动态交互图中的各个节点。对于待分析的交互对象,从该动态交互图中得到对应节点相关的序列,其中包含相关联的叶节点以及叶节点相对于待分析节点的位置编码,将该序列输入基于transformer的神经网络模型,得到该交互对象的特征向量表达。

图2示出根据一个实施例的实施场景示意图。如图2所示,可以将依次发生的多个交互事件按时间顺序组织成动态交互序列<e1,e2,…,en>,其中每个元素ei表示一个交互事件,可以表示为交互特征组的形式ei=(ai,bi,ti),其中ai和bi是事件ei的两个交互对象,ti是交互时间。

根据本说明书的实施例,基于该动态交互序列构建动态交互图200。在图200中,将各个交互事件中的各个交互对象ai,bi用节点表示,并在包含同一对象的事件之间建立连接边。动态交互图200的结构将在后续进行更具体的描述。

对于某个待分析的交互对象,可以确定出其在动态交互图中对应的当前节点,并得到动态交互图中以该当前节点为根节点的节点序列数据。一般地,可以从该当前节点出发,选取经过一定数目的连接边可以达到的叶节点形成节点序列。此外,还获取各个叶节点相对于当前节点的位置编码,共同构成节点序列数据。该序列数据反映了,与当前交互对象直接或间接关联的交互事件中的其他对象对当前节点带来的影响。

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

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

图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版本,等等。

对于以上所述的动态交互序列,可以构建动态交互图。具体的,将动态交互序列中各个特征组中的各个第一对象和第二对象分别作为动态交互图的节点。如此,一个节点可以对应到一个交互事件的特征组中的一个对象,但是同一物理对象可能对应到多个节点。例如,如果用户u1在t1时刻购买了商品m1,在t2时刻购买了商品m2,那么存在两个交互特征组(u1,m1,t1)和(u1,m2,t2),那么则根据这两个交互特征组分别为用户u1创建节点u1(t1),u1(t2)。因此可以认为,动态交互图中的节点对应于一个交互对象在一次交互事件中的状态。

对于动态交互图中的每个节点,按照以下方式确定叶节点并构建连接边。对于任意节点i,假定其对应于交互事件i(交互时间为t),那么在动态交互序列中,从交互事件i向前回溯,也就是向早于交互时间t的方向回溯,寻找第一个同样包含节点i代表的对象u的交互事件j(交互时间为t-,t-早于t),也就是,寻找对象u参与的上一交互事件j。将上一交互事件j的交互特征组中两个对象对应的两个节点作为上述节点i的两个叶节点,建立从节点i指向该两个叶节点的连接边。

下面结合具体例子进行描述。图4示出根据一个实施例的动态交互序列和由此构建的动态交互图。具体的,图4左侧示出按照时间顺序组织的动态交互序列,其中示例性示出分别在t1,t2,…,t6时刻发生的交互事件e1,e2,…,e6,每个交互事件的特征组包含交互涉及的两个交互对象,以及交互时间。图4右侧示出根据左侧的动态交互序列构建的动态交互图,其中,将各个交互事件中的两个交互对象分别作为节点。下面以节点a(t6)为例,描述叶节点的确定和连接边的构建。

如图所示,该节点a(t6)代表交互事件e6中的一个交互对象a。于是,从交互事件e6出发向前回溯,找到的上一个同样包含交互对象a的交互事件为e4,也就是说,e4是a参与的上一次交互事件,相应的,e4对应的特征组中的两个节点即为a(t6)的两个叶节点。于是,建立从节点a(t6)指向e4对应的两个节点a(t4)和e(t4)的连接边。类似的,从a(t4)(对应于交互事件e4)继续向前回溯,可以继续找到对象a参与的上一次交互事件e1,于是建立从a(t4)指向e1对应的两个节点的连接边;从e(t4)向前回溯,可以找到对象e参与的上一次交互事件e2,于是,建立从e(t4)指向e2对应的两个节点的连接边。如此,确定节点之间的依赖关系,在节点之间构建连接边,从而形成图4的动态交互图。

需要说明的是,在图4的例子中,各个交互事件中的第一对象和第二对象为不同类型的对象,通过大小写进行区分,即大写字母表示第一类对象,小写字母表示第二类对象。在组织交互事件的特征组时,按照<第一类对象,第二类对象,交互时间>的方式排布。相应地,在形成动态交互图时,同样地区分对象类型,将同一交互事件中第一类对象对应的节点排布在左侧,将第二类对象对应的节点排布在右侧。如此,如果某个节点存在两个叶节点,这两个叶节点包括左节点和右节点,那么左节点对应于第一类对象,右节点对应于第二类对象。

在不需区分对象类型的情况下,在交互特征组以及动态交互图中两个交互对象可以以任意顺序排布。

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

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

在一个实施例中,每当检测到新的交互事件,就基于该新的交互事件更新动态交互图。具体的,在该实施方式下,可以获取基于已有交互序列构建的已有动态交互图,并获取新增交互事件所对应的特征组,即新增特征组。然后,将该新增交互特征组中包括的第一对象和第二对象作为两个新增节点,添加到已有动态交互图中。并且,对于每个新增节点,确定其是否存在叶节点,如果存在,则添加从该新增节点指向其两个叶节点的连接边,如此形成更新的动态交互图。

在另一实施例中,可以每过预定时间间隔,例如每隔一个小时,检测新增的交互事件,将该时间间隔内新增的多个交互事件形成新增交互序列。或者,每当检测到预定数目(例如,100个)的新增交互事件,将该预定数目的新增交互事件形成新增交互序列。然后基于该新增交互序列更新动态交互图。

具体的,在该实施方式下,可以获取基于已有交互序列构建的已有动态交互图,并获取如上所述的新增交互序列,其中包括多个新增交互特征组。然后,对于每个新增交互特征组,将其中的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中。并且,对于每个新增节点,确定其是否存在叶节点,如果存在,则添加从该新增节点指向其两个叶节点的连接边,如此形成更新的动态交互图。

综合以上,在步骤31,获取到基于动态交互序列构建的动态交互图。接着,在步骤32,在获取的动态交互图中,确定与待分析的当前节点对应的当前序列,所述当前序列包括,从当前节点出发,经由连接边到达的预定范围内的多个节点,以及所述多个节点中各个节点在所述动态交互图中相对于所述当前节点的位置编码。

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

可以将当前节点作为根节点,从该根节点出发,获取在预定范围内经由连接边依次到达的各个节点,并确定这些节点相对于根节点的位置编码,将上述预定范围内的各个节点及其位置编码的组合依次排列,构成当前节点对应的当前序列。

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

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

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

在获取上述预定范围内的节点时,在一个实施例中,沿着连接边,按照宽度优先的原则进行遍历。在另一实施例中,按照深度优先的原则进行遍历。或者,在其他实施例中,可以根据其他拓扑排序的方式进行遍历。

对于遍历得到的上述预定范围内的每个节点,确定该节点相对于根节点的位置编码。在一个实施例中,上述位置编码可以包括,该节点相对于根节点所经过的连接边的数目,或称为阶数。

在一个实施例中,如前所述,动态交互图中的各个交互对象被划分为第一类对象和第二类对象,第一类对象排布在同一交互事件的两个节点的左侧,作为左节点,第二类对象排布在上述两个节点的右侧,作为右节点。在这样的情况下,上述位置编码还进一步包括,节点是左节点或是右节点。

图5示出在一个实施例中当前序列的示例。在图5的例子中,假定分别以图4中的a(t6)和b(t6)为当前节点,并假定预定范围是一定的时间范围,即从当前节点的交互时刻向前回溯至最早到t2时刻。图5中的虚线框示出落入上述预定时间范围的节点。

以a(t6)为根节点,沿着连接边进行遍历,可以得到预定范围内通过连接边可达的节点包括a(t6),a(t4),e(t4),d(t2),e(t2)。在这些节点下方分别示出其位置编码,位置编码示出为l/rn的形式,其中l/r示出该节点是左节点或是右节点,n表示距离根节点经过的连接边的数目。例如,节点d(t2)的位置编码l2,表示该节点是左节点,经过2条连接边连接到根节点。依次排列的各个节点及其位置编码的组合,构成当前节点对应的当前序列。图5右侧分别示出以a(t6)为当前节点得到的序列1,和以b(t6)为当前节点得到的序列2。其他节点对应的序列也可以类似得出。

接着,在步骤33,将当前序列输入基于transformer的神经网络模型,通过该模型对当前序列进行处理,得到当前节点对应的特征向量。

如本领域技术人员所了解,transformer模型多用于执行自然语言处理nlp任务。transformer模型的核心特点在于其采用的独特的注意力机制。在处理自然语言,例如一个句子时,transformer模型利用该注意力机制,为句子中各个词向量赋予不同的注意力系数,从而更全面地考虑句子中上下文对各个词的影响。借鉴transformer模型对句子对应的词序列的处理方式,在本说明书的实施例中,利用transformer模型处理针对当前节点从动态交互图得到的当前序列。

图6示出在一个实施例中基于transformer的神经网络模型的结构示意图。如图6所示,该神经网络模型600包括嵌入层61和注意力层62和63。嵌入层61基于当前序列中各个节点的节点特征及其位置编码,得到n个嵌入向量。注意力层62与嵌入层61相连,从嵌入层获取n个嵌入向量作为输入向量,基于n个输入向量中各个输入向量之间的关联度,对各个输入向量进行综合,得到n个输出向量,输出给后续的注意力层63。注意力层63获取前一层的输出作为输入向量,执行与注意力层62类似的操作。

需要理解,图6的结构仅仅是一个示例,注意力层的数目可以根据需要而设置。例如,可以仅设置一个注意力层,也可以设置更多的注意力层。神经网络模型基于各注意力层得到的n个输出向量,确定当前节点对应的特征向量。

下面描述各个层的具体工作过程。

首先,嵌入层61获取当前节点对应的当前序列。如前所述,当前序列包括从当前节点出发,经由连接边可达的预定范围的多个节点,以及各个节点的位置编码。可以理解,对于不同的当前节点,当前序列长度可能并不一致,如图5的示例所示。为此,可以预设一较长的长度n。如果当前序列的实际长度不足n,则采用缺省值填补(padding)的方式将其补足。经过填补处理,可以认为,当前序列长度为n,也就是,包括n个节点,以及对应的n个位置编码。于是,嵌入层61可以对各个节点的节点特征和位置编码分别进行嵌入,再将其综合,得到初步的嵌入向量。

具体地,嵌入层可以对n个节点中各个节点的节点特征分别进行嵌入处理,得到n个节点嵌入向量。在节点表示用户的情况下,节点特征可以包括用户的属性特征,例如年龄、职业、教育程度、所在地区,等等;在节点表示商品的情况下,节点特征可以包括商品的属性特征,例如商品类别、上架时间、销量等等。在节点表示其他交互对象的情况下,可以相应的获取到原始的节点特征。在交互特征组中还包括行为特征f的情况下,也可以在节点特征中包含对应特征组中的行为特征f。

另外,嵌入层还对n个节点对应的n个位置编码分别进行嵌入处理,得到n个位置嵌入向量。

然后,对n个节点嵌入向量和n个位置嵌入向量进行综合,例如可以采用直接相加,加权组合等方式,如此得到n个嵌入向量<a1,a2,…,an>。

下面描述注意力层的操作过程。注意力层从其上一层获取n个输入向量<x1,x2,…,xn>,又可以表示为矩阵x,采用自注意力机制,基于向量间的关联度对各个向量进行变换,得到n个输出向量<y1,y2,…,yn>,又可以表示为矩阵y。可以理解,当该注意力层是与嵌入层直接相连的层,例如图6中的注意力层62,其获取的输入向量即为嵌入向量<a1,a2,…,an>;当该注意力层是后续的注意力层,例如图6中的注意力层63,其获取的输入向量即为前一注意力层的输出向量<y1,y2,…,yn>。

图7为根据一个实施例的注意力层的操作示意图,该示意图示出注意力层如何将输入矩阵x变换为输出矩阵y。

如图所示,分别采用第一变换矩阵q,第二变换矩阵k和第三变换矩阵v对n个输入向量<x1,x2,…,xn>中各个输入向量xi进行变换,得到各个输入向量对应的第一中间向量(q向量),第二中间向量(k向量)和第三中间向量(v向量)。操作上,可以分别用第一变换矩阵q,第二变换矩阵k和第三变换矩阵v,对n个输入向量构成的输入矩阵x进行线性变换,分别得到输入矩阵的q矩阵,k矩阵和v矩阵,再分别对矩阵进行拆分,即可得到各个输入向量对应的q向量,k向量和v向量。

对于n个输入向量中任意的第i输入向量xi,基于该第i输入向量对应的第一中间向量(q向量,qi)与各个输入向量xj对应的各个第二中间向量(k向量,kj)的点乘操作,确定该第i输入向量xi与各个输入向量xj的各个关联度。

尽管也可以直接将qi与kj的点乘结果确定为关联度,但是更经典地,先将点乘结果除以一常数,然后进行softmax运算,将运算结果作为输入向量xi与xj的关联度,即:

于是,可以以该第i输入向量xi与各个输入向量xj的各个关联度αi,j作为权重因子,对各个输入向量xj对应的第三中间向量(v向量,vj)进行加权组合,得到该第i输入向量xi对应的第i组合向量ci:

于是,可以得到n个输入向量对应的n个组合向量的向量序列<c1,c2,…,cn>,或矩阵c。基于该组合向量序列,可以得到n个输出向量。

具体地,在一个实施例中,可以直接将n个组合向量的向量序列作为n个输出向量,即yi=ci。此时,输出矩阵y即为组合向量矩阵c,又可以写成:

在另一实施例中,注意力层采用“多头”注意力机制(multiheadattention),即注意力层维护m套变换矩阵,每套变换矩阵包括前述第一变换矩阵q、第二变换矩阵k和第三变换矩阵v,从而可以并行地进行上述操作,得到m个组合向量序列(即m个矩阵c),每个向量序列包括基于一套变换矩阵得到的n个组合向量。

在这样的情况下,注意力层将得到的m个组合向量序列进行拼接,得到拼接矩阵;再通过第四变换矩阵w对该拼接矩阵进行变换,得到最终的输出矩阵y。将该输出矩阵y拆分即对应于n个输出向量<y1,y2,…,yn>。

通过以上的操作过程,注意力层基于n个输入向量之间的关联度进行变换操作,得到n个输出向量。

如前所述,神经网络模型可以包含多个注意力层。在一个实施例中,上述多个注意力层可以采用残差网络的方式堆叠连接,形成神经网络模型。

在多个注意力层的情况下,在一个实施例中,神经网络模型可以对多个注意力层中各个注意力层得到的n个输出向量进行综合,得到当前节点对应的特征向量。在另一实施例中,神经网络模型也可以仅提取最后一个注意力层得到的n个输出向量,对这n个输出向量进行综合,得到当前节点的特征向量。

如此,通过多种方式,神经网络模型基于与待分析的当前节点对应的当前序列,得到当前节点的特征向量。由于当前序列中包含了与当前节点有关的各阶叶节点,以及这些叶节点相对于当前节点的位置,这些信息共同反映了与当前节点对应的交互对象有关的时序性交互历史,因此,如此得到的当前节点的特征向量,不仅表达出交互对象本身的特征,还可以表达出交互对象在历次交互事件中所受到的影响,从而全面表征交互对象的特点。

可以理解,神经网络模型在确定当前节点的特征向量的计算过程中,依赖于大量的参数,例如前述各个变换矩阵(q矩阵,k矩阵,v矩阵,等等)中的参数。这些参数需要通过对该神经网络模型进行训练而确定。在不同实施例中,可以通过不同的任务,训练该神经网络模型。

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

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

然后,在步骤83,将上述第一序列和第二序列分别输入神经网络模型,分别得到与第一样本对象对应的第一特征向量,和与第二样本对象对应的第二特征向量。神经网络模型基于序列中的节点及其位置编码确定对应样本对象的特征向量的具体过程如前结合步骤33所述,不再赘述。

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

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

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

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

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

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

然后,在步骤93,将上述样本序列输入神经网络模型,得到样本对象的特征向量。该过程如前结合步骤33所述,不再赘述。

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

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

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

综合以上,在本说明书实施例的方案中,基于动态交互序列构建动态交互图,该动态交互图反映了各个交互事件的时序关系,以及交互对象之间通过各个交互事件传递的相互影响。利用训练的神经网络模型,基于该动态交互图中与待分析交互对象相关的节点序列,可以提取得到该交互对象的特征向量。如此得到的特征向量中引入了各个交互事件中其他交互对象对其的影响,从而可以综合全面地表达该交互对象的深层特征。

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

交互图获取单元101,配置为获取根据动态交互序列构建的动态交互图,其中,所述动态交互序列包括按照时间顺序排列的多个交互事件所对应的多个交互特征组,每个交互特征组包括,发生交互行为的第一对象,第二对象和交互时间;所述动态交互图包括代表各个交互特征组中的各个第一对象和第二对象的多个节点,所述多个节点包括第一节点,所述第一节点通过连接边指向两个叶节点,所述两个叶节点分别代表,所述第一节点对应的交互对象所参与的上一交互事件所对应的交互特征组中的两个对象;

序列确定单元102,配置为在所述动态交互图中,确定与待分析的当前节点对应的当前序列,所述当前序列包括,从当前节点出发,经由连接边到达的预定范围内的多个节点,以及所述多个节点中各个节点在所述动态交互图中相对于所述当前节点的位置编码;

序列处理单元103,配置为将所述当前序列输入基于transformer的神经网络模型,所述神经网络模型包括嵌入层和至少一个注意力层,在所述嵌入层,基于所述当前序列中各个节点的节点特征及其位置编码,得到n个嵌入向量;在每个注意力层,基于从上一层获取的n个输入向量中各个输入向量之间的关联度,对各个输入向量进行综合,得到n个输出向量;所述神经网络模型基于所述至少一个注意力层得到的n个输出向量,确定所述当前节点对应的特征向量。

在一个实施例中,所述交互图获取单元101配置为:

获取基于已有交互序列构建的已有动态交互图;

获取新增交互事件对应的新增交互特征组;

将该新增交互特征组中包括的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中;

对于每个新增节点,若其存在叶节点,则添加从该新增节点指向其两个叶节点的连接边。

在另一实施例中,所述交互图获取单元101配置为:

获取基于已有交互序列构建的已有动态交互图;

获取新增交互序列,其中包括多个新增交互事件对应的多个新增交互特征组;

对于每个新增交互特征组,将其中的第一对象和第二对象作为两个新增节点,添加到所述已有动态交互图中;

对于每个新增节点,若其存在叶节点,则添加从该新增节点指向其两个叶节点的连接边。

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

根据不同实施例,所述预定范围内的节点可以是,预设数目k的连接边之内的节点;和/或,交互时间在预设时间范围内的节点。

在一个实施例中,特征组中的第一对象和第二对象分别是第一类对象和第二类对象,所述两个叶节点包括左节点和右节点,左节点对应于所述上一交互事件中的第一类对象,右节点对应于所述上一交互事件中的第二类对象。

在这样的情况下,位置编码可以包括,各节点相对于所述当前节点经过的连接边的数目,以及该节点是左节点或是右节点。

在一个实施例中,每个交互特征组还包括,交互行为的行为特征;在这样的情况下,所述当前序列中各个节点的节点特征包括,该节点所对应的交互对象的属性特征,以及该节点所在的交互特征组中的行为特征。

在一个实施例中,序列处理单元103所利用的神经网络模型中的嵌入层具体用于:

对各个节点的节点特征分别进行嵌入处理,得到n个节点嵌入向量;

对各个节点的位置编码分别进行嵌入处理,得到n个位置嵌入向量;

对所述n个节点嵌入向量和n个位置嵌入向量进行综合,得到所述n个嵌入向量。

根据一种实施方式,序列处理单元103所利用的神经网络模型中的每个注意力层用于:

分别采用第一变换矩阵q,第二变换矩阵k和第三变换矩阵v对所述n个输入向量中各个输入向量进行变换,得到各个输入向量对应的第一中间向量,第二中间向量和第三中间向量;

对于n个输入向量中任意的第i输入向量,基于该第i输入向量对应的第一中间向量与各个输入向量对应的各个第二中间向量的点乘操作,确定该第i输入向量与各个输入向量的各个关联度;

以该第i输入向量与各个输入向量的各个关联度作为权重因子,对所述各个输入向量对应的第三中间向量进行加权组合,得到该第i输入向量对应的第i组合向量;

基于各个输入向量对应的各个组合向量,得到所述n个输出向量。

进一步的,在一个实施例中,每个注意力层维护m套变换矩阵,每套变换矩阵包括所述第一变换矩阵q、第二变换矩阵k和第三变换矩阵v,从而得到m个向量序列,每个向量序列包括基于一套变换矩阵得到的n个组合向量;

所述每个注意力层还用于:

将所述m个向量序列进行拼接,得到拼接矩阵;

通过第四变换矩阵对所述拼接矩阵进行变换,将变换得到的矩阵拆分为n个向量作为所述n个输出向量。

根据一种实施方式,所述至少一个注意力层为多个注意力层,其中包括与所述嵌入层连接的第一注意力层和后续注意力层,所述第一注意力层从所述嵌入层获取所述n个嵌入向量作为其n个输入向量,每个后续注意力层获取其上一注意力层得到的n个输出向量作为其n个输入向量。

在这样的情况下,在一个实施例中,所述神经网络模型对所述多个注意力层中各个注意力层得到的n个输出向量进行综合,得到所述当前节点对应的特征向量。

在另一实施例中,所述神经网络模型对所述多个注意力层中最后一个注意力层得到的n个输出向量进行综合,得到所述当前节点的特征向量。

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

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

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

向量获取模块,配置为将所述第一序列和所述第二序列分别输入所述神经网络模型,分别得到与所述第一样本对象对应的第一特征向量和与第二样本对象对应的第二特征向量;

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

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

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

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

样本获取模块,配置为从所述动态交互序列中选择样本对象,并获取该样本对象的分类标签;

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

向量获取模块,配置为将所述样本序列输入所述神经网络模型,得到所述样本对象的特征向量;

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

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

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

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

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

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

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

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

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