1.基于图神经网络与元数据的个性化服务推荐方法,其特征在于该方法包括以下步骤:步骤(1)获取用户的服务历史序列记录以及服务对应的供应商和类别信息,作为服务的交互记录;
步骤(2)根据步骤(1)获取的服务的交互记录中,服务交互的时序先后,对交互记录进行升序排序;根据用户的ID对交互记录进行分组;建立每项服务与供应商、类别的映射字典L;
步骤(3)构建用户服务序列图Gu(V,E),包含用户在给定时间范围内的服务历史序列记录,用户与服务、用户与供应商、用户与类别的交互关系以及服务与供应商、服务与类别之间的关系;所述用户服务序列图Gu(V,E)中的节点类型有四种:用户、服务、供应商、类别;
步骤(4)使用图注意力神经网络,对于给定的用户服务序列图中的当前节点,根据其直接相连的邻居节点,计算邻居节点j相对于当前节点的注意力权重aij,再使用邻居节点的特征表示向量vj与注意力权重aij的加权和更新特征表示向量;最终得到用户、服务、供应商和类别的特征表示向量为vu,vs,i,vp,i,vt,i;
步骤(5)构建用户的服务偏好特征表示向量:
将用户节点的特征表示向量vu作为用户的长期偏好pl;
根据用户在给定时间范围内的所述服务的交互记录,使用注意力机制进行加权和计算,对于所述服务的交互记录中的服务历史序列记录以及服务对应的供应商和类别信息,分别计算得到用户对于服务的偏好ps,s、对于供应商的偏好pp,s以及对于类别的偏好pt,s,再对这三种偏好分别使用layernorm方法进行归一化,最后融合三种偏好得到用户完整的短期偏好ps将服务的交互记录中交互的最后一项服务与服务对应的供应商和类别信息进行融合,得到用户的动态偏好pd;
最后,将用户的长期偏好pl、短期偏好ps和动态偏好pd融合得到完整的用户服务偏好p;
步骤(6)将用户的服务偏好向量的转置与服务特征表示向量进行点积运算,得到每项服务的推荐分数 再使用softmax函数,得到每项服务被交互的概率步骤(7)设置以下模型参数以及损失函数进行图神经网络模型训练:
按批次训练的数据量大小batch_size,训练的节点特征表示向量的维度embedding_dim,学习率learning_rate,用户近期交互的服务上下文窗口大小hist_length;采用交叉熵损失函数;
所述步骤(1)中,将服务的交互记录表示为由元组组成的序列:
u:[(s1,p1,t1),…,(si,pi,ti),…,(sn,pn,tn)]其中,u表示当前用户ID,si表示服务ID,pi表示供应商ID,ti表示类别ID;
所述步骤(3)中,在建立用户服务序列图时,对于交互记录中的第一项服务,使用无向边将用户节点和第一项服务节点、用户节点和第一项服务对应的供应商节点、用户节点和第一项服务对应的类别节点相连;
所述步骤(4)中,所述特征表示向量的更新规则如下:
对于节点i,有包含邻居节点j在内的 个邻居节点,将节点i的特征表示向量vi与节点j的特征表示向量vj分别通过同一个参数矩阵 线性变换后,将二者拼接,再通过一个由权重向量 设定的单层前向传播网络,然后使用LeakyReLU激活函数进行激活,最终得到的邻居节点j对节点i的重要性eij;对节点i所有的邻居节点采用相同的方式计算各自对于节点i的重要性,再使用softmax函数对重要性进行归一化,得到每个邻居节点的注意力权重aij;其中d′表示矩阵维度;
在融合邻居节点特征时,采用多头注意力计算方式,设置K个独立的注意力机制,重复上述两步计算注意力权重的过程,最后将所有邻居结点的特征表示向量、注意力权重和第kk个注意力机制对应的共享参数矩阵W 相乘累加,再根据注意力机制的个数进行平均,通过′sigmoid激活函数,得到节点i更新后的特征表示向量vi,具体计算方式如下:T
eij=LeakyReLU(a[Wvi||Wvj]),
T
其中,||表示两个向量拼接,· 表示矩阵的转置,exp代表指数函数,σ(·)代表的sigmoid函数。
2.根据权利要求1所述的基于图神经网络与元数据的个性化服务推荐方法,其特征在于:所述步骤(5)中,所述对于服务的偏好ps,s的计算方式包括以下步骤:先计算当前历史服务序列U中的每项服务的注意力权重,将每个服务的特征表示向量vs,i与最后一项服务特征表示向量vs,n分别通过线性变换Ws,1和Ws,2后进行加和,并加上偏置项b1,再使用sigmoid函数进行激活得到每项服务的融合特征向量表示hs,i,将所有服务的T重要性与用户特征表示向量的转置vu 相乘,并通过softmax函数归一化得到每项服务的注意力权重as,i;最后对于当前历史服务序列中的所有服务的特征向量进行加权和,并使用layernorm方法进行归一化得到所述对于服务的偏好ps,s,具体计算方式如下:hs,i=σ(Ws,1vs,i+Ws,2vs,n+b1),
所述对于供应商的偏好pp,s具体计算方式如下:
hp,i=σ(Wp,1vp,i+Wp,2vp,n+b2),
其中vp,i为供应商节点的特征表示向量,Wp,1、Wp,2为线性变换参数矩阵,b2为偏置项,hp,i为每个供应商的融合特征向量表示,ap,i为每个供应商的注意力权重;
所述对于类别的偏好pt,s具体计算方式如下:
ht,i=σ(Wt,1vt,i+Wt,2vt,n+b3),
其中vt,i为类别节点的特征表示向量,Wt,1、Wt,2为线性变换参数矩阵,b3为偏置项,ht,i为每个类别的融合特征向量表示,at,i为每个类别的注意力权重;
将用户短期内的三种偏好进行拼接,再使用线性变换层W1融合,得到用户完整的短期偏好ps,具体计算方式如下:ps=W1(ps,s||pp,s||pt,s)
对于动态服务偏好pd,将最后一项服务节点特征表示向量vs,n以及对应的服务节点特征表示向量vp,n、类别节点特征表示向量vt,n拼接,再使用线性变换层W2融合,得到用户的动态偏好,具体计算方式如下:pd=W2(vs,n||vp,n||vt,n)
对于完整的用户服务偏好p,将用户的长期、短期和动态服务偏好拼接,再使用线性变换层W3融合,具体计算方式如下:p=W3(pl||ps||pd)。
3.根据权利要求2所述的基于图神经网络与元数据的个性化服务推荐方法,其特征在于:所述步骤(7)中:按批次训练的所述数据量大小batch_size为256,训练的节点特征表示向量的所述维度embedding_dim为100,所述学习率learning_rate为0.001,用户近期交互的所述服务上下文窗口大小hist_length为5。