基于图神经网络的RESTful服务推荐方法

文档序号:35976504发布日期:2023-11-09 19:17阅读:43来源:国知局
基于图神经网络的RESTful服务推荐方法

本发明属于面向服务,涉及一种基于图神经网络的restful服务推荐方法。


背景技术:

1、随着面向服务技术(service-oriented computing,soc)逐渐成熟,以服务为基础的系统被广泛应用。web服务是一种通过互联网向用户提供资源与服务,并能够在异构的应用程序之间连接业务流程的技术。web服务常以web api的形式提供服务,并主要分为两类,包括以结构化形式描述的传统soap服务以及restful服务。由于restful服务轻量与资源导向的特点,服务组合倾向于使用以自然语言构成的功能文档进行描述的restful服务。

2、web服务的广泛应用使得软件业务从传统的封闭型发展为共同发展和交流,同时服务的集成也方便了复杂需求的开发。因此,越来越多的企业选择提供以服务为基础的应用。以软件即服务(saas,software-as-a-service)模式为主导,以服务作为业务核心,为开发者提供计算与数据资源,并为企业提供成熟的云软件解决方案。利用开放服务平台,开发者可以通过对可重复使用的,可替换的第三方服务进行组合来快速满足用户的复杂需求。mashup服务是一种典型的服务组合模式,通过快速组合现有的web api,来生成新的restful服务,因其效率高、使用方便的特点得到开发者的青睐并快速发展。因此,如何进行有效的restful服务推荐已经称为学术界和工业界的研究重点。

3、许多解决方法已被提出用于解决服务推荐方法。传统的推荐方法将包含服务功能信息的服务描述文档利用语言模型或主题模型等方法转换成低维稠密向量,之后利用相似度等信息检索技术实现组合服务需求与候选服务之间的对应以完成推荐。一些研究者将额外信息诸如tag信息,主题信息与qos信息等融入服务的representation中,以提高功能信息的多样性与浓度,获得更好的效果。然而,这些研究方法都有一些缺陷:(1)利用向量表示融合信息检索的方式separate了训练目标,难以对系统进行整体优化。(2)服务的调用矩阵较为稀疏,同时简单利用调用矩阵中的内积关系难以获取服务与组件间的隐式调用关系,仅以矩阵为基础的学习方法利用信息的效率较低。(3)现有的服务推荐忽略了mashup与调用api之间的互相影响,没有充分利用其调用结构。

4、图神经网络(graph neural networks,gnn)是当前热门的研究方法,利用神经网络对特征之间的相互关系进行非线性描述在一定程度上可以获取更好的推荐效果。gnn可以完成下几种有着不同目标的图分析任务:

5、第一种:节点级别(node-level)任务,与节点的回归或者分类任务相关,通过节点间的信息传播或卷积操作来提取高级的节点表示,并利用softmax或mlp层作为输出,使得gnn能以端到端的形式执行节点级别的任务。

6、第二种:边级别(edge-level)任务,与边的输出表示,边分类任务和链路预测任务相关。通过gnn模型中两个节点的表示结果,可预测两者所对应的边的标签分类结果或预测两点间的连接强度。

7、第三种:图级别(graph-level)任务,与图分类任务相关。为了获取图的整体表示结果,可利用池化等操作对节点表示进行统合,或增加特殊的整图学习目标节点,来完成对目标的学习。

8、考虑到restful服务是在rest(representational state transfer)架构约束和原则下构建的服务,通常使用https协议并使用json格式对数据进行传输。服务发布者在托管服务时会提供诸如标签和功能类型等信息,并给出自然语言描述的服务功能描述文档。因此结合图神经网络,利用组合服务与restful服务间的调用关系等信息,可构建对应的图结构以对服务特征信息进行学习,以达到比传统方法更好的推荐效果。


技术实现思路

1、为了克服现有技术的不足,为了更好利用服务包含信息,克服现有的restful服务推荐方法存在的不足之处,本发明给出了一种基于图神经网络的restful服务推荐方法,首先给出基于组合服务调用信息与restful服务关联信息的双图结构,并借助预训练语言模型来整合服务描述文本的上下文信息。同时,针对不同图结构,利用多层图传播结构学习协同过滤中缺失的连接,针对图结构设计对应的图神经网络结构进行特征表示的学习。以特征表示为基础,计算成对推荐分数,完成restful服务推荐。

2、本发明所采用的技术方案是:

3、一种基于图神经网络的restful服务推荐方法,所述方法包括以下步骤:

4、第一步、基于服务调用矩阵信息,构建mashup服务与restful服务间的调用图结构maig(mashup-api invoke graph);

5、第二步、基于restful服务间的功能关联信息,构建restful服务间关联信息图结构atcg(api-tag connection graph);

6、第三步、根据maig图结构,设计对应的图神经网络结构,获取mashup组合服务与restful服务对应的特征表示;

7、第四步、根据atcg图结构,设计对应的图神经网络结构,获取该图结构下restful服务对应的特征表示;

8、第五步、利用获得的特征表示,计算成对分数,并计算损失函数结果,对整体推荐模型进行优化;

9、第六步、匹配用户请求,利用成对分数,排序并实现restful服务推荐。

10、进一步,所述第一步的过程如下:

11、1.1对mashup服务集合m,将其中的mashup服务表示为mashup类型的图节点,对restful服务集合a,将其中的restful服务表示为restful类型的图节点,将整体的图节点集合以vma进行表示;

12、1.2设置空集合εma作为maig图结构中边信息的存储集合;

13、1.3遍历m中的mashup服务,将当次遍历的单个mashup服务设为m,从mashup与restful服务间的调用交互矩阵ma中,获取服务m所调用的restful服务集合minvoke,服务调用交互矩阵ma大小为|m|×|a|,其中|m|表示集合m中的元素数量,|a|表示集合a中的元素数量;

14、1.4遍历上一步中获得的restful服务集合minvoke,将当次遍历的单个restful服务设为a,当调用矩阵ma中对应的位置[m,a]所对应的值为1时,表示m与a之间存在调用关系,将边组合(m,a)存入εma中,表示m与a对应的图节点间存在无向的连接边;

15、1.5完成遍历,将图节点集合vma与边信息集合εma进行组合,完成对maig(vma,εma)图结构的构建。

16、再进一步,所述第二步的过程如下:

17、2.1对restful服务集合a,将其转换为图节点集合,以va进行表示;

18、2.2设置空集合εa作为atcg图结构中边信息的存储集合;

19、2.3遍历a中的restful服务,将当次遍历的单个restful服务设为a1。在此基础上,对除a1之外的a中的restful服务进行遍历,将当次遍历的单个restful服务设为a2;

20、2.4restful服务自身的标签信息集合atag,其中包含restful服务对应的标签,将restful服务a1对应的标签集合设为restful服务a2对应的tag集合设为当不为空集时,将边组合(a1,a2)存入εa中,表示a1与a2对应的图节点间存在无向的连接边;

21、2.5完成遍历,将图节点集合以va与边信息集合εa进行组合,完成对atcg(va,εa)图结构的构建。

22、更进一步,所述第三步的过程如下:

23、3.1构建embedding层,来存放mashup服务与restful服务节点的嵌入向量信息,形式如下表示:

24、

25、

26、

27、其中emashup表示mashup服务所对应的嵌入表示,ea表示restful服务所对应的嵌入表示。将两者组合得到embedding层嵌入矩阵e;

28、3.2计算maig图结构的邻接矩阵,设为ima:

29、

30、其中ma为服务调用交互矩阵。邻接矩阵大小为(|m|+|a|)×(|m|+|a|),包含了图结构中节点的连接信息,其中t表示矩阵转置操作;

31、3.3将mashup服务m对应的度定义为dm,restful服务a对应的节点的度定义为da,将mashup服务与restful服务对应的度信息组合为度矩阵dma。计算邻接矩阵的归一化形式:

32、

33、其中,归一化矩阵中位置(i,j)对应的元素值为其中表示序号为i的mashup服务对应的度大小,表示序号为j的restful服务对应的度大小;

34、3.4遍历maig图结构中的节点信息,将当次遍历的节点设为v,对v在图结构中的邻居节点集合,即与节点有边连接的节点集合,设为nv,对每个vt∈nv,计算其传播的结果:

35、

36、其中l表示多层图神经网络图传播结构层数,wl1与wl2均为当前层的可训练参数矩阵,表示向量元素相乘操作,ev表示节点v对应的嵌入表示,表示节点v的邻居节点vt的嵌入表示;

37、3.5对节点v与其邻居节点的传播信息进行聚合操作,形成当前层的节点特征嵌入输出:

38、

39、其中σ为激活函数,表示上一层的节点嵌入输出,∑表示向量求和操作;

40、3.6根据节点v的性质,将输出的节点嵌入结果分为mashup服务特征表示与restful服务特征表示进行输出。

41、所述第四步的过程如下:

42、4.1独热表示是一种向量化的表示方法,其中每个特征都用一个独立的二元维度表示,只有一个维度的值为1,其余维度均为0,用于表示分类变量或离散变量,该步骤构建基于独热表示的restful服务嵌入表示,基于独热表示的嵌入将restful集合的高维独热表示利用嵌入层转为稠密的嵌入表示aoe∈r|a|×d,其中d为嵌入表示的维度;

43、4.2获取atcg的邻接矩阵,ia∈r|a|×|a|,当ia[u,w]=1时,表示序号为u的restful服务au与序号为w的restful服务aw之间分享相同的标签信息;

44、4.3计算对应的度矩阵da∈r|a|×|a|,该矩阵为对角矩阵,其中da[u,u]表示与au拥有相同标签的restful服务总数;

45、4.4计算归一化的邻接矩阵作为输入向量集合的卷积权重;

46、4.5利用归一化的邻接矩阵对嵌入表示进行图卷积计算:

47、

48、

49、其中σ表示激活函数,w5∈rd×d,w6∈rd×d分别为两层的权重,将计算得到的输出c作为该网络结构下的restful服务特征表示输出,其大小为c∈r|a|×d,将其中服务a对应的特征表示定义为ca。

50、所述第五步的过程如下:

51、5.1将以maig图结构为基础的图神经网络结构输出的restful服务特征表示与以atcg图结构为基础的图神经网络结构输出的restful服务特征表示ca,计算门机制(gatemechanism)对应的gate权重:

52、

53、其中wg为可训练权重,表示所有服务对应的的集合;

54、5.2利用权重进行连接,计算最后的输出结果:

55、

56、fea为将矩阵形式的特征表示经加权计算后得到的所有restful服务特征表示组成的集合,将fea集合中restful服务a对应的特征向量结果设为fea;

57、5.3计算mashup m与候选restful服务a″之间的成对推荐分数:其中t表示向量转置;

58、5.4对mashup服务m,基于训练数据中服务调用信息,利用贝叶斯个性化排名损失(pair-wise bayesian personalized ranking loss,bpr)进行参数优化,数据集中mashup调用的restful服务称为调用正例,定义为xm+,将其余候选的restful服务称为调用负例xm-,整体损失函数的计算为:

59、

60、其中o∈{(m,a′,b′)|(m,a′)∈xm+,(m,b′)∈xm-},a′与b′分别表示采样得到的正例服务与采样得到的负例服务。

61、所述第六步的过程如下:

62、6.1对整体模型进行步骤一到五的循环,利用步骤5.4的损失函数进行优化,实现模型参数对数据集的拟合;

63、6.2将用户对新组合服务构建的请求利用语言模型转换为向量表示,并与现有数据集中的mashup服务功能描述进行相似度匹配,取出其中相似度最高的q个对象作为关联mashup服务,表示为relationm={rm1,rm2,…,rmq};

64、6.3对集合relationm中的mashup服务对应的表示做平均池化(mean-pooling)操作,构建用户请求对应的特征表示enewr。平均池化是一种常用的池化操作,通过对特征向量的每个维度取平均值得到新的特征向量;

65、6.4将enewr传入经步骤6.1的推荐模型中,输出对应的特征表示结果

66、6.5遍历候选restful服务,当前遍历的restful服务设为a,按步骤5.3的方法计算对应的成对推荐分数将所有的成对分数构成集合ynewr;

67、6.6从大到小对ynewr进行排序,取出排名在前k个的restful服务进行输出,完成对新组合请求的restful服务推荐。

68、本发明的有益效果在于:(1)根据服务数据特点与调用结构,设计了图结构,以融合各项信息,更好地对服务功能特征进行学习;(2)以图神经网络为基础,实现了对服务推荐模型端到端的优化,提升了服务推荐效果;(3)设计了以调用图结构为输入的多层图神经网络,通过不同的模型结构来融合服务间的表示结果。

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