基于服务互补关系学习模型的RESTful服务二次推荐方法

文档序号:37059168发布日期:2024-02-20 21:09阅读:17来源:国知局
基于服务互补关系学习模型的RESTful服务二次推荐方法

本发明涉及一种基于服务互补关系学习模型的restful服务二次推荐方法。


背景技术:

1、随着软件即服务(saas,software-as-a-service)模式的发展,越来越多的企业和组织将业务、数据与资源封装为服务,以web api的形式发布在互联网上,web服务的数量呈倍增趋势。作为一种轻量化的web服务类型,restful服务凭借资源导向、结构清晰、拓展性强等特点,在互联网中得到了广泛的运用。以国内的云服务企业为例,阿里云、腾讯云、天翼云等企业均采用restful服务作为主要形式,向用户提供数据与计算资源。

2、restful服务数量的与日俱增,以及具有相似功能的restful服务不断涌现导致发现并选择高质量的服务成为一个难题。在此背景下,服务推荐技术受到了广泛的关注。

3、现有的服务推荐技术主要包括基于协同过滤的服务推荐技术、基于主题模型的服务推荐技术以及基于服务质量的服务推荐技术等。

4、基于协同过滤的服务推荐技术主要通过用户相似度、服务相似度等信息向用户推荐功能相近的服务。例如,专利号为201710211954.0,名称为一种用于web服务推荐的协同过滤方法利用服务可信度和用户偏好度信息,针对web服务进行过滤,对用户进行服务推荐。

5、基于主题模型的服务推荐技术能够挖掘服务之间的潜在主题关系,缩小服务搜索空间,提高服务推荐效率。例如,专利号为201810424947.3,名称为一种基于主题和服务组合信息的web服务推荐方法利用lda模型训练得出服务-主题矩阵,并使用svd矩阵分解模型预测用户对web服务的评分,选出评分最高的web服务推荐给用户。

6、上述方法都在一定程度上提高了服务推荐的精确度和效率,但是仍存在以下两点不足:

7、(1)上述方法大多基于用户相似度和服务相似度进行服务推荐,忽视了服务间的互补关系。

8、(2)大部分现有服务推荐方法均为单次推荐方法,没有针对用户的输入和历史的推荐结果进行二次推荐。

9、在推荐系统中,互补推荐和二次推荐能较好地解决上述不足。互补推荐是通常以单个项目作为输入,给出的候选推荐项目往往与输入项目功能不同,但在某种程度上可以组合使用。互补推荐的关键在于对项目间互补关系的寻找。对于互补关系的寻找,一种常见的技术为关联规则(association rules)。例如,专利号为202010177173.6,名称为一种基于视频分析的商品推荐方法、装置、设备和介质。在该方法中,通过商品实例之间的相似关联、互补关联和情景关联,并结合商品关联规则得到兴趣度,根据所述兴趣度向潜在的消费者推荐商品实例。关联规则的生成主要依赖支持度和置信度两项参数,然而,通过数据挖掘算法生成的关联规则大多杂乱无章,难以直接用于推荐工作。二次推荐能够结合用户输入、用户反馈以及历史推荐项目给出新的推荐结果。常见的二次推荐方法大多基于逻辑回归、随机森林、神经网络等技术。二次推荐在电子商务、社交网络、短视频平台等领域得到了广泛的应用,目前在服务计算领域,有关二次推荐的研究运用还比较少。

10、目前并不存在一种简便有效的方法,能够利用关联规则挖掘restful服务之间潜在的互补关系,进行二次服务推荐。


技术实现思路

1、为了克服现有技术的不足,为充分挖掘restful服务之间的互补关系,提高服务推荐的精确度与效率,本发明给出了一种基于服务互补关系学习模型的restful服务二次推荐方法,该方法首先建立了一种服务互补关系学习模型,并设置了服务互补关系规则;在此基础上,提取初始服务互补关系,使用服务功能相似信息对初始服务互补关系进行拓展,并构建互补关系图结构;其次,结合掩码图注意力机制在互补关系图结构上进行表示学习,得到restful服务和服务功能的嵌入向量。然后,计算嵌入向量之间的距离,并利用合页损失函数缩小具有互补关系的嵌入向量之间的距离;最后,根据用户输入,找出具有互补关系的restful服务,进行二次服务推荐。

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

3、一种基于服务互补关系学习模型的restful服务二次推荐方法,包括以下步骤:

4、步骤1:创建服务互补关系学习模型,建立restful服务调用数据集,设置服务互补关系规则,提取初始服务互补关系,过程如下:

5、1.1、服务互补关系学习模型:能够学习restful服务数据样本间的服务互补关系,并以此进行二次推荐的深度学习模型,用符号scrm表示;

6、1.2、restful服务调用数据集:有关服务、服务调用序列、服务组合的数据样本集合,用符号c表示;

7、1.3、服务互补关系规则:在scrm中,用于描述两项restful服务之间互补关系强弱的相关信息;

8、1.4、提取初始服务互补关系:根据步骤1.3中制定的服务互补关系规则,提取c中的初始服务互补关系;

9、步骤2:利用服务功能相似信息,对步骤1.4中所提取的初始服务互补关系进行拓展,得到功能服务互补关系,过程如下:

10、2.1、服务功能相似信息:对于任意两项restful服务,若从属的服务功能存在相同项,则称两者是功能相似的,相似的程度使用服务功能相似度进行衡量;

11、2.2、拓展初始服务互补关系:在restful服务调用数据集中,找出功能相似的restful服务对初始服务互补关系进行拓展,得到功能服务互补关系;

12、步骤3:基于初始服务互补关系和功能服务互补关系构建互补关系图结构,过程如下:

13、3.1、互补关系图结构:在scrm中,用于描述初始服务互补关系和功能服务互补关系的有向带权图,定义为acwg=<v,e,w>,其中,acwg代表互补关系图结构,v代表节点集,e代表有向边集,w代表权重矩阵;

14、3.2、构建互补关系图结构:将初始服务互补关系和功能服务互补关系转化为互补关系图结构中的节点、有向边和边权重;

15、步骤4:基于表示学习将restful服务转化为嵌入向量,利用掩码式图注意力机制从步骤3构建的互补关系图结构awcg中学习注意力系数,结合注意力系数对嵌入向量进行优化,过程如下:

16、4.1、表示学习是一种常用的深度学习方法,可将数据样本转化为低维向量表示,在scrm中,通过表示学习先将任意的restful服务a转化成维度为d的嵌入向量εa,d是代表维度大小的超参数;

17、4.2、结合掩码式图注意力机制用于学习互补关系图结构,得到注意力系数;

18、4.3、注意力系数对嵌入向量的优化:利用节点与其邻居节点之间的注意力系数对嵌入向量进行加权平均处理;

19、步骤5:计算scrm中不同restful服务的向量距离,将服务功能转化为嵌入向量,计算不同服务功能的向量距离,过程如下:

20、5.1restful服务的向量距离:通过步骤4可将restful服务映射至向量空间,将不同restful服务在向量空间中的距离大小称为restful服务的向量距离;

21、5.2服务功能的转化:利用表示学习,将服务功能转化为嵌入向量;

22、5.3服务功能的向量距离计算过程:通过步骤5.2可将服务功能映射至向量空间,将不同服务功能在向量空间中的距离大小称为服务功能的向量距离;

23、步骤6:利用梯度下降算法与合页损失函数优化scrm,缩小具有互补关系的restful服务、服务功能之间的向量距离,其中,梯度下降算法是深度学习中一种优化算法,用于寻找函数的局部极小值,合页损失函数是一种常用于半监督学习的损失函数;

24、步骤7:利用scrm,找出与用户输入具有互补关系并且距离最近的restful服务和服务功能,实现二次推荐。

25、进一步,所述步骤1.2中,服务调用数据集包含以下信息:

26、1.2.1、restful服务:一项restful风格的api服务,用符号a表示;

27、1.2.2、服务调用次数:一项restful服务被调用的总数,可以用符号contain(a)表示;

28、1.2.3、服务调用序列:由被调用的restful服务所组成序列,用符号c表示;

29、1.2.4、服务组合:restful服务之间的一种组合方式,用符号ma表示。;

30、1.2.5、服务组合总数:restful服务调用数据集中服务组合的总数,用符号|ma|表示。

31、再进一步,所述步骤1.3中,服务互补关系规则包含以下信息:

32、1.3.1、支持度阈值:任意取两项restful服务a1和a2,两者在c中同时出现的最低概率,用符号ω表示;

33、1.3.2、置信度阈值:在c中,以restful服务a1出现为前提,restful服务a2出现的最低条件概率,用符号δ表示;

34、1.3.3、共现:在c中,restful服务a1和a2同时出现,称为一次共现,共现次数可用符号co(a1,a2)表示;

35、1.3.4、初始服务互补关系:基于服务调用次数、共现次数、服务组合总数进行计算,若结果满足给定的支持度阈值和置信度阈值,则称两项restful服务间存在初始服务互补关系。

36、更进一步,所述步骤1.4中,初始服务互补关系的提取过程如下:

37、1.4.1、从c中任意取出两项restful服务,分别记作a1和a2;

38、1.4.2、将a1被调用的次数contain(a1)置为0;

39、1.4.3、将a1和a2的共现次数co(a1,a2)置为0;

40、1.4.4、按顺序遍历c中的服务调用序列,将第i次取到的服务调用序列记为ci;

41、1.4.5、若a1在ci中出现,则contain(a1)将加1;

42、1.4.6、若a1和a2在ci中同时出现,则将co(a1,a2)加1;

43、1.4.7、当ci为c中的最后一条服务调用序列时,遍历结束;

44、1.4.8、将co(a1,a2)除以|ma|的结果与ω进行比较,若结果小于ω,则跳转至步骤1.4.1;

45、1.4.9、将co(a1,a2)除以contain(a1)的结果与δ进行比较,若结果小于δ,则跳转至步骤1.4.1;

46、1.4.10、输出a1和a2之间的初始服务互补关系,记作(a1,a2)com。

47、所述步骤2.1中,服务功能相似信息包含以下内容:

48、2.1.1、服务功能:restful服务从属的功能类型,用符号category表示,若服务a具有类型为i的功能,则可用a→categoryi表示,符号→代表restful服务和服务功能之间的从属关系;

49、2.1.2、服务功能集:restful服务a所从属的所有服务功能组成的集合,记作cat(a);

50、2.1.3、服务功能相似度:对于功能相似的restful服务a1和a2,对集合cat(a1)和集合cat(a2)取交集,交集的模除以cat(a1)的模的结果称为服务功能相似度,记作sim(a1,a2);

51、2.1.4、服务互补关系置信度:衡量服务互补关系的可信程度,对于初始服务互补关系而言,其置信度为1;对于功能服务互补关系而言,其置信度取值为sim(a1,aformer),aformer为被拓展的服务;

52、2.1.5、服务互补关系集:所有初始服务互补关系与功能服务互补关系的集合,用符号com表示。

53、所述步骤2.2中,初始服务互补关系的拓展过程如下:

54、2.2.1、给定任意的初始服务互补关系(a1,a2)com,将其加入服务互补关系集com;

55、2.2.2、找出a2对应的服务功能集cat(a2);

56、2.2.3、按顺序遍历c中的restful服务,将第i次取到的服务记为ai;

57、2.2.4、计算ai和a2之间的功能相似度sim(ai,a2)。若sim(ai,a2)为0,则跳转至2.2.6;

58、2.2.5、将初始服务互补关系(a1,a2)com拓展为(a1,ai)com,称(a1,ai)com为功能服务互补关系;

59、2.2.6、为(a1,ai)com的服务互补关系置信度赋值,取值为sim(ai,a2);

60、2.2.7、将(a1,ai)com加入com;

61、2.2.8、当ai是c中的最后一项restful服务时,遍历结束。

62、所述步骤3.1中,互补关系图结构包含以下信息:

63、3.1.1、图节点:由步骤1.2.1中定义的restful服务转化而来,用符号v表示;

64、3.1.2、有向边:由初始服务互补关系和功能服务互补关系转化而来,用符号e表示;

65、3.1.3、边权重:由步骤2.1.4中定义的服务互补关系置信度转化而来,用符号w表示。

66、所述步骤3.2中,构建互补关系图结构的处理过程如下:

67、3.2.1、按顺序遍历com,将取到的初始(或功能)服务互补关系记为(aj,ak)com;

68、3.2.2、构建两个节点vj和vk代表restful服务aj和ak,并将其加入节点集v;

69、3.2.3、构建一条由vj指向vk的有向边ejk,并将其加入有向边集e;

70、3.2.4、有向边ejk对应的边权重取值为sim(aj,ak),更新权重矩阵w中的矩阵值wjk;

71、3.2.5、当(aj,ak)com为com中的最后一条初始(或功能)服务互补关系时,遍历结束。

72、所述步骤4.2中,掩码式图注意力机制的学习过程如下:

73、4.2.1、遍历awcg的节点集,将第i次取出的节点记作vi;

74、4.2.2、取出vi的任意邻居节点vj,若vi没有邻居节点,则跳转至步骤4.2.11;

75、4.2.3、找出vi和vj对应的restful服务,记为ai、aj;

76、4.2.4、对ai、aj进行表示学习,转化为d维向量,分别记作εai、εaj;

77、4.2.5、定义一个大小为d×d′的共享权重矩阵w1,d′是代表维度大小的超参数;

78、4.2.6、将εai、εaj与w1相乘后进行向量拼接,向量拼接结果记为ti,j;

79、4.2.7、定义一个大小为d′×1的标量转化矩阵w2;

80、4.2.8、将w2与ti,j相乘,将向量拼接结果转化为标量ki,j;

81、4.2.9、对ki,j进行加权,用服务互补关系置信度sim(ai,aj)乘以ki,j,结果记为mi,j;

82、4.2.10、利用leakyrelu激活函数对mi,j进行归一化,称归一化结果为节点vi与vj之间的注意力系数,用符号αi,j表示。leakyrelu激活函数是一种常见的神经网络激活函数,具有防止神经元抖动、避免梯度消失、拟合性好等优点;归一化一种常用的数学方法,能够对原始数据进行变换,将其限制在0到1的范围内;

83、4.2.11、当vi为awcg中的最后一个节点时,结束遍历。

84、所述步骤4.3中,注意力系数对嵌入向量的优化过程如下:

85、4.3.1、给定任意restful服务a的嵌入向量εa,定义优化向量ε′a,并将其初始化为空向量;

86、4.3.2、在awcg中找到restful服务a对应的节点va,用符号na表示va所有的邻居节点的集合;

87、4.3.3、若na为空集,则停止优化过程,将εa作为结果输出;

88、4.3.4、按顺序遍历na,将第j次取到的邻居节点记为vj;

89、4.3.5、按照步骤4.2计算节点va与vj之间的注意力系数,计算结果用符号αa,j表示;

90、4.3.6、将嵌入向量εa与δa,j相乘后与ε′a相加;

91、4.3.7、当vj是na中最后一个邻居节点时,遍历结束;

92、4.3.8、输出ε′a。

93、所述步骤5.1中,restful服务的向量距离计算过程如下:

94、5.1.1、给定任意两项restful服务ai和aj,通过步骤4得到优化后的嵌入向量,分别用符号ε′ai和ε′aj表示;

95、5.1.2、定义lai,j代表ai与aj之间的向量距离,将其初始化为0;

96、5.1.3、定义restful服务向量的边界距离,用符号δa表示;

97、5.1.4、在awcg中找出ai和aj对应的节点,记作vi和vj;

98、5.1.5、将嵌入向量ε′ai与ε′aj相减,并对计算结果取模;

99、5.1.6、当vj是vi的邻居节点时,则将模长的平方赋值给lai,j,跳转至步骤5.1.8;

100、5.1.7、当vj不是vi的邻居节点时,用δa减去模长的平方,将计算结果记为ra,当ra大于0时,将ra赋值给lai,j,跳转至步骤5.1.8;

101、5.1.8、输出lai,j。

102、所述步骤5.2中,服务功能的转化过程如下:

103、5.2.1、按顺序遍历restful服务a的服务功能集cat(a),将第i次取到的服务功能记为categoryi;

104、5.2.2、利用表示学习,将服务功能categoryi转化为d维嵌入向量,当categoryi作为服务a固有的功能时,将其记作当categoryi作为服务a互补的功能时,将其记作

105、5.2.3、当categoryi为cat(a)中最后一项服务功能时,结束遍历。

106、所述步骤5.3中,服务功能的向量距离计算过程如下:

107、5.3.1、给定任意两项restful服务ai和aj,从其服务功能集cat(ai)与cat(aj)中分别取出两项服务功能,记为categorym、categoryn;

108、5.3.2、按照步骤5.2将categorym转化为向量categoryn转化为

109、5.3.3、定义lci,j代表categorym与categoryn之间的向量距离,将其初始化为0;

110、5.3.4、定义向量的边界距离,用符号δc表示;

111、5.3.5、在awcg中找出ai和aj对应的节点,记作vi和vj;

112、5.3.6、将嵌入向量与相减,并对计算结果取模;

113、5.3.7、当vj是vi的邻居节点时,则将模长的平方赋值给lci,j,跳转至步骤5.3.9;

114、5.3.8、当vj不是vi的邻居节点时,用δc减去模长的平方,将计算结果记为rc,当rc大于0时,rc赋值给lci,j,跳转至步骤5.3.9;

115、5.3.9、输出lci,j。

116、所述步骤6中,利用合页函数缩小scrm中的向量距离的处理过程如下:

117、6.1、利用步骤5.1计算所有不同restful服务之间的向量距离,将所有restful服务之间的向量距离相加,距离总和用符号表示;

118、6.2、利用步骤5.3计算所有不同服务功能之间的向量距离,将所有服务功能之间的向量距离相加,距离总和用符号表示;

119、6.3、定义合页损失函数的学习强度控制参数λ;

120、6.4、定义合页损失函数,表达式为其中符号代表合页损失函数;

121、6.5、将设为优化目标,在restful服务调用数据集c上重复6.1至6.5,使用梯度下降算法寻找的极小值。

122、所述步骤7的过程如下:

123、7.1对于用户输入的restful服务a,利用步骤4.3获得a的嵌入向量,用符号表示;

124、7.2通过步骤5.2对restful服务a进行服务功能转化,取出任意转化后的向量,用符号表示;

125、7.3定义服务的向量距离集合dis_a;

126、7.4定义服务功能的向量距离集合dis_c;

127、7.5按顺序遍历c,将第j次取到的restful服务记为aj;

128、7.6根据步骤5.1计算服务a与服务aj之间的向量距离,将计算结果加入dis_a;

129、7.7根据步骤5.3计算服务a与服务aj之间的服务功能的向量距离,将计算结果加入dis_c;

130、7.8当aj为c中的最后一项服务时,结束遍历;

131、7.9获取dis_a中距离最小的前k1项服务,其中k1代表推荐的服务数,获取的结果用集合s(a,aj)表示;

132、7.10获取dis_c中距离最小的前k2项服务功能,其中k2代表推荐的服务功能数,获取的结果用集合t(a,aj)表示;

133、7.11进行二次推荐,s(a,aj)作为互补服务二次推荐结果;t(a,aj)作为互补服务功能二次推荐结果。

134、本发明的有益效果在于:(1)根据restful服务特点设计了服务互补关系学习模型,能有效提取初始服务互补关系以及功能服务互补关系(2)利用互补关系图结构实现对不同类型的服务互补关系进行建模,便于下游神经网络进行特征提取(3)结合表示学习、掩码式图注意力机制等深度学习方法优化嵌入向量表示,提升了服务推荐效果

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